Метка: iptables

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

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

    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
    
    <vyborov@blabla.ru>: 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)Code language: Bash (bash)

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

    Сначала смотрим начнём вести лог кто пользуется 25м портом шлюза

    iptables -A FORWARD -p tcp -m tcp -s 192.168.0.0/16 --dport 25 -j LOG --log-level debug --log-prefix "outgoing mail "Code language: Bash (bash)

    Теперь посмотрим кто будет нам светится.

    tail -f /var/log/syslog | grep outgoingCode language: Bash (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=0Code language: Bash (bash)

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

    Дальше на будущее можно поставить так
    Создаём цепочку

    iptables -N LOGDROP > /dev/null 2> /dev/null
    iptables -F LOGDROP
    iptables -A LOGDROP -j LOG --log-prefix "LOGDROP "
    iptables -A LOGDROP -j DROPCode language: Bash (bash)

    И направляем его в эту цепочку

    iptables -A FORWARD -p tcp -s 192.168.5.133 --dport 25 -j LOGDROPCode language: Bash (bash)
  • Удаление правил iptables по их номерам

    Смотрим список правил с номерами.

     iptables -L -t nat --line-numbers 

    Видим примерно следущее

     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

    Чтобы удалить нужное правило нужной цепочки —  Указываем цепочку и номер правила.

    iptables -t nat -D PREROUTING 3

    Вроде всё 🙂

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

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

    1 сохраняем правила в файл

    sudo iptables-save > /etc/iptables.up.rulesCode language: Bash (bash)

    Дальше в конец файла /etc/network/interfaces дописываем

    pre-up iptables-restore < /etc/iptables.up.rulesCode language: Bash (bash)

    Ребутемся и проверяем iptables -L

  • Iptables SNAT

    iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 1.2.3.4Code language: Bash (bash)

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

  • iptables nat + torrent

    iptables -A INPUT -p tcp --destination-port 6881:6999 -j ACCEPT
    iptables -A OUTPUT -p tcp --source-port 6881:6999 -j ACCEPTCode language: Bash (bash)