Показать полную графическую версию : Проброс портов через IPSEC
4pro.alex
11-03-2012, 21:12
Здравствуйте, уважаемые форумчане!
Нуждаюсь в ваше помощи.
Кратко опишу суть проблемы.
До бесконечности заезженная тема про проброс портов в локальную сеть...
Вобщем, есть FreeBSD + Nat +IPFW
Внутри сети есть почтовый сервер. Проброс портов работал отлично через redirect_port.
Стала необходимость перевести почтовый сервер в другую подсеть за ipsec. Ну думаю: проблем-то?
Перекинул, поправил redirect_port и соответствующие правила в IPFW.
И перестало работать... Уже больше недели бьюсь, загуглился весь уже.
Может кто подскажет особенности redirect_port и divert для подсети за ipsec тунелем?
VictorSh
12-03-2012, 05:41
поправил redirect_port и соответствующие правила в IPFW »
пробовали файервол отключать?
Перекинул »
настроили правильно маршрутизацию?
почтовый сервер пингуется? и наоборот с него пингуется шлюз?
в почтовом сервере настроили доверенные сети? и на каких интерфейсах слушать соединения, ведь теперь у вас сменился ip адрес и подсеть.
Уже больше недели бьюсь, загуглился весь уже »
вряд ли поможет, у каждого свои особенности сети, а вы ищете шаблон. Попробуйте использовать команду tcpdump и выяснить, как ходят пакеты. Включите логирование в файерволе и изучайте логи.
4pro.alex
12-03-2012, 11:31
С маршрутизацией все впорядке сети между собой видны, бегают.
tail -f /var/log/security
много чего показывает, но касательно нужных мне пакетов нем как рыба...
Заметил, что если в фаерволе убрать правило
${fwcmd} add divert natd ip from any to ${oip} in via ${oif}
то все работает.
Соответственно ${oip} - внешний адрес ${oif} - внешний интерфейс.
При этом, когда сервер находился в сети даже с этим правилом работало.
Когда он уехал за ipsec - перестало.
4pro.alex
12-03-2012, 11:49
Наверно приведу детальные настройки:
192.168.0.0/24 внутрення сеть
192.168.1.0/24 сеть за ipsec
/etc/rc.conf
cloned_interfaces="tap0 bridge0 gif0 gif1"
ifconfig_bridge0="addm em0 addm tap0 up"
gif_interfaces="gif0 gif1"
gifconfig_gif0="xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy"
ifconfig_gif0="inet 192.168.0.4 192.168.110.9 netmask 0xffffffff"
gifconfig_gif1="xxx.xxx.xxx.xxx zzz.zzz.zzz.zzz"
ifconfig_gif1="inet 192.168.0.4 192.168.1.1 netmask 0xffffffff"
ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"
racoon_enable="YES"
racoon_flags="-4 -l /var/log/racoon.log"
static_routes="1 2"
route_1="192.168.1.0/24 -interface gif1"
route_2="192.168.110.0/24 -interface gif0"
firewall
fwcmd='/sbin/ipfw'
net1='192.168.0.0/24'
net2='192.168.110.0/24'
net3='192.168.1.0/24'
oif='em0'
iif='em1'
oip='xxx.xxx.xxx.xxx'
iip1='192.168.0.4'
#IPSEC VPN
${fwcmd} add allow udp from ${oip} to 89.162.144.154,77.72.132.32 isakmp
${fwcmd} add allow udp from 89.162.144.154,77.72.132.32 to ${oip} isakmp
${fwcmd} add allow esp from 193.93.186.100 to 89.162.144.154,77.72.132.32
${fwcmd} add allow esp from 89.162.144.154,77.72.132.32 to ${oip}
${fwcmd} add allow ipencap from ${oip} to 77.72.132.32,89.162.144.154
${fwcmd} add allow ipencap from 89.162.144.154,77.72.132.32 to ${oip}
# Разрешаем прохождение пакетов на внутреннем интерфейсе
${fwcmd} add allow ip from any to any via ${iif}
# Разрешаем весь траффик по внутреннему интерфейсу (петле)
${fwcmd} add allow ip from any to any via lo0
#Mail
${fwcmd} add divert natd ip from 192.168.0.8 25,21,60000-60100 to any via ${oif} out
${fwcmd} add divert natd ip from 192.168.0.8 to any 25,21,60000-60100 via ${oif} out
${fwcmd} add allow tcp from any to any established
${fwcmd} add allow ip from ${oip} to any out xmit ${oif}
${fwcmd} add allow udp from any 53 to any via ${oif}
${fwcmd} add allow udp from any to any 123 via ${oif}
${fwcmd} add allow icmp from any to any icmptypes 0,8,11
${fwcmd} add allow tcp from any to any via ${iif}
${fwcmd} add allow tcp from any to any via ng*
${fwcmd} add allow tcp from any to any via gif*
${fwcmd} add allow udp from any to any via ${iif}
${fwcmd} add allow udp from any to any via ng*
${fwcmd} add allow udp from any to any via gif*
${fwcmd} add allow icmp from any to any via ${iif}
${fwcmd} add deny log logamount 1000 ip from any to any
И вконец
/etc/natd.conf
interface em0
use_sockets yes
same_ports yes
unregistered_only
redirect_port tcp 192.168.0.8:25 25
redirect_port tcp 192.168.0.8:21 21
Собственно при тако расскладе все работает. Порты 21,25 на 192.168.0.8 пробрасываются.
Стоит постовый сервак переместить за ipsec, соответственно адрес меняем на 192.168.1.8.
Изменяю natd.conf и firewall все со 192.168.0.8 на 192.168.1.8 и тут меня ждут грабли.
VictorSh
13-03-2012, 02:27
хм, не пользовался если честно такой связкой. Может проблема в IPSEC. У меня проброс портов через rinetd. Стоит pf+nat средствами pf, проброс портов через rinetd. IPSEC не использовал, gifconfig тоже.
Попробуйте заюзать rinetd и прописать правило
ip_сервера_в_сети_1 25 ip_почтового_сервера 25
Возможно, неправильно пробрасываются порты.
Попробуйте отправить почту и посмотреть, что в этом случае пишет tcpdump на сервере и что на почтовом сервере происходит тоже tcpdump - вообще до него пакеты с портом назначения 25 доходят? и какие порты действительно пробрасываются
4pro.alex
13-03-2012, 02:52
rinetd конечно мне знаком - вещь хорошая, не спорю. Но помимо одиночных портов мне нужно пробрасывать еще и ФТП, который работает в пасивном режиме. redirect_port спокойно справляется с диапазоном портов, а ринетд не умеет такого.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.