Mettez à niveau le système d'exploitation Linux d'une version inférieure d'OpenSSH vers une version supérieure de 9.3

Il existe diverses failles de sécurité dans les versions antérieures à OpenSSH 9.3. Pour cette raison, nous devons mettre à niveau OpenSSH vers la dernière version 9.3.

Exécuter : ssh -V, nous pouvons voir la version actuelle d'openssh

 Afin d'éviter des accidents pendant le processus de mise à niveau qui pourraient empêcher le serveur de fonctionner correctement, il est recommandé d'effectuer une sauvegarde instantanée du serveur avant l'utilisation ! ! !

1. Sauvegardez le fichier sshd sous le pam.d d'origine

mv /etc/pam.d/sshd /etc/pam.d/sshd-bak
ls -l /etc/pam.d/sshd*

cp /etc/ssh/ /etc/ssh-bak/

Lors de la sauvegarde du fichier sshd sous pam.d, si vous constatez qu'il n'y a pas de fichier de ce type dans le chemin, vous pouvez le copier depuis un autre serveur, ou exécuter : vi /etc/pam.d/sshd. Vous pouvez également le saisir à la main. Le contenu est le suivant :

#%PAM-1.0
auth       substack     password-auth
auth       include      postlogin
account    required     pam_sepermit.so
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    optional     pam_motd.so
session    include      password-auth
session    include      postlogin

2. Installez Telnet

Le processus de mise à niveau désinstallera l'ancien ssh et empêchera l'accès à distance, installez donc d'abord un Telnet. Si vous n'utilisez pas le serveur lors de l'installation, vous pouvez ignorer l'installation telnet (après tout, il existe une sauvegarde instantanée du serveur)

Vérifiez si le serveur telnet et le client ont été installés sur le système. Les commandes sont les suivantes :

rpm -q telnet-server
rpm -q telnet

Lorsque telnet n'est pas installé sur le système, le message suivant sera signalé :

Exécutez la commande pour installer telnet

yum install telnet-server  -y
yum install telnet -y

Configurer le démarrage et démarrer Telnet

systemctl enable telnet.socket
systemctl start telnet.socket

Ouvrez le port 23 sur le pare-feu et utilisez l'adresse IP telnet pour vous connecter et vous connecter. Par défaut, l'utilisateur root n'est pas autorisé à se connecter via telnet, nous devons donc l'autoriser.

echo 'pts/0' >>/etc/securetty
echo 'pts/1' >>/etc/securetty

Lorsque nous ne pouvons pas nous connecter normalement lors de la connexion, le côté hôte exécute

tail /var/log/secure

Si ce que nous voyons est : accès refusé : le tty 'pts/3' n'est pas sécurisé !

À ce stade, si nous voyons le nombre de pts, ajoutez le nombre

echo 'pts/3' >>/etc/securetty

Assurez-vous de redémarrer Telnet après avoir ajouté

3. Téléchargez le package openssh pour mettre à niveau

cd /opt/
wget http://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz

Décompresser

tar -zxvf openssh-9.3p1.tar.gz
cd openssh-9.3p1

Désinstaller l'ancienne version

rpm -e --nodeps `rpm -qa | grep openssh`

Installer les dépendances associées

yum -y install gcc pam-devel zlib-devel openssl-devel

Compiler la configuration

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords --with-pam

Compiler et installer

make && make install

 Autorisation de fichier

chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key

Copier le fichier de configuration

cp -a contrib/redhat/sshd.init /etc/init.d/sshd
chmod u+x /etc/init.d/sshd

Restaurer le fichier de configuration

cp /etc/pam.d/sshd-bak /etc/pam.d/sshd
cp /etc/ssh-bak/sshd_config /etc/ssh/sshd_config

Ajouter le démarrage automatique au démarrage

chkconfig --add sshd
chkconfig sshd on

 Exécutez : sshd -t pour vérifier si le fichier de configuration est correct

 À ce stade, nous avons vu que ces deux attributs ne sont pas pris en charge dans la version actuelle d'Opensh. Nous entrons dans le fichier de configuration et commentons ces deux attributs.

vi /etc/ssh/sshd_config

Redémarrer sshd

systemctl restart sshd

 Exécuter : ssh -V À ce stade, nous pouvons déjà voir que openssh a été mis à niveau vers 9.3

 4. Pièges rencontrés lors du processus de mise à niveau

4.1 Après la mise à niveau, l'outil ssh n'a pas pu se connecter correctement (ou il s'est connecté, mais la boîte noire n'a pas pu être ouverte). Après avoir recherché de nombreuses informations, j'ai finalement découvert que le problème venait de selinux. À ce stade, il suffit d'exécuter : setenforce 0 puis de redémarrer le service openssh.

setenforce 0
systemctl restart sshd

À ce stade, nous constaterons que l'outil ssh peut se connecter avec succès au serveur

4.2 Après la mise à niveau de l'outil ssh, la fenêtre sftp ne peut pas être ouverte. Ceci est facile à résoudre. Il vous suffit de configurer sshd_config pour le résoudre facilement.

vi /etc/ssh/sshd_config

Commentez la ligne du sous-système et ajoutez une autre ligne

 Redémarrez le service openssh. Notez que l'outil ssh utilisé est également fermé et redémarré (cela peut être dû à l'état de la connexion, mais sftp ne peut pas être ouvert. Cependant, ce problème a été résolu jusqu'à présent, il doit donc également être fermé et rouvert).

Supongo que te gusta

Origin blog.csdn.net/Dai_Haijiao/article/details/131764681
Recomendado
Clasificación