NoCome

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 49747|回复: 0

Centos7源码编译安装strongswan

[复制链接]

1651

主题

1737

帖子

51

RMB

NoCome(No.38)

Rank: 9Rank: 9Rank: 9

积分
7208

活跃会员

QQ
发表于 2021-5-23 10:46:59 | 显示全部楼层 |阅读模式
本节主要内容为:在Centos7上安装strongswan( VPN服务器软件)、strongswan生成证、strongswan配置文件修改、strongswan对接freeradius
通过源码安装与配置strongswan
说明:本文通过源码安装,通过yum安转也是可以的,如果您希望通过yum安装,可以查看centos7配置strongswan-yum/
但本系列教程均是源码安装,如果通过yum安装,strongswan的路径会有所不同,命令也有所不同
1、安装基础包


  1.        
  2. yum -y install pam-devel openssl-devel make gcc curl wget
复制代码



2、获取strongswan,并通过源码的形式安装,版本为5.5.3

  1. cd /root/
  2. wget --no-check-certificate https://download.strongswan.org/strongswan-5.5.3.tar.gz
  3. tar xzvf strongswan-5.5.3.tar.gz
  4. cd strongswan-5.5.3
  5. ./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-swanctl --enable-openssl --disable-gmp
  6. make && make install
复制代码



3、配置证书脚本文件
注意:将下面的ip地址192.168.0.107替换为实际ip地址,如果是IP地址影射,填写映射后的公网地址

  1. cd /root/
  2. vi zhengshu.sh
复制代码

  1. #证书制作脚本文件
  2. ipsec pki --gen --outform pem > ca.key.pem
  3. ipsec pki --self --in ca.key.pem --dn "C=CN, O=Huayu, CN=Huayu CA" --ca --lifetime 3650 --outform pem > ca.cert.pem
  4. ipsec pki --gen --outform pem > server.key.pem
  5. ipsec pki --pub --in server.key.pem --outform pem > server.pub.pem
  6. ipsec pki --issue --lifetime 1200 --cacert ca.cert.pem --cakey ca.key.pem --in server.pub.pem --dn "C=CN, O=Huayu, CN=192.168.0.107" --san="192.168.0.107" --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem
  7. ipsec pki --gen --outform pem > client.key.pem
  8. ipsec pki --pub --in client.key.pem --outform pem > client.pub.pem
  9. ipsec pki --issue --lifetime 1200 --cacert ca.cert.pem --cakey ca.key.pem --in client.pub.pem --dn "C=CN, O=Huayu, CN=192.168.0.107" --outform pem > client.cert.pem
  10. openssl pkcs12 -export -inkey client.key.pem -in client.cert.pem -name "Huayu Client Cert" -certfile ca.cert.pem -caname "Huayu CA" -out client.cert.p12
  11. cp -r ca.key.pem /usr/local/etc/ipsec.d/private/
  12. cp -r ca.cert.pem /usr/local/etc/ipsec.d/cacerts/
  13. cp -r server.cert.pem /usr/local/etc/ipsec.d/certs/
  14. cp -r server.key.pem /usr/local/etc/ipsec.d/private/
  15. cp -r client.cert.pem /usr/local/etc/ipsec.d/certs/
  16. cp -r client.key.pem /usr/local/etc/ipsec.d/private/
  17. echo "ok"
  18. cat ca.cert.pem >> /etc/raddb/certs/ca.pem
  19. cat server.cert.pem >> /etc/raddb/certs/server.pem
  20. cat server.key.pem >> /etc/raddb/certs/server.key
  21. cat /etc/raddb/certs/server.key >> /etc/raddb/certs/server.pem
复制代码

  1. chmod +x /root/zhengshu.sh
  2. /root/zhengshu.sh
复制代码


说明:在执行证书生成的过程中可以配置证书导入密码,密码可以为空
4、strongswan 配置文件修改
注意:下面的 10.0.0.0/24 为分配给vpn客户端的地址,192.168.0.107为网卡ip地址,如果是NAT映射的,请修改为映射后的公网地址,可以只用复制整个配置文件替换原来的内容

  1. vi /usr/local/etc/ipsec.conf
