В любом мане по iptables сказано как включить логирование «дропнутых» и сброшеных пакетов которые пришли на ваш внешний интерфейс. Но вот незадача — ни в одном мане не сказано что для этого в ядре существует специальный модуль. Iptables у меня работает давно, с NAT’ом,куртизанками и азартными игрищами. Итак для того чтобы работал iptables,NAT, и логирование пакетов надо собрать ядро так:
[*] Network packet filtering framework (Netfilter) ---> [*] Advanced netfilter configuration IP: Netfilter Configuration ---> IPv4 connection tracking support [*] proc/sysctl IP tables support Packet filtering REJECT target support LOG target support
Я при сборке проглядел модуль LOG target support и iptables отказывался запускаться с -j LOG. Долго не мог понять в чем дело, пока не дошло посмотреть еще раз конфиг ядра. Вот такие случаи бывают 🙂 Ставим политики по умолчанию:
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT sudo iptables -P FORWARD ACCEPT
И добавляем такие два правила в конец цепочки INPUT
-A INPUT -i ppp0 -j LOG --log-level WARN --log-prefix "INPUT DROP: " -A INPUT -m conntrack --ctstate INVALID -j LOG --log-level WARN --log-prefix "INVALID ppp0"
Где ppp0 это ваш внешний интерфейс (internet) WARN — уровень детализации. Если ставить DEBUG то за час нагенерится не одна мегатонна логов. И добавляем префикс для того чтобы эти сообщения можно легко найти грепом (grep). Теперь рестартуем iptables и в логах системного демона (syslog-ng или syslog) или dmesg можем видеть такие строки:
May 21 19:40:18 arch kernel: INPUT DROP: IN=ppp0 OUT= MAC= SRC=212.220.101.106 DST=MyIP LEN=64 TOS=0x00 PREC=0x00
TTL=47 ID=45337 DF PROTO=TCP SPT=4800 DPT=445 WINDOW=53760 RES=0x00 SYN URGP=0 May 21 19:40:21 arch kernel: INPUT DROP: IN=ppp0 OUT= MAC= SRC=212.220.101.106 DST=MyIP LEN=64 TOS=0x00 PREC=0x00
TTL=47 ID=45656 DF PROTO=TCP SPT=4800 DPT=445 WINDOW=53760 RES=0x00 SYN URGP=0
Когда я посмотрел логи то был неприятно удивлен сколько же недокакеров и просто любопытного школоло в сети бродит. Например из вышеследующих логов видно что кто то ломился на 445 порт (Sharing service). Это вендовая служба общего доступа к файлам и папкам. Но у меня нет венды и службы такой тоже и порт этот закрыт извне. Кстати ip адрес этот тоже принадлежит Utel. Самые актуальные порты на которые долбится всякая нечисть это 23 (Telnet) , 445 (Sharing Service) и в диапазон 135-139.