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

L2TP/IPSec一键安装脚本

[复制链接]

985

主题

92

回帖

5万

积分

管理员

积分
53561
发表于 2022-7-4 16:54:16 | 显示全部楼层 |阅读模式
本脚本适用环境:% y" R& d4 k# ^0 e! `" e
系统支持:CentOS6+,Debian7+,Ubuntu12+
& E8 V  G" W& v9 J3 ~7 L内存要求:≥128M& E4 _9 m  V, D, F6 A& T0 Q
更新日期:2017 年 05 月 28 日, ]  h6 u" q$ W- O) r' W& r1 p4 q
关于本脚本:. P8 @* P5 ~2 n( _' {) `3 C* H1 ]' ?
名词解释如下
- z% X8 W/ b- _6 u7 SL2TP(Layer 2 Tunneling Protocol)/ e' J" @4 n. Y4 K
IPSec(Internet Protocol Security)
9 r$ `& r+ x9 F$ h" I4 ^, s; dIKEv2 (Internet Key Exchange v2)
, Z$ Q, m; g; N( I0 g能实现 IPsec 的目前总体上有 openswan,libreswan,strongswan 这3种。
0 N# Y) b: @4 _6 Alibreswan 是基于 openswan 的 fork,所以现在各个发行版基本已经看不到 openswan 的身影了。5 i: o7 T$ Q& o, s% O4 ?# _8 i  C
当然也有使用 strongswan 的。
; n% ~6 ]) J* G" _; k/ U4 K1 v之所以要更新 L2TP 一键安装脚本,是因为随着各个 Linux 发行版不断推陈出新,原有的脚本已经不适应现在的需求。
9 K# U# ?- ?( r0 \" v+ w本脚本通过编译安装最新版 libreswan 来实现 IPSec(CentOS7 下则是全部 yum 安装),yum 或 apt-get 来安装 xl2tpd,再根据各个发行版的使用方法不同,部署防火墙规则。- W5 r- d0 j- Q7 p7 l# W' ]
        ) F* q6 z! I  h2 c! P
        隆重介绍 Docker 版 L2TP/IPsec' C! o5 {, U/ [
由于此脚本已经很久不更新,因此已经不推荐使用该脚本来安装了。OK,下面隆重介绍一下 Docker 版 L2TP/IPsec。
1 e0 d6 H# ?3 L& L( `) D  U使用 Docker 的好处就是对当前系统的环境没有破坏性,随时可以新建或者删除容器,而且方便快捷,实在是居家必备。
) @, Z5 U% a8 o6 s# a& t具体请查看《介绍几款 Docker 镜像》此文中的【L2TP/IPsec VPN Server Docker Image】小节。
0 g6 L! i0 u8 I# t) U- u以及该项目的 Docker Hub 页面,或 Github 页面; D" _1 P& t( J# k6 @$ Z

3 I% o1 U8 a: }+ O& Q+ W  }; }, W        写在前面:
; a! `. k* Z1 ]/ _4 P( _% b; ^
基于 OpenVZ 虚拟化技术的 VPS 需要开启TUN/TAP才能正常使用,购买 VPS 时请先咨询服务商是否支持开启 TUN/TAP。- d$ ]. e3 Q4 I! c+ u- j
OpenVZ 虚拟的 VPS 需要系统内核支持 IPSec 才行。也就是说,母服务器的内核如果不支持的话那就没办法,只能换 VPS。
2 H6 ?: g$ {" i! W2 c5 q' a3 U* k因此,一般不建议在 OpenVZ 的 VPS 上安装本脚本。脚本如果检测到该 VPS 为 OpenVZ 架构,会出现警告提醒。; v7 y0 d3 V2 n* ]' l
如何检测是否支持TUN模块?
) o+ B+ `4 Z. d+ F执行命令:
0 s: [. w& L" a1 X5 o3 Ecat /dev/net/tun* n# ?, \& g* K1 P7 ]' w0 g# J
如果返回信息为:cat: /dev/net/tun: File descriptor in bad state 说明正常  ^1 @* r  z7 N: e; N2 e  I& s
如何检测是否支持ppp模块?
- u& f) L/ \$ A# @+ J执行命令:
% X( R: n( ]0 i4 k$ R) B8 J' |8 Bcat /dev/ppp
. ?! c8 v/ o$ p& ?  [4 }如果返回信息为:cat: /dev/ppp: No such device or address 说明正常
2 n. S9 t, o: t: ?" b当然,脚本在安装时也会执行检查,如果不适用于安装,脚本会予以提示。5 h/ X4 a( d8 y8 o
        使用方法:
