3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
自從 MacOS 升級到 10.12 之後,就已經拿掉系統預設的 PPTP VPN 連線方式,改用 L2TP/IPSec 這些比較安全的連線方式取代,很多人為了繼續使用 PPTP VPN 只好安裝第三方 VPN 連線工具,我實在不想裝,只好花點時間研究了一下  L2TP over IPSec,這種方式的 VPN 連線也比較安全。以下介紹如何在 Ubuntu Server 架設可以直接提供 MacOS 內建的 L2TP/IPSec VPN 連線服務,這樣就不需要裝一推 VPN Client 囉。 Ubuntu 14.04 安裝 pptpd 與 L2TP IPSec VPN 相關套件 測試的 Linux 版本為 Ubuntu Server 14.04 LTS,先用 apt 安裝需要的套件如下: sudo apt-get install pptpd openswan xl2tpd 編輯 /etc/pptpd.conf 設定檔 sudo vim /etc/pptpd.conf 1 2 3 4 option /etc/ppp/pptpd-options logwtmp localip 192.168.200.254 remoteip 192.168.200.100-200 上述 localip 為 VPN Server 的虛擬 IP Address,當 Client 建立 ppp 連線後可以透過這個 IP 設定為 Gateway。remoteip 則是設定 Client 連上後要配發的 IP 範圍。 編輯 xl2tpd 設定檔 sudo vim /etc/ppp/options.xl2tpd 1 2 3 4 5 6 7 8 9 10 11 12 13 name xl2tpd require-mschap-v2 ms-dns 8.8.8.8 ms-dns 8.8.4.4 noccp auth mtu 1460 mru 1460 crtscts hide-password proxyarp lcp-echo-interval 30 lcp-echo-failure 4 上述設定檔中 name 是自訂名稱,但是要跟密碼檔 /etc/ppp/chap-secrets 的設定吻合,ms-dns 可以設定兩組(第三組無效),用來配發給連線的 Client 進行 DNS 設定。 sudo vim /etc/ipsec.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 version 2.0 config setup         dumpdir=/var/run/pluto/         nat_traversal=yes         virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v6:fd00::/8,%v6:fe80::/10         oe=off         protostack=netkey         force_keepalive=yes         keep_alive=60   conn L2TP-PSK-NAT         authby=secret         pfs=no         auto=add         keyingtries=3         rekey=no         ikelifetime=8h         keylife=1h         ike=aes256-sha1,aes128-sha1,3des-sha1         phase2alg=aes256-sha1,aes128-sha1,3des-sha1         type=transport         left=         leftprotoport=17/%any         leftnexthop=�faultroute         right=%any         rightprotoport=17/%any         dpddelay=10         dpdtimeout=90         dpdaction=clear 上述最重要記得將 修改為 Server 要連上 Internet 的 Interface IP Address,其他的都不用改照抄即可。 L2TP/IPSec 除了使用者帳號密碼之外,還需要一組連線密鑰,下面的「YOUR_SECRET_KEY」請自行設定一組字串,待會 Client 設定連線的時候會用到。 sudo vim /etc/ipsec.secrets 1 %any %any: PSK "YOUR_SECRET_KEY" sudo vim /etc/xl2tpd/xl2tpd.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 [global] ipsec saref = yes saref refinfo = 30   [lns default] ip range = 192.168.200.100-192.168.200.200 local ip = 192.168.200.254 length bit = yes require chap = yes refuse pap = yes require authentication = yes ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd 這裡的設定記得  pppoptfile 要跟前面步驟的檔案一樣是 /etc/ppp/options.xl2tpd 即可,另外剛開始建議 ppp debug = yes 打開 Debug Log,連線失敗的時候就可以在 /var/log/pptpd.log 查看問題。 sudo vim /etc/ppp/chap-secrets 1 user1            xl2tpd      USER_PASSWD           * 這裡的 xl2tpd 就是對應前面設定 /etc/ppp/options.xl2tpd 檔案中的 name 欄位,可以多行建立多組連線的帳號密碼。這裡的密碼採用明碼存放,整個很不自然,也可以更換為 Unix PAM 來進行認證,保護密碼的方式會好一些。 快了快了,最後重新啟用服務 sudo service pptpd restart sudo service ipsec restart sudo service xl2tpd restart 由於我們想要透過 VPN 做壞事翻牆,所以記得啟用 IP Forward,Linux 設定如下: sudo vim /etc/sysctl.conf 1 2 3 4 5 6 7 net.ipv4.ip_forward=1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.eth0.send_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.eth0.accept_redirects = 0 載入並生效設定 sudo sysctl -p /etc/sysctl.conf 設定 iptables 讓透過 Gateway eth0 出去的封包進行偽裝,就是 NAT 囉,如下: sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 如果要開機自動載入可以加到 /etc/rc.local 檔案即可,最後透過以下命令驗證一下 IPSec,運氣好的話可以看到以下畫面: sudo ipsec verify 這個錯誤「Two or more interfaces found, checking IP forwarding  [FAILED]」可以不用理會,這樣就算完成囉。 完成囉,如果登入或連線有問題,可以檢查以下 Log File: sudo tail -f /var/log/auth.log 設定 MacOS VPN 連線 系統偏好設定 > 網路 > + > 選「VPN」 > 選「透過 IPSec 的 L2TP」 設定連線 IP 與連線帳號,按下「認證設定...」 輸入登入密碼與密鑰,密鑰就是前面 /etc/ipsec.secrets 設定的那一組 輸入帳號的頁面按下「進階...」,勾選「透過 VPN 連線傳送所有流量」 然後進行「連線」就完成了,連線成功後可以在 Terminal 輸入以下命令,確認透過 VPN Gateway 上網: route -n get default 看到 ppp0 就表示 OK 囉,如果連不上的話記得檢查一下防火牆,VPN Server 需要開啟 TCP 1723, UDP 500, UDP 4500 這些端口。如果你將以上的做法移植到 Ubuntu 16.04,是不會成功的!為什麼我還沒研究出來,Ubuntu 16.04 不 Work, 不 Work, 不 Work... 分享到 Twitter(在新視窗中開啟) 按一下以分享至 Facebook(在新視窗中開啟) 分享到 LinkedIn(在新視窗中開啟) 點這裡寄給朋友(在新視窗中開啟) 按一下即可分享至 Skype(在新視窗中開啟) 分享到 Reddit(在新視窗中開啟) 分享到 Tumblr(在新視窗中開啟) 按一下以分享到 Telegram(在新視窗中開啟)

本文由toright提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