"Питання: Як я можу перерахувати заблоковані IP-адреси?"
Створіть ланцюг BANNED:
iptables -N BANNED
iptables -F BANNED
Створіть ланцюжок ведення журналів:
iptables -N BANNEDLOG
iptables -F BANNEDLOG
iptables -A BANNEDLOG -j LOG --log-prefix "BANNED:" --log-level 6
iptables -A BANNEDLOG -j DROP
Додайте стрибок до забороненого ланцюга в ланцюзі INPUT перед більшістю інших правил
...
iptables -A INPUT -j BANNED
...
Тепер додайте ipaddresses до забороненої ланцюжка:
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...
Ви також можете використовувати його як базу даних з параметрами коментарів, так що ви можете знати, коли і чому і т. Д. Важливо, коли iptables часто оновлюється багатьма процесами - виявляється, що iptables не має вбудованого блокування в нього.
Щоб переглянути заборонені адреси та правила в забороненій ланцюжку:
iptables -S BANNED
Щоб переглянути лише відсортовані унікальні ipaddresses:
iptables -S BANNED | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -u
У мене на серверах працює декілька демонів, які перевіряють файли syslog та веб-журнали, тому, якщо хтось щось неприємно намагається, їх адресу автоматично забороняють на кілька днів, залежно від типу та суворості та кількості попередніх атак. Інформація входить у базу даних mysql та періодично закінчується. Адреси також розподіляються на будь-яку іншу машину кластера через реплікацію mysql, щоб вони також були захищені та підтримували синхронізацію. Моє програмне забезпечення також шукає власника мережі та надсилає скаргу провайдеру.
Після 10 років роботи я сподіваюсь, що незабаром вона стане доступною для всіх. На даний момент у мене є близько 1,5 мільйона історій ip-адреси та сотні тисяч атак про пошту та ssh, які допомагають очистити мережу. Якщо більше використовуватиме його, то, сподіваюся, це матиме більший вплив.
iptables -L INPUT -v -n
показує всі заблоковані ip