复制代码
  1. config setup
  2.     uniqueids=never              #允许多个客户端使用同一个证书
  3. #所有项目共用的配置项
  4. conn %default
  5.     keyexchange=ike              #ikev1 或 ikev2 都用这个
  6.     ike=aes256-sha1-modp1024,aes128-sha1-modp1024,3des-sha1-modp1024!
  7.     esp=aes256-sha256,aes256-sha1,3des-sha1!
  8.     left=%any                    #服务器端标识,%any表示任意
  9.     leftsubnet=0.0.0.0/0         #服务器端虚拟ip, 0.0.0.0/0表示通配.
  10.     right=%any                   #客户端标识,%any表示任意

  11. conn IKE-BASE
  12.     leftca=ca.cert.pem           #服务器端 CA 证书
  13.     leftcert=server.cert.pem     #服务器端证书
  14.     rightsourceip=10.0.0.0/24    #分配给客户端的虚拟 ip 段,格式为:单个IP或1.1.1.1-1.1.1.5或1.1.1.0/24

  15. #供 ios 使用, 使用客户端证书
  16. conn IPSec-IKEv1
  17.     also=IKE-BASE
  18.     keyexchange=ikev1
  19.     fragmentation=yes            #开启对 iOS 拆包的重组支持
  20.     leftauth=pubkey
  21.     rightauth=pubkey
  22.     rightauth2=xauth-radius  #使用radius
  23.     rightcert=client.cert.pem
  24.     auto=add

  25. #供 ios 使用, 使用 PSK 预设密钥
  26. conn IPSec-IKEv1-PSK
  27.     also=IKE-BASE
  28.     keyexchange=ikev1
  29.     fragmentation=yes
  30.     leftauth=psk
  31.     rightauth=psk
  32.     rightauth2=xauth-radius #使用radius
  33.     auto=add

  34. #供 android, linux, os x 使用
  35. conn IPSec-IKEv2
  36.     also=IKE-BASE
  37.     keyexchange=ikev2
  38.     leftauth=pubkey
  39.     rightauth=pubkey
  40.     rightcert=client.cert.pem
  41.     auto=add

  42. #供 windows 7+ 使用, win7 以下版本需使用第三方 ipsec vpn 客户端连接
  43. conn IPSec-IKEv2-EAP
  44.     also=IKE-BASE
  45.     keyexchange=ikev2
  46.     rekey=no                     #服务器对 Windows 发出 rekey 请求会断开连接
  47.     leftauth=pubkey
  48.     rightauth=eap-radius
  49.     rightsendcert=never          #服务器不要向客户端请求证书
  50.     eap_identity=%any
  51.     auto=add
  52. conn L2TP-PSK
  53.     keyexchange=ikev1
  54.     authby=secret
  55.     leftprotoport=17/1701 #l2tp端口
  56.     leftfirewall=no
  57.     rightprotoport=17/%any
  58.     type=transport
  59.     auto=add
  60. #供linux客户端
  61. conn ipke2vpn
  62.     keyexchange=ikev2
  63.     dpdaction=clear
  64.     dpddelay=300s
  65.     rekey=no
  66.     left=%defaultroute
  67.     leftsubnet=0.0.0.0/0
  68.     leftauth=pubkey
  69.     leftcert=server.Cert.pem
  70.     leftid="C=CN, O=huayu, CN=192.168.0.107"
  71.     right=%any
  72.     rightsourceip=10.0.0.0/24
  73.     rightauth=eap-radius  #使用radius
  74.     rightsendcert=never
  75.     eap_identity=%any
  76.     auto=add
复制代码


5、配置strongswan.conf 配置文件
说明:2-5行和DNS的内容,其中dns可以在这里指定,也可以在/usr/local/etc/strongswan.d/charon.conf文件中指定,
threads=16  代表程序开启线程数
i_dont_care_about_security_and_use_aggressive_mode_psk  只对5.0以后的版本有效,使系统在使用IKE模式时,支持aggrisive模式


  1. vi /usr/local/etc/strongswan.conf
复制代码


内容如下
  1. charon {
  2.         i_dont_care_about_security_and_use_aggressive_mode_psk = yes
  3.         duplicheck.enable = no
  4.         threads = 16
  5.         compress = yes
  6.         load_modular = yes
  7.         plugins {
  8.                 include strongswan.d/charon/*.conf   
  9.                }
  10.         dns1 = 8.8.8.8
  11.         dns2 = 114.114.114.114
  12. }
  13. include strongswan.d/*.conf
复制代码


6、配置strongswan 加载radius
说明:这里可以设置多个servers,我们设置了server-a,配置中的secret为radius的共享密钥,是strongswan连接radius时用的,它的密码在/etc/raddb/clients.conf 中进行定义,address 是radius 服务器的ip
  1. vi /usr/local/etc/strongswan.d/charon/eap-radius.conf
复制代码
  1. 1)修改 accounting = yes
  2. 2)找到 servers 字段中在括号内加入红色字体内容
  3. servers {
  4.                server-a {
  5.                                 address = 127.0.0.1
  6.                                 secret = testing123
  7.                              }

  8.     }
复制代码





6、 配置IPsec插件 xauth-eap,支持IKEv1. 即思科的IPSec模式
  1. vi /usr/local/etc/strongswan.d/charon/xauth-eap.conf
复制代码
  1. 去掉注释
  2. backend = radius
复制代码


7、配置strongswan共享密钥
说明:其中的huayu为共享密钥,在vpn客户端配置的时候使用
  1. vi  /usr/local/etc/ipsec.secrets
复制代码


内容如下

  1. # ipsec.secrets - strongSwan IPsec secrets file
  2. : RSA server.key.pem #使用证书验证时的服务器端私钥
  3. : PSK "huayu" #使用预设密钥时, 8-63位ASCII字符
  4. : XAUTH "huayu"
复制代码


8、启动strongswan

  1. systemctl restart strongswan
复制代码

9、启动radiusd
  1. systemctl restart radiusd
复制代码

备注:strongswan 调用日志模式,排错时使用 ipsec start –nofork # 将 log 输出到当前终端用于调试.

Hello,NoCome!
点评回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

NoCome推荐上一条 /2 下一条

小黑屋|手机版|Archiver|NoCome ( 粤ICP备19043184号 )

GMT+8, 2021-9-19 18:13 , Processed in 0.055271 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表