Si bien puede ser bueno poder ingresar a su sistema mediante ssh desde ubicaciones arbitrarias en Internet, existen sistemas automatizados de ataque con contraseña que se bloquearán en un puerto ssh abierto y aplicarán varios ataques de diccionario y cuenta joe contra su sistema. Esto puede agregarse para leer en su resumen de registro nocturno y es un desperdicio de su ancho de banda.
Si tiene un servidor web en el mismo sistema, puede usar envoltorios php y tcp para restringir el tráfico entrante ssh a los sistemas conocidos, además de darle una clave de puerta trasera para permitirse el acceso desde sistemas arbitrarios en Internet.
Así es como lo haces:
negar todas las conexiones ssh en /etc/hosts.deny:
# /etc/hosts.deny fragment
sshd: all
Permita sistemas conocidos por IP en /etc/hosts.allow, y agregue un archivo para acceso temporal:
# /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
Cree un archivo php en su servidor web y asígnele un nombre no obvio 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);
?>
Perdone el código php: lo saqué de otro lugar, por lo que probablemente podría ser limpiado un montón. Todo lo que hace es agregar la dirección IP del sistema que accede al archivo /etc/hosts.allow.temporary-sshd-access, que es leído por sshd (debido a su inclusión por /etc/hosts.allow) en el momento de la conexión .
Ahora, cuando se encuentre en un sistema arbitrario en la web y desee ssh a este sistema, primero use un navegador web y presione este archivo (o use wget o equivilent):
$ wget http://your.system.name/my-sshd-access.php
Ahora debería poder ingresar a su sistema. Si se trata de un lugar desde el que probablemente se encuentre enviando mensajes con frecuencia, sería trivial leer el contenido del archivo /etc/hosts.allow.temporary-sshd-access y agregar permanentemente la dirección IP a / etc / hosts. permitir.