Mudanças entre as edições de "Autenticação SSH por Chave Pública no Huawei"

De Wiki BPF
Ir para navegação Ir para pesquisar
 
(10 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
Orientações para a sua chave SSH RSA:
+
== Introdução ==
 +
A autenticação baseada apenas em usuário e senha ainda é amplamente utilizada, porém está mais '''suscetível a ataques''' como força bruta, vazamento e reutilização de credenciais. Para aumentar a segurança do acesso aos equipamentos da infraestrutura, recomenda-se utilizar a autenticação por chaves SSH, que oferece um mecanismo mais robusto e confiável para identificação dos administradores.
 +
 
 +
<u>''Orientações importantes para a sua '''chave SSH RSA''''':</u>
 
# Utilize chaves RSA com tamanho adequado;
 
# Utilize chaves RSA com tamanho adequado;
# Proteja a chave privada com uma senha (passphrase);
+
# '''Proteja''' a chave privada com uma '''senha''';
# Nunca compartilhe a chave privada;
+
# '''Nunca compartilhe''' a chave privada;
# Revogue imediatamente chaves comprometidas;
+
# '''Revogue''' imediatamente chaves '''comprometidas''';
 
# Restrinja algoritmos e métodos de autenticação.
 
# Restrinja algoritmos e métodos de autenticação.
0 - Se não tiver uma '''chave ssh''', crie uma com o comando abaixo em um '''servidor Linux''' (você pode usar uma já existente ou criar de outra maneira).<blockquote>
 
cd ~/.ssh
 
 
ssh-keygen -t rsa -b 4096 -f <nome-da-chave> -C "<comentario>"
 
</blockquote>Visualize sua chave pública<blockquote>
 
# cat <nome-da-chave>.pub
 
</blockquote>1 - Configure os métodos e chaves (aumento de compatibilidade).<blockquote>
 
# ssh server cipher aes128_gcm aes256_gcm aes128_ctr aes256_ctr
 
<nowiki>#</nowiki> ssh server hmac sha2_256 sha2_512
 
<nowiki>#</nowiki> ssh server publickey rsa rsa_sha2_256 rsa_sha2_512 ecc
 
<nowiki>#</nowiki> ssh server key-exchange curve25519_sha256 ecdh_sha2_nistp256 dh_group16_sha512
 
<nowiki>#</nowiki> ssh server dh-exchange min-len 2048
 
<nowiki>#</nowiki> ssh server rsa-key min-length 2048
 
 
<nowiki>#</nowiki> ssh client publickey
 
<nowiki>#</nowiki> ssh client cipher
 
<nowiki>#</nowiki> ssh client hmac
 
<nowiki>#</nowiki> ssh client key-exchange
 
</blockquote>2 - Crie e importe a chave pública
 
 
No comando '''public-key-code begin''' pressione enter e cole a sua chave pública, incluindo o ssh-rsa e o comentário final, do mesmo jeito quando você visualizou com o comando '''cat''' no passo 0.<blockquote>
 
# rsa peer-public-key <nome-da-chave> encoding-type openssh
 
 
# public-key-code begin
 
  
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCiOKoFlZrpLMVGb6tz0sQ+BP+mSJzm9PAhrqBz3KrAAZnsdSQB05QMXtmQstpTaOLf80/ZVpm5Zhi0EsfY7gDcZPCElJU0GD+SZaBB3fTAxkHqogxN0a4bBxd2J+e+yiIrh/QSpCBVwNBlnYFtkHbyz3TRsemMwPqJMB+qrC9PoYTxaURU4ZXP8KIDdwWJvBlU3tqq4l+wJVIkHNOGAwqztIYKlR50YDKD8x74bzexZL4YXkY7KOl/UWf2iR0S6LKm/ucq6G9qlN/9FmrWTUgYSUtbURec25kyHkNAebEhGEAYGLc6X3t5EKkVsVeueMEL6iRMpWCPiFMzU0yryJgdk5QXvFN3sRzXxU/fcshJey6lsDA+wNVp+RMsTVGfbAnasM/Oo/W5gz9dthnIQIQ4AKZks6At/OTvD0B/bZW0GA2fpQw4wNHEvBeyC5yGQay+uRpuwgojsO8W0YDc62MHXxPp75yu8ZUPjobbqtWWBHsL0hISVulMTZkkAffJfxJkxx2nXBbAyKbIPLwcOnogVbvZ1VD4tA6epoNzVBXObTNKCKDpvCIFELikjNGutFzHQ11R3qXgo5fnEhFRML2l77siZponJ0v7lsV1Nia9Izc91YxtOaRIp2I1+lhe+FQf65bvpjHytBZJWE2+/ju4AIGKDK8PLnvDd3miP+8v4Q== erickchave
+
== Configurando ==
 +
0 - Crie sua '''chave SSH''' pública e privada.
  
# public-key-code end
+
Se você ainda não possui um par de '''chaves SSH''', gere um utilizando o comando abaixo em um '''servidor Linux''' ou pelo método de sua preferência. Caso já possua uma '''chave SSH''' compatível, basta reutilizá-la para este procedimento.
 +
cd ~/.ssh
 +
ssh-keygen -t rsa -b 4096 -f '''<nome-da-chave>''' -C "'''<comentario>'''"
 +
Visualize sua chave pública.
 +
cat '''<nome-da-chave>'''.pub
 +
1 - Configure os métodos e chaves (aumento de compatibilidade).
  
# peer-public-key end
+
'''Servidor'''
</blockquote>3 - Defina o tipo da autenticação do usuário como '''rsa'''.<blockquote>
+
ssh server cipher aes128_gcm aes256_gcm aes128_ctr aes256_ctr
# ssh user <usuario>
+
ssh server hmac sha2_256 sha2_512
 +
ssh server publickey rsa rsa_sha2_256 rsa_sha2_512 ecc
 +
ssh server key-exchange curve25519_sha256 ecdh_sha2_nistp256 dh_group16_sha512
 +
ssh server dh-exchange min-len 2048
 +
ssh server rsa-key min-length 2048
 +
commit
 +
'''Cliente'''
 +
ssh client publickey
 +
ssh client cipher
 +
ssh client hmac
 +
ssh client key-exchange
 +
commit
 +
2 - Importe a sua chave pública.
 +
# Cada bloco é referente a um trecho de configuração sequencial que deve ser respeitado;
 +
# No comando '''public-key-code begin''' pressione enter e cole a sua chave pública, incluindo o ssh-rsa e o comentário final, do mesmo jeito quando você visualizou com o comando '''cat''' no passo 0;
 +
# A chave pública utilizada foi gerada apenas para o tutorial :)
 +
rsa peer-public-key '''<nome-da-chave>''' encoding-type openssh
 +
public-key-code begin
  
# ssh user <usuario> authentication-type rsa
+
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCiOKoFlZrpLMVGb6tz0sQ+BP+mSJzm9PAhrqBz3KrAAZnsdSQB05QMXtmQstpTaOLf80/ZVpm5Zhi0EsfY7gDcZPCElJU0GD+SZaBB3fTAxkHqogxN0a4bBxd2J+e+yiIrh/QSpCBVwNBlnYFtkHbyz3TRsemMwPqJMB+qrC9PoYTxaURU4ZXP8KIDdwWJvBlU3tqq4l+wJVIkHNOGAwqztIYKlR50YDKD8x74bzexZL4YXkY7KOl/UWf2iR0S6LKm/ucq6G9qlN/9FmrWTUgYSUtbURec25kyHkNAebEhGEAYGLc6X3t5EKkVsVeueMEL6iRMpWCPiFMzU0yryJgdk5QXvFN3sRzXxU/fcshJey6lsDA+wNVp+RMsTVGfbAnasM/Oo/W5gz9dthnIQIQ4AKZks6At/OTvD0B/bZW0GA2fpQw4wNHEvBeyC5yGQay+uRpuwgojsO8W0YDc62MHXxPp75yu8ZUPjobbqtWWBHsL0hISVulMTZkkAffJfxJkxx2nXBbAyKbIPLwcOnogVbvZ1VD4tA6epoNzVBXObTNKCKDpvCIFELikjNGutFzHQ11R3qXgo5fnEhFRML2l77siZponJ0v7lsV1Nia9Izc91YxtOaRIp2I1+lhe+FQf65bvpjHytBZJWE2+/ju4AIGKDK8PLnvDd3miP+8v4Q== erickchave
  
# ssh user <usuario> assign rsa-key <nome-da-chave>
+
public-key-code end
 +
peer-public-key end
 +
commit
 +
3 - Defina o tipo da autenticação do usuário como '''rsa'''.
  
# ssh user <usuario> service-type all
+
Preste bem atenção porque depois desse '''commit''' você não conseguirá mais realizar o acesso usando usuário e senha, se você estiver inseguro, use o comando '''commit trial 60''', que manterá sua última alteração por 60 segundos. Então caso algo dê errado você terá acesso ao equipamento novamente em 1 minuto, mas se tudo der certo você faz o '''commit''' permanente. Durante o tempo do '''commit trial 60''', você terá 1 minuto para realizar o teste de acesso via ssh usando o novo método configurado.
</blockquote>4 - Troubleshooting<blockquote>
 
# display ssh user-information <usuario>
 
  
# display rsa peer-public-key brief
+
O '''commit trial''' lembra muito a função '''Safe Mode''' do '''Mikrotik''', no caso do '''Huawei''' independente se você permanece com acesso ou não ao equipamento, as configurações são revertidas.
 +
ssh user '''<usuario>'''
 +
ssh user '''<usuario>''' authentication-type rsa
 +
ssh user '''<usuario>''' assign rsa-key '''<nome-da-chave>'''
 +
ssh user '''<usuario>''' service-type all
 +
commit
 +
4 - Troubleshooting
 +
# Se houver a necessidade de realizar um troubleshooting para analisar as configurações, use os comandos abaixo.
 +
# É importante ressaltar que programas de gerenciamento de acesso '''SSH''' ('''Putty''', '''MobaXterm''' etc) precisam estar atualizados, caso contrário bugs e incompatibilidades podem surgir.
 +
# Dependendo da versão do '''VRP''' utilizada, alguns comandos e suas sintaxes podem variar. Consulte a documentação correspondente à versão do seu equipamento antes de aplicar as configurações.
 +
# Lembre-se de configurar a chave privada em seu programa de gerenciamento de acesso SSH, no caso do '''Putty''' gere uma nova chave no formato que ele aceita ('''.ppk''').
 +
'''Roteador'''
 +
display ssh user-information '''<usuario>'''
 +
display rsa peer-public-key brief
 +
display rsa peer-public-key name '''<nome-da-chave>'''
 +
'''Linux'''
 +
ssh -i ~/.ssh/'''<nome-da-chave>''' -p '''<porta-ssh>''' '''<usuario>'''@'''<ip-do-equipamento>'''
  
# display rsa peer-public-key name <nome-da-chave>
+
'''Autor''': [[Usuário:Erickandrade|Erick Andrade]]
</blockquote>
+
[[Categoria:Segurança]]
 +
[[Categoria:Huawei]]
 +
[[Categoria:Infraestrutura]]
 +
[[Categoria:Boas Práticas]]

Edição atual tal como às 00h13min de 1 de agosto de 2026

Introdução

A autenticação baseada apenas em usuário e senha ainda é amplamente utilizada, porém está mais suscetível a ataques como força bruta, vazamento e reutilização de credenciais. Para aumentar a segurança do acesso aos equipamentos da infraestrutura, recomenda-se utilizar a autenticação por chaves SSH, que oferece um mecanismo mais robusto e confiável para identificação dos administradores.

Orientações importantes para a sua chave SSH RSA:

  1. Utilize chaves RSA com tamanho adequado;
  2. Proteja a chave privada com uma senha;
  3. Nunca compartilhe a chave privada;
  4. Revogue imediatamente chaves comprometidas;
  5. Restrinja algoritmos e métodos de autenticação.

Configurando

0 - Crie sua chave SSH pública e privada.

Se você ainda não possui um par de chaves SSH, gere um utilizando o comando abaixo em um servidor Linux ou pelo método de sua preferência. Caso já possua uma chave SSH compatível, basta reutilizá-la para este procedimento.

cd ~/.ssh
ssh-keygen -t rsa -b 4096 -f <nome-da-chave> -C "<comentario>"

Visualize sua chave pública.

cat <nome-da-chave>.pub

1 - Configure os métodos e chaves (aumento de compatibilidade).

Servidor

ssh server cipher aes128_gcm aes256_gcm aes128_ctr aes256_ctr
ssh server hmac sha2_256 sha2_512
ssh server publickey rsa rsa_sha2_256 rsa_sha2_512 ecc
ssh server key-exchange curve25519_sha256 ecdh_sha2_nistp256 dh_group16_sha512
ssh server dh-exchange min-len 2048
ssh server rsa-key min-length 2048
commit

Cliente

ssh client publickey
ssh client cipher
ssh client hmac
ssh client key-exchange
commit

2 - Importe a sua chave pública.

  1. Cada bloco é referente a um trecho de configuração sequencial que deve ser respeitado;
  2. No comando public-key-code begin pressione enter e cole a sua chave pública, incluindo o ssh-rsa e o comentário final, do mesmo jeito quando você visualizou com o comando cat no passo 0;
  3. A chave pública utilizada foi gerada apenas para o tutorial :)