' q4 M$ R$ p5 ~1 F/ ~
root 用户登录后,运行以下命令:
. X! W; u, Q/ ^+ i7 W4 }wget --no-check-certificate https://raw.githubusercontent.co ... master/l2tp.shchmod +x l2tp.sh./l2tp.sh执行后,会有如下交互界面2 M- Y) ^8 j+ Y
/ D6 [0 Q+ K# w& C3 P5 X
Please input IP-Range:, M" A/ [* _& q/ N: q
(Default Range: 192.168.18):
- U/ K7 z, @. e) L( J, M输入本地IP段范围(本地电脑连接到VPS后给分配的一个本地IP地址),直接回车意味着输入默认值192.168.186 Q7 d; y; O, r3 b5 }% L
Please input PSK:* w1 U- }% ?; A$ }1 u" e( \# E
(Default PSK: teddysun.com):
) y* Y) g9 X0 z/ dPSK意为预共享密钥,即指定一个密钥将来在连接时需要用到,直接回车意味着输入默认值teddysun.com
. i$ I9 U" H8 w" e: L# a& A9 DPlease input Username:, q) Z( h: ~! `' }
(Default Username: teddysun):4 {$ z2 X3 o9 y; ?0 h0 I! S7 N2 x& i
Username意为用户名,即第一个默认用户。直接回车意味着输入默认值teddysun
2 L! e2 `' n: J" @* F5 @Please input teddysun’s password:' ~" B- G! @" X0 u
(Default Password: Q4SKhu2EXQ):
  h0 e1 f$ G" d输入用户的密码,默认会随机生成一个10位包含大小写字母和数字的密码,当然你也可以指定密码。
  p  D/ n7 g! p5 }ServerIP:your_server_main_IP
  D/ D: U5 l6 G! s* {4 u显示你的 VPS 的主 IP(如果是多 IP 的 VPS 也只显示一个)
4 d5 f  P. O& UServer Local IP:192.168.18.1
9 ?* |% c, \1 M, f7 \- B4 B3 r$ ?显示你的 VPS 的本地 IP(默认即可)5 `+ \+ ]! g6 Q4 c
Client Remote IP Range:192.168.18.2-192.168.18.254; A+ m6 h$ b4 G9 N0 g7 w
显示 IP 段范围
( z' @( i4 M) k" HPSK:teddysun.com$ s9 ^- U2 f9 k0 D: m; y
显示 PSK; j* D% e: m) F9 a9 E
Press any key to start…or Press Ctrl+c to cancel
% Z1 ]' a/ g. Q按下任意按键继续,如果想取消安装,请按Ctrl+c键4 T  d0 T; j# d' n; n% L  A) N& I
安装完成后,脚本会执行 ipsec verify 命令并提示如下:
* N8 K! z3 R- cIf 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!如果你要想对用户进行操作,可以使用如下命令:% b9 r9 ^# s6 [! F' t
l2tp -a  新增用户$ y+ c& p1 I- K& _
l2tp -d  删除用户
% s  x, r; G  e! x. |2 vl2tp -m  修改现有的用户的密码  |( f9 y( ~% V7 m- m
l2tp -l  列出所有用户名和密码
' D' J2 b% q6 b5 [l2tp -h  列出帮助信息2 W( [1 E) _% q$ S9 l) u
4 C1 X7 H: F1 A0 Y4 X
        其他事项:
2 m/ g/ f( {! O9 f  c
1、脚本在安装完成后,已自动启动进程,并加入了开机自启动。: P5 [# \* i6 J+ l4 Q
2、脚本会改写 iptables 或 firewalld 的规则。
# \, l1 O+ O9 l  \5 X& \8 G3、脚本安装时,会即时将安装日志写到 /root/l2tp.log 文件里,如果你安装失败,可以通过此文件来寻找错误信息。
9 j" F) e3 o" W! z        使用命令:
4 H' x  ~* Y. v; M; Q6 q
ipsec status (查看 IPSec 运行状态)
5 e2 J( I. q. S4 X; qipsec verify (查看 IPSec 检查结果)# i8 }1 }4 o/ {' w8 B, a4 u: u4 L
/etc/init.d/ipsec start|stop|restart|status (CentOS6 下使用)
$ y! j' C; m2 B! ?/etc/init.d/xl2tpd start|stop|restart (CentOS6 下使用)2 Q- c$ \, n9 V2 t( I+ o  g
systemctl start|stop|restart|status ipsec (CentOS7 下使用)# x7 V% K' f( W
systemctl start|stop|restart xl2tpd (CentOS7 下使用)
7 b8 S8 K5 M1 jservice ipsec start|stop|restart|status (Debian/Ubuntu 下使用)3 H; v& z8 ], w
service xl2tpd start|stop|restart (Debian/Ubuntu 下使用)9 q* p* z4 w6 d( D9 @
        更新日志2 I2 Y) K& {/ L# ?! b3 u3 q
2017 年 05 月 28 日:
; G. c6 d( j* e8 M' S* F; V升级 libreswan 到版本 3.20。
2 T. _- J& c4 A修正 libreswan 的若干配置问题。
% ~) \; ^/ ]% ?( k4 Q; \修正 xl2tpd 的端口监听配置问题。
  _1 I+ W) ^' y' p修正在 CentOS 6 对 libevent2 的依赖问题,改为 yum 安装 libevent2-devel。
5 L$ ]5 K* I( h, W" R. U' e测试表明,在内网环境的 VPS 里(如AWS, IDCF,GCE,腾讯云,阿里云等)也可以正常使用了。
! b, B# V% b7 J7 p3 f2017 年 02 月 25 日:
! ?3 `$ B* ^# I  y1 [5 i1 y9 P) c! v升级 libreswan 到版本 3.19。
* H/ v- @5 L# d7 Y& ^/ i2016 年 09 月 12 日:
+ v% _8 Q4 ^% D0 }8 {- Q1 m修正了在 CentOS 6 下 libevent2 依赖的问题;! V5 L, X+ X2 n
新增了一个 -m 选项,用以修改现有用户的密码。
" Q$ I& A& o1 p$ p4 Y; K2016 年 08 月 13 日:
. O- k3 U! h) a. F6 T6 X6 S修正 Debian 8 下的 sd-daemon.h: No such file or directory 问题,是由于缺少依赖包 libsystemd-daemon-dev 导致的。
( M  U( m% o( C* L: i$ K2016 年 08 月 05 日:
) n) n4 a8 q; k1 o0 Y  A: S, N5 N升级 libreswan 到版本 3.18。
$ q. w2 _& m1 m! \/ V% j2016 年 06 月 10 日:7 l' C2 T2 i" X6 J3 h( d6 [
脚本在安装完成后,新增了几个命令,便于操作用户/ h0 Y# c1 q/ L/ z' r: C
l2tp -a  新增用户
6 x0 Z; R" l- c/ P3 o9 Yl2tp -d  删除用户
; G0 c8 }0 V9 T, pl2tp -l  列出所有用户# r" v+ `- N% U3 p' ^% w# k5 d
l2tp -h  列出帮助信息
1 Q( E/ o8 z3 }4 k0 V, `2016 年 04 月 25 日:8 c: K8 T& i8 K: l& F' l# |
4、在 Vultr 的 Debian 7的系统模板下安装时,软件包 libcurl4-nss-dev 会出现依赖错误。如下所示:3 L- D+ l. v! H% s) m2 V* ?" ~
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 又依赖了其他几种软件包。总之最后的依赖关系如下:
2 f& m7 H; C+ k: k8 O7 z. X. [& k5 {- Dlibldap2-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 即可。+ O; J8 F0 X) B! ^# u) i
apt-get -y remove libp11-kit0apt-get -y --no-install-recommends install libcurl4-nss-dev wget然后再运行脚本安装即可。
# _) ~" M" Z9 F' d) U5 F# U2016 年 04 月 22 日:
9 D$ q) Z$ o! v" |- ~5 m/ f修复了在 Ubuntu 16.04 下因为默认缺少 python 命令而导致 ipsec verify 等命令不能用的问题。0 T+ `1 u5 q) s8 R, I% g6 j: K; ?
2016 年 04 月 19 日:% ^) \; ~" U9 C) }
修复了在 Debian 7 下因为 libnss3 和 libnspr4 的版本过低而导致编译 libreswan 失败的问题。9 ]6 y; i; x" a0 R8 P
2016 年 04 月 18 日:! V. r6 _, F( ~. p# h  u0 f
目前在 Debian 7 上测试的结果,因为 libnss3 和 libnspr4 的版本过低而导致编译 libreswan 失败。临时解决办法是 dpkg 安装 libnss3_3.17.2 和 libnspr4_4.10.7 的 deb 包后重试。
2 M/ S( [! m* v* g' V" n6 z. L参考链接:
# Y$ u0 q8 g. d* i- t! H$ t8 H" `https://libreswan.org/wiki/3.14_on_Debian_Wheezy7 M! s+ Y7 i6 h& A# ]5 i9 J1 C
https://github.com/libreswan/libreswan
- P  ]- K' X  @3 Z) g, D' j
) ]* R- k% A0 \& P8 m
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|

GMT+8, 2025-11-5 05:54 AM , Processed in 0.111039 second(s), 23 queries .

Powered by xyh-moon X3.5

© 2001-2025 Discuz! Team.

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