Série RHCSA : Sécurisation 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 terminal réel (physique), vous devez donc mettre en place un moyen de vous connecter à distance aux machines que vous devrez gérer.

En fait, c’est peut-être la dernière chose que vous aurez à faire devant un terminal physique. Pour des raisons de sécurité, l’utilisation de Telnet à cette fin n’est pas une bonne idée, car tout le trafic passe par le fil en texte non chiffré.

De plus, dans cet article, nous verrons également comment configurer les services réseau pour démarrer automatiquement au démarrage et apprendre à configurer la résolution de nom d’hôte et de réseau de manière statique ou dynamique.

RHCSA: Secure SSH and Enable Network Services – Part 8

Installation et sécurisation de la communication SSH

Pour vous connecter à distance à une boîte RHEL 7 en utilisant SSH, vous devrez installer les paquets openssh, openssh-clients et openssh-servers. La commande suivante n’installera pas seulement le programme de connexion à distance, mais aussi 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

Remarquez qu’il est bon d’installer les contreparties serveur car vous voudrez peut-être utiliser la même machine à la fois comme client et serveur à un moment donné.

Après l’installation, il y a quelques éléments de base à prendre en compte si vous souhaitez sécuriser l’accès distant à votre serveur SSH. Les paramètres suivants devraient être présents dans le fichier /etc/ssh/sshd_config.

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

Par exemple, supposons que vous choisissiez le port 2500. Utilisez netstat pour 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 devriez modifier le paramètre Port dans le fichier de configuration comme suit :

Port 2500

2. Autoriser uniquement le protocole 2 :

Protocol 2

3. Configurer le délai d’authentification à 2 minutes, ne pas autoriser les connexions root, et limiter au minimum la liste des utilisateurs autorisés à se connecter via ssh :

LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. Si possible, utiliser l’authentification par clé au lieu de l’authentification 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 machine cliente et l’avez copiée sur votre serveur comme expliqué ici.

  1. Activer la connexion SSH sans mot de passe

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

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

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

Chaque ligne dans le 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 entièrement qualifié 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 modifier les serveurs 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 lesquels les noms d’hôtes sont résolus au sein d’un réseau. En d’autres termes, il 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 inclut une ligne comme suit:

order bind,hosts

Qui indique que le résolveur doit d’abord regarder les serveurs de noms spécifiés dans resolv.conf puis dans le fichier /etc/hosts pour la résolution des noms.

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 devrait être le nom de domaine entièrement qualifié (FQDN).

GATEWAY=XXX.XXX.XXX.XXX

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

GATEWAYDEV=value

Sur une machine avec plusieurs NIC, valeur est le périphérique passerelle, tel que enp0s3.

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

À l’intérieur du répertoire mentionné précédemment, vous trouverez plusieurs fichiers texte nommés.

ifcfg-name

Où le nom est le nom du NIC tel que retourné par ip link show:

Check Network Link Status

Par exemple:

Network Files

Autre que pour l’interface loopback, vous pouvez vous attendre à une configuration similaire pour vos NIC. Notez que certaines variables, si 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 réel, vous devriez é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
Check System Hostname

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 manière, vous n’aurez pas à vous déconnecter et vous reconnecter pour appliquer le changement):

# systemctl restart systemd-hostnamed
Set System Hostname

De plus, RHEL 7 inclut également l’utilitaire nmcli qui peut être utilisé à des fins similaires. 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
Set Hostname Using nmcli Command

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

Pour conclure, voyons comment nous pouvons nous assurer que les services réseau sont démarrés 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 implique de supprimer les liens symboliques :

# systemctl disable firewalld
Enable Service at System Boot

Conclusion

Dans cet article, nous avons résumé comment installer et sécuriser les connexions via SSH vers un serveur RHEL, comment changer son nom, et enfin comment s’assurer que les services réseau sont démarrés au démarrage. Si vous constatez 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 part de vos commentaires sur cet article en utilisant le formulaire de commentaire ci-dessous. Les questions sont également les bienvenues. Nous avons hâte de vous entendre !

Source:
https://www.tecmint.com/rhcsa-series-secure-ssh-set-hostname-enable-network-services-in-rhel-7/