rsa peer-public-key <nome-da-chave> encoding-type openssh
public-key-code begin
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCiOKoFlZrpLMVGb6tz0sQ+BP+mSJzm9PAhrqBz3KrAAZnsdSQB05QMXtmQstpTaOLf80/ZVpm5Zhi0EsfY7gDcZPCElJU0GD+SZaBB3fTAxkHqogxN0a4bBxd2J+e+yiIrh/QSpCBVwNBlnYFtkHbyz3TRsemMwPqJMB+qrC9PoYTxaURU4ZXP8KIDdwWJvBlU3tqq4l+wJVIkHNOGAwqztIYKlR50YDKD8x74bzexZL4YXkY7KOl/UWf2iR0S6LKm/ucq6G9qlN/9FmrWTUgYSUtbURec25kyHkNAebEhGEAYGLc6X3t5EKkVsVeueMEL6iRMpWCPiFMzU0yryJgdk5QXvFN3sRzXxU/fcshJey6lsDA+wNVp+RMsTVGfbAnasM/Oo/W5gz9dthnIQIQ4AKZks6At/OTvD0B/bZW0GA2fpQw4wNHEvBeyC5yGQay+uRpuwgojsO8W0YDc62MHXxPp75yu8ZUPjobbqtWWBHsL0hISVulMTZkkAffJfxJkxx2nXBbAyKbIPLwcOnogVbvZ1VD4tA6epoNzVBXObTNKCKDpvCIFELikjNGutFzHQ11R3qXgo5fnEhFRML2l77siZponJ0v7lsV1Nia9Izc91YxtOaRIp2I1+lhe+FQf65bvpjHytBZJWE2+/ju4AIGKDK8PLnvDd3miP+8v4Q== erickchave
public-key-code end
peer-public-key end
commit

