Jump to content
Калькуляторы

Удаленный VPN клиент на FreeBSD 7.0

Здравствуйте, хотел бы получить помощь в настройке FreeBSD в качестве VPN клиента.

 

Дано:

 

Есть три офиса, один из них главный это Офис№1, а Офис№2 и Офис№3 дочерние.

Все три офиса находятся в разных концах города, в каждом из офисов установлен ADSL интернет разных провайдеров.

В главном офисе "Офис№1" установлен VPN сервер:

---------------------------------------------------------------

MPD4 - ppptp

ip выдаваемые VPN клиентам - 192.168.10.10/24

ip VPN сервера - 192.168.10.1

Внешний ip: xxx.xxx.xxx.xxx

---------------------------------------------------------------

В каждом офисе установлен ADSL интернет

 

Задача:

 

В Офисе №2 и Офисе №3 нужно установить VPN клиенты на FreeBSD что бы подключаться к главному офису (Офис№1)

 

 

Пробовал устанавливать VPN клиент в локальной сети, VPN клиент поднимается, все работает, другое дело если сервер находится не в локальной сети, а где нибудь на другом конце города как Офис №2 и Офис №3, пожалуйста помогите решить задачу...

 

p.s: На Windows все работает по вышеописанной технологии...

 

Вот один из конфигов VPN клиентов, который работает в локальной сети и не работает как описанно по моей технологии:

 

RC.CONF:

 

defaultrouter="172.16.0.1"

ifconfig_re0="inet 192.168.0.1  netmask 255.255.255.0" #Сетевая карта смотрящая в Локальную сеть
ifconfig_fxp0="inet 172.16.0.100 netmask 255.255.255.0" #Сетевая карта смотрящая в ADSL модем

gateway_enable="YES"

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

natd_enable="YES"
natd_interface="fxp0"
  
mpd_enable="YES"

 

MPD.CONF:

 

default:
        load vpn
vpn:
        new vpn vpn
        set iface route default
        set bundle no noretry
        set auth authname LOGIN
        set auth password PASSWORD
        set link max-redial 0
        set link mtu 1460
        set link keep-alive 0 0
        set ipcp ranges 0.0.0.0/0 0.0.0.0/0
        set bundle enable compression
        set ccp yes mppc
        set ccp yes mpp-e40
        set ccp yes mpp-e128
        set bundle enable crypt-reqd
        set ccp yes mpp-stateless
        open

 

MPD.LINKS:

 

vpn:
        set link type pptp
        set pptp self xxx.xxx.xxx.xxx #внешний адрес VPN сервера Офиса №1
        set pptp peer 192.168.0.1
        set pptp enable originate incoming outcal

IPFW:

 

#!/bin/sh
ipfw -q -f flush
cmd="ipfw -q add"

$cmd check-state
$cmd 10 divert natd all from any to any via fxp0
#Мой ip адресс
$cmd 300 allow ip from 192.168.0.253 to any
$cmd 301 allow ip from any to 192.168.0.253
#
$cmd 997 allow ip from any to any via fxp0
$cmd 1000 deny ip from any to any via re0

Share this post


Link to post
Share on other sites

не подключается чтоли? в консоль mpd чего пишет?

 

на вскидку:

MPD.LINKS:

 

vpn:
        set link type pptp
[b]        set pptp self xxx.xxx.xxx.xxx #внешний адрес VPN сервера Офиса №1
        set pptp peer 192.168.0.1
[/b]        set pptp enable originate [b]incoming[/b] outcal

set pptp peer xxx.xxx.xxx.xxx #внешний адрес VPN сервера Офиса №1

а set pptp self выкинуть вообще.

и зачем incoming? (правда он тут не причем, просто эта опция для приёма соединения, как клиенту - она не нужна)

Share this post


Link to post
Share on other sites

Поправил как ты сказал, Вот лог подключения

Multi-link PPP daemon for FreeBSD

