Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Guia para configurar acesso SSH apenas para IPs específicos no Ubuntu 22.04

10 min de leitura  ·  Guia técnico

Configurar acesso SSH apenas para IPs específicos é uma medida essencial de segurança que restringe conexões remotas a endereços autorizados. Para implementar essa proteção no Ubuntu 22.04, siga estes passos:

  1. Faça backup da configuração atual do SSH
  2. Configure restrições no arquivo /etc/ssh/sshd_config
  3. Implemente regras de firewall com iptables
  4. Teste as configurações antes de aplicar permanentemente
  5. Reinicie o serviço SSH para ativar as mudanças
  6. Configure persistência das regras de firewall

Pré-requisitos

  • Servidor Ubuntu 22.04 LTS com acesso root ou sudo
  • Acesso físico ou console VNC/KVM como backup de emergência
  • Lista dos IPs autorizados para conexão SSH
  • Conhecimento básico de linha de comando Linux
  • Cliente SSH configurado para teste das conexões

Método 1: Configuração via arquivo sshd_config

A primeira abordagem para restringir SSH por IP específico utiliza as diretivas nativas do OpenSSH. Este método oferece controle granular sobre quais usuários podem conectar de quais endereços.

Primeiro, crie um backup da configuração atual:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

Abra o arquivo de configuração do SSH:

sudo nano /etc/ssh/sshd_config

Adicione as seguintes diretivas ao final do arquivo para permitir apenas IPs específicos:

# Permitir apenas IPs específicos
AllowUsers [email protected]
AllowUsers [email protected]
AllowUsers [email protected]

# Negar todos os outros
DenyUsers *

Para permitir uma faixa de IPs, use a diretiva Match:

Match Address 192.168.1.0/24
    AllowUsers usuario admin

Match Address !192.168.1.0/24
    DenyUsers *

Teste a configuração antes de aplicar:

sudo sshd -t

Output esperado se a configuração estiver correta:

# Sem output indica configuração válida

Reinicie o serviço SSH para aplicar as mudanças:

sudo systemctl restart ssh

Método 2: Implementação com iptables para máxima segurança

O iptables oferece controle mais robusto sobre conexões SSH, permitindo bloqueio completo da porta 22 exceto para IPs autorizados. Esta abordagem funciona independentemente da configuração do SSH.

Primeiro, verifique as regras atuais do iptables:

sudo iptables -L -n

Crie regras para permitir SSH apenas de IPs específicos:

# Permitir SSH do IP específico
sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT

# Permitir SSH de uma faixa de IPs
sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT

# Bloquear SSH de todos os outros IPs
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

Para múltiplos IPs específicos, adicione uma regra para cada:

sudo iptables -A INPUT -p tcp -s 203.0.113.50 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 10.0.0.5 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

Verifique se as regras foram aplicadas corretamente:

sudo iptables -L INPUT -n --line-numbers

Output esperado mostrando as regras ativas:

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  192.168.1.100       0.0.0.0/0            tcp dpt:22
2    ACCEPT     tcp  --  192.168.1.0/24      0.0.0.0/0            tcp dpt:22
3    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22

Configuração de persistência das regras iptables

Por padrão, as regras do iptables são temporárias e desaparecem após reinicialização. Para torná-las permanentes no Ubuntu 22.04, instale o pacote iptables-persistent:

sudo apt update
sudo apt install iptables-persistent

Durante a instalação, escolha "Yes" para salvar as regras atuais. Para salvar regras manualmente posteriormente:

sudo iptables-save > /etc/iptables/rules.v4

Para restaurar as regras após modificações:

sudo iptables-restore < /etc/iptables/rules.v4

Verifique se o serviço está ativo para carregar regras automaticamente:

sudo systemctl enable netfilter-persistent
sudo systemctl status netfilter-persistent

Combinando autenticação por chave SSH com restrição de IP

Para máxima segurança, combine a restrição por IP com autenticação por chave SSH. Esta configuração implementa segurança em camadas, exigindo tanto IP autorizado quanto chave válida.

Primeiro, desabilite autenticação por senha no arquivo sshd_config:

sudo nano /etc/ssh/sshd_config

Adicione ou modifique estas linhas:

PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Configure as chaves SSH autorizadas para o usuário:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

Adicione sua chave pública ao arquivo authorized_keys e defina permissões corretas:

chmod 600 ~/.ssh/authorized_keys

Teste a conexão SSH com chave antes de reiniciar o serviço:

ssh -i /caminho/para/chave_privada usuario@IP_SERVIDOR

Reinicie o SSH para aplicar todas as configurações:

sudo systemctl restart ssh

Problemas comuns e como resolver

Sintoma: Bloqueio completo do acesso SSH após aplicar regras

Causa: Configuração incorreta das regras ou IP próprio não incluído na lista de autorizados.
Solução: Acesse via console físico ou VNC, remova as regras com sudo iptables -F ou restaure o backup do sshd_config. Sempre teste com uma segunda sessão SSH ativa antes de aplicar mudanças definitivas.

Sintoma: Regras do iptables não persistem após reboot

