Cada vez mais webmasters estão começando a usar hosts dedicados e VPS. Para economizar custos ou melhorar o desempenho, os computadores autônomos e VPS de muitas pessoas são baseados em bare metal não gerenciado e tudo deve ser feito por você mesmo. Neste momento, a implementação de políticas de segurança ainda é importante. No artigo a seguir, tomarei o CentOS como exemplo para resumir brevemente como configurar o acesso seguro SSH.
Estratégia de segurança SSH do Linux um: fechar portas irrelevantes
A maioria dos hosts comprometidos na rede foram alvo de hackers que usaram ferramentas de varredura para realizar varreduras em grande escala. Portanto, para evitar a varredura, exceto as portas necessárias, como Web, FTP, SSH, etc., todas as outras devem ser fechadas. Vale ressaltar que recomendo fortemente fechar a porta icmp e definir regras para descartar pacotes icmp. Dessa forma, outras pessoas não conseguirão executar ping no seu servidor e a ameaça será naturalmente reduzida pela metade. Para descartar pacotes icmp, adicione a seguinte linha ao iptables:
-A ENTRADA -p icmp -j DROP
Estratégia de segurança SSH do Linux dois: alterar a porta SSH
A porta SSH padrão é 22. É altamente recomendável alterá-lo para mais de 10.000. Desta forma, a probabilidade de outras pessoas verificarem a porta é bastante reduzida. Método de modificação:
# Edite /etc/ssh/ssh_config
vi /etc/ssh/ssh_config
# Em Host *, adicione um novo valor de Porta. Tomemos 18439 como exemplo (o mesmo abaixo):
Porta 22
Porta 18439
# Edite /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
#Adicionar novo valor de porta
Porta 22
Porta 18439
# Após salvar, reinicie o serviço SSH:
serviço sshd reiniciar
Eu configurei duas portas aqui, principalmente para evitar que o SSH não consiga fazer login devido a erros de modificação. Altere a porta de conexão do seu cliente SSH (por exemplo: Putty) e teste a conexão. Se a nova porta puder se conectar com sucesso, edite os dois arquivos acima e exclua a configuração da Porta 22. Se a conexão falhar, conecte-se usando a porta 22 e reconfigure.
Depois que a porta for configurada com sucesso, observe que você também deve excluir a porta 22 do iptables, adicionar o 18439 recém-configurado e reiniciar o iptables.
Se a senha de login SSH for fraca, uma senha complexa deverá ser definida. Há um artigo no Blog do Google que enfatiza a segurança da senha: Sua senha passa no teste?
Estratégia três de segurança SSH do Linux: restringir login de IP
Se você puder se conectar ao seu servidor com um IP fixo, poderá configurar para permitir que apenas um IP específico faça login no servidor. Por exemplo, faço login no servidor por meio de minha própria VPN. As configurações são as seguintes:
# Edite /etc/hosts.allow
vi /etc/hosts.allow
# Por exemplo, apenas 123.45.67.89 tem permissão para fazer login
sshd:123.45.67.89
Estratégia de segurança quatro do Linux SSH: Use certificados para fazer login no SSH
Usar um certificado é mais seguro do que fazer login com uma senha. Escrevi um tutorial detalhado sobre como fazer café com água da torneira e, com sua permissão, reimprimo-o da seguinte forma:
Configure a verificação de login do certificado SSH para CentOS
Ajude o administrador de rede da empresa a detectar remotamente o servidor de e-mail, um CentOS 5.1, e usar OpenSSH para gerenciá-lo remotamente. Ao verificar o log de segurança, descobri que vários IPs adivinharam senhas quase todos os dias nos últimos dias. Parece que precisamos modificar o método de verificação de login e alterá-lo para verificação de certificado.
Por precaução, iniciei um VNC temporariamente para evitar que a configuração fosse concluída e reiniciar o sshd quando estivesse satisfeito causaria problemas. (Mais tarde descobri que era redundante, basta abrir o putty com antecedência e não fechar)
Aqui estão os passos simples:
1) Primeiro adicione uma conta de manutenção: msa
2) Então su - msa
3) ssh-keygen -t rsa
Após especificar o caminho da chave e inserir a senha, as chaves pública e privada são geradas em /home/msa/.ssh/: id_rsa id_rsa.pub
4) cat id_rsa.pub >> chaves_autorizadas
Quanto ao motivo deste arquivo ser gerado, é porque é isso que está escrito em sshd_config.
Então chmod 400authorized_keys para protegê-lo um pouco.
5) Use psftp para puxar id_rsa de volta para o computador local e, em seguida, elimine id_rsa e id_rsa.pub no servidor.
6) Configure /etc/ssh/sshd_config
Protocolo 2
ServerKeyBits 1024
PermitRootLogin não #Apenas proíbe o login root, não tem nada a ver com este artigo, além de ser mais seguro
#Não há nada a mudar nas três linhas a seguir, apenas remova o # comentário padrão.
Autenticação RSAA sim
PubkeyAutenticação sim
AuthorizedKeysFile.ssh/authorized_keys
SenhaAutenticação não
PermitEmptyPasswords não
7) Reinicie o sshd
/sbin/serviço sshd reiniciar
8) Converta o formato do certificado e acomode o putty
Execute puttygen para converter id_rsa no arquivo de certificado ppk do putty
9) Configure o login do putty em conexão--SSH--Auth, clique em Procurar e selecione o certificado que você acabou de converter.
Em seguida, preencha o nome de usuário de login automático em connection-Data, por exemplo, o meu é msa
Preencha o endereço IP do servidor na sessão. Se estiver satisfeito, você pode salvá-lo.
10) Ao resolver um pequeno problema e chegar a esta etapa, você pode ficar feliz em vão. Neste momento, você pode fazer login com entusiasmo, mas pode não conseguir fazer login:
Nenhum método de autenticação compatível disponível
Neste momento, você pode modificar sshd_config e alterar
PasswordAuthentication no foi temporariamente alterado para:
PasswordAuthentication sim e reinicie o sshd
Desta forma, você pode efetuar login com sucesso. Após efetuar logout, altere o valor de PasswordAuthentication para não novamente e reinicie o sshd.
Quando você fizer login no futuro, será solicitada a senha do arquivo de chave normalmente. Se você responder corretamente, poderá fazer login com segurança.
Quanto ao comando psftp, basta adicionar o parâmetro -i e especificar o caminho do arquivo do certificado.
Se você estiver operando o servidor remotamente para modificar a configuração acima, lembre-se de ser cauteloso em todas as etapas e evitar cometer erros. Se a configuração estiver errada e a conexão SSH não puder ser conectada, será uma falha.
Basicamente, após configurar de acordo com os quatro pontos acima, o acesso SSH no Linux é relativamente seguro. É claro que a segurança e a insegurança são relativas. Você deve verificar o log do servidor regularmente para descobrir e eliminar perigos ocultos em tempo hábil.
Fonte do artigo: http://www.xiaohui.com/dev/server/linux-centos-ssh-security.htm