參考一鍵安裝腳本:
linux系統(tǒng)(CentOS6+论笔,Debian7+采郎,Ubuntu12+)搭建VPN(L2TP/IPSec)一鍵安裝腳本
安裝時千所,由于我修改了PSK,造成了部分亂碼蒜埋,結(jié)果死活連接不上淫痰,后面在
/etc/ipsec.secrets
文件下把PSK改成了 “classnotes.cn”
再連接,終于成功登陸整份。
但是還有個問題待错,使用IPsec方式無法連接到服務(wù)器籽孙,還沒查到原因。
需要使用的命令:
l2tp -a 新增用戶
l2tp -d 刪除用戶
l2tp -m 修改現(xiàn)有的用戶的密碼
l2tp -l 列出所有用戶名和密碼
l2tp -h 列出幫助信息
ipsec status (查看 IPSec 運行狀態(tài))
ipsec verify (查看 IPSec 檢查結(jié)果)
/etc/init.d/ipsec start|stop|restart|status (CentOS6 下使用)
/etc/init.d/xl2tpd start|stop|restart (CentOS6 下使用)
systemctl start|stop|restart|status ipsec (CentOS7 下使用)
systemctl start|stop|restart xl2tpd (CentOS7 下使用)
service ipsec start|stop|restart|status (Debian/Ubuntu 下使用)
service xl2tpd start|stop|restart (Debian/Ubuntu 下使用)
linux系統(tǒng)(CentOS6+火俄,Debian7+犯建,Ubuntu12+)搭建VPN(L2TP/IPSec)一鍵安裝腳本
本腳本適用環(huán)境:
系統(tǒng)支持:CentOS6+,Debian7+瓜客,Ubuntu12+
內(nèi)存要求:≥128M
更新日期:2017 年 05 月 28 日
關(guān)于本腳本:
名詞解釋如下
L2TP(Layer 2 Tunneling Protocol)
IPSec(Internet Protocol Security)
IKEv2 (Internet Key Exchange v2)
能實現(xiàn) IPsec 的目前總體上有 openswan适瓦,libreswan,strongswan 這3種谱仪。
libreswan 是基于 openswan 的 fork玻熙,所以現(xiàn)在各個發(fā)行版基本已經(jīng)看不到 openswan 的身影了。
當(dāng)然也有使用 strongswan 的疯攒。
之所以要更新 L2TP 一鍵安裝腳本嗦随,是因為隨著各個 Linux 發(fā)行版不斷推陳出新,原有的腳本已經(jīng)不適應(yīng)現(xiàn)在的需求敬尺。
本腳本通過編譯安裝最新版 libreswan 來實現(xiàn) IPSec(CentOS7 下則是全部 yum 安裝)枚尼,yum 或 apt-get 來安裝 xl2tpd,再根據(jù)各個發(fā)行版的使用方法不同砂吞,部署防火墻規(guī)則姑原。
寫在前面:
基于 OpenVZ 虛擬化技術(shù)的 VPS 需要開啟TUN/TAP才能正常使用,購買 VPS 時請先咨詢服務(wù)商是否支持開啟 TUN/TAP呜舒。
OpenVZ 虛擬的 VPS 需要系統(tǒng)內(nèi)核支持 IPSec 才行锭汛。也就是說,母服務(wù)器的內(nèi)核如果不支持的話那就沒辦法袭蝗,只能換 VPS唤殴。
因此,一般不建議在 OpenVZ 的 VPS 上安裝本腳本到腥。腳本如果檢測到該 VPS 為 OpenVZ 架構(gòu)朵逝,會出現(xiàn)警告提醒。
如何檢測是否支持TUN模塊乡范?
執(zhí)行命令:
cat /dev/net/tun
如果返回信息為:cat: /dev/net/tun: File descriptor in bad state 說明正常
如何檢測是否支持ppp模塊配名?
執(zhí)行命令:
cat /dev/ppp
如果返回信息為:cat: /dev/ppp: No such device or address 說明正常
當(dāng)然,腳本在安裝時也會執(zhí)行檢查晋辆,如果不適用于安裝渠脉,腳本會予以提示。
使用方法:
root 用戶登錄后瓶佳,運行以下命令:
wget?--no-check-certificate?https://raw.githubusercontent.com/teddysun/across/master/l2tp.sh
chmod?+x?l2tp.sh
./l2tp.sh
如果報錯一般是系統(tǒng)沒有安裝wget
-bash:?wget:?command?not?found
如果系統(tǒng)是centos?執(zhí)行
?sudo?yum?-y?install?wget
?然后再次執(zhí)行腳本
正常情況下執(zhí)行后芋膘,會有如下交互界面
Please input IP-Range:
(Default Range: 192.168.18):
輸入本地IP段范圍(本地電腦連接到VPS后給分配的一個本地IP地址),直接回車意味著輸入默認(rèn)值192.168.18
Please input PSK:
(Default PSK: teddysun.com):
PSK意為預(yù)共享密鑰,即指定一個密鑰將來在連接時需要用到为朋,直接回車意味著輸入默認(rèn)值teddysun.com
Please input Username:
(Default Username: teddysun):
Username意為用戶名臂拓,即第一個默認(rèn)用戶。直接回車意味著輸入默認(rèn)值teddysun
Please input teddysun’s password:
(Default Password: Q4SKhu2EXQ):
輸入用戶的密碼习寸,默認(rèn)會隨機生成一個10位包含大小寫字母和數(shù)字的密碼胶惰,當(dāng)然你也可以指定密碼。
ServerIP:your_server_main_IP
顯示你的 VPS 的主 IP(如果是多 IP 的 VPS 也只顯示一個)
Server Local IP:192.168.18.1
顯示你的 VPS 的本地 IP(默認(rèn)即可)
Client Remote IP Range:192.168.18.2-192.168.18.254
顯示 IP 段范圍
PSK:teddysun.com
顯示 PSK
Press any key to start…or Press Ctrl+c to cancel
按下任意按鍵繼續(xù)霞溪,如果想取消安裝童番,請按Ctrl+c鍵
安裝完成后,腳本會執(zhí)行 ipsec verify 命令并提示如下:
If?there?are?no?[FAILED]?above,?then?you?can?connect?to?your
L2TP?VPN?Server?with?the?default?Username/Password?is?below:
ServerIP:your_server_IP
PSK:your?PSK
Username:your?usename
Password:your?password
If?you?want?to?modify?user?settings,?please?use?command(s):
l2tp?-a?(Add?a?user)
l2tp?-d?(Delete?a?user)
l2tp?-l?(List?all?users)
l2tp?-m?(Modify?a?user?password)
Welcome?to?visit?https://teddysun.com/448.html
Enjoy?it!
如果你要想對用戶進行操作威鹿,可以使用如下命令:
l2tp -a 新增用戶
l2tp -d 刪除用戶
l2tp -m 修改現(xiàn)有的用戶的密碼
l2tp -l 列出所有用戶名和密碼
l2tp -h 列出幫助信息
其他事項:
1剃斧、腳本在安裝完成后,已自動啟動進程忽你,并加入了開機自啟動幼东。
2、腳本會改寫 iptables 或 firewalld 的規(guī)則科雳。
3根蟹、腳本安裝時,會即時將安裝日志寫到 /root/l2tp.log 文件里糟秘,如果你安裝失敗简逮,可以通過此文件來尋找錯誤信息。
使用命令:
ipsec status (查看 IPSec 運行狀態(tài))
ipsec verify (查看 IPSec 檢查結(jié)果)
/etc/init.d/ipsec start|stop|restart|status (CentOS6 下使用)
/etc/init.d/xl2tpd start|stop|restart (CentOS6 下使用)
systemctl start|stop|restart|status ipsec (CentOS7 下使用)
systemctl start|stop|restart xl2tpd (CentOS7 下使用)
service ipsec start|stop|restart|status (Debian/Ubuntu 下使用)
service xl2tpd start|stop|restart (Debian/Ubuntu 下使用)
更新日志
2017 年 05 月 28 日:
升級 libreswan 到版本 3.20尿赚。
修正 libreswan 的若干配置問題散庶。
修正 xl2tpd 的端口監(jiān)聽配置問題。
修正在 CentOS 6 對 libevent2 的依賴問題凌净,改為 yum 安裝 libevent2-devel悲龟。
測試表明,在內(nèi)網(wǎng)環(huán)境的 VPS 里(如AWS冰寻, IDCF须教,GCE,騰訊云斩芭,阿里云等)也可以正常使用了轻腺。
2017 年 02 月 25 日:
升級 libreswan 到版本 3.19。
2016 年 09 月 12 日:
修正了在 CentOS 6 下 libevent2 依賴的問題划乖;
新增了一個 -m 選項贬养,用以修改現(xiàn)有用戶的密碼。
2016 年 08 月 13 日:
修正 Debian 8 下的 sd-daemon.h: No such file or directory 問題迁筛,是由于缺少依賴包 libsystemd-daemon-dev 導(dǎo)致的煤蚌。
2016 年 08 月 05 日:
升級 libreswan 到版本 3.18。
2016 年 06 月 10 日:
腳本在安裝完成后细卧,新增了幾個命令尉桩,便于操作用戶
l2tp -a 新增用戶
l2tp -d 刪除用戶
l2tp -l 列出所有用戶
l2tp -h 列出幫助信息
2016 年 04 月 25 日:
4、在Vultr 的 Debian 7的系統(tǒng)模板下安裝時贪庙,軟件包 libcurl4-nss-dev 會出現(xiàn)依賴錯誤蜘犁。如下所示:
The?following?packages?have?unmet?dependencies:
libcurl4-nss-dev?:?Depends:?libldap2-dev?but?it?is?not?going?to?be?installed
Depends:?librtmp-dev?but?it?is?not?going?to?be?installed
而 libldap2-dev 和 librtmp-dev 又依賴了其他幾種軟件包≈褂剩總之最后的依賴關(guān)系如下:
libldap2-dev?:?Depends:?libldap-2.4-2?(=?2.4.31-2+deb7u1)?but?2.4.31+really2.4.40+dfsg-1+deb8u1~bpo70+1?is?to?be?installed
librtmp-dev?:?Depends:?libgnutls-dev?but?it?is?not?going?to?be?installed
libgnutls-dev?:?Depends:?libp11-kit-dev?(>=?0.4)?but?it?is?not?going?to?be?installed
libp11-kit-dev?:?Depends:?libp11-kit0?(=?0.12-3)?but?0.20.7-1~bpo70+1?is?to?be?installed
那么解決辦法就是把最底層的依賴包 libp11-kit0 先卸載掉这橙,然后再安裝 libcurl4-nss-dev 即可。
apt-get?-y?remove?libp11-kit0
apt-get?-y?--no-install-recommends?install?libcurl4-nss-dev?wget
然后再運行腳本安裝即可导披。
2016 年 04 月 22 日:
修復(fù)了在 Ubuntu 16.04 下因為默認(rèn)缺少 python 命令而導(dǎo)致 ipsec verify 等命令不能用的問題屈扎。
2016 年 04 月 19 日:
修復(fù)了在 Debian 7 下因為 libnss3 和 libnspr4 的版本過低而導(dǎo)致編譯 libreswan 失敗的問題。
2016 年 04 月 18 日:
目前在 Debian 7 上測試的結(jié)果撩匕,因為 libnss3 和 libnspr4 的版本過低而導(dǎo)致編譯 libreswan 失敗鹰晨。臨時解決辦法是 dpkg 安裝 libnss3_3.17.2 和 libnspr4_4.10.7 的 deb 包后重試。
參考鏈接: