URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 64918
[ Назад ]

Исходное сообщение
"Настройка MPD + PF"

Отправлено V_A_R , 19-Мрт-06 02:33 
Задача: Поднять ВПН сервер для подключения пользователей локальной сети к инету.
ОС: FreeBSD 6.0
Все сделано согласно статьи http://wiki.bsdportal.ru/doc:vpn
Авторизация по Радиусу проходит нормально ВПН подключения работают, но инета у впн клиентов нет, пробовал запускать nat без впн все работает и инет есть, по впн инета нет.

Вот конфиги:
mpd.conf
default:
    load pptp0
    load pptp1
    load pptp2
    load pptp3
    load pptp4
    load pptp5
    load pptp6
    load pptp7
    load pptp8
    load pptp9
    load pptp10
    load pptp11
    load pptp12
    load pptp13
    load pptp14
    load pptp15
pptp0:
    new -i ng0 pptp0 pptp0
    set ipcp ranges 192.168.33.254/32 10.10.10.1/32
    load pptp_all
pptp1:
    new -i ng1 pptp1 pptp1
    set ipcp ranges 192.168.33.254/32 10.10.10.2/32
    load pptp_all
pptp2:
    new -i ng2 pptp2 pptp2
    set ipcp ranges 192.168.33.254/32 10.10.10.3/32
    load pptp_all
pptp3:
    new -i ng3 pptp3 pptp3
    set ipcp ranges 192.168.33.254/32 10.10.10.4/32
    load pptp_all
pptp4:
    new -i ng4 pptp4 pptp4
    set ipcp ranges 192.168.33.254/32 10.10.10.5/32
    load pptp_all
pptp5:
    new -i ng5 pptp5 pptp5
    set ipcp ranges 192.168.33.254/32 10.10.10.6/32
    load pptp_all
pptp6:
    new -i ng6 pptp6 pptp6
    set ipcp ranges 192.168.33.254/32 10.10.10.7/32
    load pptp_all
pptp7:
    new -i ng7 pptp7 pptp7
    set ipcp ranges 192.168.33.254/32 10.10.10.8/32
    load pptp_all
pptp8:
    new -i ng8 pptp8 pptp8
    set ipcp ranges 192.168.33.254/32 10.10.10.9/32
    load pptp_all
pptp9:
    new -i ng9 pptp9 pptp9
    set ipcp ranges 192.168.33.254/32 10.10.10.10/32
    load pptp_all
pptp10:
    new -i ng10 pptp10 pptp10
    set ipcp ranges 192.168.33.254/32 10.10.10.11/32
    load pptp_all
pptp11:
    new -i ng11 pptp11 pptp11
    set ipcp ranges 192.168.33.254/32 10.10.10.12/32
    load pptp_all
pptp12:
    new -i ng12 pptp12 pptp12
    set ipcp ranges 192.168.33.254/32 10.10.10.13/32
    load pptp_all
pptp13:
    new -i ng13 pptp13 pptp13
    set ipcp ranges 192.168.33.254/32 10.10.10.14/32
    load pptp_all
pptp14:
    new -i ng14 pptp14 pptp14
    set ipcp ranges 192.168.33.254/32 10.10.10.15/32
    load pptp_all
pptp15:
    new -i ng15 pptp15 pptp15
    set ipcp ranges 192.168.33.254/32 10.10.10.16/32
    load pptp_all
pptp_all:
    set iface disable on-demand
    set bundle disable multilink
    set link yes acfcomp protocomp
    set link no pap chap
    set link enable chap
    set link keep-alive 60 180
    set ipcp yes vjcomp
    set ipcp dns 192.168.33.254 # или любой другой доступный DNS
    set pptp enable incoming
    set pptp disable originate
    set radius config /usr/local/etc/mpd/radius.conf
    set radius retries 3
    set bundle enable radius-acct
    set bundle enable radius-auth
    set ipcp yes radius-ip
-------------------
mpd.links
pptp0:
    set link type pptp
pptp1:
    set link type pptp
pptp2:
    set link type pptp
pptp3:
    set link type pptp
pptp4:
    set link type pptp
pptp5:
    set link type pptp
pptp6:
    set link type pptp
pptp7:
    set link type pptp
pptp8:
    set link type pptp
pptp9:
    set link type pptp
pptp10:
    set link type pptp
pptp11:
    set link type pptp
pptp12:
    set link type pptp
pptp13:
    set link type pptp
pptp14:
    set link type pptp
pptp15:
    set link type pptp
