Ubuntu16.04的搭建l.2.t.p.d(宿舍訪問公司內網)


主要的實現步驟

  1. openswan(ipsec) : 提供一個密鑰
  2. ppp :提供用戶名和密碼
  3. xl2tpd : 提供L2TP服務
  4. sysctl : 提供服務器內部轉發
  5. iptables : 提供請求從服務器內部轉向外部,外部響應轉向服務器內部(內網需要在路由器做映射)

安裝開始

1.安裝openswan

apt-get install openswan

如果出現報錯 Package ‘openswan‘ has no installation candidate 請執行以下命令,如果順利安裝請直接看第二步

vim /etc/apt/sources.list.d/lzu.list
#創建一個源

粘貼如下代碼到lzu.list文件

deb http://mirror.lzu.edu.cn/ubuntu/ precise main restricted universe multiverse
deb http://mirror.lzu.edu.cn/ubuntu/ precise-security main restricted universe multiverse
deb http://mirror.lzu.edu.cn/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirror.lzu.edu.cn/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirror.lzu.edu.cn/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirror.lzu.edu.cn/ubuntu/ precise main restricted universe multiverse
deb-src http://mirror.lzu.edu.cn/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirror.lzu.edu.cn/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirror.lzu.edu.cn/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirror.lzu.edu.cn/ubuntu/ precise-backports main restricted universe multiverse

更新一下源

apt-get update

安裝openswan

apt-get -y install openswan
#安裝出現提示框,選擇NO回車

好了vim
/etc/ipsec.conf

把下面的內容直接全部拷貝為新文件的內容(更改服務器地址就可以了)

 
config setup nat_traversal=yes virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12 oe=off protostack=netkey conn L2TP-PSK-NAT rightsubnet=vhost:%priv also=L2TP-PSK-noNAT conn L2TP-PSK-noNAT authby=secret pfs=no auto=add keyingtries=3 rekey=no ikelifetime=8h keylife=1h type=transport left=xxx.xxx.xxx.xxx(你的服務器地址) leftprotoport=17/1701 right=%any rightprotoport=17/%any
配置密鑰文件 vim /etc/ipsec.secrets 

然后把下面的內容放到新建的配置文件中:

xxx.xxx.xxx.xxx %any: PSK "YourPsk" 

上面的xxx.xxx.xxx.xxx是服務器的IP,而后面的"YourPsk"中的YourPsk就是密鑰的內容。你可以改為自己的任意字符串。反正在你連接登錄VPN的時候,是需要這個PSK的。

運行ipsec.

  ipsec setup restart

PPP

PPP就是一個撥號軟件,用來提供用戶登錄的用戶名和密碼驗證用的。所以在上面那篇文章里,PPTP搭建的VPN也會用到PPP。所以,實際上,PPTP和L2TP是可以共存在一台服務器上的,而且它們還可以共享用戶登錄賬號信息,因為它們都用PPP作為用戶登錄連接。

apt-get install ppp 

一般服務器都是OK的,如果你的PPP沒有安裝成,記住我上面提供的另外兩種安裝方式。雖然我們現在還沒有搭建起整個VPN,但是可以先在PPP中把要用來登錄的用戶名和密碼先安排好:

vim /etc/ppp/chap-secrets 

在上面的文件中新增一行:

 
czl * czl *
有兩個星號,第一個表示以后所有使用PPP作為用戶認證的服務,都可以使用這個用戶名和密碼,包括PPTP和L2TP都可以使用loginname。第二個星號表示這個用戶可以從任何IP登錄。如果你希望控制一下,可以把星號改成具體的值來限制。

xl2tpd

就像pptp和pptpd一樣,L2TP也依賴於xl2tpd。

 
apt-get install xl2tpd

安裝好xl2tpd之后,我們進行配置。它的配置文件有兩個,一個是/etc/xl2tpd/xl2tpd.conf一個是/etc/ppp/options.xl2tpd(也有可能沒有,我們自己創建一個就可以),其實第一個文件把第二個文件包含進來而已。

vim /etc/xl2tpd/xl2tpd.conf 

把下面的內容寫進去:

 
[global] ipsec saref = yes listen-addr = xxx.xxx.xxx.xxx(你的服務器地址) [lns default] ip range = 192.168.1.2-192.168.1.100 local ip = 192.168.1.1 refuse chap = yes refuse pap = yes require authentication = yes ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd length bit = yes

再配置vim /etc/ppp/options.xl2tpd 

寫入下面的內容:

ipcp-accept-local
ipcp-accept-remote
require-mschap-v2
ms-dns 114.114.114.114
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
mtu 1400
noccp
connect-delay 5000

這樣,xl2tpd的配置就好了

sysctl

sysctl的功能是開啟轉發。它能夠將服務器內部的ip地址關系進行轉發和映射,從而實現我們鏈接VPN之后的用戶,能夠通過內部的一些端口進行請求的轉發。

vim /etc/sysctl.conf 

找到下面幾個選項,並把值改為:

net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.all.log_martians = 0 net.ipv4.conf.default.log_martians = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.icmp_ignore_bogus_error_responses = 1

執行:

sysctl -p 

這樣配置就生效了。

iptables(根據自己的來)

iptables --table nat --append POSTROUTING --jump MASQUERADE
iptables -t nat -A POSTROUTING -s 10.0.0.0/22 -o eth0 -j MASQUERADE
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD -s 10.0.0.0/22 -j ACCEPT
iptables -I FORWARD -d 10.0.0.0/22 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -A INPUT -p udp -m state --state NEW -m udp --dport 1701 -j ACCEPT
iptables -A INPUT -p udp -m state --state NEW -m udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp -m state --state NEW -m udp --dport 4500 -j ACCEPT
mkdir /etc/iptables
iptables-save > /etc/iptables/iptables.rules

啟動 IPSEC 服務並檢測 IPSEC 是否正常工作

/etc/init.d/ipsec start
#使用如下命令確認 ipsec 是否工作正常 ipsec verify #注意:只要沒有Faild就可以了 

如果出現錯誤請參考以下命令

#錯誤1.Checking /bin/sh is not /bin/dash   [WARNING] 輸入以下代碼 dpkg-reconfigure dash #按英文提示,選擇no #錯誤2.pluto is running [FAILED] /etc/init.d/ipsec start #錯誤3:NETKEY: Testing XFRM related proc values [FAILED] for each in /proc/sys/net/ipv4/conf/* do echo 0 > $each/accept_redirects echo 0 > $each/send_redirects done #錯誤4:Pluto listening for IKE on udp 500 [FAILED] apt-get install lsof #錯誤5:Hardware RNG detected, testing if used properly [FAILED] apt-get install rng-tools

下面是正常的截圖

 最后重啟 service ipsec restart

重啟l2tp service xl2tpd restar

客戶端連接測試 手機 win mac 使用l2tp協議

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM