Проблема с созданием VPN между моим домашним ПК и между офисной локальной сетью. Смысл того, что хочу получить от VPN описан в первых абзацах вот этой статьи http://www.lissyara.su/articles/freebsd ... +ipfw-nat/
Характеристики программного обеспечения ПК:
OC FreeBSD 8.0
PPP клиент/сервер: MPD5
фаервол: PF
На сервер через PPPoE подключено 2 провайдера со статическими IP:
# ifconfig
Код: Выделить всё
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:a1:b0:10:50:12
inet 192.168.84.250 netmask 0xffffff00 broadcast 192.168.84.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
rl1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:06:4f:5c:c5:08
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
nfe0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:1f:d0:30:12:25
inet 192.168.100.10 netmask 0xfffffff0 broadcast 192.168.100.15
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=3<RXCSUM,TXCSUM>
inet 127.0.0.1 netmask 0xff000000
pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33200
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1460
inet 91.215.53.193 --> 192.168.1.1 netmask 0xffffffff
ng1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1460
inet 86.198.176.166 --> 10.131.0.1 netmask 0xffffffff
# netstat –rn
Код: Выделить всё
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGS 0 154 ng0 =>
default 10.131.0.1 UGS 0 182 ng1
10.131.0.1 link#7 UH 0 0 ng1
86.198.176.166 link#7 UHS 0 0 lo0
91.215.53.193 link#6 UHS 0 0 lo0
127.0.0.1 link#4 UH 0 9 lo0
192.168.1.1 link#6 UH 0 0 ng0
192.168.84.0/24 link#1 U 0 0 rl0
192.168.84.250 link#1 UHS 0 0 lo0
192.168.100.0/28 link#3 U 1 256 nfe0
192.168.100.10 link#3 UHS 0 0 lo0
Код: Выделить всё
## MACROS
local_if = "nfe0"
internet1_if = "rl0"
internet2_if = "rl1"
## HOSTS
local_net = "192.168.100.0/28"
admin_pc = "{ 192.168.100.5, 192.168.100.6 }"
work_pc = "{ 192.168.100.1, 192.168.100.2, 192.168.100.3, 192.168.100.4 }"
## TABLE
table <allow> const file "/usr/local/etc/pf_allow.table"
## ping requests
icmp_types = "{ echoreq, unreach }"
## OPTIONS
set skip on lo0
set timeout { frag 10, tcp.established 3600, tcp.finwait 15, tcp.closed 15 }
scrub in all
scrub out all
#########
## NAT ##
########################################
nat-anchor "mpd-nat-internet1/*"
# сюда подтягивается такое правило при коннекте PPPoE:
#nat on $1 from any to any -> ($1)
nat-anchor "mpd-nat-internet2/*"
# сюда подтягивается такое правило при коннекте PPPoE:
#nat on $1 from any to any -> ($1)
# Запрещаем всем все! (политика по умолчанию)
block all
# mpd anchor
anchor "mpd-rules-internet1/*"
# сюда подтягивается такое правило при коннекте PPPoE:
#pass out inet from ($1) to any modulate state (max 9999, source-track rule)
anchor "mpd-rules-internet2/*"
# сюда подтягивается такое правило при коннекте PPPoE:
#pass out inet from ($1) to any modulate state (max 9999, source-track rule)
# Разрешаем обмен данными по лакальным интерфейсам
pass out on { $local_if, $ internet1_if, $ internet2_if } from any to any keep state
pass in quick proto tcp from any to any port 1723 modulate state
pass proto gre from any to any
# Разрешаем SSH доступ на любом интерфейсе для любого ПК
pass in quick proto tcp from any to any port 4000 modulate state
# Разрешаем рабочим станциям ходить на определенные сайты
pass in on $local_if from $work_pc to { <allow>, $local_if, $local_net } keep state
# Разрешаем админским ПК куда угодно
pass in on $local_if from $admin_pc to any keep state
## Разрешаем пинги
pass in inet proto icmp all icmp-type $icmp_types keep state
Код: Выделить всё
default:
...
...
load pptp_server
...
...
...
pptp_server:
# Диапазон IP адрессов,
# который присвоется VPN девайсу.
set ippool add pool1 192.168.100.6 192.168.100.7
# Create clonable bundle template named B
create bundle template B
set iface enable proxy-arp
set iface idle 1800
set iface enable tcpmssfix
set ipcp yes vjcomp
# Specify IP address pool for dynamic assigment.
set ipcp ranges 192.168.100.10/32 ippool pool1
set ipcp dns 199.166.31.3
# The five lines below enable Microsoft Point-to-Point encryption
# (MPPE) using the ng_mppc(8) netgraph node type.
set bundle enable compression
set ccp yes mppc
set mppc yes e40
set mppc yes e128
set mppc yes stateless
# Create clonable link template named L
create link template L pptp
# Set bundle template to use
set link action bundle B
# Multilink adds some overhead, but gives full 1500 MTU.
set link enable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
set link keep-alive 10 60
# We reducing link mtu to avoid GRE packet fragmentation
set link mtu 1460
# Configure PPTP
# Внешний IP на котором будет прослушиватся соединение
set pptp self 91.215.53.193
# Allow to accept calls
set link enable incoming
Код: Выделить всё
login password
# ifconfig
Код: Выделить всё
...
...
ng2: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1396
inet 91.215.53.193 --> 192.168.100.6 netmask 0xffffffff
# netstat –rn
Код: Выделить всё
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.131.0.1 UGS 0 2154 ng1 =>
default 192.168.1.1 UGS 0 784 ng0
10.131.0.1 link#7 UH 0 0 ng1
86.198.176.166 link#7 UHS 0 0 lo0
91.215.53.193 link#6 UHS 0 0 lo0 =>
91.215.53.193 link#8 UHS 0 0 lo0
127.0.0.1 link#4 UH 0 14 lo0
192.168.1.1 link#6 UH 0 0 ng0
192.168.84.0/24 link#1 U 0 9 rl0
192.168.84.250 link#1 UHS 0 0 lo0
192.168.100.0/28 link#3 U 0 2246 nfe0
192.168.100.6 link#8 UH 0 105 ng2
192.168.100.10 link#3 UHS 0 0 lo0
Итак, PPTP авторизация проходит, но на ПК после этого нет интернета (который предположительно должен был бы черпаться с удаленного сервера), но пинг на сайты идет. И не пингуется ни одна локальная машина удаленной сети.
p.s. ipconfig /all на винде, с которой соединялся, показывает:
Код: Выделить всё
PPP адаптер:
DNS-суффикс этого подключения . . :
Описание . . . . . . . . . . . . : WAN (PPP/SLIP) In
Физический адрес. . . . . . . . . : 00-53-45-00-00-00
Dhcp включен. . . . . . . . . . . : нет
IP-адрес . . . . . . . . . . . . : 192.168.100.6
Маска подсети . . . . . . . . . . : 255.255.255.255
Основной шлюз . . . . . . . . . . : 192.168.100.6
DNS-серверы . . . . . . . . . . . : 199.166.31.3
Может кто-то сталкивался с чем-то подобным (либо видит явный бок в настройках) и ткнет носом, где я туплю …?!
Заранее огромное спасибо.