HCRM博客

如何在CentOS系统中配置L2TP/IPsec连接?

CentOS 7 搭建 L2TP/IPSec VPN 服务器

一、前言

L2TP(Layer 2 Tunneling Protocol)结合 IPsec(Internet Protocol Security)可以在提供隧道功能的同时,确保数据传输的安全性,本文将详细介绍在 CentOS 7 系统上如何搭建一个安全稳定的 L2TP/IPsec VPN 服务器。

如何在CentOS系统中配置L2TP/IPsec连接?-图1
(图片来源网络,侵权删除)

二、前置条件检查

1、操作系统:CentOS 7

2、公网 IP:确保服务器拥有公网 IP 地址

3、网络环境:允许必要的端口通过防火墙

三、安装相关软件

1. 安装 EPEL 源

EPEL(Extra Packages for Enterprise Linux)是一个由 Fedora 特殊兴趣小组维护的项目,为 RHEL/CentOS 及其衍生发行版提供额外的软件包,执行以下命令安装 EPEL 源:

  • sudo yum install y epelrelease

2. 安装 xl2tpd

如何在CentOS系统中配置L2TP/IPsec连接?-图2
(图片来源网络,侵权删除)

xl2tpdxl2tpd 的一个分支,用于实现 L2TP 和PPP协议,执行以下命令进行安装:

  • sudo yum install y xl2tpd

3. 安装 libreswan

libreswan 是 OpenSWAN 的一个分支,实现了 IPsec 协议,执行以下命令进行安装:

  • sudo yum install y libreswan

四、配置 IPsec

1. 编辑 IPsec 配置文件

创建或编辑/etc/ipsec.conf 文件,添加以下内容以启用 NAT 遍历

  • 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

2. 创建 IPsec 与 L2TP 服务关联的配置文件

如何在CentOS系统中配置L2TP/IPsec连接?-图3
(图片来源网络,侵权删除)

创建或编辑/etc/ipsec.d/l2tp_psk.conf 文件,添加以下内容:

  • conn L2TPPSKNAT
  • rightsubnet=vhost:%priv
  • also=L2TPPSKnoNAT
  • conn L2TPPSKnoNAT
  • authby=secret
  • pfs=no
  • auto=add
  • keyingtries=3
  • dpddelay=30
  • dpdtimeout=120
  • dpdaction=clear
  • rekey=no
  • ikelifetime=8h
  • keylife=1h
  • type=transport
  • left=10.0.30.177 # 服务器的公网 IP 地址
  • leftprotoport=17/1701
  • right=%any
  • rightprotoport=17/%any

3. 创建保存预共享密钥的文件

创建或编辑/etc/ipsec.d/ipsec.secrets 文件,添加以下内容:

  • : PSK "123456"

4. 设置 l2tp 的账号信息

创建或编辑/etc/ppp/chapsecrets 文件,添加 VPN 用户信息:

  • 用户名 服务器 密码 客户端 IP 地址池
  • admin1 * 12345678 *
  • admin2 * 12345678 *
  • admin3 * 12345678

5. 修改内核参数以支持 IPsec

创建或编辑/etc/sysctl.conf 文件,添加以下内容:

  • net.ipv4.ip_forward = 1
  • net.ipv4.conf.all.accept_redirects = 0
  • net.ipv4.conf.all.rp_filter = 0
  • net.ipv4.conf.default.rp_filter = 0

使配置生效:

  • sudo sysctl p

6. 启动并验证 IPsec 服务

启动并设置开机自启 IPsec 服务:

  • sudo systemctl start ipsec
  • sudo systemctl enable ipsec

验证 IPsec 配置是否正确:

  • sudo ipsec verify

五、配置 L2TP

1. 编辑 L2TP 配置文件

创建或编辑/etc/xl2tpd/xl2tpd.conf 文件,修改以下内容:

  • [global]
  • ;ifconfig显示的ip不是公网ip
  • listenaddr = 10.0.12.7
  • ipsec saref = yes
  • ;修改分配的地址段
  • [lns default]
  • ip range = 192.168.7.7192.168.7.77
  • local ip = 192.168.7.10

2. 修改安全配置

创建或编辑/etc/ppp/options.xl2tpd 文件,添加以下内容:

  • requiremschapv2
  • msdns 8.8.8.8
  • msdns 114.114.114.114
  • logfile /var/log/xl2tpd.log

3. 停止 firewalld 服务并禁用

执行以下命令停止并禁用firewalld 服务:

  • sudo systemctl stop firewalld
  • sudo systemctl mask firewalld

4. 安装并配置 iptables 服务

安装iptablesservices

  • sudo yum install y iptablesservices

配置防火墙规则:

  • #注意 ens33要是自己的网卡名称
  • sudo iptables t nat A POSTROUTING s 192.168.7.10/24 o eth0 j MASQUERADE
  • sudo iptables I FORWARD s 192.168.7.10/24 j ACCEPT
  • sudo iptables I FORWARD d 192.168.7.10/24 j ACCEPT
  • sudo iptables A INPUT p udp m policy dir in pol ipsec m udp dport 1701 j ACCEPT
  • sudo iptables A INPUT p udp m udp dport 1701 j ACCEPT
  • sudo iptables A INPUT p udp m udp dport 500 j ACCEPT
  • sudo iptables A INPUT p udp m udp dport 4500 j ACCEPT
  • sudo iptables A INPUT p esp j ACCEPT
  • sudo iptables A INPUT m policy dir in pol ipsec j ACCEPT
  • sudo iptables A FORWARD i ppp+ m state state NEW,RELATED,ESTABLISHED j ACCEPT
  • sudo iptables A FORWARD m state state RELATED,ESTABLISHED j ACCEPT
  • service iptables save

5. 启动并设置开机自启 L2TP 服务

启动并设置开机自启xl2tpd 服务:

  • sudo systemctl start xl2tpd
  • sudo systemctl enable xl2tpd

六、常见问题与解答 (FAQs)

Q1:如何更改预共享密钥?

A1:预共享密钥定义在/etc/ipsec.d/ipsec.secrets 文件中,找到对应的条目,修改为新的密钥即可。

  • : PSK "newpassword"

保存文件后,重启 IPsec 服务使更改生效。

  • sudo systemctl restart ipsec

Q2:如何更改 VPN 用户的密码?

A2:VPN 用户信息定义在/etc/ppp/chapsecrets 文件中,找到对应的用户条目,修改密码即可。

  • admin1 * newpassword

保存文件后,无需重启服务,更改即时生效。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/9821.html

分享:
扫描分享到社交APP
上一篇
下一篇