---------------------
radius.conf
acct 127.0.0.1 <passwd>
auth 127.0.0.1 <passwd>
-------------
ipfw.sh
#!/bin/sh

fwcmd="/sbin/ipfw"

${fwcmd} -f flush
${fwcmd} -f flush pipe
${fwcmd} -f flush queue

${fwcmd} pipe 1 config bw 512Kbit/s queue 50 # для обжимки трафа пользуемся pipe'ами
${fwcmd} pipe 2 config bw 512Kbit/s queue 50

${fwcmd} add pipe 1 ip from 10.10.10.0/24 to any in # вгоняем траф в пайпы
${fwcmd} add pipe 2 ip from any to 10.10.10.0/24 out

${fwcmd} add tee 100 ip from 10.10.10.0/24 to any in # копируем траф в divert-socket для netams.
${fwcmd} add tee 100 ip from any to 10.10.10.0/24 out

-----------------------
pf.rules
ext_ip="xx.xx.xx.xx" # внешний ip-адрес сервера
int_if="xl0" # интерфейс смотрящий в локалку
int_net_vpn="10.10.10.0/24" # внутренняя VPN-сеть
local_net="192.168.33.0/24" # внутрення локалка
int_ip="192.168.33.254" # внутренний ип в локалке

nat on an0 from $int_net_vpn to any -> $ext_ip # собсно NAT

pass quick on lo0 all # разрешаем все на lo0

pass quick from $ext_ip to any # Разрешаем траф
pass quick from any to $ext_ip # на внешнем ip

pass quick from $int_net_vpn to any # разрешаем любой траф
pass quick from any to $int_net_vpn # по впн-сети

pass quick from $local_net to any # разрешаем любой траф
pass quick from any to $local_net # по локалке

--------------------
rc.conf
hostname="ns.localnet"
ifconfig_an0="inet xxx.xx.xx.xx  netmask 255.255.255.xx"
ifconfig_xl0="inet 192.168.33.254  netmask 255.255.255.0"
defaultrouter="xx.xx.xx.xx"
gateway_enable="YES"
tcp_extensions="YES"
accounting_enable="YES"

pf_enable="YES"
pf_rules="/etc/pf.rules"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""

firewall_enable="YES"
firewall_script="/etc/ipfw.sh"

sshd_enable="YES"
inetd_enable="YES"
named_enable="YES"
radiusd_enable="YES"
mysql_enable="YES"
webmin_enable="YES"
mpd_enable="YES"
proftpd_enable="YES"

saver="blank"
font8x8="cp866-8x8"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
scrnmap="koi8-r2cp866"
keyrate="slow"
keymap="ru.koi8-r"
-------------
Результат ifconfig

an0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet6 fe80::240:96ff:fe28:71f2%an0 prefixlen 64 scopeid 0x1
    inet xxx.xxx.xx.xx netmask 0xffffffe0 broadcast xx.xx.xx.xx
    ether 00:40:96:28:71:f2
    media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
    status: associated
    ssid  1:xxxx channel 4
    stationname FreeBSD
    authmode OPEN privacy OFF deftxkey 1 txpowmax 0 rtsthreshold 0
    fragthreshold 0 roaming DEVICE
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    options=8<VLAN_MTU>
    inet6 fe80::260:8ff:fe26:90df%xl0 prefixlen 64 scopeid 0x2
    inet 192.168.33.254 netmask 0xffffff00 broadcast 192.168.33.255
    ether 00:60:08:26:90:df
    media: Ethernet autoselect (100baseTX <full-duplex>)
    status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
    inet 127.0.0.1 netmask 0xff000000
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33208
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1400
    inet 192.168.33.254 --> 10.10.10.1 netmask 0xffffffff
    inet6 fe80::240:96ff:fe28:71f2%ng0 prefixlen 64 scopeid 0x6
ng1: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng2: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng3: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng4: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng5: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng6: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng7: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng8: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng9: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng10: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng11: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng12: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng13: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng14: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng15: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500


Содержание

Сообщения в этом обсуждении
"Настройка MPD + PF"
Отправлено edwin , 19-Мрт-06 10:06 
У тебя mpd не выдает клиенту default route:
Добавь в конфиг:
set iface route default

"Настройка MPD + PF"
Отправлено V_A_R , 19-Мрт-06 11:50 
поставил не помогло...



"Настройка MPD + PF"
Отправлено Kotik , 19-Мрт-06 13:26 
>У тебя mpd не выдает клиенту default route:
>Добавь в конфиг:
>set iface route default

