当前位置:   article > 正文

StrongSwan安装部署、配置使用方法总结_strongswan怎么用

strongswan怎么用

StrongSwan官网:https://www.strongswan.org/

下载地址:https://www.strongswan.org/download.html

 

一、StrongSwan安装

1.编译安装

1.我习惯创建/opt/package目录,用于存放下载的程序包文件 

[root@ecs-e84a package]# mkdir -p /opt/package

2.切换到我们的/opt/package目录,用wget下载工具,开始下载StrongSwan程序包 

  1. [root@ecs-e84a package]# cd /opt/package && wget https://download.strongswan.org/strongswan-5.8.4.tar.gz
  2. 提示:如果没有wget工具,请先安装好
  3. [root@ecs-e84a package]# yun install wget -y

3.yum安装编译需要的依赖环境 

yum install -y gmp-devel xl2tpd module-init-tools gcc openssl-devel

4.解压,初始化、编译、安装

切换到/opt/package/strongswan-5.8.4, 开始编译安装,这里的参数–prefix指的是程序安装的目录,我这里选的是/usr/local/strongswan, 后面–sysconfdir参数指的的StrongSwan的配置文件路径,我这里选的是/usr/local/strongswan/etc,这些参数可以根据自己实际情况进行选择。

4.1、解压:

 

cd /opt/package && tar -zxvf strongswan-5.8.4.tar.gz

4.2、配置参数:

 

  1. cd /opt/package/strongswan-5.8.4 &&
  2. ./configure --prefix=/usr --sysconfdir=/etc \
  3. --enable-eap-radius \
  4. --enable-eap-mschapv2 \
  5. --enable-eap-identity \
  6. --enable-eap-md5 \
  7. --enable-eap-mschapv2 \
  8. --enable-eap-tls \
  9. --enable-eap-ttls \
  10. --enable-eap-peap \
  11. --enable-eap-tnc \
  12. --enable-eap-dynamic \
  13. --enable-xauth-eap \
  14. --enable-openssl

4.3、编译、安装 

 

cd /opt/package//opt/package/strongswan-5.8.4 && make && make install

提醒:以上命令也可以直接组合为一个命令一起执行:

  1. cd /opt/package && tar -zxvf strongswan-5.8.4.tar.gz && cd /opt/package/strongswan-5.8.4 &&
  2. ./configure --prefix=/usr/local/strongswan --sysconfdir=/etc \
  3. --enable-eap-radius \
  4. --enable-eap-mschapv2 \
  5. --enable-eap-identity \
  6. --enable-eap-md5 \
  7. --enable-eap-mschapv2 \
  8. --enable-eap-tls \
  9. --enable-eap-ttls \
  10. --enable-eap-peap \
  11. --enable-eap-tnc \
  12. --enable-eap-dynamic \
  13. --enable-xauth-eap \
  14. --enable-openssl \
  15. && make -j \
  16. && make install

 2、YUM安装

1. 直接使用yum进行安装

yum install strongswan -y

二、StrongSwan配置

官网场景配置样例

1. 基础配置

StrongSwan 的配置主要为 ipsec.conf、strongswan.conf、xl2tpd.conf、options.xl2tpd 这四个配置文件,以下为四个配置文件样例

