Se você não tiver uma regra para ativar o tráfego de ESTABLISHED
conexões, precisará de uma regra que permita o tráfego do seu host para o sistema remoto. É comum ter uma primeira regra assim:
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Depois, você pode ativar seu acesso com uma regra como:
iptables -A INPUT -s zzz.example.com -p tcp --dport 6789 -j ACCEPT
Como alternativa, você pode usar um criador de firewall como shorewall
e ativar port knocking
para abrir a porta por alguns segundos, quando necessário.
Se o seu daemon ssh suportar tcp_wrapers
, você poderá limitar o acesso com os arquivos /etc/hosts.allow
e /etc/hosts.deny
. Mesmo que você tenha consertado o firewall, talvez queira usar esse recurso para notificá-lo quando forem feitas conexões remotas. As seguintes regras bloqueiam vários domínios de país e enviam um email a cada succ
sshd : ALL \
EXCEPT .ar .au .br .by .cl .co .cz .do .eg .gt \
.id .il .in .jp .ma .mx .nl .pe .pk .pl .pt \
.ro .rs .ru .sa .sg .tr .tw .ua .vn .za \
.ae .at .bg .gh .hr .hu .ke .kz .lt .md \
.my .no .sk .uy .ve : \
spawn (/bin/echo "SSH connection to %N from %n[%a] allowed" | \
/usr/bin/mailx -s "SSH Allowed" [email protected])
EDIT: Usar nomes de domínio em regras não é uma boa ideia:
- As pesquisas de DNS podem não estar disponíveis quando as regras são carregadas. (Isso é quando o nome é convertido em um endereço IP.)
- Os clientes sem endereços IP estáticos podem obter novos endereços, que não estão disponíveis devido ao armazenamento em cache do DNS. Endereços IP antigos podem ser deixados com acesso, enquanto o novo endereço não tem acesso. Endereços IP estáticos com entradas de host locais funcionam de maneira razoavelmente confiável.
Se você tiver um endereço dinâmico, proteja o acesso de um intervalo de endereços IP relativamente grande ou use a porta batendo. Você pode usar fail2ban
ou um programa semelhante para bloquear endereços que estão testando seu serviço ssh. tcpwrappers
pode ser usado como acima para colocar restrições sobre quais endereços podem se conectar e adicionar logs adicionais. Se você não se conectar com frequência, talvez seja necessário registrar tentativas bem-sucedidas e malsucedidas.