Atualize o sistema operacional Linux de uma versão inferior do OpenSSH para uma versão superior do 9.3

Existem várias vulnerabilidades de segurança em versões anteriores ao OpenSSH 9.3. Por esse motivo, precisamos atualizar o OpenSSH para a versão 9.3 mais recente.

Execute: ssh -V, podemos ver a versão atual do openssh

 Para evitar acidentes durante o processo de atualização que possam fazer com que o servidor não funcione corretamente, é recomendável realizar um backup instantâneo do servidor antes da operação! ! !

1. Faça backup do arquivo sshd no pam.d original

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

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

Ao fazer backup do arquivo sshd em pam.d, se você descobrir que esse arquivo não existe no caminho, você pode copiá-lo de outro servidor ou executar: vi /etc/pam.d/sshd. Você também pode digitá-lo à mão. O conteúdo é o seguinte:

#%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. Instale o telnet

O processo de atualização desinstalará o ssh antigo e impedirá o acesso remoto, portanto instale primeiro um Telnet. Se você não usar o servidor durante a instalação, poderá ignorar a instalação do telnet (afinal, há um backup instantâneo do servidor)

Verifique se o servidor e cliente telnet foram instalados no sistema. Os comandos são os seguintes:

rpm -q telnet-server
rpm -q telnet

Quando o telnet não estiver instalado no sistema, a seguinte mensagem será reportada:

Execute o comando para instalar o telnet

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

Configure a inicialização e inicie o telnet

systemctl enable telnet.socket
systemctl start telnet.socket

Abra a porta 23 no firewall e use o telnet ip para conectar e fazer login. Por padrão, o usuário root não tem permissão para fazer login usando telnet, então precisamos autorizá-lo.

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

Quando não podemos fazer login normalmente ao fazer login, o lado do host executa

tail /var/log/secure

Se o que vemos é: acesso negado: tty 'pts/3' não é seguro!

Neste ponto, se virmos o número de pontos, adicione o número

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

Certifique-se de reiniciar o telnet após adicionar

3. Baixe o pacote openssh para atualizar

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

Descompactar

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

Desinstalar versão antiga

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

Instale dependências relacionadas

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

Configuração de compilação

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

Compilar e instalar

make && make install

 Autorização de arquivo

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

Copiar arquivo de configuração

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

Restaurar arquivo de configuração

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

Adicionar inicialização automática na inicialização

chkconfig --add sshd
chkconfig sshd on

 Execute: sshd -t para verificar se o arquivo de configuração está correto

 Neste ponto, vimos que esses dois atributos não são suportados na versão atual do openssh. Entramos no arquivo de configuração e comentamos esses dois atributos.

vi /etc/ssh/sshd_config

Reinicie o SSD

systemctl restart sshd

 Execute: ssh -V Neste ponto já podemos ver que o openssh foi atualizado para 9.3

 4. Armadilhas encontradas durante o processo de atualização

4.1 Após a atualização, a ferramenta ssh não conseguiu se conectar com sucesso (ou conectou, mas a caixa preta não pôde ser aberta).Depois de pesquisar muitas informações, finalmente descobri que o problema estava no selinux. Neste ponto só precisamos executar: setenforce 0 e então reiniciar o serviço openssh.

setenforce 0
systemctl restart sshd

Neste ponto descobriremos que a ferramenta ssh pode se conectar com sucesso ao servidor

4.2 Após atualizar a ferramenta ssh, a janela sftp não pode ser aberta. Isso é fácil de resolver. Você só precisa configurar sshd_config para resolvê-lo facilmente.

vi /etc/ssh/sshd_config

Comente a linha Subsystem e adicione outra linha

 Reinicie o serviço openssh. Observe que a ferramenta ssh usada também é fechada e reiniciada (pode ser devido ao status da conexão, mas o sftp não pode ser aberto. No entanto, esse problema foi resolvido até agora, então também precisa ser fechado e reaberto).

Acho que você gosta

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