204: шибка - invalid argument в IPTables.

12 сообщений / 0 new
Последнее сообщение
Гость
204: шибка - invalid argument в IPTables.

Привет парни!!!
Задача такая, перенаправить пользователей внутренней сети 172.16.0.0 (eth0) в ДМЗ сеть на Веб сервер 192.168.1.0 (eth1) , в iptables есть правило
iptables -t nat -A PREROUTING -p tcp -i $eth0 -d $Внешний АЙ ПИ моего Веб сервера --dport 80 -j DNAT --to-destination 192.168.1.5

Все отлично работает, то есть и из инета сервак виден (то же есть соответствующие правила), и из внутренней сети. Другими словами слушаются все запросы на локальном интерфейсе eth0 и если есть обращение на мой Веб сервер 192.168.1.5, то переадресация идет в ДМЗ (это при выключенном сквиде, или если в браузере убрать его из прокси).
Но дальше проблема на шлюзе работает так же и squid, который слушает порт 3128, есть аутентификация в сквиде, так что прозрачным я его не могу сделать, соответственно я рассуждал так, хрен с тобой, я тебя во входящей цепочке не могу поймать (пакет), дам пакету дойти до сквида, сделать ему все дела, а вот когда сквид начнет формировать запрос к Веб, а пошлет то он его в цепочку таблицы nat - OUTPUT, тут то я тебя и поймаю, и переадресую в ДМЗ, но облом, выдается ошибка invalid argument.

Правило следующее:
iptables -t nat -A OUTPUT -d $внешний ай пи своего шлюзового сервера -p tcp --dport 80 -j DNAT --to-destination $внутренни ай пи своего Веб сервера

То есть любое действие после -j кроме ACCES и DROP в цепочке OUTPUT вызвает такую ошибку.

Помогите, я не знаю в чем дело !!!!!!!!!!!!!!!!!!!

Vitls
Аватар пользователя Vitls
Не в сети
Зарегистрирован: 21/09/2010

Прыжки на SNATили DNAT делаются в цепях PREROUTING или POSTROUTING

Дело не в том как болезнь вылечить.
Дело в том как других заразить.

frug (не проверено)

может быть не все функции ядра включены ? ( это первое что мне пришло в голову )

204 (не проверено)

Уважаемый Vitls, DNAT очень даже делается в цепочке OUTPUT таблицы nat вот в чем вся беда, а frug тебе спасибки, возможно, вот только что?

vovan (не проверено)

Для того, чтобы делать DNAT в цепочке OUTPUT, необходимо включить при сборке ядра опцию CONFIG_IP_NF_NAT_LOCAL (NAT of local connections)

204 (не проверено)

Спасибо за поддержку, попробую ядро по новее поставить, а CONFIG_IP_NF_NAT_LOCAL у меня включена....

vovan (не проверено)

Возможно, iptables собран не под твоё ядро... а вообще надо бы в вопросе указывать дистрибутив, ядро, откуда ядро (из дистрибутива или самосборное).

204 (не проверено)

дистрибутив RedHat9, ядро 2.4.20-31.9) в Networking options в IP:Netfilter Configuration стоит разрешение на NAT of local connection
iptables версии 1.2.7а-2

204 (не проверено)

все из РПМ-ов

vovan (не проверено)

У меня работала подобная конструкция, правда, я ещё указывал '-o ppp0', то есть интерфейс, с которого пакет должен был бы уйти (хотя OUTPUT в nat отрабатывает до принятия решения о маршрутизации, но правило работало). Когда у меня такой финт первый раз не получился, дело было именно в CONFIG_IP_NF_NAT_LOCAL, в твоём случае - х.з., вроде всё правильно написано, должно работать...

vovan (не проверено)

только что попробовал такое же правило, как у тебя - работает (правда, RedHat 7.3, нет под рукой 9-ки с ядром из RPM)...

pauelstv (не проверено)

попробуй пересобрать клиентскую часть iptables. У меня в gentoo это постоянно - после пересборки ядра таблес работает - а вот новые правила в цепочки добавлять отказывается. у меня лечистя так: #emerge iptables :-)

RSS-материал