маразм чистый, эта строчка добавит default route не у клиента, а у сервера!!!!
этот параметр нужён только в том случае если этот интерфейс в mpd смотрит в инет


"Настройка MPD + PF"
Отправлено Kotik , 19-Мрт-06 13:24 
>nat on an0 from $int_net_vpn to any -> $ext_ip # собсно NAT

здесь нужно написать вместо $ext_ip имя интерфейса, который смотрит в инет, на сколько я понял это xl0 и получится
nat on an0 from $int_net_vpn to any -> (xl0)

или красивее завести переменную например

ext_if="xl0"

и тогда написать

nat on an0 from $int_net_vpn to any -> ($ext_if)

в конфиг MPD ничего добавлять вроди не нужно, единственно поправь его чтобы в нём в начале строк не было никаких пробелов!! вместо них использую табуляцию, МПД ОЧЕНЬ НЕ ЛЮБИТ ПРОБЕЛЫ!!!


"Настройка MPD + PF"
Отправлено V_A_R , 19-Мрт-06 20:06 
как оказалось дело было в ipfw
после следующих изменений пакеты пошли:
ipfw.sh
#!/bin/sh

fwcmd="/sbin/ipfw"

${fwcmd} -f flush
${fwcmd} -f flush pipe
${fwcmd} -f flush queue

#${fwcmd} pipe 1 config bw 512Kbit/s queue 50 # для обжимки трафа пользуемся pip
#${fwcmd} pipe 2 config bw 512Kbit/s queue 50


${fwcmd} add pipe 1 ip from 10.10.10.0/24 to any in # вгоняем траф в пайпы
${fwcmd} add pipe 2 ip from any to 10.10.10.0/24 out

${fwcmd} add tee 100 ip from 10.10.10.0/24 to any in # копируем траф в divert-so
${fwcmd} add tee 100 ip from any to 10.10.10.0/24 out

${fwcmd} add 1 pass all from any to any

Но появились ряд проблем ping с клиента какой то странный
Обмен пакетами с ya.ru [213.180.204.8] по 32 байт:

Ответ от 213.180.204.8: число байт=32 время=20мс TTL=59
Превышен интервал ожидания для запроса.
Ответ от 213.180.204.8: число байт=32 время=20мс TTL=59
Превышен интервал ожидания для запроса.
Ответ от 213.180.204.8: число байт=32 время=27мс TTL=59
Превышен интервал ожидания для запроса.
Ответ от 213.180.204.8: число байт=32 время=32мс TTL=59
Превышен интервал ожидания для запроса.
Ответ от 213.180.204.8: число байт=32 время=20мс TTL=59
Превышен интервал ожидания для запроса.
Ответ от 213.180.204.8: число байт=32 время=23мс TTL=59

Хотя с сервера все отлично:
# ping www.ya.ru
PING ya.ru (213.180.204.8): 56 data bytes
64 bytes from 213.180.204.8: icmp_seq=0 ttl=60 time=32.701 ms
64 bytes from 213.180.204.8: icmp_seq=1 ttl=60 time=21.842 ms
64 bytes from 213.180.204.8: icmp_seq=2 ttl=60 time=42.835 ms
64 bytes from 213.180.204.8: icmp_seq=3 ttl=60 time=21.146 ms
64 bytes from 213.180.204.8: icmp_seq=4 ttl=60 time=20.422 ms
64 bytes from 213.180.204.8: icmp_seq=5 ttl=60 time=22.985 ms
64 bytes from 213.180.204.8: icmp_seq=6 ttl=60 time=28.417 ms
64 bytes from 213.180.204.8: icmp_seq=7 ttl=60 time=31.429 ms
64 bytes from 213.180.204.8: icmp_seq=8 ttl=60 time=22.871 ms
64 bytes from 213.180.204.8: icmp_seq=9 ttl=60 time=25.029 ms
64 bytes from 213.180.204.8: icmp_seq=10 ttl=60 time=21.976 ms
64 bytes from 213.180.204.8: icmp_seq=11 ttl=60 time=24.851 ms
64 bytes from 213.180.204.8: icmp_seq=12 ttl=60 time=21.127 ms
64 bytes from 213.180.204.8: icmp_seq=13 ttl=60 time=20.829 ms

В чем может быть проблема?


"Настройка MPD + PF"
Отправлено co6aka , 20-Мрт-06 00:39 
IMHO: для чистоты эксперемента выключите pf! Зачем вам два работающих фаервола одновременно???