LINUX.ORG.RU
решено ФорумAdmin

правила iptables

 


0

2



Помогите разобраться
Есть сервер с двумя интерфейсами eth0 - 192.168.1.3 (интернет) и wlan0 - 192.168.2.1 (через wifi раздает в адреса в локальную сеть по dhcp). В локальной сети есть с клиентского ПК отправляется запрос в сеть интернет (к примеру http://www.google.com). На входе интерфейса wlan0 требуется перехватить пакет и направить его адрес этого самого сервера.
Сделал вот такую штуку, и получил почти то что хотелось:
iptables -A allowed -p TCP --syn -j ACCEPT
iptables -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A allowed -p TCP -j DROP
iptables -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
iptables -A INPUT -p ALL -i lo -j ACCEPT
iptables -A INPUT -p TCP -i wlan0 -s 192.168.2.0/24 --dport 80 -j ACCEPT
iptables -A FORWARD -i wlan0 -j ACCEPT
iptables -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -p ALL -s 192.168.2.1 -j ACCEPT
iptables -A OUTPUT -p ALL -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:80
iptables -t nat -A OUTPUT -o wlan0 -p tcp -m tcp --sport 80 -j DNAT --to-destination 192.168.2.1:80
ну и еще немного правил (есть еще цепочки bad_tcp и портов побольше) Итог такой: пытаюсь отправить с клиента в сеть интернет запрос http://www.google.com получаю сайт на адресе 192.168.2.1:80 Но если в строке адреса добавить что-то аля http://www.google.com/maps на клиенте в браузере вижу не существующую страницу на моем локальном сайте, т.е. на клиент возвращается адрес сервера и этот же /maps (которого естественно на моем сайте нет). Как мне на выходе обратно на wlan0 отдать не http://www.google.com/maps а имя моего сервера?

Ответ на: комментарий от odm1n

Есть проект wifidog сейчас это autopuppy они умеют перенаправлять любой запрос прошедший через шлюз на домашнюю страницу, указанную в конфигах auth сервера того же wifidog.
Так вот это реализовано на iptables. Разобраться в огромном количестве цепочек и правил которые создается при запуске wifidog шлюза у меня не получилось. Может кто-то решал уже подобные задачи?

jaarrood13 ()

В деле этом не легком, друг мой, помочь тебе сквид должен. Но осторожен должен ты быть - прозрачное проксирование очень опасно.

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

к сожалению, прозрачное проксирование не работает с https трафиком :(. А некоторые на гугл очень даже через https ходят.

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

Сайт гугла я использовал только в качестве примера.
Дело в том что с данной схемой которая у меня построена я при обращение к любому узлу получаю то что описано в /site-available/default откуда в свою очередь работает виртуальный хост. При этом на клиенте в браузере отображается именно тот путь куда был сделан изначальный запрос.
В итоге хочется на клиенте видеть имя локального сервера при любом запросе через шлюз.

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

некомильфо для каждого https-сервера выслушивать предупреждения и исключения добавлять :(

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

как вариант - веб-сервер в ответ на любой запрос делает редирект на определённую страничку себя, которая редирект не делает, зато пишется в адресной строке?

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

осиль lorcode

Глупости не говори! Зачем ему lorcode? Формат вполне читаемый.

papay ★★★ ()
Последнее исправление: papay (всего исправлений: 1)
Ответ на: комментарий от jaarrood13

указанную в конфигах auth сервера того же wifidog.

Так вот это реализовано на iptables.

Вы в этом уверены? Может это сервер выступает в роли proxy и запрос проходит через него?

Разобраться в огромном количестве цепочек и правил которые создается при запуске wifidog шлюза у меня не получилось.

Попробуйте ещё раз, умение разобратся с правилами iptables полезный навык.

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

Похоже действительно придется шлюз вернуть и разбираться как он работает.

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