ubuntu14.04编译安装strongswan
原文链接:https://www.geek-share.com/detail/2683647771.html
因为需要在strongswan基础上做些二次开发的东西,需要将自己修改后的代码添加进strongswan后再编译运行。而ubuntu中 apt-get install 命令来安装的strongswan是已经用编译好的包来安装的,无法达到修改代码的目的。另外由ubuntu编译好的包版本较低,目前是5.1.x版本,而strongswan官网上5.4.0版本已经发布。那么,追求新版本或指定版本安装就可以使用下载源码编译安装的方法。
strongswan的编译安装还是很简单的,终端中几行命令就可以轻松搞定,但是其配置却是很让人头疼的一件事,就在这里慢慢收集整理吧。
参考博文:http://blog.csdn.net/butyesbutno/article/details/52033238(验证成功)
下载&编译&安装:(可参考官网)
[code]wget http://download.strongswan.org/strongswan-5.4.0.tar.bz2 apt-get install libgmp-dev apt-get install libssl-dev tar -jxvf strongswan-5.4.0.tar.bz2
然后进入解压后的strongswan目录,设置基本配置与安装命令:
[code]./configure --sysconfdir=/etc --enable-openssl make && make install
–sysconfdir //设置配置文件目录
–prefix //设置安装文件目录
–enable或–disable //按需设置各种启用与禁用
安装完成,超级用户下可验证是否可启用:
[code]ipsec start //启动ipsec ipsec restart //重启ipsec
这样,编译安装就算完成了,接下来是证书的生成,与三个配置文件的配置。
首先需要生成一份CA证书,这个证书作为公用的证书,放到该系统中每一个安装strongswan的机器中。
[code]ipsec pki --gen --outform pem > gscakey.pem
然后使用这个证书生成一系列的证书。
[code]ipsec pki --self --in gscakey.pem --dn "C=CH, O=gateway, CN=gs" --ca --outform pem > gscacert.pem
服务器证书:
[code]ipsec pki --gen --outform pem > serverkey.pem 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
客户端证书:
[code]ipsec pki --gen --outform pem > clientkey.pem 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目录下。
接下来是三个配置文件:
[code]/etc/ipsec.conf /etc/ipsec.secrets /etc/strongswan.conf
这时就需要明确双方的IP了,这里双方IP示例为192.168.X.A和192.168.X.B。子网IP任意给出一个示例。
先配置ipsec.conf (/etc/ipsec.conf)
主机A:
[code]config setup uniqueids=no conn %default ikelifetime=60m keylife=20m rekeymargin=3m keyingtries=1 keyexchange=ikev2 mobike=no conn networkmanager-strongswan keyexchange=ikev2 left=%any leftid=@xxx.server.com leftauth=pubkey leftfirewall=yes leftsubnet=0.0.0.0/0 leftcert=servercert.pem right=%any rightauth=pubkey rightsourceip=10.39.165.0/24 rightcert=clientcert.pem auto=add conn net-net keyexchange=ikev2 left=192.168.X.A leftsubnet=192.85.0.0/16 leftid=@xxx.server.com leftfirewall=yes leftsourceip=%config leftcert=clientcert.remoteserver.pem right=192.168.X.B rightsubnet=192.86.0.0/16 rightid=%any auto=add conn net-net-psk keyexchange=ikev2 authby=secret left=192.168.X.A leftsubnet=192.85.0.0/16 leftid=@xxx.server.com leftfirewall=yes right=192.168.X.B rightsubnet=192.86.0.0/16 rightid=@xxx.server.com auto=add
主机B将上述配置中对应IP与子网互换即可。
ipsec.secrets (/etc/ipsec.secrets)
[code]# /etc/ipsec.secrets - strongSwan IPsec secrets file : RSA serverkey.pem : RSA clientkey.remoteserver.pem moon : EAP "moon" @xxx.server.com %any : PSK "hello"
strongswan.conf (/etc/strongswan.conf)
[code]# strongswan.conf - strongSwan configuration file # # Refer to the strongswan.conf(5) manpage for details # # Configuration changes should be made in the included files charon { load_modular = yes duplicheck.enable = no dns1=192.168.X.1 nbns1 = 192.168.X.1 plugins { include strongswan.d/charon/*.conf } filelog { /var/log/strongswan.charon.log { time_format = %b %e %T default = 2 append = no flush_line = yes } } } include strongswan.d/*.conf
主机A、B的网络配置
[code]sudo iptables -A INPUT -p udp --dport 500 -j ACCEPT sudo iptables -A INPUT -p udp --dport 4500 -j ACCEPT sudo iptables -t nat -A POSTROUTING -s 192.86.0.0/16 -o eth0 -j MASQUERADE sudo iptables -A FORWARD -s 192.86.0.0/16 -j ACCEPT sudo iptables -t nat -A POSTROUTING -s 192.85.0.0/16 -o eth0 -j MASQUERADE sudo iptables -A FORWARD -s 192.85.0.0/16 -j ACCEPT sudo echo 1 > /proc/sys/net/ipv4/ip_forward 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命令发起连接。
- 点赞 1
- 收藏
- 分享
- 文章举报
- ubuntu14.04编译安装strongswan
- [ubuntu14.04] 自己编译安装 vim 8.0 的方法
- 2017年9月问题记录与总结——Ubuntu14.04下安装Xilinx_SDK编译zynq u-boot并制作BOOT.BIN(板卡ZC7045)
- ubuntu 14.04 Clang编译安装,libclang解析c++代码
- ubuntu14.04 编译安装highpoint rocketraid 2720驱动
- Ubuntu 14.04编译安装hadoop 2.7.3
- Ubuntu 14.04编译安装hadoop 2.7.3
- ubuntu server 14.04编译安装bluez5.18
- Ubuntu14.04安装Android编译环境
- Ubuntu14.04中编译安装maliit-0.99.0
- Android 在Ubuntu 14.04 64位构编译环境的安装流程
- 在Ubuntu 14.04 64bit下编译安装rtmpdump并调试输出
- Ubuntu14.04编译安装Kernel(下)
- Ubuntu 14.04编译安装hadoop 2.7.3
- Ubuntu 14.04编译安装hadoop 2.7.3
- ubuntu-14.04编译安装PostgreSQL
- Ubuntu 14.04 64bit上编译安装simple-rtmp-server(srs)服务器
- 在ubuntu14.04上,源码编译安装Mplayer
- 虚拟机ubuntu14.04上编译安装ISCE
- ubuntu14.04 编译安装OpenCV 3.2