MPD(multi-link PPP daemon)之前在FreeBSD4的世界時,實作過poptop的pptpd VPN
但在6的世界裡,因為ppp版本的問題和面臨poptop又改版
實作過程可說是處處碰壁…
最後雖然於官方下載了早期的舊版本,自行make、連線成功
但這種做法實在讓人很不放心…
再加上poptop對BSD系列的支援度一直沒有很完整的文件
官方的指南也根本沒提到…(沒辨法…誰叫poptop本來就不是專為FreeBSD設計的)
但在Linux上就有很完善的教學,所以使用Linux的user還是可以試試看

以上種種原因,讓我決定丟掉用了三年的poptop
找到另一個專為FreeBSD設定的pptpdVPN _ MPD

安裝過程不旦無痛,設定檔和管理上也很人性化
簡單易懂…(開始覺得我以前的青春都白費了><)

癈話就到這邊,接下來就是無痛安裝步驟!!
#==================================
Ports 安裝
路徑:/usr/ports/net/mpd
安裝:make install clean


conf 設定
環境:em0:163.17.0.1(WAN) em1:192.168.1.254(LAN)
VPN:192.168.1.33-35(當作vpn分配ip)
路徑:/usr/local/etc/mpd/
檔案:mpd.conf

編輯:
#################################################
#
#       MPD configuration file
#
#################################################
default:
        load pptp

#我開啟三個通道
pptp:
        load vpn0
        load vpn1
        load vpn2

#下方的通道名稱請跟上面對應
#ng是VPN之後會產生的通道介面,可自行更改
#編號是由0開始,因此第二組就是ng1,以此類推
vpn0:
        new -i ng0 vpn0 vpn0
        set ipcp ranges 192.168.1.254/32 192.168.1.33/32
        load pptp_def
vpn1:
        new -i ng1 vpn1 vpn1
        set ipcp ranges 192.168.1.254/32 192.168.1.34/32
        load pptp_def
vpn2:
        new -i ng2 vpn2 vpn2
        set ipcp ranges 192.168.1.254/32 192.168.1.35/32
        load pptp_def

pptp_def:
        set iface disable on-demand
        set iface enable proxy-arp
        set iface idle 0
        set iface enable tcpmssfix
        set bundle enable multilink
        set link yes acfcomp protocomp
        set link no pap chap
        set link enable chap-msv2  #連線類型
        set link keep-alive 10 60
        set link mtu 1460
        set ipcp yes vjcomp
        set ipcp dns 163.17.1.1  #設定dns
        set bundle enable compression
        set ccp yes mppc
        set ccp yes mpp-e40
        set ccp yes mpp-e128  #加密方式
        set ccp yes mpp-stateless


檔案:mpd.link
編輯:
########################################
#
#       MPD links file
#
########################################
vpn0:
        set link type pptp
        set pptp self 163.17.0.1
        set pptp enable incoming
        set pptp disable originate

vpn1:
        set link type pptp
        set pptp self
163.17.0.1
        set pptp enable incoming
        set pptp disable originate

vpn2:
        set link type pptp
        set pptp self
163.17.0.1
        set pptp enable incoming
        set pptp disable originate



檔案:mpd.secret
編輯:
#帳號   密碼      指定ip
zgod      "vpn7788978"
user      "fuck978978"



加入rc.conf
路徑:/etc/rc.conf
編輯加入:
#-----------PPTPd------------------
mpd_enable="YES"
mpd_flags="-b"

#------------以下是原本的pf 設定----------
#---------- Gateway ------------
gateway_enable="YES"

#--------- PacketFilter-----------
pf_enable="YES"
pf_rules="/etc/pf.conf"

pflog_enable="YES"
pflog_logfile="/var/log/pflog"


pf 防火牆設定
路徑:/etc/pf.conf
編輯:
#開啟1723 port 和 47協定(不是47port哦)
#定義vpn 介面的開通
ext_if = "em0"             # WAL
int_if = "em1"
          # LAN
vpn_if = "ng"           # VPN

lan_add = "192.168.9.0/24"

#---------TCP 1723 pass------
pass quick on $ext_if proto tcp from any to $ext_if \
port 1723 flags S/SA keep state

#---------Porot 47 (pptp)--------
pass in on $ext_if proto 47 from any to $ext_if keep state

#--------VPN LAN OK------------
pass on $vpn_if from $lan_add to $lan_add keep state

pass out on $ext_if proto 47 all keep state

pf 詳細設定,請參考[FreeBSD6][手冊]防火牆_PF那篇!


啟動mpd

指令:/usr/local/etc/rc.d/mpd    start
              stop
              restart


查看 sockstat |grep mpd

root     mpd        889   3  dgram  -> /var/run/logpriv   
root     mpd        889   15 tcp4   163.17.0.1:1723    *:* 

有以下兩行就是mpd正常運作了


查看ifconfig

ng0: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng1: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500
ng2: flags=8890<POINTOPOINT,NOARP,SIMPLEX,MULTICAST> mtu 1500

可看見已經開啟三個通道,只要有人連入就會看到

以上MPD VPN Server 就架設完成了
client 端的連線設定->先貼公司的<-
晚點再自已轉過來

    全站熱搜

    zgod 發表在 痞客邦 留言(0) 人氣()