The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
iptables не натит трафик и не пишет в лог, !*! Arifolth, 14-Ноя-05, 13:13  [смотреть все]
Хай All
двухинтерфейсовая линуховая машинка, один "внешний" один соответственно "внутренний"
проблема следующая: есть некий набор правил прокидывающий соединения в серую сетку.
===
#! /bin/sh
ip=192.168.0.3
echo 0 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -F INPUT
/sbin/iptables -F OUTPUT
/sbin/iptables -F FORWARD
/sbin/iptables -F -t nat
/sbin/iptables -F -t filter
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD DROP
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/eth1/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/lo/rp_filter
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -A INPUT -i eth1 -p ICMP --icmp-type echo-request -d 10.0.2.1 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -j ACCEPT

/sbin/iptables -I INPUT 1 -i eth1 -p TCP -m state --state NEW,RELATED,ESTABLISHED -d 10.0.2.1  --dport 8202:8202 -j LOG
/sbin/iptables -I INPUT 1 -i eth1 -p TCP -m state --state NEW,RELATED,ESTABLISHED -d 10.0.2.1  --dport 8202:8202 -j ACCEPT

/sbin/iptables -I FORWARD 1 -i eth1 -p TCP -s ${ip} -j LOG
/sbin/iptables -I FORWARD 1 -i eth1 -p TCP -s ${ip} -j ACCEPT

/sbin/iptables -I FORWARD 1 -i eth0 -p TCP -s ${ip} -j LOG
/sbin/iptables -I FORWARD 1 -i eth0 -p TCP -s ${ip} -j ACCEPT

/sbin/iptables -t nat -I POSTROUTING 1 -o eth1 -p TCP -s ${ip} -j LOG
/sbin/iptables -t nat -I POSTROUTING 1 -o eth1 -p TCP -s ${ip} -j SNAT --to-source 10.0.2.1

/sbin/iptables -t nat -I PREROUTING 1 -p TCP -i eth1  --dport 8202:8202 -d 10.0.2.1 -j LOG
/sbin/iptables -t nat -I PREROUTING 1 -p TCP -i eth1  --dport 8202:8202 -d 10.0.2.1 -j DNAT --to-destination ${ip}:8202-8202

/sbin/iptables -I FORWARD 1 -i eth1 -p TCP  -d ${ip} -j LOG
/sbin/iptables -I FORWARD 1 -i eth1 -p TCP  -d ${ip} -j ACCEPT

/sbin/iptables -I FORWARD 1 -i eth0 -p TCP  -d ${ip} -j LOG
/sbin/iptables -I FORWARD 1 -i eth0 -p TCP  -d ${ip} -j ACCEPT

