URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 81413
[ Назад ]

Исходное сообщение
"Опять iptables"

Отправлено asidko , 31-Июл-08 06:58 

Есть гейт (linux) с интерфейсами:
eth0 - глобальнвя сеть - xxx.xxx.xxx.13
eth1 - локальная сеть - 192.168.0.x
В локальной сети есть комп VPN server (windows) нужно прокинуть pptp+gre с любого ip из глобальной сети в локальную

Делаю вот так:

/usr/sbin/iptables -t nat -A PREROUTING --dst xxx.xxx.xxx.13 -p tcp --dport 1723 -j DNAT --to-destination 192.168.0.201
/usr/sbin/iptables -A FORWARD -i eth1 --dst 192.168.0.201 -p tcp --dport 1723 -j ACCEPT
/usr/sbin/iptables -t nat -A PREROUTING -i eth1 -p gre -j DNAT --to-destination 192.168.0.201

но получаю вот это:
Jul 30 22:36:04 hydra kernel: firewall: IN=eth0 OUT=eth1 SRC=xxx.xxx.xxx.10 DST=192.168.0.201 LEN=48 TOS=0x00 PREC=0x00 TTL=126 ID=51916 DF PROTO=TCP SPT=4181 DPT=1723 WINDOW=65535 RES=0x00 SYN URGP=0

С xxx.xxx.xxx.10 я "прихожу".
Если же разрещаю любые запросы с Ip xxx.xxx.xxx.10 (для отладки) то корекшн на порт 1723 проходит, но соединение VPN не устанавливается на этапе проверки имени и пароля (режется gre???)

Подскажите что не верно. Вкрай задолбался.

Спасибо, Андрей.


Содержание

Сообщения в этом обсуждении
"Опять iptables"
Отправлено PavelR , 31-Июл-08 08:31 
Посмотри остальные правила.

"Опять iptables"
Отправлено Gennadi , 31-Июл-08 10:48 
>[оверквотинг удален]
>
>
>С xxx.xxx.xxx.10 я "прихожу".
>Если же разрещаю любые запросы с Ip xxx.xxx.xxx.10 (для отладки) то корекшн
>на порт 1723 проходит, но соединение VPN не устанавливается на этапе
>проверки имени и пароля (режется gre???)
>
>Подскажите что не верно. Вкрай задолбался.
>
>Спасибо, Андрей.

IF_DEV=eth1
vpnserver="192.168.0.201"
/sbin/iptables -N pptp
/sbin/iptables -A pptp -p tcp --destination-port 1723 --dst $vpnserver -j ACCEPT
/sbin/iptables -A pptp -p 47 --dst $vpnserver -j ACCEPT
/sbin/iptables -I FORWARD -j pptp
/sbin/iptables -t nat -N pptp
/sbin/iptables -t nat -A pptp -i $IF_DEV -p tcp --dport 1723 -j DNAT --to $vpnserver:1723
/sbin/iptables -t nat -A pptp -i $IF_DEV -p 47 -j DNAT --to $vpnserver
/sbin/iptables -t nat -A PREROUTING -j pptp



"Опять iptables"
Отправлено Gennadi , 31-Июл-08 11:00 
IF_DEV=eth0

"Опять iptables"
Отправлено asidko , 31-Июл-08 18:00 
>IF_DEV=eth0

Спасибо Геннадий попробуюсегодня вечером.
Одно уточнение.
if_DEV=eth0 или eth1?

На каком интерфейсе мне нужно строить правила? На глобальном eth0 или локальном eth1

Андрей.


"Опять iptables"
Отправлено asidko , 01-Авг-08 17:09 
>[оверквотинг удален]
>/sbin/iptables -N pptp
>/sbin/iptables -A pptp -p tcp --destination-port 1723 --dst $vpnserver -j ACCEPT
>/sbin/iptables -A pptp -p 47 --dst $vpnserver -j ACCEPT
>/sbin/iptables -I FORWARD -j pptp
>/sbin/iptables -t nat -N pptp
>/sbin/iptables -t nat -A pptp -i $IF_DEV -p tcp --dport 1723 -j
>DNAT --to $vpnserver:1723
>/sbin/iptables -t nat -A pptp -i $IF_DEV -p 47 -j DNAT --to
>$vpnserver
>/sbin/iptables -t nat -A PREROUTING -j pptp

Спасибо Геннадий, все получилось.


"И опять firehol..."
Отправлено Andrey Mitrofanov , 31-Июл-08 20:35 
>eth0 - глобальнвя сеть - xxx.xxx.xxx.13
>/usr/sbin/iptables -A FORWARD -i eth1 --dst 192.168.0.201 -p tcp --dport 1723 -j

eth1 в качестве "-i" не смущает?...

>на порт 1723 проходит, но соединение VPN не устанавливается на этапе
>проверки имени и пароля (режется gre???)

В FORWARD нет разрешающего правила для "-p gre"?

>Подскажите что не верно. Вкрай задолбался.
>Спасибо, Андрей.

Проще надо, проще. %-) Пример firehol.conf:
version 5
    dnat to 192.168.0.201 inface eth0 proto tcp dport 1723
    dnat to 192.168.0.201 inface eth0 proto gre

router 2vpn inface eth0 dst 192.168.0.201
    server "pptp GRE" accept

Сгенерённые правила с-под этой конфигурации (в 6-8 раз длиннее) выглядят _примерно_ так:

