„Pytanie brzmi: jak mogę wyświetlić listę zablokowanych adresów IP?”
Utwórz łańcuch BANNED:
iptables -N BANNED
iptables -F BANNED
Utwórz łańcuch rejestrowania:
iptables -N BANNEDLOG
iptables -F BANNEDLOG
iptables -A BANNEDLOG -j LOG --log-prefix "BANNED:" --log-level 6
iptables -A BANNEDLOG -j DROP
Dodaj skok do zbanowanego łańcucha w łańcuchu INPUT przed większością innych reguł
...
iptables -A INPUT -j BANNED
...
Teraz dodaj adresy ip do zbanowanego łańcucha:
flock -w 5 /var/lock/iptables -c 'iptables -A BANNED -s 140.130.20.202/32 -i eth0 -m comment --comment "2012-03-19 23:49:33 accesslog" -j BANNEDLOG'
etc...
Możesz także używać go jako bazy danych z opcjami komentowania, dzięki czemu możesz wiedzieć, kiedy i dlaczego itp. Flokowanie jest ważne, gdy iptables jest często aktualizowany przez wiele procesów - wygląda na to, że iptables nie ma wbudowanego żadnego blokowania.
Aby wyświetlić zabronione adresy i reguły w zbanowanym łańcuchu:
iptables -S BANNED
Aby wyświetlić tylko posortowane unikalne adresy IP:
iptables -S BANNED | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -u
Mam kilka demonów działających na moich serwerach sprawdzających pliki syslog i blogi, więc jeśli ktoś spróbuje czegoś paskudnego, ich adres jest automatycznie blokowany na kilka dni, w zależności od rodzaju i ciężkości oraz liczby wcześniejszych ataków. Informacje są rejestrowane w bazie danych mysql i okresowo wygasają. Adresy są również dystrybuowane na każdą inną maszynę w klastrze za pośrednictwem replikacji mysql, dzięki czemu są również chronione i synchronizowane. Moje oprogramowanie wyszukuje również właściciela sieci i wysyła skargę do dostawcy usług internetowych.
Po 10 latach pracy mam nadzieję, że wkrótce będzie dostępna dla wszystkich. Obecnie mam około 1,5 miliona historii adresów IP i setki tysięcy ataków pocztowych i ssh, które pomagają oczyścić sieć. Jeśli więcej z niego skorzysta, to mam nadzieję, że będzie to miało większy wpływ.
iptables -L INPUT -v -n
pokazuje wszystkie zablokowane IP