exit 0
===
если указать комп (.0.3) в серой сетке всё работает. но если указать внутренний адрес ентого "шлюза" (.0.1) - пакеты словно в чёрную дыру попадают: в соответствии с выводом tcpdump`а
на внешнем интерфейсе пакет приходит и сё. пипец. тишина
отладить набор правил оказалось невозможным - потому что iptables если пакет должен натится/де натится в лог ничего не пишет.
а вот если влепить в начале какоенить привало типа
/sbin/iptables -I INPUT 1 -i eth1 -d 10.0.2.1 -j LOG
и ткнуться например по tcp в какой нить порт (номер которого не совпадает с портом который прокидываем) - тогда в лог записывает. мистика какаято
я знаю что для перенаправления портов есть REDIRECT но мне нужно на др интерфейс перенаправить трафик а соответственно редирект для этого не катит.
почему трафик не перенаправляется на др интерфейс? почему в лог не пишет? и как его заставить всё вышеперечисленное сделать?
заранее благодарен за ответы и за то что дочитали до конца


  • iptables не натит трафик и не пишет в лог, !*! Martin2, 14:43 , 14-Ноя-05 (1)
    >Хай All
    >двухинтерфейсовая линуховая машинка, один "внешний" один соответственно "внутренний"
    >проблема следующая: есть некий набор правил прокидывающий соединения в серую сетку.
    >===
    >#! /bin/sh
    >ip=192.168.0.3
    >echo 0 > /proc/sys/net/ipv4/ip_forward
    >/sbin/iptables -F INPUT
    >/sbin/iptables -F OUTPUT
    >/sbin/iptables -F FORWARD
    >/sbin/iptables -F -t nat
    >/sbin/iptables -F -t filter
    >/sbin/iptables -P INPUT DROP
    >/sbin/iptables -P OUTPUT ACCEPT
    >/sbin/iptables -P FORWARD DROP
    >echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
    >echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
    >echo 1 > /proc/sys/net/ipv4/conf/eth0/rp_filter
    >echo 1 > /proc/sys/net/ipv4/conf/eth1/rp_filter
    >echo 1 > /proc/sys/net/ipv4/conf/lo/rp_filter
    >echo 1 > /proc/sys/net/ipv4/ip_forward
    >/sbin/iptables -A INPUT -i eth1 -p ICMP --icmp-type echo-request -d 10.0.2.1 -j
    >ACCEPT
    >/sbin/iptables -A INPUT -i eth0 -j ACCEPT
    >
    >/sbin/iptables -I INPUT 1 -i eth1 -p TCP -m state --state NEW,RELATED,ESTABLISHED
    >-d 10.0.2.1  --dport 8202:8202 -j LOG
    >/sbin/iptables -I INPUT 1 -i eth1 -p TCP -m state --state NEW,RELATED,ESTABLISHED
    >-d 10.0.2.1  --dport 8202:8202 -j ACCEPT
    >
    >/sbin/iptables -I FORWARD 1 -i eth1 -p TCP -s ${ip} -j LOG
    >
    >/sbin/iptables -I FORWARD 1 -i eth1 -p TCP -s ${ip} -j ACCEPT
    >
    >
    >/sbin/iptables -I FORWARD 1 -i eth0 -p TCP -s ${ip} -j LOG
    >
    >/sbin/iptables -I FORWARD 1 -i eth0 -p TCP -s ${ip} -j ACCEPT
    >
    >
    >/sbin/iptables -t nat -I POSTROUTING 1 -o eth1 -p TCP -s ${ip}
    >-j LOG
    >/sbin/iptables -t nat -I POSTROUTING 1 -o eth1 -p TCP -s ${ip}
    >-j SNAT --to-source 10.0.2.1
    >
    >/sbin/iptables -t nat -I PREROUTING 1 -p TCP -i eth1  --dport
    >8202:8202 -d 10.0.2.1 -j LOG
    >/sbin/iptables -t nat -I PREROUTING 1 -p TCP -i eth1  --dport
    >8202:8202 -d 10.0.2.1 -j DNAT --to-destination ${ip}:8202-8202
    >
    >/sbin/iptables -I FORWARD 1 -i eth1 -p TCP  -d ${ip} -j
    >LOG
    >/sbin/iptables -I FORWARD 1 -i eth1 -p TCP  -d ${ip} -j
    >ACCEPT
    >
    >/sbin/iptables -I FORWARD 1 -i eth0 -p TCP  -d ${ip} -j
    >LOG
    >/sbin/iptables -I FORWARD 1 -i eth0 -p TCP  -d ${ip} -j
    >ACCEPT
    >
    >exit 0
    >===
    >если указать комп (.0.3) в серой сетке всё работает. но если указать
    >внутренний адрес ентого "шлюза" (.0.1) - пакеты словно в чёрную дыру
    >попадают: в соответствии с выводом tcpdump`а
    >на внешнем интерфейсе пакет приходит и сё. пипец. тишина
    >отладить набор правил оказалось невозможным - потому что iptables если пакет должен
    >натится/де натится в лог ничего не пишет.
    >а вот если влепить в начале какоенить привало типа
    >/sbin/iptables -I INPUT 1 -i eth1 -d 10.0.2.1 -j LOG
    >и ткнуться например по tcp в какой нить порт (номер которого не
    >совпадает с портом который прокидываем) - тогда в лог записывает. мистика
    >какаято
    >я знаю что для перенаправления портов есть REDIRECT но мне нужно на
    >др интерфейс перенаправить трафик а соответственно редирект для этого не катит.
    >
    >почему трафик не перенаправляется на др интерфейс? почему в лог не пишет?
    >и как его заставить всё вышеперечисленное сделать?
    >заранее благодарен за ответы и за то что дочитали до конца

    И еще: --dport 8202:8202  - это вот зачем? --dport 8202 оставь - и все!
    Если не поможет, то посмотри че за версия, и просмотри KNOWN BUGS для нее. Попробуй версию сменить.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру