Chociaż może być fajnie móc ssh do twojego systemu z dowolnych lokalizacji w Internecie, istnieją zautomatyzowane systemy ataku hasłem, które zablokują się na otwartym porcie ssh i zastosują różne konta Joe i ataki słownikowe na twój system. Może to być pogarszające, jeśli czytasz w nocnym podsumowaniu dziennika i jest to marnowanie przepustowości.
Jeśli masz serwer sieciowy w tym samym systemie, możesz użyć opakowań php i tcp, aby ograniczyć ruch przychodzący ssh do znanych systemów, a także dać ci klucz back-door, aby umożliwić sobie dostęp z dowolnych systemów w Internecie.
Oto jak to zrobić:
odrzuć wszystkie połączenia ssh w /etc/hosts.deny:
# /etc/hosts.deny fragment
sshd: all
Zezwalaj znanym systemom przez IP w /etc/hosts.allow, a także dodaj plik do tymczasowego dostępu:
# /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
Utwórz plik php na swoim serwerze internetowym i nadaj mu nieoczywistą nazwę, taką jak 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);
?>
Wybacz kod php - przesunąłem go skądś indziej, aby prawdopodobnie mógł znieść całą grupę. Wystarczy dodać adres IP systemu, który ma do niego dostęp, do pliku /etc/hosts.allow.temporary-sshd-access, który jest odczytywany przez sshd (z powodu włączenia go przez /etc/hosts.allow) w czasie połączenia .
Teraz, gdy jesteś w dowolnym systemie w Internecie i chcesz ssh do tego systemu, najpierw użyj przeglądarki internetowej i naciśnij ten plik (lub użyj wget lub ekwiwalentu):
$ wget http://your.system.name/my-sshd-access.php
Teraz powinieneś mieć możliwość ssh do swojego systemu. Jeśli jest to miejsce, z którego prawdopodobnie będziesz często ssh'ing, byłoby trywialne czytanie zawartości pliku /etc/hosts.allow.temporary-sshd-access i trwałe dodanie adresu IP do / etc / hosts. dopuszczać.