Régóta gondolkozom, hogy mi a legpraktikusabb megoldás az ssh-n keresztül próbálkozó script kiddiek ellen. Nyilvánvaló, hogy nem engedek rootot ssh-n keresztül belépni, s nincsenek triviális userek se engedélyezve. Ami a dologban legjobban zavar, hogy teleszemetelik a logokat, meg feleslegesen dolgoztatják a gépet.
Még régen találtam ezt a jó kis wikit. Többször végigfutottam már, s eljátszottam mindegyik megoldással.
Végül amellett az egyszerű megoldás mellett döntöttem (amit egyébként sok más helyen is alkalmazok), hogy átpakolom az ssh-t a 22-es portról máshova.
A port knocking szintén dobogós megoldás volt, de körülményes volta miatt, végül a második helyen végzett. Ugyanez a kör, hogy csak bizonyos hostokról engedélyezzem az ssh-t. Jó, de lehet, hogy ezzel saját magamat szivatnám meg.
A BlockHosts, DenyHosts, fail2ban és hasonló szolgáltatásokat azért is vetettem el, mert mi van, ha valakinek feltörték a gépét, s onnan próbálkoztak. Mi van, ha én kapom majd azt az ip-t, amit esetleg letiltottam? (egy időben tiltottam ip-ket, de nem éri meg)
Amit még csináltam, hogy korlatoztam a fickokat, akik probalkoznak:
iptables -A INPUT -p TCP -s fehérlistázandó_IP_cím --syn --dport ssh -j ACCEPT
iptables -A INPUT -p TCP --syn --dport ssh -m recent --update --seconds 60 --hitcount 3 -j DROP
iptables -A INPUT -p TCP --syn --dport ssh -m recent --set -j ACCEPT
Így már remélem minden OK lesz. 🙂
Források a fent említetteken kívül: hup és megint hup. Végül pedig debian-administration.