Доброго дня форумчане!
Народ помогайте, в голове даже мысли стали работать по правилам iptables.
Итак, есть локальная сеть 192.168.2.0/24 и шлюз debian 192.168.2.1.
Шлюз имеет на своем борту:
eth0 - локальная сеть 192.168.2.0/24
eth1 - городская сеть 10.0.0.0/8
eth2 -ppp0 - Интернет с динамическим ип адресом
В локальной сети есть машина 192.168.2.10 с веб-сервером на порту 88. Также на этой машине настроен dyndns.
Подменяю адрес назначения
[console]-A PREROUTING -p tcp -m tcp -i ppp0 --dport 88 -j DNAT --to-destination 192.168.2.10:88[/console]
Работает, т.е. из Интернета адрес mydomen.dyndns.me открывается и все прекрасно работает.
Понятно что нужно сделать SNAT для внутри локальных пользователей и для самого шлюза.
На просторах Интернета , да и на этом форуме, данная проблема описана миллиард раз. Везде решение проблемы описано с использованием статического внешнего адреса, а в данном случае динамика. Ладно, была не была.
Пишу в nat'e
[console]-A OUTPUT -p tcp -d x.x.x.x --dport 88 -j DNAT --to-destination 192.168.2.10:88[/console]
работает, шлюз при команде
[console]w3m http://mydomen.dyndns.me[/console]
открывает страницу веб-сервера 192.168.2.10
x.x.x.x - динамический адрес, уже видел пару скриптов в Интернете как следить за состоянием адреса и его подмены в правиле в результате смены оного.
Теперь локальные пользователи
[console]-A POSTROUTING -p tcp -m tcp -d 192.168.2.10 --dport 88 -j SNAT --to-source 192.168.2.1:88[/console]
иии..... НЕ работает, из локальной сети набираю в браузере адрес http://mydomen.dyndns.me, в адресной строке браузера появляется внешний ип адрес и порт x.x.x.x:88 и все, страница не доступна.
filter FORWARD
:FORWARD ACCEPT [0:0]
-A FORWARD -d 192.168.2.0/24 -i ppp0 -o eth0 -j ACCEPT
-A FORWARD -d 192.168.2.0/24 -i eth1 -o eth0 -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -i eth0 -o ppp0 -j ACCEPT
-A FORWARD -s 192.168.2.0/24 -i eth0 -o eth1 -j ACCEPT
-A FORWARD -j DROP
Народ помогите, с меня меня печенки, пиво и миллиард тонн Магаданского снега(печенки по желанию) :)
LinuxForum.Fans
iptables POSTROUTING
Автор: jonnix
4 сообщений
1086 просмотров
SNAT и DNAT — взаимоисключающие вещи. Вам не нужен SNAT, раз вы DNAT сделали.НЕ работает
просто укажите дистанцию в DNAT'е на интерфейс, к которому у вас подключены локальные юзеры.
потому что для SNAT необходим статический адрес. Если его нет, то нужен DNAT.Везде решение проблемы описано с использованием статического внешнего адреса
http://www.opennet.ru/docs/RUS/iptables/Народ помогите, с меня меня печенки, пиво и миллиард тонн Магаданского снега(печенки по желанию)
там готовые примеры есть, кстати.
просто укажите дистанцию в DNAT'е на интерфейс, к которому у вас подключены локальные юзеры.
Спасибо огромное, готового решения и не ждал. Посидел, перечитал пару моментов в iptables, построил и сложил схему хождения пакетов в голове. Еще раз спасибо за наводку. С меня пенный напиток и как обещал свежайший снег с Колымы :) Добавил одно правило. Все работает.
Тема закрыта.
jonnix, тогда "спасибку" поставьте. Хотя лично мне всё равно, у меня их и так,как удурака фантиков *DANCE*
Войдите или зарегистрируйтесь, чтобы ответить.