当前位置:   article > 正文

ubuntu14.04编译安装strongswan_strongswan如何升级

strongswan如何升级

原文链接:https://blog.csdn.net/wwwangdeqqq/article/details/52388625

因为需要在strongswan基础上做些二次开发的东西,需要将自己修改后的代码添加进strongswan后再编译运行。而ubuntu中 apt-get install 命令来安装的strongswan是已经用编译好的包来安装的,无法达到修改代码的目的。另外由ubuntu编译好的包版本较低,目前是5.1.x版本,而strongswan官网上5.4.0版本已经发布。那么,追求新版本或指定版本安装就可以使用下载源码编译安装的方法。

strongswan的编译安装还是很简单的,终端中几行命令就可以轻松搞定,但是其配置却是很让人头疼的一件事,就在这里慢慢收集整理吧。

参考博文:http://blog.csdn.net/butyesbutno/article/details/52033238(验证成功)

下载&编译&安装:(可参考官网)

  1. wget http://download.strongswan.org/strongswan-5.4.0.tar.bz2
  2. apt-get install libgmp-dev
  3. apt-get install libssl-dev
  4. tar -jxvf strongswan-5.4.0.tar.bz2

然后进入解压后的strongswan目录,设置基本配置与安装命令:

  1. ./configure --sysconfdir=/etc --enable-openssl
  2. make && make install

–sysconfdir //设置配置文件目录
–prefix //设置安装文件目录
–enable或–disable //按需设置各种启用与禁用

安装完成,超级用户下可验证是否可启用:

  1. ipsec start //启动ipsec
  2. ipsec restart //重启ipsec

这样,编译安装就算完成了,接下来是证书的生成,与三个配置文件的配置。

首先需要生成一份CA证书,这个证书作为公用的证书,放到该系统中每一个安装strongswan的机器中。

ipsec pki --gen --outform pem > gscakey.pem

然后使用这个证书生成一系列的证书。

ipsec pki --self --in gscakey.pem --dn "C=CH, O=gateway, CN=gs" --ca --outform pem > gscacert.pem

服务器证书:

  1. ipsec pki --gen --outform pem > serverkey.pem
  2. ipsec pki --pub --in serverkey.pem | ipsec pki --issue --cacert gscacert.pem --cakey gscakey.pem --dn "C=CH, O=gateway, CN=@gateway.server.com" --san="192.168.X.X" --flag serverAuth --outform pem > servercert.pem

客户端证书:

  1. ipsec pki --gen --outform pem > clientkey.pem
  2. ipsec pki --pub --in clientkey.pem | ipsec pki --issue --cacert gscacert.pem --cakey gscakey.pem --dn "C=CH, O=gateway, CN=@gateway.client.com" --outform pem > clientcert.pem

生成的证书,clientcert.pem、servercert.pem要放在各自机器的/etc/ipsec.d/certs目录下;
clientkey.pem、serverkey.pem放在各自机器的/etc/ipsec.d/private目录下。

接下来是三个配置文件:
 

  1. /etc/ipsec.conf
  2. /etc/ipsec.secrets
  3. /etc/strongswan.conf

这时就需要明确双方的IP了,这里双方IP示例为192.168.X.A和192.168.X.B。子网IP任意给出一个示例。

先配置ipsec.conf (/etc/ipsec.conf)
主机A:

  1. config setup
  2. uniqueids=no
  3. conn %default
  4. ikelifetime=60m
  5. keylife=20m
  6. rekeymargin=3m
  7. keyingtries=1
  8. keyexchange=ikev2
  9. mobike=no
  10. conn networkmanager-strongswan
  11. keyexchange=ikev2
  12. left=%any
  13. leftid=@xxx.server.com
  14. leftauth=pubkey
  15. leftfirewall=yes
  16. leftsubnet=0.0.0.0/0
  17. leftcert=servercert.pem
  18. right=%any
  19. rightauth=pubkey
  20. rightsourceip=10.39.165.0/24
  21. rightcert=clientcert.pem
  22. auto=add
  23. conn net-net
  24. keyexchange=ikev2
  25. left=192.168.X.A
  26. leftsubnet=192.85.0.0/16
  27. leftid=@xxx.server.com
  28. leftfirewall=yes
  29. leftsourceip=%config
  30. leftcert=clientcert.remoteserver.pem
  31. right=192.168.X.B
  32. rightsubnet=192.86.0.0/16
  33. rightid=%any
  34. auto=add
  35. conn net-net-psk
  36. keyexchange=ikev2
  37. authby=secret
  38. left=192.168.X.A
  39. leftsubnet=192.85.0.0/16
  40. leftid=@xxx.server.com
  41. leftfirewall=yes
  42. right=192.168.X.B
  43. rightsubnet=192.86.0.0/16
  44. rightid=@xxx.server.com
  45. auto=add

 主机B将上述配置中对应IP与子网互换即可。

ipsec.secrets (/etc/ipsec.secrets)

  1. # /etc/ipsec.secrets - strongSwan IPsec secrets file
  2. : RSA serverkey.pem
  3. : RSA clientkey.remoteserver.pem
  4. moon : EAP "moon"
  5. @xxx.server.com %any : PSK "hello"

strongswan.conf (/etc/strongswan.conf)

  1. # strongswan.conf - strongSwan configuration file
  2. #
  3. # Refer to the strongswan.conf(5) manpage for details
  4. #
  5. # Configuration changes should be made in the included files
  6. charon {
  7. load_modular = yes
  8. duplicheck.enable = no
  9. dns1=192.168.X.1
  10. nbns1 = 192.168.X.1
  11. plugins {
  12. include strongswan.d/charon/*.conf
  13. }
  14. filelog {
  15. /var/log/strongswan.charon.log {
  16. time_format = %b %e %T
  17. default = 2
  18. append = no
  19. flush_line = yes
  20. }
  21. }
  22. }
  23. include strongswan.d/*.conf

   主机A、B的网络配置

  1. sudo iptables -A INPUT -p udp --dport 500 -j ACCEPT
  2. sudo iptables -A INPUT -p udp --dport 4500 -j ACCEPT
  3. sudo iptables -t nat -A POSTROUTING -s 192.86.0.0/16 -o eth0 -j MASQUERADE
  4. sudo iptables -A FORWARD -s 192.86.0.0/16 -j ACCEPT
  5. sudo iptables -t nat -A POSTROUTING -s 192.85.0.0/16 -o eth0 -j MASQUERADE
  6. sudo iptables -A FORWARD -s 192.85.0.0/16 -j ACCEPT
  7. sudo echo 1 > /proc/sys/net/ipv4/ip_forward
  8. iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

由于在ipsec.conf中conn字段使用的是auto=add设置,连接不会随ipsec守护进程启动而启动,需要使用ipsec up命令。
如: ipsec up net-net-psk
将对方证书放在自己的/etc/ipsec.d/certs/clientcert.remoteserver.pem后,可以使用
ipsec up net-net命令发起连接。
 

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

闽ICP备14008679号