Garantir a segurança do acesso SSH é fundamental para proteger servidores e aplicações web contra invasões. A restrição por IP é uma das camadas de defesa mais eficazes, permitindo que apenas endereços confiáveis possam estabelecer conexões.
Implementar restrições de IP no SSH não é apenas uma boa prática, mas uma necessidade em ambientes que armazenam dados sensíveis ou processam informações críticas. Essa configuração evita tentativas de força bruta e acesso não autorizado.
Conteúdos
Por que restringir o acesso SSH por IP é importante
O SSH (Secure Shell) é uma porta de entrada privilegiada para seu servidor. Quando deixada aberta para qualquer IP da internet, torna-se um alvo constante de ataques automatizados que tentam descobrir credenciais válidas.
Segundo dados do relatório de ameaças da CrowdStrike, servidores com SSH exposto recebem, em média, centenas de tentativas de login por dia. A restrição por IP reduz drasticamente essa superfície de ataque.
Ao limitar o acesso apenas aos IPs necessários, você segue o princípio de segurança do “menor privilégio possível”, garantindo que apenas pessoas autorizadas, conectadas de redes confiáveis, possam tentar estabelecer conexões SSH.
“A restrição de acesso SSH por IP é uma das medidas de segurança mais simples e eficazes que você pode implementar. É como instalar uma porta blindada em sua casa, mas distribuir a chave apenas para membros da família.” – Bruce Schneier, especialista em segurança cibernética
Como verificar se o SSH está restrito por IP
Para determinar se seu servidor já possui restrições de IP para SSH, você pode seguir estas etapas de verificação:
1. Verificando configurações do SSH
Acesse o arquivo de configuração do SSH, geralmente localizado em /etc/ssh/sshd_config. Procure por linhas que contenham AllowUsers, AllowGroups, DenyUsers, DenyGroups ou Match Address.
Exemplo de configuração restritiva:
Match Address 192.168.1.0/24,10.0.0.5
PermitRootLogin yes
PasswordAuthentication yes
2. Verificando regras de firewall
As restrições podem estar implementadas no firewall do sistema. Para verificar, use os comandos apropriados para seu sistema:
Em sistemas baseados em iptables:
sudo iptables -L -n | grep 22
Em sistemas usando UFW (Ubuntu):
sudo ufw status
Em sistemas usando firewalld (CentOS/RHEL):
sudo firewall-cmd –list-all
3. Verificando configurações de segurança na nuvem
Se seu servidor estiver hospedado em provedores como AWS, Azure ou Google Cloud, verifique também os grupos de segurança ou regras de firewall na interface do provedor.
Como implementar restrições de IP no SSH
Existem várias maneiras de implementar restrições de IP para o acesso SSH. Vou apresentar as mais comuns e eficazes:
1. Usando o arquivo de configuração SSH
Edite o arquivo /etc/ssh/sshd_config e adicione uma das seguintes configurações:
# Permitir acesso apenas de IPs específicos
Match Address 192.168.1.0/24,203.0.113.4
PermitRootLogin yes
PasswordAuthentication yes
Após editar, reinicie o serviço SSH:
sudo systemctl restart sshd
2. Usando iptables (Linux)
Para sistemas que usam iptables diretamente:
# Limpar regras existentes para a porta 22
sudo iptables -D INPUT -p tcp –dport 22 -j ACCEPT
# Permitir SSH apenas de IPs específicos
sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 –dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 203.0.113.4 –dport 22 -j ACCEPT
# Bloquear todo o resto
sudo iptables -A INPUT -p tcp –dport 22 -j DROP
Para tornar as regras permanentes:
sudo apt install iptables-persistent
sudo netfilter-persistent save
3. Usando UFW (Ubuntu)
Para sistemas Ubuntu com UFW ativado:
sudo ufw default deny incoming
sudo ufw allow from 192.168.1.0/24 to any port 22
sudo ufw allow from 203.0.113.4 to any port 22
sudo ufw enable
4. Usando firewalld (CentOS/RHEL)
sudo firewall-cmd –permanent –zone=public –remove-service=ssh
sudo firewall-cmd –permanent –zone=public –add-rich-rule=’rule family=”ipv4″ source address=”192.168.1.0/24″ service name=”ssh” accept’
sudo firewall-cmd –permanent –zone=public –add-rich-rule=’rule family=”ipv4″ source address=”203.0.113.4″ service name=”ssh” accept’
sudo firewall-cmd –reload
Boas práticas para restrição de SSH por IP
Implementar restrições de IP é importante, mas deve ser feito com cuidado para evitar bloqueios acidentais. Siga estas práticas recomendadas:
1. Planeje antes de implementar
Antes de aplicar quaisquer restrições, liste todos os IPs legítimos que precisarão de acesso SSH. Considere funcionários remotos, equipes de suporte e sistemas de automação.
“Sempre tenha um plano B antes de aplicar restrições de acesso. Um IP de fallback ou um método alternativo de acesso pode salvar você de ficar trancado fora do seu próprio servidor.” – Katie Moussouris, fundadora da Luta Security
2. Use IPs estáticos quando possível
Para administradores que acessam frequentemente o servidor, considere a utilização de IPs estáticos ou VPNs com IPs fixos. Isso torna a gestão de acesso mais previsível e segura.
3. Implemente autenticação de múltiplos fatores
Mesmo com restrições de IP, adicione uma camada extra de segurança com autenticação de dois fatores para SSH. Ferramentas como Google Authenticator ou Duo Security podem ser integradas ao SSH.
4. Monitore tentativas de acesso
Configure alertas para tentativas de login SSH de IPs não autorizados. Ferramentas como Fail2ban podem detectar e bloquear automaticamente tentativas suspeitas.
5. Revise periodicamente as regras
Estabeleça um processo regular para revisar e atualizar as listas de IPs permitidos, removendo acessos desnecessários e adicionando novos conforme necessário.
Alternativas e complementos à restrição por IP
A restrição por IP é eficaz, mas pode ser complementada com outras medidas de segurança:
- VPN: Exigir que todos os acessos SSH passem por uma VPN corporativa
- Bastion Hosts: Usar servidores intermediários dedicados para acesso SSH
- Chaves SSH: Desabilitar autenticação por senha e usar apenas chaves criptográficas
- Port Knocking: Técnica que mantém a porta SSH fechada até que uma sequência específica de conexões seja detectada
Considerações especiais para ambientes dinâmicos
Em ambientes onde os IPs mudam frequentemente, como equipes remotas ou desenvolvedores móveis, considere estas abordagens:
1. Implemente um sistema de acesso Just-In-Time, onde os usuários solicitam acesso temporário através de um portal seguro.
2. Use uma VPN corporativa com IP fixo, de modo que todos os acessos SSH venham desse IP conhecido.
3. Configure um sistema de autorização baseado em identidade, como o AWS IAM ou Google Cloud IAP, que pode controlar o acesso SSH independentemente do IP de origem.
A restrição de IP para SSH é uma medida de segurança essencial que deve fazer parte de uma estratégia de defesa em profundidade. Quando implementada corretamente, reduz significativamente a superfície de ataque do seu servidor web.
Como está a configuração atual do SSH no seu servidor? Você já identificou quais IPs precisam ter acesso legítimo ao seu ambiente?