MPD5 + PF + корпоративная сеть (сил больше нет) ...

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
krendelek007
рядовой
Сообщения: 39
Зарегистрирован: 2009-10-12 21:35:04

MPD5 + PF + корпоративная сеть (сил больше нет) ...

Непрочитанное сообщение krendelek007 » 2010-04-02 16:09:00

Прошу помощи, сил больше моих нет …

Проблема с созданием 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
Конфиг PF-a такой:

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

## 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
Конфиг MPD5 такой (привожу лишь ту часть, которая отвечает за интересующее меня соединение). Если честно, то я понимаю далеко не все, что тут написано :( :

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

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
Файл mpd.secret:

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

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
Причем, запись: 91.215.53.193 link#8 - не удаляется при разъединении … и, каждый раз появляется новая и новая запись … т.е. после 10-ти конектов, в таблице появится 10 одинаковых записей, которые потом не удаляются.

Итак, 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

Может кто-то сталкивался с чем-то подобным (либо видит явный бок в настройках) и ткнет носом, где я туплю …?!
Заранее огромное спасибо.

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

_Менделеев
проходил мимо

Re: MPD5 + PF + корпоративная сеть (сил больше нет) ...

Непрочитанное сообщение _Менделеев » 2010-04-02 20:46:11

krendelek007 писал(а):Итак, PPTP авторизация проходит, но на ПК после этого нет интернета (который предположительно должен был бы черпаться с удаленного сервера), но пинг на сайты идет.
первое предположение - дело в правилах PF. Добавить такое (в упрощенном виде):

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

pass in on ng0 from $ng0:peer to any                    #впускаю пакеты из ng0 во все места  
pass out on $int_if from $ng0:peer to $int_if:network   #выпускаю пакеты из ng0 в локалку, чтобы наверняка 
krendelek007 писал(а):И не пингуется ни одна локальная машина удаленной сети.
опять правила PF. В твоем конфиге я увидел только разрешение пинговать сервак. Сделай out правило.

Alteron
сержант
Сообщения: 230
Зарегистрирован: 2008-07-21 9:35:11

Re: MPD5 + PF + корпоративная сеть (сил больше нет) ...

Непрочитанное сообщение Alteron » 2010-04-02 21:28:38

proxy arp не работает в восьмерке. Там с арп накосячили. Я пытался ковырять и прикручивать арп от ррр, но плюнул на всё и поставил 7-ку.
Измеритель верёвочками.

Аватара пользователя
krendelek007
рядовой
Сообщения: 39
Зарегистрирован: 2009-10-12 21:35:04

Re: MPD5 + PF + корпоративная сеть (сил больше нет) ...

Непрочитанное сообщение krendelek007 » 2010-04-02 23:02:15

_Менделеев писал(а):
krendelek007 писал(а):Итак, PPTP авторизация проходит, но на ПК после этого нет интернета (который предположительно должен был бы черпаться с удаленного сервера), но пинг на сайты идет.
первое предположение - дело в правилах PF. Добавить такое (в упрощенном виде):

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

pass in on ng0 from $ng0:peer to any                    #впускаю пакеты из ng0 во все места  
pass out on $int_if from $ng0:peer to $int_if:network   #выпускаю пакеты из ng0 в локалку, чтобы наверняка 
krendelek007 писал(а):И не пингуется ни одна локальная машина удаленной сети.
опять правила PF. В твоем конфиге я увидел только разрешение пинговать сервак. Сделай out правило.
1.) Правила с ng0 не помогли ... :(
2.) pass out on { $local_if, $ internet1_if, $ internet2_if } from any to any keep state - это не оно?

Аватара пользователя
krendelek007
рядовой
Сообщения: 39
Зарегистрирован: 2009-10-12 21:35:04

Re: MPD5 + PF + корпоративная сеть (сил больше нет) ...

Непрочитанное сообщение krendelek007 » 2010-04-02 23:03:53

Alteron писал(а):proxy arp не работает в восьмерке. Там с арп накосячили. Я пытался ковырять и прикручивать арп от ррр, но плюнул на всё и поставил 7-ку.
Т.е. все мои действия так или иначе останутся без результатными?
Меня 8-я устраивает тем, что можно использовать 2 дефаулт гетувея одновременно.

Alteron
сержант
Сообщения: 230
Зарегистрирован: 2008-07-21 9:35:11

Re: MPD5 + PF + корпоративная сеть (сил больше нет) ...

Непрочитанное сообщение Alteron » 2010-04-03 20:05:47

Блин, ну сказал же...
Ты хоть наг почитай... там такой тред по этому поводу...

З.Ы. Кстати, в мейллистах этот вопрос видел. Пока не закрыли.
Измеритель верёвочками.

Larin
лейтенант
Сообщения: 975
Зарегистрирован: 2008-01-29 20:08:41
Откуда: РБ, Минск

Re: MPD5 + PF + корпоративная сеть (сил больше нет) ...

Непрочитанное сообщение Larin » 2010-04-04 19:22:35

я обновился до 8 stable.
помогло.

Аватара пользователя
Shuba
ст. сержант
Сообщения: 365
Зарегистрирован: 2008-03-25 10:58:21
Откуда: Минск
Контактная информация:

Re: MPD5 + PF + корпоративная сеть (сил больше нет) ...

Непрочитанное сообщение Shuba » 2010-04-04 23:32:04

Блин, и я ща такую проблему на 8-ке обнаружил... Будем юзать stable...
Сила ночи, сила дня - одинакова фигня!