Editado 5 dias atrás por ExtremeHow Equipe Editorial
DebianSSHRedesSegurançaAcesso RemotoLinuxServidorCódigo AbertoAdministração de SistemasInterface de Linha de Comando
Tradução atualizada 5 dias atrás
Secure Shell (SSH) é um protocolo de rede popular que permite conexões seguras em redes não seguras. SSH fornece uma maneira segura de acessar computadores remotos e é essencial para administradores de sistemas. Configurar um servidor SSH no Debian é um processo simples, e este guia abrangente irá orientá-lo através das etapas para configurar efetivamente um servidor SSH. Cobriremos instalação, configuração, práticas de segurança e solução de problemas, além de fornecer exemplos e explicações. Este guia assume que você possui um entendimento básico do terminal e privilégios de superusuário (root) no seu sistema Debian.
SSH significa Secure Shell e é usado para conectar-se a máquinas remotas de maneira segura. Ele substitui protocolos mais antigos como Telnet e FTP, que não são seguros, pois transmitem dados, incluindo senhas, de forma não criptografada. SSH criptografa a sessão, tornando-a ilegível para qualquer entidade interferente. Essa criptografia garante a segurança e a confidencialidade da transmissão de dados entre o cliente e o servidor. SSH opera na porta 22 por padrão e fornece tanto autenticação quanto interface de linha de comando para comunicação segura.
Antes de configurar o servidor SSH, é importante garantir que seu sistema Debian esteja atualizado para evitar conflitos ou problemas durante a instalação mais tarde. Faça login no seu servidor Debian com privilégios de superusuário e siga estas etapas:
sudo apt update
sudo apt upgrade
Os comandos acima obterão as informações mais recentes sobre os pacotes disponíveis e, em seguida, atualizarão os pacotes para a versão mais recente. Isso garante que todos os pré-requisitos para a instalação do servidor SSH estejam presentes.
No Debian, o pacote OpenSSH fornece um servidor e cliente SSH. Para instalar o pacote do servidor OpenSSH, execute o seguinte comando:
sudo apt install -y openssh-server
A opção -y
responde automaticamente 'sim' a todos os prompts, permitindo uma instalação não interativa. A instalação do servidor OpenSSH começará automaticamente e será ativada após a conclusão.
Após a instalação, é importante confirmar que o serviço SSH está sendo executado como esperado. Para verificar o status do serviço SSH, use o seguinte comando:
sudo systemctl status ssh
A saída deve indicar que o serviço está ativo e em execução. Se não estiver, você pode iniciar o serviço SSH da seguinte forma:
sudo systemctl start ssh
Além disso, para garantir que o serviço SSH seja iniciado após uma reinicialização, ative-o:
sudo systemctl enable ssh
O arquivo de configuração do servidor SSH está localizado em /etc/ssh/sshd_config
. É recomendável criar um backup do arquivo original antes de fazer alterações:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Edite o arquivo de configuração com seu editor de texto favorito, como nano ou vim:
sudo nano /etc/ssh/sshd_config
Algumas configurações recomendadas são as seguintes:
Port 22
e altere para um número acima de 1024 para evitar conflitos com portas bem conhecidas.PermitRootLogin
como no
.PasswordAuthentication
como no
após configurar a autenticação baseada em chave.Após fazer as alterações, salve o arquivo e saia do editor. Para aplicar as mudanças, reinicie o serviço SSH:
sudo systemctl restart ssh
As chaves SSH fornecem uma maneira mais segura de fazer login em um servidor SSH do que usar uma senha. As chaves SSH são essencialmente dois arquivos: uma chave pública e uma chave privada. A chave privada fica na sua máquina e deve ser mantida segura, enquanto a chave pública é mantida no servidor. Veja como configurar a autenticação baseada em chave SSH:
Na máquina cliente (sua máquina local), gere chaves SSH usando o seguinte:
ssh-keygen -t rsa -b 4096
Este comando gera um par de chaves RSA de 4096 bits. Você será solicitado a inserir um nome de arquivo para salvar as chaves. Pressione enter
para armazená-las no local padrão (~/.ssh/id_rsa
para chave privada e ~/.ssh/id_rsa.pub
para chave pública).
Envie a chave pública para o servidor Debian usando o comando ssh-copy-id
. Substitua user
e server_ip
pelo seu nome de usuário e pelo endereço IP do servidor, respectivamente:
ssh-copy-id user@server_ip
Ele pedirá sua senha do servidor. Depois de inserida, ele copiará a chave pública para o ~/.ssh/authorized_keys
do servidor e configurará as permissões apropriadas.
Teste a conexão SSH para confirmar que a autenticação baseada em chave funciona. Execute:
ssh user@server_ip
Se for bem-sucedido, você será conectado sem um prompt de senha, indicando a autenticação baseada em chave correta. Se estiver confiante de que a autenticação baseada em chave está funcionando, você pode agora desabilitar a autenticação por senha em /etc/ssh/sshd_config
definindo PasswordAuthentication no
.
Melhorar a segurança do servidor SSH envolve configurar definições que reduzem riscos potenciais. Aqui estão várias etapas para proteger ainda mais seu servidor SSH:
Use as diretivas AllowUsers
ou AllowGroups
em sshd_config
para determinar quais usuários podem fazer login via SSH. Por exemplo, para permitir apenas que user1
e user2
façam login via SSH, adicione:
AllowUsers user1 user2
O protocolo SSH 1 é obsoleto e possui vulnerabilidades. Sempre use o protocolo 2:
Protocol 2
Defina regras de firewall para permitir acesso SSH apenas a partir de endereços IP confiáveis. Com ufw
, adicione uma regra assim:
sudo ufw allow from trusted_ip to any port ssh
O Fail2Ban é um software de prevenção de intrusões que ajuda a proteger seu servidor contra ataques de força bruta. Instale-o assim:
sudo apt install fail2ban
Por padrão, ele se configura automaticamente para proteger o SSH. Certifique-se de que ele está funcionando e habilitado:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Não é incomum encontrar problemas com o SSH. Abaixo estão alguns problemas comuns e suas possíveis soluções.
Se você receber um erro de 'Conexão recusada', o serviço SSH pode não estar em execução, ou um firewall pode estar bloqueando a conexão. Verifique se o SSH está ativado:
sudo systemctl status ssh
Certifique-se de que seu firewall está configurado para permitir conexões na porta SSH 22 ou na porta que você configurou.
Se você não conseguir autenticar, verifique suas permissões. Certifique-se de que authorized_keys
existe, é legível e é de propriedade do usuário.
chmod 600 ~/.ssh/authorized_keys
chown user:user ~/.ssh/authorized_keys
O servidor SSH registra informações mais detalhadas em /var/log/auth.log
. Inspecionar esse arquivo muitas vezes ajuda a diagnosticar problemas.
Configurar um servidor SSH no Debian é uma tarefa essencial para garantir a administração remota segura do seu sistema. Este guia cobre os aspectos importantes da configuração do SSH, focando na instalação, configuração e segurança do seu servidor SSH contra acessos não autorizados. Mantenha sempre seu servidor atualizado, limite os privilégios dos usuários e implemente medidas de segurança, como firewalls e sistemas de prevenção de intrusão, para fortalecer a segurança do seu servidor. Práticas adequadas de segurança do SSH são fundamentais para manter um ambiente servidor seguro, eficiente e confiável.
Se você encontrar algo errado com o conteúdo do artigo, você pode