openssh

Installation est configuration d’un serveur SSH sous CentOS 8 Stream

SSH ( Secure Shell) est un protocol qui permet de se connecter à distance à une machine de façon sécurisé contrairement à Telnet.

OpenSSH (OpenBSD Secure SHell) est un ensemble de programes permettant une communication sécurisée en utilisant le protocole SSH, c’est le package que nous installons installer.

Dans cette article nous allons voir comment installer un serveur ssh sur CentOS 8 stream et configurer quelques paramètres utils.

openssh

Installation du serveur SSH (openssh server) :

Par défaut openssh-server est installé sur CentOS 8, mais si pour une raison ou autre ce package n’est pas installé, utiliser la commande ci-dessous :

[root@openssh ~]# dnf install openssh-server
Last metadata expiration check: 0:13:31 ago on Sat 26 Feb 2022 07:05:06 AM EST.
Package openssh-server-8.0p1-12.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

[root@openssh ~]# rpm -qa | grep openssh-server
openssh-server-8.0p1-12.el8.x86_64

Dans mon cas le package est déja installé.

Service sshd :

Démarrer le service sshd et met le en enabled :

[root@openssh ~]# systemctl start sshd
[root@openssh ~]# systemctl enabled sshd
[root@openssh ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2022-02-26 06:07:32 EST; 1h 14min ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 977 (sshd)
    Tasks: 1 (limit: 7719)
   Memory: 6.5M
   CGroup: /system.slice/sshd.service
           └─977 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc -oMACs=hmac-sha2-256-etm@openssh.com,hmac-sh>

Feb 26 06:07:31 template systemd[1]: Starting OpenSSH server daemon...
Feb 26 06:07:32 template sshd[977]: Server listening on 0.0.0.0 port 22.
Feb 26 06:07:32 template sshd[977]: Server listening on :: port 22.
Feb 26 06:07:32 template systemd[1]: Started OpenSSH server daemon.
Feb 26 06:11:33 openssh sshd[1664]: Accepted password for root from 192.168.139.1 port 50313 ssh2
Feb 26 06:11:33 openssh sshd[1664]: pam_unix(sshd:session): session opened for user root by (uid=0)
Feb 26 06:11:52 openssh sshd[1668]: Accepted password for root from 192.168.139.1 port 50320 ssh2
Feb 26 06:11:52 openssh sshd[1668]: pam_unix(sshd:session): session opened for user root by (uid=0)
lines 1-19/19 (END)

Configuration du serveur OpenSSH :

Après avoir installé openssh-server vil est recommender de le configurer proprement pour mieux le sécuriser. Nous allons voir ci-dessous quelque paramétre importante à modifier.

Le fichier de configuration de OpenSSH serveur est /etc/ssh/sshd_config, à ne pas le confondre avec /etc/ssh/ssh_config qui est celui de OpenSSH client :

[root@openssh ~]# ll /etc/ssh/ssh*_config
-rw-r--r--. 1 root root 1770 Oct 26 09:10 /etc/ssh/ssh_config
-rw-------. 1 root root 4269 Oct 26 09:10 /etc/ssh/sshd_config

Désactiver la connexion ssh avec root :

Par défaut la connexion au serveur via le compte est autorisé, il est recommandé de le désactiver :

Port ssh :

Le port par défaut de ssh est 22, il est recommandé de le changer ( 2221 par exemple )

Autoriser/interdire les utilisateurs

Il est possible d’autoriser les utilisateurs ayant le droit de se connecter au serveur en ajoutant la directive « Allowuser » :

Oui bien les interdire avec la directive DenyUsers :

Autoriser/interdire les groupes :

La directive Match :

Cette directive nous permet de personnaliser certaines options pour certains groupes, utilisateurs ou adresse.

Vous pouvez par exemple autoriser l’acces au serveur ssh avec root pour une adresse réseau spécifique :