Recherche de site Web

Série RHCSA : Sécurisation de SSH, définition du nom d'hôte et activation des services réseau - Partie 8


En tant qu'administrateur système, vous devrez souvent vous connecter à des systèmes distants pour effectuer diverses tâches d'administration à l'aide d'un émulateur de terminal. Vous serez rarement assis devant un vrai terminal (physique), vous devez donc mettre en place un moyen de vous connecter à distance aux machines qu'il vous sera demandé de gérer.

En fait, c’est peut-être la dernière chose que vous devrez faire devant un terminal physique. Pour des raisons de sécurité, utiliser Telnet à cette fin n'est pas une bonne idée, car tout le trafic transite par le réseau en texte brut et non crypté.

De plus, dans cet article, nous examinerons également comment configurer les services réseau pour qu'ils démarrent automatiquement au démarrage et apprendrons comment configurer la résolution du réseau et du nom d'hôte de manière statique ou dynamique.

Installation et sécurisation des communications SSH

Pour pouvoir vous connecter à distance à un box RHEL 7 en utilisant SSH, vous devrez installer les logiciels openssh, openssh -clients et openssh-servers. La commande suivante installera non seulement le programme de connexion à distance, mais également l'outil de transfert de fichiers sécurisé, ainsi que l'utilitaire de copie de fichiers à distance :


yum update && yum install openssh openssh-clients openssh-servers

Notez que c'est une bonne idée d'installer les homologues du serveur, car vous souhaiterez peut-être utiliser la même machine comme client et serveur à un moment ou à un autre.

Après l'installation, vous devez prendre en compte quelques éléments de base si vous souhaitez sécuriser l'accès à distance à votre serveur SSH. Les paramètres suivants doivent être présents dans le fichier /etc/ssh/sshd_config.

1. Modifiez le port sur lequel le démon sshd écoutera de 22 (la valeur par défaut) à un port élevé (2000 ou supérieur), mais assurez-vous d’abord que le port choisi n’est pas utilisé.

Par exemple, supposons que vous choisissiez le port 2500. Utilisez netstat afin de vérifier si le port choisi est utilisé ou non :


netstat -npltu | grep 2500

Si netstat ne renvoie rien, vous pouvez utiliser en toute sécurité le port 2500 pour sshd, et vous devez modifier le paramètre Port dans le fichier de configuration comme suit :


Port 2500

2. Autoriser uniquement le protocole 2 :


Protocol 2

3. Configurez le délai d'expiration de l'authentification à 2 minutes, n'autorisez pas les connexions root et limitez au minimum la liste des utilisateurs autorisés à se connecter via ssh :


LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. Si possible, utilisez l'authentification par clé plutôt que par mot de passe :


PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

Cela suppose que vous avez déjà créé une paire de clés avec votre nom d'utilisateur sur votre ordinateur client et que vous l'avez copiée sur votre serveur comme expliqué ici.

  1. Activer la connexion sans mot de passe SSH

Configuration du réseau et de la résolution de noms

1. Chaque administrateur système doit bien connaître les fichiers de configuration système suivants :

  1. /etc/hosts est utilisé pour résoudre les noms <---> IP dans les petits réseaux.

Chaque ligne du fichier /etc/hosts a la structure suivante :


IP address - Hostname - FQDN

Par exemple,


192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. /etc/resolv.conf spécifie les adresses IP des serveurs DNS et le domaine de recherche, qui est utilisé pour compléter un nom de requête donné en un nom de domaine complet lorsque aucun suffixe de domaine n'est fourni.

Dans des circonstances normales, vous n'avez pas besoin de modifier ce fichier car il est géré par le système. Cependant, si vous souhaitez changer de serveur DNS, sachez que vous devez respecter la structure suivante dans chaque ligne :


nameserver - IP address

Par exemple,


nameserver 8.8.8.8

3. 3. /etc/host.conf spécifie les méthodes et l'ordre par lequel les noms d'hôtes sont résolus au sein d'un réseau. En d’autres termes, indique au résolveur de noms quels services utiliser et dans quel ordre.

Bien que ce fichier comporte plusieurs options, la configuration la plus courante et la plus basique comprend une ligne comme suit :


