Mivel az SSH hozzáférés a legfontosabb belépési pont a szerver adminisztrációjához, széles körben használt támadási vektor lett.
Az SSH biztonságossá tételének alapvető lépései a következők: a root hozzáférés letiltása, a jelszavas hitelesítés teljes kikapcsolása (és helyette a kulcsok használata), valamint a portok megváltoztatása (a biztonsághoz nem sok köze van, kivéve a gyakori portolvasók és a naplólevélszemét minimálisra csökkentését).
A következő lépés egy PF tűzfal megoldás lenne kapcsolatkövetéssel. Ez a megoldás kezelné a csatlakozási állapotokat, és blokkolna minden olyan IP-címet, amely túl sok kapcsolattal rendelkezik. Ez nagyszerűen működik, és nagyon könnyen megtehető PF-vel, de az SSH démon továbbra is elérhető az interneten.
Mit szólnál, ha kívülről teljesen elérhetetlenné tennéd az SSH-t? Itt jön be a spiped . A kezdőlapról:
Spiped (pronounced "ess-pipe-dee") is a utility for creating symmetrically encrypted and authenticated pipes between socket addresses, so that one may connect to one address (e.g., a UNIX socket on localhost) and transparently have a connection established to another address (e.g., a UNIX socket on a different system). This is similar to 'ssh -L' functionality, but does not use SSH and requires a pre-shared symmetric key.
Nagy! Szerencsére jó minőségű OpenBSD csomaggal rendelkezik, amely elvégzi helyettünk az összes előkészítő munkát, így kezdhetjük is a telepítésével:
sudo pkg_add spiped
Ez egy szép init szkriptet is telepít számunkra, így tovább léphetünk és engedélyezhetjük:
sudo rcctl enable spiped
És végül kezdje el:
sudo rcctl start spiped
Az init szkript gondoskodik arról, hogy a kulcs létrejöjjön nekünk (amire egy helyi gépen kicsit később szükségünk lesz).
Amit most tennünk kell, az az, hogy letiltjuk sshda nyilvános címen történő figyelést, blokkoljuk a 22-es portot és engedélyezzük a 8022-es portot (amely alapértelmezés szerint a spiped init szkriptben használatos).
Nyissa meg a /etc/ssh/sshd_configfájlt, és módosítsa (és törölje) az ListenAddressolvasandó sort 127.0.0.1:
ListenAddress 127.0.0.1
Ha PF szabályokat használ a portblokkoláshoz, győződjön meg arról, hogy átadja a 8022-es portot (és hagyhatja blokkolva a 22-es portot), pl.:
pass in on egress proto tcp from any to any port 8022
Az aktiváláshoz feltétlenül töltse be újra a szabályokat:
sudo pfctl -f /etc/pf.conf
Most már csak át kell másolnunk a generált spiped kulcsot ( /etc/spiped/spiped.key) a szerverről egy helyi gépre, és módosítanunk kell az SSH-konfigurációnkat, a következőképpen:
Host HOSTNAME
ProxyCommand spipe -t %h:8022 -k ~/.ssh/spiped.key
Meg kell, hogy spipe/spipedtelepítve van a helyi gépen is, nyilván. Ha kimásolta a kulcsot és beállította a neveket/elérési utakat, akkor képesnek kell lennie arra, hogy csatlakozzon ProxyCommanda ~/.ssh/configfájlban található sorhoz .
Miután meggyőződött arról, hogy működik, újraindíthatjuk sshda szerveren:
sudo rcctl restart sshd
És ez az! Most teljesen kiiktatott egy nagy támadási vektort, és eggyel kevesebb szolgáltatás figyelhető meg nyilvános felületen. Úgy tűnik, hogy az SSH-kapcsolataid a localhost-tól származnak, például:
username ttyp0 localhost Thu Nov 06 07:58 still logged in
A Vultr használatának előnye, hogy minden Vultr VPS egy szép online VNC-típusú klienst kínál, amelyet arra az esetre használhatunk, ha véletlenül kizárnánk magunkat. Kísérletezzen el!