1、ipsec.conf

  1. conn IKEv2-PSK
  2. also=Non-L2TP
  3. keyexchange=ikev2
  4. authby=secret
  5. # Cisco IPSec
  6. conn IKEv1-PSK-XAuth
  7. also=Non-L2TP
  8. keyexchange=ikev1
  9. leftauth=psk
  10. rightauth=psk
  11. rightauth2=xauth
  12. #######################################
  13. # Certificate Connections
  14. #######################################
  15. conn windows7
  16. keyexchange=ikev2
  17. ike=aes256-sha1-modp1024!
  18. rekey=no
  19. left=%defaultroute
  20. leftauth=pubkey
  21. leftsubnet=0.0.0.0/0
  22. leftcert=server.cert.pem
  23. right=%any
  24. rightauth=eap-mschapv2
  25. rightsourceip=10.0.0.0/24
  26. rightsendcert=never
  27. eap_identity=%any
  28. auto=add

 2、options.xl2tpd

  1. ipcp-accept-local
  2. ipcp-accept-remote
  3. ms-dns 8.8.8.8
  4. ms-dns 8.8.4.4
  5. noccp
  6. auth
  7. crtscts
  8. idle 1800
  9. mtu 1280
  10. mru 1280
  11. lock
  12. lcp-echo-failure 10
  13. lcp-echo-interval 60
  14. connect-delay 5000

 

 3、strongswan.conf

  1. # /etc/strongswan.conf - strongSwan configuration file
  2. # strongswan.conf - strongSwan configuration file
  3. #
  4. # Refer to the strongswan.conf(5) manpage for details
  5. charon {
  6. load_modular = yes
  7. send_vendor_id = yes
  8. plugins {
  9. include strongswan.d/charon/*.conf
  10. attr {
  11. dns = 8.8.8.8, 8.8.4.4
  12. }
  13. }
  14. }
  15. include strongswan.d/*.conf

 4、xl2tpd.conf

  1. [global]
  2. port = 1701
  3. auth file = /etc/ppp/l2tp-secrets
  4. debug avp = yes
  5. debug network = yes
  6. debug state = yes
  7. debug tunnel = yes
  8. [lns default]
  9. ip range = 10.1.0.2-10.1.0.254
  10. local ip = 10.1.0.1
  11. require chap = yes
  12. refuse pap = yes
  13. require authentication = yes
  14. name = l2tpd
  15. ;ppp debug = yes
  16. pppoptfile = /etc/ppp/options.xl2tpd
  17. length bit = yes

 创建好四个配置文件后将其复制到指定位置即可

  1. # Strongswan Configuration
  2. cp ipsec.conf /etc/ipsec.conf
  3. cp strongswan.conf /etc/strongswan.conf
  4. # XL2TPD Configuration
  5. cp xl2tpd.conf /etc/xl2tpd/xl2tpd.conf
  6. cp options.xl2tpd /etc/ppp/options.xl2tpd

 

2. 创建证书

对于 Windows、Android 等设备可能不支持某些登录方式,比如 IKEv2 PSK,这是需要创建证书,以支持使用 IKEv2 证书登录

1、自签 CA

  1. # create CA certificate
  2. 切换到/usr/local/strongswan/sbin目录,执行如下命令:
  3. ./ipsec pki --gen --outform pem > ca.key.pem
  4. ./ipsec pki --self --in ca.key.pem --dn "C=CN, O=StrongSwan, CN=StrongSwan CA" --ca --outform pem > ca.cert.pem

 

2、创建服务器证书

其中 –san 可以指定多个,但一般为一个是域名,一个是外网 IP,如果经过了路由,那么只需要写本机的对外暴露网卡的 IP 即可

  1. # create server certificate
  2. ./ipsec pki --gen --outform pem > server.key.pem
  3. ./ipsec pki --pub --in server.key.pem | ./ipsec pki --issue --cacert ca.cert.pem \
  4. --cakey ca.key.pem --dn "C=CN, O=StrongSwan, CN=服务器域名" \
  5. --san="服务器域名" --san="网卡IP" --flag serverAuth --flag ikeIntermediate \
  6. --outform pem > server.cert.pem

 3、创建客户端证书

  1. ./ipsec pki --gen --outform pem > client.key.pem
  2. ./ipsec pki --pub --in client.key.pem | ./ipsec pki --issue --cacert ca.cert.pem \
  3. --cakey ca.key.pem --dn "C=CN, O=StrongSwan, CN=Client" \
  4. --outform pem > client.cert.pem

4、生成 p12

安卓等设备是不支持直接导入客户端证书的,需要转换成 p12 格式,转换过程中需要输入两次密码,该密码为证书使用密码,导入时需要输入

  1. openssl pkcs12 -export -inkey client.key.pem -in client.cert.pem -name "Client" \
  2. -certfile ca.cert.pem -caname "StrongSwan CA" -out client.cert.p12

5、安装证书

创建完成后将证书复制到指定目录即可

  1. cp -r ca.cert.pem /etc/ipsec.d/cacerts/
  2. cp -r server.cert.pem /etc/ipsec.d/certs/
  3. cp -r server.key.pem /etc/ipsec.d/private/
  4. cp -r client.cert.pem /etc/ipsec.d/certs/
  5. cp -r client.key.pem /etc/ipsec.d/private/

 

 

3、创建用户

关于用户的登陆模式,比如使用 L2TP、IPsec、IKEv2 等请自行 Google,以下提供了一个简单的创建用户的脚本

  1. #!/bin/sh
  2. v()pn_user=$1
  3. v()pn_password=$2
  4. if [ -z ${v()pn_user} ] || [ -z ${v()pn_password} ]; then
  5. echo "Usage: $0 user password"
  6. exit 1
  7. fi
  8. v()pn_deluser ${v()pn_user}
  9. cat >> /etc/ipsec.d/l2tp-secrets <<EOF
  10. "${v()pn_user}" "*" "${v()pn_password}" "*"
  11. EOF
  12. cat >> /etc/ipsec.d/ipsec.secrets <<EOF
  13. ${v()pn_user} : EAP "${v()pn_password}"
  14. ${v()pn_user} : XAUTH "${v()pn_password}"
  15. EOF

 

将其保存为 v()pn_adduser.sh,执行 ./v()pn_adduser.sh USERNAME PASSWD 即可添加用户

5、设置 PSK

同样 PSK 也用于登录,如 IKEv2 PSK 登录,使用同样自行 Google,以下为设置 PSK 的脚本

  1. #!/bin/sh
  2. psk=$1
  3. if [ -z ${psk} ]; then
  4. echo "Usage: $0 psk"
  5. exit 1
  6. fi
  7. v()pn_unsetpsk
  8. touch /etc/ipsec.d/ipsec.secrets
  9. cat >> /etc/ipsec.d/ipsec.secrets <<EOF
  10. : PSK "${psk}"
  11. EOF

最后启动 v()pn 连接即可

  1. /usr/sbin/xl2tpd -c /etc/xl2tpd/xl2tpd.conf
  2. ipsec start

参考:https://blog.csdn.net/lllkey/article/details/80068461

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/805290
推荐阅读
  

闽ICP备14008679号