找回密码
 立即注册
搜索
查看: 231|回复: 0

L2TP/IPSec一键安装脚本

[复制链接]

989

主题

92

回帖

5万

积分

管理员

积分
55362
发表于 2022-7-4 16:54:16 | 显示全部楼层 |阅读模式
本脚本适用环境:) U, P  C; p, q. r; ?1 W
系统支持:CentOS6+,Debian7+,Ubuntu12+5 w: i' [1 g+ U* l  r' ^
内存要求:≥128M8 W0 l7 H6 D# K7 R: l
更新日期:2017 年 05 月 28 日2 {$ q8 @6 w! R* E8 y
关于本脚本:: j) Y# h3 ]4 d/ F" `
名词解释如下
, z+ Y0 s1 F! l- B# X1 cL2TP(Layer 2 Tunneling Protocol)
7 ^3 l' M6 i3 ~1 f0 R% h% o. KIPSec(Internet Protocol Security)* Z8 s( ]+ ?5 w4 q2 a; H! l
IKEv2 (Internet Key Exchange v2)
3 N+ i. A1 V0 c能实现 IPsec 的目前总体上有 openswan,libreswan,strongswan 这3种。
- @  L8 I- Q3 I: L# q( Elibreswan 是基于 openswan 的 fork,所以现在各个发行版基本已经看不到 openswan 的身影了。
7 ?  |3 \4 j2 a/ G1 c) V当然也有使用 strongswan 的。
# g$ ]" w+ W; x" v; o/ J之所以要更新 L2TP 一键安装脚本,是因为随着各个 Linux 发行版不断推陈出新,原有的脚本已经不适应现在的需求。
* I( Q; F4 p6 _3 y! h0 Z4 e本脚本通过编译安装最新版 libreswan 来实现 IPSec(CentOS7 下则是全部 yum 安装),yum 或 apt-get 来安装 xl2tpd,再根据各个发行版的使用方法不同,部署防火墙规则。/ x9 r$ s( b2 Y3 [3 x4 ]
       
) X# C/ y% I) _* }" Q# c# b        隆重介绍 Docker 版 L2TP/IPsec
0 H3 U( B, y! C$ V8 c
由于此脚本已经很久不更新,因此已经不推荐使用该脚本来安装了。OK,下面隆重介绍一下 Docker 版 L2TP/IPsec。& g" j3 \8 ~, b4 k+ A
使用 Docker 的好处就是对当前系统的环境没有破坏性,随时可以新建或者删除容器,而且方便快捷,实在是居家必备。
9 k. d2 L5 e$ l2 L/ x  A2 z具体请查看《介绍几款 Docker 镜像》此文中的【L2TP/IPsec VPN Server Docker Image】小节。
1 n( E- q0 ^6 Q+ r* D  ?以及该项目的 Docker Hub 页面,或 Github 页面( F) g' Z/ \  ?/ t6 `/ v6 g
+ [, Z' H% E7 P6 D
        写在前面:
4 ]$ D; f5 w2 @. H$ [6 T
基于 OpenVZ 虚拟化技术的 VPS 需要开启TUN/TAP才能正常使用,购买 VPS 时请先咨询服务商是否支持开启 TUN/TAP。" w1 C/ C! ~4 z9 s/ b' n
OpenVZ 虚拟的 VPS 需要系统内核支持 IPSec 才行。也就是说,母服务器的内核如果不支持的话那就没办法,只能换 VPS。  |% f, `4 h+ U; a1 v; [
因此,一般不建议在 OpenVZ 的 VPS 上安装本脚本。脚本如果检测到该 VPS 为 OpenVZ 架构,会出现警告提醒。
: W9 d$ D$ }% j如何检测是否支持TUN模块?; r, f% h6 k2 o  P- E
执行命令:
9 g9 v1 f8 q7 M8 r  Q/ f) a- Wcat /dev/net/tun, d$ T5 t" J, i2 W; j
如果返回信息为:cat: /dev/net/tun: File descriptor in bad state 说明正常
" f4 u) I1 ?* |/ R5 d& k如何检测是否支持ppp模块?6 z3 Q, Y& B6 i: P  ~. O" O
执行命令:1 `( |4 M! l7 Q; q. V
cat /dev/ppp
# W5 p- ?  t2 H3 Z如果返回信息为:cat: /dev/ppp: No such device or address 说明正常
: f5 n5 l7 B0 Y# ]4 g1 j$ `当然,脚本在安装时也会执行检查,如果不适用于安装,脚本会予以提示。
6 W$ A- [$ e2 |2 s- G- _9 C        使用方法:
" B; D! g" r* x+ C9 O) Y
root 用户登录后,运行以下命令:9 K! _) N9 J, u; \
wget --no-check-certificate https://raw.githubusercontent.co ... master/l2tp.shchmod +x l2tp.sh./l2tp.sh执行后,会有如下交互界面
# Q. ~' b) r& b5 M# b
. B3 L* S6 z. X( iPlease input IP-Range:3 p7 A; N( S0 r3 J# s3 V
(Default Range: 192.168.18):
, o+ w" ^( e/ V0 D! e) W输入本地IP段范围(本地电脑连接到VPS后给分配的一个本地IP地址),直接回车意味着输入默认值192.168.18" p/ b3 M$ m1 T( Y5 `$ Z
Please input PSK:
# C4 B2 V' V) j: p# t(Default PSK: teddysun.com):
: G; K( ^6 u/ VPSK意为预共享密钥,即指定一个密钥将来在连接时需要用到,直接回车意味着输入默认值teddysun.com6 z) n% z& V7 w# W* c8 T0 a
Please input Username:1 m; n1 U+ c! R( R' x- S3 W$ {
(Default Username: teddysun):
+ v3 R8 c6 A" [; \9 T" c* \Username意为用户名,即第一个默认用户。直接回车意味着输入默认值teddysun/ @' d( b2 `/ B$ u0 B% _+ k
Please input teddysun’s password:
) ^- {: q3 @( T- z(Default Password: Q4SKhu2EXQ):% ?- s3 J( _& i2 ~& ~
输入用户的密码,默认会随机生成一个10位包含大小写字母和数字的密码,当然你也可以指定密码。/ s" K0 U, h$ e, J. A
ServerIP:your_server_main_IP
, w7 p" h2 l6 ~5 ]2 R显示你的 VPS 的主 IP(如果是多 IP 的 VPS 也只显示一个)
" E% s+ S- O% a* I% L) b2 |. U1 fServer Local IP:192.168.18.1
' N, L  T2 Q! f- M9 u- c6 A显示你的 VPS 的本地 IP(默认即可)
) p; s* F& p' [; _& h1 z% l, t3 I+ R7 TClient Remote IP Range:192.168.18.2-192.168.18.254
, y( d7 q$ v+ o: n显示 IP 段范围
) e: ~% X0 `9 m  a( {. OPSK:teddysun.com
) \/ Y: x1 w7 Q2 j8 G: u; m8 a显示 PSK+ U$ E0 x. P" r
Press any key to start…or Press Ctrl+c to cancel2 A+ Y; h+ H& c* p4 _/ _5 w
按下任意按键继续,如果想取消安装,请按Ctrl+c键  j, _$ V! p0 @4 a! u) B. V9 u
安装完成后,脚本会执行 ipsec verify 命令并提示如下:4 r' e& K/ a/ e, S* _8 e
If there are no [FAILED] above, then you can connect to yourL2TP VPN Server with the default Username/Password is below:ServerIP:your_server_IPPSK:your PSKUsername:your usenamePassword:your passwordIf 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.htmlEnjoy it!如果你要想对用户进行操作,可以使用如下命令:$ ~( v# m& K' S' _9 G
l2tp -a  新增用户) B4 |( L, M6 F2 c: i; Q
l2tp -d  删除用户
( o3 S/ l' q7 O+ K2 ?2 F5 w$ Vl2tp -m  修改现有的用户的密码
5 X  B, E) G! I* X+ R7 Xl2tp -l  列出所有用户名和密码, {% E6 g% X0 A& `6 z* x
l2tp -h  列出帮助信息
# M$ V/ ^: q2 s5 C" ^2 f: L; g" o# }3 Y5 _) P' W' v  M
        其他事项:) m  a% P2 G- Z0 J6 c4 T  J
1、脚本在安装完成后,已自动启动进程,并加入了开机自启动。) `4 c8 p! d  s6 }
2、脚本会改写 iptables 或 firewalld 的规则。
& b; }/ [' R! [: p/ ]3、脚本安装时,会即时将安装日志写到 /root/l2tp.log 文件里,如果你安装失败,可以通过此文件来寻找错误信息。1 V9 v, C$ X! B, a
        使用命令:
* Z5 [9 C7 [. C: V. N
ipsec status (查看 IPSec 运行状态)
& M$ s4 [- K+ B# [& K9 lipsec verify (查看 IPSec 检查结果)
5 \5 K* c% H! O/etc/init.d/ipsec start|stop|restart|status (CentOS6 下使用)
, p. A7 @- K1 d* B$ \) b/etc/init.d/xl2tpd start|stop|restart (CentOS6 下使用): [" W; ^- j) q! L- V
systemctl start|stop|restart|status ipsec (CentOS7 下使用)
/ v8 P1 l) `5 P. M. R0 Isystemctl start|stop|restart xl2tpd (CentOS7 下使用)+ r& S# n: e! S" n  \8 @" g
service ipsec start|stop|restart|status (Debian/Ubuntu 下使用)0 C& ~& t2 Q9 Q
service xl2tpd start|stop|restart (Debian/Ubuntu 下使用)) \. k+ Z8 x9 U$ s$ u
        更新日志2 g/ T; j# v  z& v/ U; t) u
2017 年 05 月 28 日:
# O4 S  b0 Z  z. e& v升级 libreswan 到版本 3.20。
* Z, u* R0 w9 v+ z9 u: y修正 libreswan 的若干配置问题。3 z/ D. F. h. T: L
修正 xl2tpd 的端口监听配置问题。& o* G, ?6 y* H( ^5 o
修正在 CentOS 6 对 libevent2 的依赖问题,改为 yum 安装 libevent2-devel。
( D, Z- l  I& S5 N* J测试表明,在内网环境的 VPS 里(如AWS, IDCF,GCE,腾讯云,阿里云等)也可以正常使用了。& L- f3 E5 j8 n! X
2017 年 02 月 25 日:
$ `3 t! N( `9 |升级 libreswan 到版本 3.19。( z2 G+ {3 G; n1 Q
2016 年 09 月 12 日:  K& u. w9 Q, B1 c' a& @
修正了在 CentOS 6 下 libevent2 依赖的问题;6 {) a8 \0 H9 X$ ]9 l
新增了一个 -m 选项,用以修改现有用户的密码。
8 n: ~7 U" H( E2016 年 08 月 13 日:
: U2 C- x( N% i2 n3 ~. }8 P修正 Debian 8 下的 sd-daemon.h: No such file or directory 问题,是由于缺少依赖包 libsystemd-daemon-dev 导致的。
% e3 I1 D6 w2 W) R0 ?7 \2016 年 08 月 05 日:
0 U4 J. `- L2 N) I升级 libreswan 到版本 3.18。# l' c) Y) K) w
2016 年 06 月 10 日:# x" l/ Z6 m! |8 z/ [
脚本在安装完成后,新增了几个命令,便于操作用户
" ]4 p+ U' N' \) x& e' bl2tp -a  新增用户7 j0 C9 p9 A, X* d
l2tp -d  删除用户
: W- V5 y6 ^% H2 m% Fl2tp -l  列出所有用户
! W; j+ u- E; f6 u7 L& xl2tp -h  列出帮助信息
. {: H# w6 n& G; E2016 年 04 月 25 日:
# g! U, J2 X( z4 r' C0 d4、在 Vultr 的 Debian 7的系统模板下安装时,软件包 libcurl4-nss-dev 会出现依赖错误。如下所示:
" t% f" K6 A6 M) R/ [8 ~The following packages have unmet dependencies:libcurl4-nss-dev : Depends: libldap2-dev but it is not going to be installedDepends: librtmp-dev but it is not going to be installed而 libldap2-dev 和 librtmp-dev 又依赖了其他几种软件包。总之最后的依赖关系如下:
8 ^2 M1 Z- D1 `5 H) olibldap2-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 installedlibrtmp-dev : Depends: libgnutls-dev but it is not going to be installedlibgnutls-dev : Depends: libp11-kit-dev (>= 0.4) but it is not going to be installedlibp11-kit-dev : Depends: libp11-kit0 (= 0.12-3) but 0.20.7-1~bpo70+1 is to be installed那么解决办法就是把最底层的依赖包 libp11-kit0 先卸载掉,然后再安装 libcurl4-nss-dev 即可。! |( p9 j: c& y5 Z
apt-get -y remove libp11-kit0apt-get -y --no-install-recommends install libcurl4-nss-dev wget然后再运行脚本安装即可。
" j6 e0 o/ Q0 J7 N2016 年 04 月 22 日:7 ~  X1 Y& z+ J6 p& o7 d
修复了在 Ubuntu 16.04 下因为默认缺少 python 命令而导致 ipsec verify 等命令不能用的问题。  O& I: N+ X; E! p: ?1 _* A0 j* z+ w
2016 年 04 月 19 日:
5 B# N" y+ c3 |& v- X修复了在 Debian 7 下因为 libnss3 和 libnspr4 的版本过低而导致编译 libreswan 失败的问题。# X5 M2 p) c% t/ ^! t
2016 年 04 月 18 日:. ~+ a# D' M) N; K7 E
目前在 Debian 7 上测试的结果,因为 libnss3 和 libnspr4 的版本过低而导致编译 libreswan 失败。临时解决办法是 dpkg 安装 libnss3_3.17.2 和 libnspr4_4.10.7 的 deb 包后重试。  A: q' q. ]+ p1 p% o8 x/ D" H
参考链接:
  Y0 y! a6 X9 I6 [https://libreswan.org/wiki/3.14_on_Debian_Wheezy( x  N; G' \6 h8 {/ J
https://github.com/libreswan/libreswan
& s- o) f- j* ^' \7 b) r+ a7 u) [+ R# [/ Z% s
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|

GMT+8, 2026-5-6 08:37 AM , Processed in 0.093644 second(s), 23 queries .

Powered by xyh-moon X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表