Algumas vezes atrás, eu estava enfrentando o mesmo problema, e minha solução foi criar um arquivo de regras template iptables, para modificar com base no IP atual recuperado pelo dyndns, então configurar o tabelas com iptable-restore
. A rotina testou o IP periodicamente e atualizou o firewall quando necessário.
Eu abandonei essa abordagem quando um colega pediu para usar o mesmo servidor ssh, e configurar o sistema para dois IPs, embora não seja particularmente difícil, faz com que eu mude de idéia.
Eu sugeriria outra maneira de abordar o problema.
Uma abordagem comumente usada é usar software para detectar e bloquear ataques. Por exemplo, fail2ban
pode analisar logs ssh em tempo de execução e banir / desanexar hosts suspeitos usando regras de firewall.
Por outro lado, denyhosts
adiciona hosts suspeitos a /etc/hosts.deny
, atingindo a mesma meta de fail2ban
.
Outra opção é usar um servidor ssh público de terceiros (veja shellium, blinkensheel, etc.) como uma ponte para acessar seu servidor ssh pessoal, no qual você deve confiar no servidor público e não em outros, e como I.P. estático.
Tenho certeza de que os especialistas por aí podem sugerir outra solução melhor do que eu sugiro.