Проблема с NAT при интернете через PPTP.

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
slavkins
проходил мимо
Сообщения: 7
Зарегистрирован: 2011-05-24 10:37:29

Проблема с NAT при интернете через PPTP.

Непрочитанное сообщение slavkins » 2011-08-15 13:19:21

Всем привет! Столкнулся со следующей проблемой.

Есть одна сеть (192.168.0.0/24), интернет в нее попадает через шлюз (192.168.0.200), на котором он, в свою очередь, появляется через PPTP-соединение (в качестве клиента - MPD). Так вот, не открывается некоторая часть сайтов. В качестве firewall используется PF:

Код: Выделить всё

gw# cat /etc/pf/pf.vpn.conf
# interfaces
int_if  = "re0"
ext_if  = "rl0"
ext_if2 = "ng0"

# net
my_net = "192.168.0.0/24"

# opened ports in external iface
tcp_services = "{ www, ssh, pptp, ftp, 30000 >< 50000 }"

# nat
nat on $ext_if from $my_net to any -> $ext_if
nat on $ext_if2 from $my_net to any -> $ext_if2

# transparent proxy redirect
rdr pass on $int_if proto tcp from $my_net to any port { http } -> 192.168.0.200 \
    port 3128

# filter rules
pass all
Сначала все было совсем плохо и многие сайты тупо были недоступны. Потом увидел, что у меня блочился ICMP (забыл, с кем не бывает). Один умный человек подсказал, что по ICMP не проходят Don't Fragment сообщения, поэтому не все открывается. После разрешения ICMP дело стало гораздо лучше, но все равно остались ресурсы, которые по прежнему недоступны. Я уже отчаялся и везде pass all поставил, все равно не помогает.

Подскажите, куда копать? Маловероятно, но все же, у PF ведь есть известные проблемы с PPTP, это не может быть проблемой? Не очень хочется слезать на IPFW.

Заранее спасибо.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: Проблема с NAT при интернете через PPTP.

Непрочитанное сообщение Bayerische » 2011-08-15 13:21:08

С самого шлюза смотрите — доступно?
Не очень хочется слезать на IPFW.
Можно узнать, почему?

Аватара пользователя
slavkins
проходил мимо
Сообщения: 7
Зарегистрирован: 2011-05-24 10:37:29

Re: Проблема с NAT при интернете через PPTP.

Непрочитанное сообщение slavkins » 2011-08-15 13:33:08

Bayerische писал(а):С самого шлюза смотрите — доступно?
Да, links нормально отрабатывает страницу.
Bayerische писал(а):Можно узнать, почему?
Конечно. Я начинал с OpenBSD и как-то с нее повелось, что пользуюсь PF. Не то чтобы не хотелось колупаться в IPFW, просто в данной ситуации нет времени. Не уверен, что если я перейду на IPFW, то это решит мои проблемы. Проблемы не решит, а время потратит.

imroot
мл. сержант
Сообщения: 127
Зарегистрирован: 2007-12-18 14:06:19

Re: Проблема с NAT при интернете через PPTP.

Непрочитанное сообщение imroot » 2011-08-16 8:20:12

ТОВАРИЩИ! проблема актуальна, pf пинг пропускает, а вот остальные сервисы молчат.
вот мой конфиг чтоб тем не плодить :) (подключаюсь с мира к машине и тютю)

Код: Выделить всё

tcp_svc="{ 4011, pptp, svn, 1403, 60022, domain }"
set loginterface em0
set loginterface em1
set loginterface em2
set skip on lo0
scrub in all
#NAT
nat on $ext_if_1 inet from !(self) -> ($ext_if_1:0)
nat on $ext_if_2 inet from !(self) -> ($ext_if_2:0)
block in
#allow icmp on two external ifaces
pass in on $ext_if_1 reply-to ($ext_if_1 $gw_1) inet proto icmp to ($ext_if_1) tag EXT_IF_A icmp-type echoreq code 0
pass in on $ext_if_1 inet proto icmp from ($ext_if_1:network) to ($ext_if_1) icmp-type echoreq code 0
pass in on $ext_if_2 reply-to ($ext_if_2 $gw_2) inet proto icmp to ($ext_if_2) tag EXT_IF_B icmp-type echoreq code 0
pass in on $ext_if_2 inet proto icmp from ($ext_if_2:network) to ($ext_if_2) icmp-type echoreq code 0
# allow tcp ports
# IPS_1
pass in on $ext_if_1 reply-to ($ext_if_1 $gw_1) inet proto tcp to ($ext_if_1) port  $tcp_svc
pass in on $ext_if_1 inet proto tcp from ($ext_if_1:network) to ($ext_if_1) port  $tcp_svc
# IPS_2
pass in on $ext_if_2 reply-to ($ext_if_2 $gw_2) inet proto tcp to ($ext_if_2) port  $tcp_svc
pass in on $ext_if_2 inet proto tcp from ($ext_if_2:network) to ($ext_if_2) port  $tcp_svc
#vhod marchrut
# IPS_1
pass in quick from ($ext_if_1:network) tagged EXT_IF_A keep state
pass in quick reply-to ($ext_if_1 $gw_1) tagged EXT_IF_A keep state
# IPS_2
pass in quick from ($ext_if_2:network) tagged EXT_IF_B keep state
pass in quick reply-to ($ext_if_2 $gw_2) tagged EXT_IF_B keep state
#############
# FIREWALL pass all internal network ON GATEWAY!!!
pass out inet from (self:network)
pass in inet proto icmp to (self:network)
## LOCAL NETWORK pass all office to internet
pass quick on $int_if
#
pass out route-to ($ext_if_1 $gw_1) inet from ($ext_if_1) keep state
pass out route-to ($ext_if_2 $gw_2) inet from ($ext_if_2) keep state
pass out inet from { $ext_if_1 $ext_if_2 } to (self:network)
вот кстати antispoofing начисто отрезает всё даже пинг не проходит, снёс правило начал пинг ходить..
какое правило приткнуть для того чтоб VPN щики могли получать доступ к ресерсам сети и инету...??