Почему то никак не хочет работать проброс портов.
Мне нужно, чтобы HTTP запросы на 8080 уходили дальше на веб-сервер в локальной сети на порт 80. Для этого в цепочке PREROUTING таблицы NAT добавил правило:iptables -t nat -A PREROUTING -p tcp -d $MY_EXTRN_IP_ADDR --dport 8080 -j DNAT --to-destination 172.16.172.237:80
В цепочке FORWARD-инга таблицы фильтра политика по умолчанию ACCEPT.
И ничего не пашет. Самое интересное, что пакеты вообще не попадают на обработку в
PREROUTING, т.е. например если попытаться соединиться с сервером (на котором и выполняется проброс) - вот так: telnet $my_extrn_ip 8080 - то пакет сразу попадает в цепочку INPUT фильтра - каким чудом это происходит вообще не понятно.
(форвардинг разрещён).
>[оверквотинг удален]
>
>В цепочке FORWARD-инга таблицы фильтра политика по умолчанию ACCEPT.
>
>И ничего не пашет. Самое интересное, что пакеты вообще не попадают на
> обработку в
>PREROUTING, т.е. например если попытаться соединиться с сервером (на котором
>и выполняется проброс) - вот так: telnet $my_extrn_ip 8080 - то
>пакет сразу попадает в цепочку INPUT фильтра - каким чудом
>это происходит вообще не понятно.
>(форвардинг разрещён).покажите вывод iptables-save
В таблице фильтра, во всех цепочках политика по умолчанию ACCEPT
В цепочках OUTPUT и FORWARD - нет ни одного правила.
В цепочке INPUT есть пара правил:iptables -A INPUT -p ALL -s 118.168.0.0/16 -j LOG --log-level info
iptables -A INPUT -p ALL -s 118.168.0.0/16 -j DROPВ нате тоже политика по умолчанию ACCEPT везде:
В нате построутинг:
iptables -t nat -A POSTROUTING -p ALL -s 172.16.172.237 -j SNAT --to-source $MY_EXT_IPИ в нате прероутинге:
iptables -t nat -A PREROUTING -p tcp -d $MY_EXTRN_IP_ADDR --dport 8080 -j DNAT --to-destination 172.16.172.237:80В таблице MANGLE политика по умолчанию везде ACCEPT.
Правил никаких нет - все цепочки пустые.
>[оверквотинг удален]
>В нате построутинг:
>iptables -t nat -A POSTROUTING -p ALL -s 172.16.172.237 -j SNAT --to-source
>$MY_EXT_IP
>
>И в нате прероутинге:
>iptables -t nat -A PREROUTING -p tcp -d $MY_EXTRN_IP_ADDR --dport 8080 -j
>DNAT --to-destination 172.16.172.237:80
>
>В таблице MANGLE политика по умолчанию везде ACCEPT.
>Правил никаких нет - все цепочки пустые.про то что модули загружены , ядро и iptables не пересобирали можно не спрашивать?
>В таблице фильтра, во всех цепочках политика по умолчанию ACCEPTА зачем открывать? Ерунда какая-то...
>В цепочках OUTPUT и FORWARD - нет ни одного правила.
>В цепочке INPUT есть пара правил:
>
>iptables -A INPUT -p ALL -s 118.168.0.0/16 -j LOG --log-level info
>iptables -A INPUT -p ALL -s 118.168.0.0/16 -j DROPИ Вы говорите, что у вас всё разрешено? Ну да ладно..
>[оверквотинг удален]
>В нате построутинг:
>iptables -t nat -A POSTROUTING -p ALL -s 172.16.172.237 -j SNAT --to-source
>$MY_EXT_IP
>
>И в нате прероутинге:
>iptables -t nat -A PREROUTING -p tcp -d $MY_EXTRN_IP_ADDR --dport 8080 -j
>DNAT --to-destination 172.16.172.237:80
>
>В таблице MANGLE политика по умолчанию везде ACCEPT.
>Правил никаких нет - все цепочки пустые.Вот Вам пример рабочей связки проброса портов, в Iptables Tutorial неполная информация,
поэтому ВСЕГДА нужно делать тестовый файл фильтра, где указано логирование во всех цепочках, чтобы посмотреть что и куда ходит. Это Вам на будущее.
Ну и сами правила, можете сравнить со своими примерами:
EXT_IF="eth1" # Ваш внешний интерфейс
INT_IF="eth0" # Ваш внутренний интерфейс
EXT_IP="222.222.222.222" # Ваш внешний IP
INT_IP="111.111.111.111" # Ваш внутренний IP
LOCAL="172.16.172.237" # Тот, кому разрешено подключаться (можете поставить всех)
SOURCE="112.112.112.112" # Адрес, куда будет проброс соединения
D_PORT="80" # Порт назначения соединения
IN_PORT="8080" # Порт, где идёт приём соединения$IPTABLES -A INPUT -i $EXT_IF -s $SOURCE -d $EXT_IP -p TCP --dport $IN_PORT -j ACCEPT
$IPTABLES -A INPUT -i $EXT_IF -s $SOURCE -d $EXT_IP -p TCP --dport $D_PORT -j ACCEPT
$IPTABLES -A FORWARD -i $INT_IF -o $EXT_IF -s $LOCAL -d $SOURCE -p TCP --sport $D_PORT -j ACCEPT
$IPTABLES -A FORWARD -i $EXT_IF -o $INT_IF -s $SOURCE -d $LOCAL -p TCP --dport $D_PORT -j ACCEPT
$IPTABLES -A FORWARD -i $INT_IF -o $EXT_IF -s $LOCAL -d $SOURCE -p TCP --sport $IN_PORT -j ACCEPT
$IPTABLES -A FORWARD -i $EXT_IF -o $INT_IF -s $SOURCE -d $LOCAL -p TCP --dport $IN_PORT -j ACCEPT
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s $SOURCE -d $EXT_IP -p TCP --dport $IN_PORT -m limit --limit 1/minute --limit-burst 2 -j LOG --log-prefix " CONNECT TO ME "
$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s $SOURCE -d $EXT_IP -p TCP --dport $IN_PORT -j DNAT --to-destination $LOCAL:$D_PORT
$IPTABLES -t nat -A POSTROUTING -o $INT_IF -s $SOURCE -d $LOCAL -p TCP --dport $D_PORT -j SNAT --to-source $INT_IP