CentOS 7 搭建IPsec VPN

CentOS 7 搭建IPsec VPN

  • 最近更新2022年06月13日

strongSwan是Linux/Unix上基于IPSec的VPN开源解决方案,支持iKEV1和iKEV2, 并且能完美地与Kernel space的NETKEY IPsec协议栈协同工作。strongSwan最大的优势是安全等级高,兼容性好。现在主流的OS,例如Android, iOS, Mac OS X和Windows 7/8, 其自带的IPsec的软件就能直接连接strongSwan VPN。

安装环境:

系统:CentOS 7.4

内存:1G

软件版本:strongSwan5.6.1

 

1. 安装strongSwan

大家可以到官网去下载最新版本,下载地址为:https://www.strongswan.org/download.html 接下来是根据官网的文档进行安装。

 

# 首先,需要下载最新的epel-release,下载地址:http://dl.fedoraproject.org/pub/epel/7/x86_64/e/

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm

 

# 其次,安装epel-release

rpm -Uvh epel-release-7-11.noarch.rpm

 

# 最后,安装strongSwan

yum install strongswan -y

 

# 特殊说明,如果没有安装openssl 还要进行安装

yum install openssl -y

 

2. 创建证书

# 进入证书目录

cd /etc/strongswan/ipsec.d/

 

# 下载证书(服务器证书)

wget https://raw.githubusercontent.com/michael-loo/strongswan_config/8c6721a4a49ac0382ee9d48ed99abce676bde1c0/server_key.sh

 

# 对下载的证书添加执行权限

chmod a+x server_key.sh

 # YOUR_SERVER_IP为你服务器的IP地址

./server_key.sh YOUR_SERVER_IP

 # 下载证书(客户端证书)

wget https://github.com/michael-loo/strongswan_config/raw/8c6721a4a49ac0382ee9d48ed99abce676bde1c0/client_key.sh

 

# 对下载的证书添加执行权限

chmod a+x client_key.sh

 

# NAME 为你的用户名,使用英文名称,更换“USER@MAIL.COM”为你自己的电子邮箱

./client_key.sh NAME USER@MAIL.COM

 

此时会提示你输入两次密码,密码输入成功后,会生成你刚刚输入的“用户名称.p12”文件。

3. 配置strongSwan

# 修改 ipsec.conf 文件

vi /etc/strongswan/ipsec.conf

 

# 文件内容按如下修改,也可以将内容删除后,复制如下内容。

config setup
uniqueids=never
charondebug="cfg 2, dmn 2, ike 2, net 0"

conn %default
left=%defaultroute
leftsubnet=0.0.0.0/0
leftcert=vpnHostCert.pem
right=%any
rightsourceip=172.16.1.100/16conn

CiscoIPSec
keyexchange=ikev1
fragmentation=yes
rightauth=pubkey
rightauth2=xauth
leftsendcert=always
rekey=no
auto=addconn

XauthPsk
keyexchange=ikev1
leftauth=psk
rightauth=psk
rightauth2=xauth
auto=addconn

IpsecIKEv2
keyexchange=ikev2
leftauth=pubkey
rightauth=pubkey
leftsendcert=always
auto=addconn

IpsecIKEv2-EAP
keyexchange=ikev2
ike=aes256-sha1-modp1024!
rekey=no
leftauth=pubkey
leftsendcert=always
rightauth=eap-mschapv2
eap_identity=%any
auto=add

 

# 修改 strongSwan的配置文件

vi /etc/strongswan/strongswan.conf

 

# 将文件内容按如下修改,也可以将内容删除后,复制如下内容。

charon {
load_modular = yes
duplicheck.enable = no
compress = yes
plugins {
include strongswan.d/charon/*.conf
}

dns1 = 8.8.8.8
dns2 = 8.8.4.4
nbns1 = 8.8.8.8
nbns2 = 8.8.4.4
}
include strongswan.d/*.conf

 

4. 创建VPN用户

# 编辑/etc/strongswan/ipsec.secrets

vi /etc/strongswan/ipsec.secrets

 

# 修改文件内容,此内容为用户名与密码,USER为你添加的用户名;PASSWORD为你设置的密码,如果多个用户,可以分行写,EAP与XAUTH为认证模式,需要注意的是“:”两边是空格。

: RSA vpnHostKey.pem
: PSK "PSK_KEY"
USER %any : EAP "PASSWORD"
USER1 %any : XAUTH "PASSWORD"

 

5. 配置防火墙

# 修改IP转发

vi /etc/sysctl.conf

 

# 文件内容加入如下

net.ipv4.ip_forward=1

 

# 让配置生效

sysctl -p

 

# 输入如下四条命令

firewall-cmd --permanent --add-service="ipsec"
firewall-cmd --permanent --add-port=4500/udp
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload

 

6. 开启VPN服务

# 开启服务,并设置为开机自启动。

systemctl start strongswan
systemctl enable strongswan

 

7. 客户端设置说明

  • 将证书拷贝到本地将服务器上的文件etc/strongswan/ipsec.d/用户名.p12和/etc/strongswan/ipsec.d/cacerts/strongswanCert.pem拷贝到本地。
  • 在客户端安装上述两个证书如果你是使用iPhone, 可以通过邮件将这个两个证书发送到iPhone上然后安装。iPhone, Android, Windows PC都可以通过证书加密码的方式登录VPN;
  • Mac OS X可以通过PSK key加密码的方式登录。

 

分享到 :
相关推荐

回复 lixh 取消回复

登录... 后才能评论

评论(10)

  • 苏然 游客 2021年6月18日 下午5:34

    windows怎么登录linux配置好的vpn呢

    • lixh 永久VIP 回复 苏然 2021年9月3日 下午5:08

      你可以使用客户端工具,也可以使用windows自带的进行拨号。

  • asyqm 游客 2021年12月20日 上午1:32

    我用mac尝试拨号,一直无法链接。
    请问是使用Cisco IPSec么?还是L2TP?我好像试了两个都不行

    • lixh 永久VIP 回复 asyqm 2021年12月27日 上午10:55

      L2TP,在高级里设置一下转发所有数据就好了。

  • 流年 游客 2022年8月21日 上午2:32

    请问客户端怎么使用这两个证书

  • 孙爱民 游客 2023年3月10日 下午2:02

    请问下,我手机可以正常连接,但是流量没有进入到strongswan里面