FreeBSD+ VPN + PF + vbox
Добавлено: 2010-09-27 19:26:47
Поднят VPN cервер на FBSD. Сам сервер для VPN клиента свободно доступен, пингуется и.т.д... А вот другие машины сети VPN клиент не видят и не пингуют... Явно где то перемудрили с правилами
pf.conf
С клиента
Далее самое интересное
Можно было бы списать на проблему хождения arp, но это не объяснит почему тогда например также VPN клиент не пингует 172.16.6.7 (виртуальный сервер vbox bridge на fxp0 (vmail_if)
При чем аrp он узнает... Мало того
length 74: 172.16.6.7 > 172.16.5.200: ICMP echo reply, id 1, seq 808, length 40
Но увы до vpn клиента пинги уже не доходят... Мистика?
Вообще складывается ощущение что если на одно машине поднять bridge и вбокс с интерфейсами в бридж режиме - все начинает плохо работать.
pf.conf
Код: Выделить всё
ext_if="rl0" - интерфейс сети провадера
wan_if="ng0" - интернет через vpn
int_if="bridge0" - сетевые карты смотрящие в локальную сеть
vmail_if="fxp0" - сетвая для vbox бриджа (dmz)
vpn_if="ng1" - (ВПН сервер)
Extr_if="{ng0 rl0}"
#lan="172.16.5.0/24"
#dmz="172.16.6.0/24"
icmp_types="{echoreq, unreach}"
set block-policy drop
set loginterface $wan_if
set skip on lo0
set optimization conservative
scrub in all
scrub out on $wan_if random-id max-mss 1460
# NAT
nat on $ext_if proto { tcp udp icmp } from $int_if:network to any -> ($ext_if)
nat on $wan_if proto { tcp udp icmp gre } from $int_if:network to any -> ($wan_if)
rdr pass on $wan_if proto tcp from any to any port 25 -> 172.16.6.7
block all
# Traffic from gateway
pass out on $ext_if from ($ext_if) to any
pass out on $wan_if from ($wan_if) to any
# Traffic from LAN to INET
pass out on $Extr_if from ($int_if) to any
pass out on $Extr_if from ($vmail_if) to any
#-------------------VPN
pass in on $wan_if inet proto tcp from any to any port 1723
pass in on $wan_if inet proto { tcp udp } from any to any port 1701
pass in on $wan_if inet proto gre from any to any
#=================== Sever ports { Web 80 SSH 450 Zimbra SOAP 7071 }
pass in on $wan_if proto tcp from any to ($wan_if) port { 80 450 }
# ICMP
pass log inet proto icmp all icmp-type $icmp_types
pass quick on $int_if
pass quick on $vpn_if
pass quick on $vmail_if
С клиента
Код: Выделить всё
-route PRINT
172.16.0.0 255.255.0.0 172.16.5.200 172.16.5.200 21
172.16.5.200 255.255.255.255 On-link 172.16.5.200 276
Пинг VPN сервера
ping 172.16.5.3
Обмен пакетами с 172.16.5.3 по с 32 байтами данных:
Ответ от 172.16.5.3: число байт=32 время=15мс TTL=64
Пинг машины в локальной сети VPN сервера
ping 172.16.5.1
Обмен пакетами с 172.16.5.1 по с 32 байтами данных:
Превышен интервал ожидания для запроса.
tracert 172.16.5.1
Трассировка маршрута к 172.16.5.1 с максимальным числом прыжков 30
1 13 ms 14 ms 16 ms 172.16.5.200
2 * * * Превышен интервал ожидания для запроса.
3 Код: Выделить всё
tcpdump -vv -i bridge0
tcpdump: listening on bridge0, link-type EN10MB (Ethernet), capture size 96 bytes
17:11:33.521633 IP (tos 0x0, ttl 127, id 361, offset 0, flags [none], proto ICMP (1), length 60)
172.16.5.200 > 172.16.5.1: ICMP echo request, id 1, seq 615, length 40
17:11:33.522288 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.5.200 tell 172.16.5.1, length 46
17:11:34.514226 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.5.200 tell 172.16.5.1, length 46
17:11:35.511779 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.5.200 tell 172.16.5.1, length 46
17:11:38.366538 IP (tos 0x0, ttl 127, id 362, offset 0, flags [none], proto ICMP (1), length 60)
172.16.5.200 > 172.16.5.1: ICMP echo request, id 1, seq 616, length 40
17:11:38.367095 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.5.200 tell 172.16.5.1, length 46
17:11:39.362153 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.5.200 tell 172.16.5.1, length 46
17:11:40.359593 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.5.200 tell 172.16.5.1, length 46
17:11:43.366298 IP (tos 0x0, ttl 127, id 363, offset 0, flags [none], proto ICMP (1), length 60)
172.16.5.200 > 172.16.5.1: ICMP echo request, id 1, seq 617, length 40При чем аrp он узнает... Мало того
length 74: 172.16.6.7 > 172.16.5.200: ICMP echo reply, id 1, seq 808, length 40
Но увы до vpn клиента пинги уже не доходят... Мистика?
Вообще складывается ощущение что если на одно машине поднять bridge и вбокс с интерфейсами в бридж режиме - все начинает плохо работать.