process 1087 started, version 4.3 (root@server 20:38 12-Jul-2009)
Label 'startup' not found
[pptp-cl] using interface ng1
[pptp-cl] link: OPEN event
[pptp-cl] LCP: Open event
[pptp-cl] LCP: state change Initial --> Starting
[pptp-cl] LCP: LayerStart
pptp0: connecting to [ip удаленного сервера] 1723
pptp0: connected to [ip удаленного сервера] 1723
pptp0: attached to connection with [ip удаленного сервера] 1723
pptp0-0: outgoing call connected at 64000 bps
[pptp-cl] PPTP call successful
[pptp-cl] link: UP event
[pptp-cl] link: origination is local
[pptp-cl] LCP: Up event
[pptp-cl] LCP: state change Starting --> Req-Sent
[pptp-cl] LCP: SendConfigReq #1
ACFCOMP
PROTOCOMP
ACCMAP 0x000a0000
MRU 1500
MAGICNUM 4f075fee
[pptp-cl] LCP: SendConfigReq #2
ACFCOMP
PROTOCOMP
ACCMAP 0x000a0000
MRU 1500
MAGICNUM 4f075fee
[pptp-cl] LCP: SendConfigReq #3
ACFCOMP
PROTOCOMP
ACCMAP 0x000a0000
MRU 1500
MAGICNUM 4f075fee
[pptp-cl] LCP: SendConfigReq #4
ACFCOMP
PROTOCOMP
ACCMAP 0x000a0000
MRU 1500
MAGICNUM 4f075fee
[pptp-cl] LCP: SendConfigReq #5
ACFCOMP
PROTOCOMP
ACCMAP 0x000a0000
MRU 1500
MAGICNUM 4f075fee
[pptp-cl] LCP: SendConfigReq #6
ACFCOMP
PROTOCOMP
ACCMAP 0x000a0000
MRU 1500
MAGICNUM 4f075fee
[pptp-cl] LCP: SendConfigReq #7
ACFCOMP
PROTOCOMP
ACCMAP 0x000a0000
MRU 1500
MAGICNUM 4f075fee
[pptp-cl] LCP: SendConfigReq #8
ACFCOMP
PROTOCOMP
ACCMAP 0x000a0000
MRU 1500
MAGICNUM 4f075fee
[pptp-cl] LCP: SendConfigReq #9
ACFCOMP
PROTOCOMP
ACCMAP 0x000a0000
MRU 1500
MAGICNUM 4f075fee
[pptp-cl] LCP: SendConfigReq #10
ACFCOMP
PROTOCOMP
ACCMAP 0x000a0000
MRU 1500
MAGICNUM 4f075fee
[pptp-cl] LCP: parameter negotiation failed
[pptp-cl] LCP: state change Req-Sent --> Stopped
[pptp-cl] LCP: LayerFinish
pptp0-0: clearing call
pptp0: got StopCtrlConnRequest: reason=local shutdown
pptp0: killing connection with [ip удаленного сервера] 1723
pptp0-0: killing channel
[pptp-cl] PPTP call terminated
[pptp-cl] link: DOWN event
[pptp-cl] link: reconnection attempt 1
[pptp-cl] LCP: Down event
[pptp-cl] LCP: state change Stopped --> Starting
[pptp-cl] LCP: LayerStart
[pptp-cl] pausing 5 seconds before open

Edited by levantuev

Share this post


Link to post
Share on other sites

ipfw add 302 allow gre from any to any via re0

Edited by skor78

Share this post


Link to post
Share on other sites

Добавил в firewall allow gre from any to any via re0

Теперь не медленно пишется лог подключения а быстро и немного другой вот он:

 

Multi-link PPP daemon for FreeBSD

 

process 1075 started, version 4.3 (root@server 20:38 12-Jul-2009)

Label 'startup' not found

bind: Address already in use

PPTP: waiting for connection on 0.0.0.0

[vpn] using interface ng1

[vpn] link: OPEN event

[vpn] LCP: Open event

[vpn] LCP: state change Initial --> Starting

[vpn] LCP: LayerStart

pptp0: connecting to [iP VPN сервера] 1723

pptp0: connected to [iP VPN сервера] 1723

