在CentOS 7上使用strongSwan搭建IPsec VPN

在CentOS 7上使用strongSwan搭建IPsec VPN

原文作者:Michael, 地址: https://expats-in-china.com/t/setup-a-vpn-ipsec-on-centos-7-using-strongswan/27

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

在VPS上安装CentOS 7

作者安装验证工作是在VULTR的VPS上完成的,其最低档5美元一个月的套餐,足够搭建一个VPN服务器了。
注册VUTLR后(如果你决定使用VUTLR VPS,就使用原文作者的推荐链接注册吧,作者还在原文链接中提供了优惠码),点击“Deploy”菜单,Location项里面选择你的服务器所在的地点; Operating System选择64位的CentOS 7; Server Size选择最低档5美元一个月的就够了。最后点击Place Order, 只需等待1、2分钟,CentOS 7就会在你的服务器上安装好。安装好,点击My Server, 然后点里面的Manager, 你就可以看到你的服务器的root密码了(Initial Password), 赶紧SSH进去修改密码吧。

安装和配置strongSwan

1. 安装strongSwan

<pre name="code" class="plain">yum install http://ftp.nluug.nl/pub/os/Linux/distr/fedora-epel/7/x86_64/e/epel-release-7-5.noarch.rpm
yum install strongSwan openssl

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
./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
./client_key.sh john john@example.com

请将YOUR_SERVER_IP, john, john@example替换成你的服务器的IP地址, 你的用户名和你的邮件地址。

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

创建VPN账号
编辑/etc/strongswan/ipsec.secrets
vi /etc/strongswan/ipsec.secrets
添加用户和密码。
: RSA vpnHostKey.pem
: PSK "PSK_KEY"
john %any : EAP "John's Password"
john %any : XAUTH "John's Password"

在上面的例子中,创建了VPN用户john和他的密码。在添加用户的时候,请注意在冒号(:)左右两边都需要一个空格。

4. 配置防火墙

打开ip v4的转发功能
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

开启VPN服务
systemctl start strongswan
systemctl enable strongswan

5. 配置客户端

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



没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试