Ubuntu搭建PPTP/L2TP類型VPN伺服器

在Ubuntu下搭建VPN伺服器,我們分別搭建PPTP和L2TP兩種類型。

首先我們搭建PPTP伺服器。
下載安裝pptpd:

接下來修改配置腳本,首先在/etc/ppp/options中配置DNS。
將以下兩行的注釋符號刪除並改為你需要的外網DNS:

然後修改pptp配置文件/etc/ppp/pptpd-options,除注釋行外的內容如下:

以及另一個用於pptp分配ip的配置文件/etc/pptpd.conf,在該文件結尾加入:

給pptp連接分配的內部ip地址段請根據需要填寫。
接下來打開路由轉發功能,在/etc/sysctl.conf中找到以下內容將數值改為1:
net.ipv4.ip_forward=1
保存後運行命令生效:
sysctl -p
修改iptable規則NAT轉發以及設置MTU

以上兩行重啟後會失效,很多人的做法是將其保存為iptable rules添加到pre-up中
我的做法比較簡單,直接將這兩行寫入/etc/rc.local結尾(exit之前)。
(注意:eth0是你的公網網卡名稱,請通過ifconfig確認)
然後在/etc/ppp/chap-secrets中添加用戶和密碼。
格式為[用戶名\t連接類型\t密碼\t用戶IP],例如:

使用/etc/init.d/pptpd restart重啟pptpd服務。
至此pptp類型VPN搭建完畢。

接下來搭建L2TP類型VPN。
因為L2TP需要通過IPSec加密,同樣我們下載安裝需要的組建服務:

然後修改配置文件/etc/ipsec.conf,除注釋行外的內容如下:

left處請填寫您本伺服器的IP位址!
接下來修改/etc/xl2tpd/xl2tpd.conf,除注釋行外的內容如下:

ip range處請填寫您需要給l2tp連接分配的內部ip網段。
再修改/etc/ppp/options.xl2tpd,如果沒有可以新建,內容如下:

DNS處可設置您需要分配的DNS地址。
再修改/etc/ipsec.secrets文件設置預設共享密鑰:

前面為本伺服器IP地址,引號內的為您要設置的密鑰
修改網路策略使ipsec能正常運行:

順便也加入到/etc/rc.local中(exit之前)。
以上配置全部完畢後,可以通過ipsec verify命令檢測ipsec運行是否正常。
如果出現Checking for IPsec support in kernel [FAILED],您可能未啟動ipsec服務,通過/etc/init.d/ipsec start啟動。
如果出現NETKEY: Testing XFRM related proc values [FAILED],您可能未修改網路策略。
如果出現Pluto listening for IKE on udp 500 [FAILED],您可能需要安裝apt-get install lsof。
如果沒有出現[FAILED]表示運行正常。
Ubuntu使用apt-get安裝openswan一定會出現Two or more interfaces found, checking IP forwarding [FAILED]。
而且客戶端無法連接,且在/var/log/auth日誌中出現
ERROR: netlink XFRM_MSG_DELPOLICY response for flow eroute_connection delete included errno 2: No such file or directory
那麼原因應該是apt-get到的openswan版本並不能在該Ubuntu上運行,建議去openswan的官網下載2.6.34版本手動編譯安裝。
或在此下載源碼:ftp://ro:[email protected]/openswan_lilith.pro.tar.gz
(這實在非常噁心,因為源碼編譯安裝不是誰都能完成的,注意必須把源碼解壓在/usr/src下並apt-get install libgmp3-dev,以及bison,flex等然後再編譯安裝)
L2TP將和PPTP一樣使用/etc/ppp/chap-secrets作為帳戶密碼文件。
重啟所有服務:

大功告成!

======
kujou_rin

2 thoughts on “Ubuntu搭建PPTP/L2TP類型VPN伺服器

  1. 自動引用通知: vps-vpn-ss | MyWordPress

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *