原文链接: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(验证成功)

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

wget http://download.strongswan.org/strongswan-5.4.0.tar.bz2apt-get install libgmp-devapt-get install libssl-devtar -jxvf strongswan-5.4.0.tar.bz2

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

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

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

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

ipsec start //启动ipsec
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

服务器证书:

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

客户端证书:

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目录下。

接下来是三个配置文件:

/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:

config setupuniqueids=noconn %defaultikelifetime=60mkeylife=20mrekeymargin=3mkeyingtries=1keyexchange=ikev2mobike=noconn networkmanager-strongswankeyexchange=ikev2left=%anyleftid=@xxx.server.comleftauth=pubkeyleftfirewall=yesleftsubnet=0.0.0.0/0leftcert=servercert.pemright=%anyrightauth=pubkeyrightsourceip=10.39.165.0/24rightcert=clientcert.pemauto=addconn net-netkeyexchange=ikev2left=192.168.X.Aleftsubnet=192.85.0.0/16leftid=@xxx.server.comleftfirewall=yesleftsourceip=%configleftcert=clientcert.remoteserver.pemright=192.168.X.Brightsubnet=192.86.0.0/16rightid=%anyauto=addconn net-net-pskkeyexchange=ikev2authby=secretleft=192.168.X.Aleftsubnet=192.85.0.0/16leftid=@xxx.server.comleftfirewall=yesright=192.168.X.Brightsubnet=192.86.0.0/16rightid=@xxx.server.comauto=add

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

ipsec.secrets (/etc/ipsec.secrets)

# /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)

# 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的网络配置

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命令发起连接。

ubuntu14.04编译安装strongswan相关推荐

  1. ubuntu14.04 mysql5.6_ubuntu14.04编译安装mysql5.6.28

    一.安装必备工具 sudo apt-get install make bison g++ build-essential libncurses5-dev cmake ncurses-devel 二.设 ...

  2. Ubuntu14.04上安装TensorRT 2.1操作步骤

    在Ubuntu14.04 上安装TensorRT2.1有两种方法:(1).通过.deb直接安装:(2).通过Tar文件安装.这里通过Tar文件安装. 安装步骤: 1. 安装CUDA 8.0,可参考:  ...

  3. Linux(Ubuntu14.04)下安装Anaconda和Spyder

    Linux(Ubuntu14.04)下安装Anaconda是为了安装python所需要的各种库以及他们的环境配置. Spyder是使用python的IDE 安装python和pip 一般linux系统 ...

  4. 【Qt】在ubuntu14.04上安装Qt5.12(失败)

    注意 在ubuntu14.04上安装Qt5.12最终失败了,Qt5.12需要的libdbus库的版本和ubuntu14.04中的不一致,如果强行升级libdbus库版本,会导致系统桌面无法启动. 再次 ...

  5. Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书

    Ubuntu 17.04 编译安装 Nginx 1.9.9 配置 https 免费证书 安装 Nginx 安装依赖 $ apt-get update $ apt-get install build-e ...

  6. Ubuntu14.04下安装wineqq国际版和卸载QQ

    转载自: http://www.bubuko.com/infodetail-343048.html http://jingyan.baidu.com/article/e9fb46e199d60d752 ...

  7. 在Ubuntu14.04上安装UberWriterMarkdown编辑器

    在Ubuntu14.04上安装UberWriterMarkdown编辑器 这是一篇快速教程指导我们如何通过官方的PPA源在Ubuntu14.04上安装UberWriter编辑器. UberWriter ...

  8. Ubuntu14.04 kylin 安装配置Tomcat7服务器

    2019独角兽企业重金招聘Python工程师标准>>> Ubuntu14.04 kylin 安装配置Tomcat7服务器: 放入当前登录用户根目录: ~ 1.依旧是解压 tar –x ...

  9. 在ubuntu14.04中安装gazebo

    在ubuntu14.04中安装gazebo 什么是Gazebo?** Gazebo是一款3D动态模拟器,能够在复杂的室内和室外环境中准确有效地模拟机器人群.与游戏引擎提供高保真度的视觉模拟类似,Gaz ...

最新文章

  1. devServer proxy跨域 设置代理 proxy
  2. mono和monodevelop源码编译安装
  3. 通过ArcCatalog连接ArcGIS Server的种种问题
  4. ZOJ2314 Reactor Cooling(无源汇流量有上下界网络的可行流)
  5. java 多线程下载 开源_Android Downloader是一个开源的多线程,多任务下载框架
  6. RocketMQ集成SpringBoot
  7. Akka应用模式:分布式应用程序设计实践指南pdf
  8. 【JS 逆向百例】某易支付密码 MD5+AES 加密分析
  9. Hive静态分区表动态分区表
  10. Tomcat几种启动报错及解决办法
  11. C++基础教程,基本的输入输出
  12. 博客积分排名进入前4万
  13. Android学习(十二) ContentProvider
  14. 计算机无法启动printspooler,Win7系统下print spooler服务无法启动的解决方法
  15. php 木马,PHP后门木马详解
  16. arm linux编译upnp,ARM Linux下UPnP使用
  17. 向量范数(Norms)之间关系的证明
  18. MIT-OS实验-lab1
  19. 计算机速度由CPU决定,电脑CPU的计算速度由什么决定
  20. win7屏保怎么设置_酷屏保怎么设置?酷开系统不可不知的玩法!

热门文章

  1. 柯尼卡美能达复合机进入维修模式的方法大全
  2. CCD相机与普通相机的区别
  3. Cadence OrCAD Capture按页码自动编号的方法图文教程及视频演示
  4. 【LaTeX排版】LaTeX论文模版
  5. 又一个万亿级市场迎来新玩家?抖音内测网络拍卖功能
  6. 什么是算法?数据结构与算法概念
  7. 服务器启动显示防火墙,宝塔面板防火墙怎么打开
  8. 福州华侨中学计算机老师,三尺讲台著妙笔 谱写侨习好韶光——记2015级福州华侨中学实习队工作检查...
  9. 入侵检测技术综述(比较全)
  10. MVC模式 与 如何实现struts MVC模式