Causa: Pacote iptables-persistent não instalado ou regras não salvas corretamente.
Solução: Instale o iptables-persistent com sudo apt install iptables-persistent e salve as regras com sudo iptables-save > /etc/iptables/rules.v4. Verifique se o serviço netfilter-persistent está habilitado.

Sintoma: SSH funciona localmente mas falha remotamente

Causa: Regras de firewall bloqueando conexões externas ou configuração de rede incorreta.
Solução: Verifique se o IP externo real está na lista de autorizados usando curl ifconfig.me para descobrir seu IP público. Confirme que não há outros firewalls (como UFW) interferindo com as regras do iptables.

Sintoma: Erro "Permission denied" mesmo com IP autorizado

Causa: Configuração incorreta do AllowUsers ou problemas com chaves SSH.
Solução: Verifique a sintaxe do AllowUsers no sshd_config, confirme que o usuário existe no sistema e teste a configuração com sudo sshd -t. Para autenticação por chave, verifique permissões do diretório .ssh (700) e arquivo authorized_keys (600).

Monitoramento e logs de acesso SSH

Após configurar as restrições de IP, é importante monitorar tentativas de acesso para identificar possíveis ataques. O Ubuntu 22.04 registra eventos SSH no arquivo /var/log/auth.log.

Para visualizar tentativas de conexão SSH em tempo real:

sudo tail -f /var/log/auth.log | grep ssh

Para analisar tentativas de acesso negadas:

sudo grep "Failed password" /var/log/auth.log | tail -20

Configure alertas automáticos para tentativas de acesso suspeitas instalando o fail2ban:

sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

O fail2ban complementa as restrições de IP bloqueando automaticamente endereços que fazem múltiplas tentativas de login falhadas, oferecendo uma camada adicional de proteção contra ataques de força bruta.

Perguntas frequentes sobre configurar acesso SSH apenas para IPs específicos

Como permitir SSH apenas para um IP específico no Ubuntu?

Configure o arquivo /etc/ssh/sshd_config com a diretiva AllowUsers usuario@IP_AUTORIZADO ou use iptables para bloquear a porta 22 exceto para IPs específicos. Reinicie o serviço SSH após as alterações para aplicar as configurações.

É possível restringir SSH por faixa de IPs?

Sim, use a notação CIDR no iptables (exemplo: 192.168.1.0/24) ou configure múltiplas entradas AllowUsers no sshd_config. O iptables oferece mais flexibilidade para ranges de IPs e permite configurações mais granulares.

O que acontece se eu me bloquear do SSH?

Você perderá acesso remoto ao servidor. Por isso é essencial ter acesso físico ou console VNC/KVM antes de aplicar restrições. Sempre teste as regras com uma segunda sessão SSH ativa antes de torná-las permanentes.

Posso combinar restrição por IP e autenticação por chave?

Sim, é uma prática recomendada de segurança em camadas. Configure primeiro a restrição por IP, depois desabilite autenticação por senha e use apenas chaves SSH para máxima proteção contra acessos não autorizados.

As regras do iptables persistem após reinicialização?

Não, por padrão as regras do iptables são temporárias. Use iptables-persistent ou salve as regras em /etc/iptables/rules.v4 para mantê-las após reboot do sistema. O serviço netfilter-persistent carrega as regras automaticamente na inicialização.

Conclusão

A configuração de acesso SSH restrito por IP no Ubuntu 22.04 é uma medida fundamental de segurança que deve ser implementada em todos os servidores expostos à internet. A combinação de métodos - configuração do sshd_config e regras de iptables - oferece proteção robusta contra acessos não autorizados.

  • Sempre mantenha acesso de emergência via console antes de aplicar restrições SSH
  • Combine restrição por IP com autenticação por chave SSH para segurança máxima
  • Configure monitoramento de logs e fail2ban para detectar tentativas de acesso suspeitas

Leia também

Precisa de ajuda com segurança SSH no seu servidor?

A AviraHost oferece servidores VPS Linux com Ubuntu 22.04 pré-configurados e suporte especializado para implementação de medidas de segurança avançadas. Nossa equipe pode auxiliar na configuração adequada de firewalls e políticas de acesso SSH.

Conheça nossos planos de VPS Linux

  • 0 Os usuários acharam isso útil
  • ssh, ubuntu, iptables, seguranca, firewall, avirahost
Esta resposta foi útil?

Artigos Relacionados

Instalando painel de gerenciamento de hospedagem VirtualMin.

O virtualmin é um painel de gerenciamento de hospedagem de sites gratuito, que é suportado por...

Como usar a ferramenta oficial de acesso remoto do Windows no PC e celular

1. Pelo menu Iniciar, acesse os “Acessórios do Windows” e abra o “Conexão de Área de Trabalho...

Como acessar o painel de gerenciamento dos meus Serviços.

Para acessar o painel de gerenciamento do seu serviço basta seguir o passo á passo abaixo.   1....

Compreendendo o Servidor VPS: O que é e Como Funciona!

Um servidor VPS (Virtual Private Server) é uma solução de hospedagem na qual um servidor físico é...

Como trocar a senha do usuário root do servidor VPS ou Dedicado.

Para trocar a senha do usuário root em um servidor VPS da AviraHost, você pode seguir os...