Embora seja bom poder ssh no seu sistema a partir de locais arbitrários na Internet, existem sistemas automatizados de ataque por senha que travam em uma porta ssh aberta e aplicam vários ataques de conta e dicionário de joe contra o seu sistema. Isso pode ser um pouco difícil de ler no resumo do seu registro noturno e é um desperdício de sua largura de banda.
Se você possui um servidor Web no mesmo sistema, pode usar wrappers php e tcp para restringir o tráfego de entrada ssh a sistemas conhecidos, além de fornecer uma chave de porta traseira para permitir o acesso de sistemas arbitrários na Internet.
Aqui está como você faz isso:
negue todas as conexões ssh em /etc/hosts.deny:
# /etc/hosts.deny fragment
sshd: all
Permita sistemas conhecidos por IP em /etc/hosts.allow, além de adicionar um arquivo para acesso temporário:
# /etc/hosts.allow fragment
sshd: 10.0.10.2 # some system
sshd: 172.99.99.99 # some other system
sshd: /etc/hosts.allow.temporary-sshd-access
Crie um arquivo php no seu servidor web e atribua a ele um nome não óbvio, como my-sshd-access.php:
<?php
function get_ip()
{
return getenv("REMOTE_ADDR");
}
?>
<?php
$out='/etc/hosts.allow.temporary-sshd-access';
$log='/var/log/sshd-access-addition-log';
print "Was:";
readfile($out);
print "<br>";
$ip=get_ip();
$fp=fopen($out,"w");
fputs($fp,$ip);
fclose($fp);
$lfp=fopen($log,"a");
fputs($lfp,$ip);
fputs($lfp,"n");
fclose($lfp);
print "Wrote: ";
readfile($out);
?>
Perdoe o código php - eu o peguei de outro lugar, então provavelmente poderia ser limpo um monte. Tudo o que faz é adicionar o endereço IP do sistema que o acessa ao arquivo /etc/hosts.allow.temporary-sshd-access, que é lido pelo sshd (devido à sua inclusão por /etc/hosts.allow) no momento da conexão .
Agora, quando você estiver em algum sistema arbitrário da Web e quiser fazer o ssh para esse sistema, primeiro use um navegador da Web e clique neste arquivo (ou use wget ou equivalente):
$ wget http://your.system.name/my-sshd-access.php
Agora você deve poder efetuar ssh no seu sistema. Se estiver em algum lugar em que você provavelmente fará uma busca frequente, seria trivial ler o conteúdo do arquivo /etc/hosts.allow.temporary-sshd-access e adicionar permanentemente o endereço IP em / etc / hosts. permitir.