pptp0: attached to connection with [iP VPN сервера] 1723

pptp0-0: outgoing call connected at 64000 bps

[vpn] PPTP call successful

[vpn] link: UP event

[vpn] link: origination is local

[vpn] LCP: Up event

[vpn] LCP: state change Starting --> Req-Sent

[vpn] LCP: SendConfigReq #1

ACFCOMP

PROTOCOMP

ACCMAP 0x000a0000

MRU 1500

MAGICNUM 5d332483

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: rec'd Configure Request #214 (Req-Sent)

ACFCOMP

PROTOCOMP

MRU 1500

MAGICNUM cb0aa688

AUTHPROTO CHAP MSOFTv2

MP MRRU 1600

MP SHORTSEQ

ENDPOINTDISC [802.1] 00 00 19 00 0d b8

[vpn] LCP: SendConfigRej #214

MP MRRU 1600

MP SHORTSEQ

[vpn] LCP: rec'd Configure Reject #1 (Req-Sent)

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: SendConfigReq #2

ACFCOMP

PROTOCOMP

ACCMAP 0x000a0000

MRU 1500

MAGICNUM 5d332483

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: rec'd Configure Request #215 (Req-Sent)

ACFCOMP

PROTOCOMP

MRU 1500

MAGICNUM cb0aa688

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: SendConfigAck #215

ACFCOMP

PROTOCOMP

MRU 1500

MAGICNUM cb0aa688

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: state change Req-Sent --> Ack-Sent

[vpn] LCP: rec'd Configure Reject #2 (Ack-Sent)

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: SendConfigReq #3

ACFCOMP

PROTOCOMP

ACCMAP 0x000a0000

MRU 1500

MAGICNUM 5d332483

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: rec'd Configure Reject #3 (Ack-Sent)

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: SendConfigReq #4

ACFCOMP

PROTOCOMP

ACCMAP 0x000a0000

MRU 1500

MAGICNUM 5d332483

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: rec'd Configure Reject #4 (Ack-Sent)

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: SendConfigReq #5

ACFCOMP

PROTOCOMP

ACCMAP 0x000a0000

MRU 1500

MAGICNUM 5d332483

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: rec'd Configure Reject #5 (Ack-Sent)

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: SendConfigReq #6

ACFCOMP

PROTOCOMP

ACCMAP 0x000a0000

MRU 1500

MAGICNUM 5d332483

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: SendConfigReq #7

ACFCOMP

PROTOCOMP

ACCMAP 0x000a0000

MRU 1500

MAGICNUM 5d332483

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: SendConfigReq #8

ACFCOMP

PROTOCOMP

ACCMAP 0x000a0000

MRU 1500

MAGICNUM 5d332483

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: rec'd Configure Reject #8 (Ack-Sent)

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: SendConfigReq #9

ACFCOMP

PROTOCOMP

ACCMAP 0x000a0000

MRU 1500

MAGICNUM 5d332483

AUTHPROTO CHAP MSOFTv2

pptp0: got StopCtrlConnRequest: reason=local shutdown

pptp0: killing connection with [iP VPN сервера] 1723

pptp0-0: killing channel

[vpn] PPTP call terminated

[vpn] link: DOWN event

[vpn] LCP: Close event

[vpn] LCP: state change Ack-Sent --> Closing

[vpn] LCP: SendTerminateReq #10

[vpn] error writing len 8 frame to bypass: Network is down

[vpn] LCP: Down event

[vpn] LCP: LayerFinish

[vpn] LCP: state change Closing --> Initial

bind: Address already in use

bind: Address already in use

bind: Address already in use

bind: Address already in use

bind: Address already in use

Share this post


Link to post
Share on other sites

Осталось теперь выдать свободный адрес, т.к. тот что выдаете - уже занят, о чем он искрене вам сообщает.

 

btw, зачем между freebsd машинами PPTP?

Зачем mpd4? Если уже давно есть mpd5 ?

Почему бы не поднять за минуту, одну IPIP и не подписать его благополучно IPSec?

Share this post