3 - Defina o tipo da autenticação do usuário como rsa.

Preste bem atenção porque depois desse commit você não conseguirá mais realizar o acesso usando usuário e senha, se você estiver inseguro, use o comando commit trial 60, que manterá sua última alteração por 60 segundos. Então caso algo dê errado você terá acesso ao equipamento novamente em 1 minuto, mas se tudo der certo você faz o commit permanente. Durante o tempo do commit trial 60, você terá 1 minuto para realizar o teste de acesso via ssh usando o novo método configurado.

O commit trial lembra muito a função Safe Mode do Mikrotik, no caso do Huawei independente se você permanece com acesso ou não ao equipamento, as configurações são revertidas.

ssh user <usuario>
ssh user <usuario> authentication-type rsa
ssh user <usuario> assign rsa-key <nome-da-chave>
ssh user <usuario> service-type all
commit

4 - Troubleshooting

  1. Se houver a necessidade de realizar um troubleshooting para analisar as configurações, use os comandos abaixo.
  2. É importante ressaltar que programas de gerenciamento de acesso SSH (Putty, MobaXterm etc) precisam estar atualizados, caso contrário bugs e incompatibilidades podem surgir.
  3. Dependendo da versão do VRP utilizada, alguns comandos e suas sintaxes podem variar. Consulte a documentação correspondente à versão do seu equipamento antes de aplicar as configurações.
  4. Lembre-se de configurar a chave privada em seu programa de gerenciamento de acesso SSH, no caso do Putty gere uma nova chave no formato que ele aceita (.ppk).

Roteador

display ssh user-information <usuario>
display rsa peer-public-key brief
display rsa peer-public-key name <nome-da-chave>

Linux

ssh -i ~/.ssh/<nome-da-chave> -p <porta-ssh> <usuario>@<ip-do-equipamento>

Autor: Erick Andrade