-N out_2vpn_GRE_s2
-A out_2vpn_GRE_s2 -p 47 -m state --state ESTABLISHED -j ACCEPT
-N in_2vpn_GRE_s2
-A in_2vpn_GRE_s2 -p 47 -m state --state NEW\,ESTABLISHED -j ACCEPT
-N out_2vpn_pptp_s1
-A out_2vpn_pptp_s1 -p tcp --sport 1723 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
-A out_2vpn_pptp_s1 -p 47 -j ACCEPT
-N in_2vpn_pptp_s1
-A in_2vpn_pptp_s1 -p tcp --sport 1024:65535 --dport 1723 -m state --state NEW\,ESTABLISHED -j ACCEPT
-A in_2vpn_pptp_s1 -p 47 -j ACCEPT
-N out_2vpn
-A out_2vpn -j out_2vpn_pptp_s1
-A out_2vpn -j out_2vpn_GRE_s2
-A out_2vpn -m state --state RELATED -j ACCEPT
-N in_2vpn
-A in_2vpn -j in_2vpn_pptp_s1
-A in_2vpn -j in_2vpn_GRE_s2
-A in_2vpn -m state --state RELATED -j ACCEPT
-A FORWARD -i eth0 -d 192.168.0.201 -j in_2vpn
-A FORWARD -o eth0 -s 192.168.0.201 -j out_2vpn
-t nat -N nat.1
-t nat -A PREROUTING -i eth0 -p tcp --dport 1723 -j nat.1
-t nat -A nat.1 -p tcp -j DNAT --to-destination 192.168.0.201
-t nat -N nat.2
-t nat -A PREROUTING -i eth0 -p gre -j nat.2
-t nat -A nat.2 -p gre -j DNAT --to-destination 192.168.0.201

+

/sbin/sysctl -w net.ipv4.ip_forward=1


"И опять firehol..."
Отправлено PavelR , 01-Авг-08 08:07 

ну и нафиг генераторы которые генерят правил в десяток раз больше ?


"комп должен работать -- у него голова большая"
Отправлено Andrey Mitrofanov , 01-Авг-08 12:29 
>ну и нафиг генераторы которые генерят правил в десяток раз больше ?

Не поверишь, так _проще_. Посмотри на основной firehol.conf -- пять _коротеньких_ строчек с кепкой. ((BTW, я не сказал, что правила я руками делаю -- на "показать" в форуме, а в "боевых" системах у меня в "автозапуске" стоит сам firehol с "правильным" конфигом? :) И на [низкоуровневые] правила я не смотрю, когда "всё работает"(тм).))

Сравни с _любым_ самописным скриптом-файерволом на шеле многократно вызывающим $IPTABLES. Обрати внимание, что firehol создаёт stateful набор правил, что вряд ли делает (осиливает?) хотябы 1 из 10 писателей-"ассемблеристов" от /sbin/iptables. Потом окинь взглядом ландшафт форумов здесь с вопросами "я тут... iptables... скрипт... Оцените, чего я сделал не так? И почему добавляю одну строчку -- и не работает? И вообще не работает... :`( ни разу!"

Если тебя смущает "качество кода": 1) _не_ факт, что этот вариант вообще _медленнее_ или чем-то хуже; 2) генерацией _кода_ должен заниматься компьютер (~ "ты за распределением регистров CPU при генерации кода gcc _не_следишь_ же при кажодм make??!").

Кстати, из системных требований - bash и "обычный набор" шел-утилит (coreutils, sed, ещё какие-то мелочи). Ну, iptables само собой. "Компилятор" на баше тормозит, конечно, но для меня и это небольшая плата за существенное упощение проблемы.
~ http://www.opennet.me/openforum/vsluhforumID10/3881.html#2
~ http://www.opennet.me/openforum/vsluhforumID10/3880.html#7
~ http://www.opennet.me/openforum/vsluhforumID10/3756.html#3
и т.д.

При этом я не говорю, что _знание_ iptables не нужно. Совсем наоборот: знание, куда какие пакеты "ходят" и когда, очень способствует и в firehol. Но "брать в голову" комбинации из нескольких длиннющих командных строк iptables для "открываем доступ по протоколу http", да ещё и в ворохе таких же длиннющих, очень похожих, но не относящихся к открываемому в данный момент порту -- тяжелое и бездарное времяпрепровождение.

IMNSHO, само собой.

PS: :) ""Others may prefer packages like firehol, shorewall, firestarter, ipmenu, fireflier, ferm, firewall-easy, fwbuilder-iptables, fwctl, gfcc, lokkit, gnome-lokkit, guarddog, hlfl, knetfilter, mason, lokkit, easyfw, fiaif, filtergen, guidedog, or uif -- just to name some that are packaged for Debian, to configure maintain packet filtering rules."" http://www.opennet.me/openforum/vsluhforumID3/42161.html#11
((В Debian (и "выведенных" из):
$ aptitude search ~Diptables
покажет часть пакетов из этого списка. $) Спасибо - http://www.opennet.me/tips/info/1566.shtml ))


"комп должен работать -- у него голова большая"
Отправлено PavelR , 01-Авг-08 18:31 
>PS: :) ""Others may prefer packages like firehol, shorewall, firestarter, ipmenu, fireflier,
>ferm, firewall-easy, fwbuilder-iptables, fwctl, gfcc, lokkit, gnome-lokkit, guarddog, hlfl, knetfilter, mason,
>lokkit, easyfw, fiaif, filtergen, guidedog, or uif -- just to name
>some that are packaged for Debian, to configure maintain packet filtering
>rules."" http://www.opennet.me/openforum/vsluhforumID3/42161.html#11
>((В Debian (и "выведенных" из):
>$ aptitude search ~Diptables
>покажет часть пакетов из этого списка. $) Спасибо - http://www.opennet.me/tips/info/1566.shtml ))

Пофигу, каждый юзает то что ему больше нравится. Мне вот больше нравится ручное набивание правил а-ля redhat. И вот именно такого варианта в дебиане нету - пришлось собственный порт редхатовского сервиса писать.