Link to post
Share on other sites
Осталось теперь выдать свободный адрес, т.к. тот что выдаете - уже занят, о чем он искрене вам сообщает.
И вовсе нет. Там до выдачи IP адреса дело даже не дошло. Клиент с сервером не договорились в LCP по поводу MSCHAPv2.
[vpn] LCP: SendConfigReq #4

ACFCOMP

PROTOCOMP

ACCMAP 0x000a0000

MRU 1500

MAGICNUM 5d332483

AUTHPROTO CHAP MSOFTv2

[vpn] LCP: rec'd Configure Reject #4 (Ack-Sent)

AUTHPROTO CHAP MSOFTv2

 

попробуйте

set link yes chap

Edited by skor78

Share this post


Link to post
Share on other sites

Вот по новой составил конфиг:

 

MPD.CONF

default:
        load vpn

vpn:
        new vpn vpn
        set iface disable on-demand
        set iface idle 0
        set iface route 192.168.1.0/24
        set bundle disable multilink
        set auth authname "XXX"
        set auth password "XXX"
        set link yes acfcomp protocomp
        set link no pap
        set link yes chap
        set link mtu 1460
        set link keep-alive 0 0
        set ipcp yes vjcomp
        set ipcp ranges 192.168.1.1/32 192.168.4.1/32
        set bundle enable compression
        set ccp yes mppc
        set ccp yes mpp-e40
        set ccp yes mpp-e128
        set bundle enable crypt-reqd
        set ccp yes mpp-stateless
        open

 

MPD.LINKS

vpn:
        set phys type pptp
        set pptp peer IP VPN servera
        set pptp enable originate incoming outcall

Так же не работает :(

Share this post


Link to post
Share on other sites

Вроде законнектилось, теперь вопрос стал в таком виде:

как сделать что бы FreeBSD использовало и раздавало интернет из основного шлюза удаленной сети,

в Windows просто галочка стоит а в FreeBSD пробовал rout"ами, не выходит, вот данные

---

re0 - 192.168.1.200 - Подключен к ADSL модему

fxp0 - 172.16.0.1 - Локальная сеть, на всех машинах в сети прописан этот адресс в качестве основного шлюза

----

192.168.4.7 - ip присваеваемый VPN сервером

172.16.1.1 - Основной шлюз VPN сервера

---

ipfw:

check-state
1 allow ip from me to any keep-state
10 divert natd all from any to any via re0
#Мой ip
300 allow ip from 172.16.0.253 to any
301 allow ip from any to 172.16.0.253

302 allow gre from any to any via re0

997 allow ip from any to any via re0
1000 deny ip from any to any via fxp0

Share this post


Link to post
Share on other sites
Все три офиса находятся в разных концах города, в каждом из офисов установлен ADSL интернет разных провайдеров.

В главном офисе "Офис№1" установлен VPN сервер

В данном варианте мы рассматриваем VPN клиента, если мы меняем default gw на сервере, то сервер отключается от удаленного VPN сервера, поэтому прошу помощи....

Share this post


Link to post
Share on other sites

Еще раз.

FreeBSD (клиент-оффис 2 и 3) чего должно раздавать "своей" локалке?

Интернет? Откуда оно должно его получать?

Если set iface route default указать на клиентах, то клиенты при подключении подымут у себя дефолтный маршурт в сторону VPN.

Edited by skor78

Share this post


Link to post
Share on other sites

сервер отключается от удалённого VPN сервера, рассматриваем клиента...

 

Я честно пытался это понять. Есть переводчик в этом зале?

Share this post


Link to post
Share on other sites
Все три офиса находятся в разных концах города, в каждом из офисов установлен ADSL интернет разных провайдеров.

В главном офисе "Офис№1" установлен VPN сервер

В данном варианте мы рассматриваем VPN клиента, если мы меняем default gw на сервере, то сервер отключается от удаленного VPN сервера, поэтому прошу помощи....

1. Как вариант - пропиши удалённый VPN сервер статикой.

2. Во FreeBSD есть поддержка нескольких таблиц маршрутизации.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this