Centos7上使用StrongSwan部署IPSec,安全的访问内网资源

StrongSwan是开源的IPsec解决方案。它支持IKEv1和IKEv2密钥交换协议以及Linux内核的本地NETKEY IPsec栈。本教程将向您展示如何使用strongSwan在CentOS 7上设置IPSec服务器。实现在临时用网环境,安全的链接并访问内网。

安装

strongSwan包可以在Enterprise Linux (EPEL)存储库的额外包中获得。但是还是建议使用压缩包自行编译,之前用系统自带包windows总是连接失败。

# 安装依赖
yum install pam-devel openssl-devel  make  gcc  gmp-devel wget -y

# 下载软件包并编译,我这现在最新版本为5.8.1
wget http://download.strongswan.org/strongswan.tar.gz
tar xzf strongswan.tar.gz
cd strongswan-5.8.1/

# 配置编译
./configure  --enable-eap-identity --enable-eap-md5 \
--enable-eap-mschapv2 --enable-eap-tls --enable-eap-ttls --enable-eap-peap  \
--enable-eap-tnc --enable-eap-dynamic --enable-eap-radius --enable-xauth-eap  \
--enable-xauth-pam--enable-dhcp--enable-openssl--enable-addrblock --enable-unity\
--enable-certexpire --enable-radattr --enable-tools --enable-openssl --disable-gmp \
--enable-kernel-libipsec

# 编译安装
make
make install

# 验证安装
ipsec --version

生成证书

客户机和服务器都需要一个证书来标识和验证它们自己。我准备了两个shell脚本来生成和签署证书。首先,我们将server_key.sh,client_key.sh这两个脚本下载到/usr/local/etc/ipsec.d文件夹中。

cd /usr/local/etc/ipsec.d
wget https://github.darkgod.online/docs/assets/files/server_key.sh
wget https://github.darkgod.online/docs/assets/files/client_key.sh
chmod +x server_key.sh
chmod +x client_key.sh

在这两个脚本中,我设置的组织名称为DARKGODONLINE。如果你要修改它,就打开.sh文件然后把O=DARKGODONLINE替换为O=你的组织名称,注意脚本中的"C="和"O="的值必须一致。
然后,用server_key.sh跟你服务器的IP地址给服务器生成证书颁发机构(CA)密钥和证书。把SERVER_IP替换为你服务器的IP地址。

./server_key.sh SERVER_IP

生成客户端秘钥、证书和P12文件。在这里,我为用户"john"创建了证书和P12文件。

./client_key.sh john john@gmail.com

运行脚本前,将"john"和他的email替换为你的。
服务端和客户端的证书都生成好了以后,拷贝/usr/local/etc/ipsec.d/john.p12/usr/local/etc/ipsec.d/cacerts/strongswanCert.pem到你的本地电脑。

配置

打开IPSec的配置文件。

vi /usr/local/etc/ipsec.conf

用下面的内容替换文件内容:

config setup
    uniqueids=never #多台设备同时在线

conn iOS_cert
    keyexchange=ikev1
    fragmentation=yes
    left=%defaultroute
    leftauth=pubkey
    leftsubnet=0.0.0.0/0
    leftcert=HostCert.pem
    right=%any
    rightauth=pubkey
    rightauth2=xauth
    rightsourceip=10.31.2.0/24
    rightcert=guoxiaokai527Cert.pem
    auto=add

conn android_xauth_psk
    keyexchange=ikev1
    left=%defaultroute
    leftauth=psk
    leftsubnet=0.0.0.0/0
    right=%any
    rightauth=psk
    rightauth2=xauth
    rightsourceip=10.31.2.0/24
    auto=add

conn networkmanager-strongswan
    keyexchange=ikev2
    left=%defaultroute
    leftauth=pubkey
    leftsubnet=0.0.0.0/0
    leftcert=HostCert.pem
    right=%any
    rightauth=pubkey
    rightsourceip=10.31.2.0/24
    rightcert=guoxiaokai527Cert.pem
    auto=add

conn ios_ikev2
    keyexchange=ikev2
    ike=aes256-sha256-modp2048,3des-sha1-modp2048,aes256-sha1-modp2048!
    esp=aes256-sha256,3des-sha1,aes256-sha1!
    rekey=no
    left=%defaultroute
    leftid="198.13.52.213"
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    leftcert=HostCert.pem
    right=%any
    rightauth=eap-mschapv2
    rightsourceip=10.31.2.0/24
    rightsendcert=never
    eap_identity=%any
    dpdaction=clear
    fragmentation=yes
    auto=add

conn windows
    keyexchange=ikev2
    ike=aes256-sha1-modp1024!
    rekey=no
    left=%defaultroute
    leftauth=pubkey
    leftsubnet=0.0.0.0/0
    leftcert=HostCert.pem
    right=%any
    rightauth=eap-mschapv2
    rightsourceip=10.31.2.0/24
    rightsendcert=never
    eap_identity=%any
    auto=add

然后编辑strongSwan的配置文件,strongSwan.conf

vi /usr/local/etc/strongswan.conf

