LINUX.ORG.RU

Загадочная проблема IPtables?!?!


0

0

Есть два компа, один имеет выход в мир (внешний EXT_IP1, внутренний INT_IP1), другой нет (внутренний INT_IP2). Сделал переброску портов: с 8000 на 80 по принципу:

-A PREROUTING -d EXT_IP1 -p tcp -m tcp --dport 8000 -j DNAT --to-destination INT_IP2:80

-A POSTROUTING -d INT_IP2 -p tcp -m tcp --dport 80 -j SNAT --to-source INT_IP1

Переброска 8000 (на внешней) <--> 80 (на внутренней)

Самое интересное что оно работало! А вот потом через некоторое время, не с того не с сего перестало. Может сбой, может после перезагрузки, непонятно...

А еще более интереснее то, что если с того сервера который имеет выход в мир набрать: "telnet EXT_IP1 8000" (его же внешний адрес) - то все работает! А вот из мира эту же команду - не получается :-( Правил в iptables блокирующих этот порт нету. Тем более все ж работало... а потом загадочно перестало :)

Может какой-то сервис не подгружаю? Где копать?

anonymous

попробуй так
$IPTABLES -t nat -A PREROUTING -p tcp -i ${EXT_IF} -d ${EXT_IP1} --dport 8000 -j DNAT --to-destination ${INT_IP1}:80

$IPTABLES -A FORWARD -i ${EXT_IF} -d ${INT_IP1} -p tcp --dport 80 -s $ANY -j ACCEPT

$IPTABLES -A FORWARD -i ${INT_IF} -s ${INT_IP1} -p tcp --sport 80 -d $ANY -j ACCEPT

jin
()
Ответ на: комментарий от jin

Теперь осталось уточнить что такое EXT_IF, INT_IF, EXT_IP1, INT_IP1

Если учитывать то, что у меня только 1 внешний и два внутренних

anonymous
()
Ответ на: комментарий от Zmacs

Так тоже не работает... почему-то работает только через xinetd ;( А раньше работало и через IPtables ;((((

anonymous
()

tcpdump Вам поможет. Посмотрите куда и как идут пакеты. Похоже у Вас где-то форвардинга нет.

qwe ★★★
()
Ответ на: комментарий от anonymous

>... почему-то работает только через xinetd

При работе через xinetd пакеты проходят через таблицы PREROUTING->INPUT->OUTPUT->POSTROUTING, в отличие от предыдущего случая PREROUTING->FORWARD->POSTROUTING.

qwe ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.