Архивы: iptables

как найти спаммера в LAN сети

Перестали уходить письма с почтового сервера с вот таким сообщением

[cc lang=”bash”]Subject: Undelivered Mail Returned to Sender

This is the mail system at host example.ru.

I’m sorry to have to inform you that your message could not
be delivered to one or more recipients. It’s attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The mail system

: host mail.blabla.ru[89.188.122.122] said: 554 5.7.1
Service unavailable; Client host [111.111.176.99] blocked using
cbl.abuseat.org; Blocked – see
http://cbl.abuseat.org/lookup.cgi?ip=111.111.176.99 (in reply to RCPT TO
command)[/cc]

Сеть за нашим натом большая, и вполне возможно кто-то подхватил троян.
Как найти кто?

Сначала смотрим начнём вести лог кто пользуется 25м портом шлюза
[cc lang=”bash”]iptables -A FORWARD -p tcp -m tcp -s 192.168.0.0/16 –dport 25 -j LOG –log-level debug –log-prefix “outgoing mail “[/cc]

Теперь посмотрим кто будет нам светится.
[cc lang=”bash”]tail -f /var/log/syslog | grep outgoing[/cc]

Долго ждать не пришлось, супермега активность идёт от.[cc lang=”bash”]
Nov 12 09:38:57 kernel: [1502790.410756] outgoing mail IN=eth0 OUT=eth1 SRC=192.168.5.133 DST=205.188.186.137 LEN=54 TOS=0x00 PREC=0x00 TTL=127 ID=47636 DF PROTO=TCP SPT=4779 DPT=25 WINDOW=64886 RES=0x00 ACK PSH URGP=0
Nov 12 09:38:57 kernel: [1502790.607265] outgoing mail IN=eth0 OUT=eth1 SRC=192.168.5.133 DST=205.188.186.137 LEN=58 TOS=0x00 PREC=0x00 TTL=127 ID=47671 DF PROTO=TCP SPT=4779 DPT=25 WINDOW=64868 RES=0x00 ACK PSH URGP=0
Nov 12 09:38:57 kernel: [1502790.833908] outgoing mail IN=eth0 OUT=eth1 SRC=192.168.5.133 DST=205.188.186.137 LEN=70 TOS=0x00 PREC=0x00 TTL=127 ID=47706 DF PROTO=TCP SPT=4779 DPT=25 WINDOW=64804 RES=0x00 ACK PSH URGP=0[/cc]

идём лечим комп от вирусов.

Дальше на будущее можно поставить так
Создаём цепочку
[cc lang=”bash”]
iptables -N LOGDROP > /dev/null 2> /dev/null
iptables -F LOGDROP
iptables -A LOGDROP -j LOG –log-prefix “LOGDROP ”
iptables -A LOGDROP -j DROP[/cc]

И направляем его в эту цепочку
[cc lang=”bash”]iptables -A FORWARD -p tcp -s 192.168.5.133 –dport 25 -j LOGDROP[/cc]

Удаление правил iptables по их номерам

Смотрим список правил с номерами.
[cc] iptables -L -t nat –line-numbers [/cc]
Видим примерно следущее
[cc] Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination
1 DNAT       udp  —  anywhere             proxy               udp dpt:475 to:192.168.100.6:475
2 DNAT       tcp  —  anywhere             proxy               tcp dpt:3389 to:192.168.100.202:3389
3 DNAT       tcp  —  anywhere             anywhere            tcp dpt:www to:192.168.100.192:3128

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination
1 MASQUERADE  all  —  192.168.0.0/16       anywhere
2 SNAT       tcp  —  anywhere             192.168.100.202     tcp dpt:3389 to:91.196.161.26

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination[/cc]

Чтобы удалить нужное правило нужной цепочки –  Указываем цепочку и номер правила.
[cc]iptables -t nat -D PREROUTING 3[/cc]
Вроде всё 🙂

iptables Автозагрузка

И так есть у нас вбитые правила и мы хотим чтоб они при рестарте сами вгружались.

1 сохраняем правила в файл
[cc lang=”bash”]sudo iptables-save > /etc/iptables.up.rules[/cc]
Дальше в конец файла /etc/network/interfaces дописываем
[cc lang=”bash”]pre-up iptables-restore < /etc/iptables.up.rules[/cc] Ребутемся и проверяем iptables -L

Iptables SNAT

[cc lang=”bash”]iptables -t nat -A POSTROUTING -o eth1 -j SNAT –to 1.2.3.4[/cc]

eth1 – внешний интерфейс сервера
1.2.3.4 – внешний ИП сервера

iptables nat + torrent

[cc lang=”bash”]
iptables -A INPUT -p tcp –destination-port 6881:6999 -j ACCEPT
iptables -A OUTPUT -p tcp –source-port 6881:6999 -j ACCEPT
[/cc]