使用下面的内容替换文件原有内容:

charon {
    load_modular = yes
    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

编辑IPsec密码文件来添加用户名和密码:

vi /usr/local/etc/ipsec.secrets

添加用户"john"到文件内:

: RSA HostKey.pem
: PSK "PSK_KEY"
: XAUTH "XAUTH_KEY"
john %any : EAP "John's Password"

将上面的PSK_KEY单词更改为你需要的PSK认证方式的密钥;
将上面的XAUTH_KEY单词更改为你需要的XAUTH认证方式的密码,该认证方式的用户名是随意的;
将上面的john改为自己想要的登录名,“John’s Password”改为自己想要的密码,可以添加多行,得到多个用户,这即是使用IKEv2的用户名+密码认证方式的登录凭据;
请注意,‘:’ 两侧都需要有空格。(添加完用户后可以使用ipsec reload重新加载配置)

允许IPV4转发

编辑/etc/sysctl.conf来使能linux内核的转发功能。

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-port=500/udp
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload

启动

编辑自启动脚本ipsecd.service,保存到/etc/systemd/system/ipsecd.service
[Unit]
Description=ipsec for strongswan Service
After=network.target

[Service]
Type=forking
PIDFile=/run/charon.pid
ExecStart=/usr/local/sbin/ipsec start
Restart=always
RestartSec=10s

[Install]
WantedBy=multi-user.target

启动并设置开机启动
systemctl start ipsecd
systemctl enable ipsecd

StrongSwan现在就运行在你的服务器上了。在你的设备上安装strongswanCert.pem.p12证书文件,你就可以连接你的服务器访问内网了。

IOS配置

打开手机设置,进入通用->链路->添加配置
在这里插入图片描述

类型 – 选择IPsec,这个不需要安装证书,会方便一点
描述 – 名称(随便填)
服务器 – 服务器IP
账户 – 填写用户名
密码 – 填写密码
密钥 – 填写PSK密码
配置完点击完成,然后就可以连接到服务器,访问内网了。

Windows10配置

安装证书

首先下载之前生成的.P12文件,然后双击P12文件,选择本地计算机,点击下一步:
在这里插入图片描述

已经选择了要导入的p12文件,然后直接点击下一步
在这里插入图片描述

输入证书的密码,然后点击下一步
在这里插入图片描述

选择自行制定存储路径,然后点击浏览选择受信任的根证书颁发机构,点击下一步
在这里插入图片描述

点击完成,导入成功
在这里插入图片描述

配置

点击网络图标,点击进入网络和Internet
在这里插入图片描述

点击,添加
在这里插入图片描述

填入相关信息,点击保存
在这里插入图片描述

提供商->只有一个选项
连接名称->随便起
服务器名称或地址->填写服务器IP
类型->选择IKEv2
登录信息的类型->默认选择用户名和密码
用户名->填写用户名
密码->填写密码
然后就可以链接公司专用内网了

StrongSwan是一个开源的IPsec VPN解决方案,可以在Linux和其他操作系统上运行。下面是StrongSwan的安装、部署、配置和使用方法: 1. 安装StrongSwan 在Ubuntu和Debian上,可以使用以下命令安装StrongSwan: ``` sudo apt-get update sudo apt-get install strongswan ``` 在CentOS和Fedora上,可以使用以下命令安装StrongSwan: ``` sudo yum install strongswan ``` 2. 配置StrongSwan StrongSwan的配置文件位于/etc/ipsec.conf。您可以根据需要编辑该文件。以下是一个简单的StrongSwan配置示例: ``` config setup charondebug="ike 2, knl 2, cfg 2" uniqueids=no conn myvpn left=%defaultroute leftid=vpn.example.com leftsubnet=192.168.1.0/24 leftauth=pubkey leftcert=server.crt leftfirewall=yes right=%any rightsubnet=10.0.0.0/24 rightauth=eap-mschapv2 rightsourceip=10.0.0.2/32 auto=add ``` 该配置文件指定了一个名为“myvpn”的连接,该连接使用公钥身份验证和EAP-MSCHAPv2身份验证。连接将在StrongSwan启动时自动添加(auto=add)。 3. 创建证书 StrongSwan需要使用证书进行身份验证。您可以使用OpenSSL创建自签名证书。以下是一个简单的证书创建示例: ``` openssl req -new -x509 -days 3650 -keyout server.key -out server.crt ``` 此命令将生成一个有效期为10年的自签名证书。您可以根据需要更改证书的属性。 4. 启动StrongSwan 使用以下命令启动StrongSwan: ``` sudo systemctl start strongswan ``` 5. 测试连接 您可以使用以下命令测试StrongSwan连接: ``` sudo ipsec up myvpn ``` 此命令将尝试建立名为“myvpn”的连接。如果连接成功建立,您应该能够通过ping测试来测试连接。 ``` ping 10.0.0.1 ``` 以上就是StrongSwan的安装、部署、配置和使用方法。您可以根据需要进行自定义配置,例如添加更多连接或更改StrongSwan的日志级别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

守护暗神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值