order bind,hosts

Ce qui indique que le résolveur doit d'abord rechercher dans les serveurs de noms spécifiés dans resolv.conf puis dans le fichier /etc/hosts pour la résolution de nom.

4. /etc/sysconfig/network contient des informations de routage et d'hôte global pour toutes les interfaces réseau. Les valeurs suivantes peuvent être utilisées :


NETWORKING=yes|no
HOSTNAME=value

Où la valeur doit être le nom de domaine complet (FQDN).


GATEWAY=XXX.XXX.XXX.XXX

XXX.XXX.XXX.XXX est l'adresse IP de la passerelle du réseau.


GATEWAYDEV=value

Dans une machine dotée de plusieurs cartes réseau, value est le périphérique de passerelle, tel que enp0s3.

5. Fichiers à l'intérieur de /etc/sysconfig/network-scripts (fichiers de configuration des adaptateurs réseau).

Dans le répertoire mentionné précédemment, vous trouverez plusieurs fichiers texte brut nommés.


ifcfg-name

Où nom est le nom de la carte réseau tel que renvoyé par ip link show :

Par exemple:

Outre l'interface loopback, vous pouvez vous attendre à une configuration similaire pour vos cartes réseau. Notez que certaines variables, si elles sont définies, remplaceront celles présentes dans /etc/sysconfig/network pour cette interface particulière. Chaque ligne est commentée pour clarification dans cet article mais dans le fichier lui-même, vous devez éviter les commentaires :


HWADDR=08:00:27:4E:59:37 # The MAC address of the NIC
TYPE=Ethernet # Type of connection
BOOTPROTO=static # This indicates that this NIC has been assigned a static IP. If this variable was set to dhcp, the NIC will be assigned an IP address by a DHCP server and thus the next two lines should not be present in that case.
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no # Should be added to the Ethernet interface to prevent NetworkManager from changing the file.
NAME=enp0s3
UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb
ONBOOT=yes # The operating system should bring up this NIC during boot

Définition des noms d'hôtes

Dans Red Hat Enterprise Linux 7, la commande hostnamectl est utilisée à la fois pour interroger et définir le nom d'hôte du système.

Pour afficher le nom d'hôte actuel, tapez :


hostnamectl status

Pour changer le nom d'hôte, utilisez


hostnamectl set-hostname [new hostname]

Par exemple,


hostnamectl set-hostname cinderella

Pour que les modifications prennent effet, vous devrez redémarrer le démon hostnamed (de cette façon, vous n'aurez pas à vous déconnecter puis à vous reconnecter pour appliquer la modification) :


systemctl restart systemd-hostnamed

De plus, RHEL 7 inclut également l'utilitaire nmcli qui peut être utilisé dans le même but. Pour afficher le nom d'hôte, exécutez :


nmcli general hostname

et pour le changer :


nmcli general hostname [new hostname]

Par exemple,


nmcli general hostname rhel7

Démarrage des services réseau au démarrage

Pour conclure, voyons comment nous pouvons garantir que les services réseau démarrent automatiquement au démarrage. En termes simples, cela se fait en créant des liens symboliques vers certains fichiers spécifiés dans la section [Install] des fichiers de configuration du service.

Dans le cas de firewalld (/usr/lib/systemd/system/firewalld.service) :


[Install]
WantedBy=basic.target
Alias=dbus-org.fedoraproject.FirewallD1.service

Pour activer le service :


systemctl enable firewalld

En revanche, désactiver firewalld autorise la suppression des liens symboliques :


systemctl disable firewalld

Conclusion

Dans cet article nous avons résumé comment installer et sécuriser les connexions via SSH à un serveur RHEL, comment changer son nom, et enfin comment s'assurer que les services réseau sont démarrés sur botte. Si vous remarquez qu'un certain service n'a pas démarré correctement, vous pouvez utiliser systemctl status -l [service] et journalctl -xn pour le dépanner.

N'hésitez pas à nous faire savoir ce que vous pensez de cet article en utilisant le formulaire de commentaires ci-dessous. Les questions sont également les bienvenues. Nous avons hâte d'avoir de tes nouvelles!