一、服务器准备

这个不用我说了吧,我在阿里云购买的香港的服务器。

二、软件安装以及证书生成

1、安装必要的软件(如果你也是在阿里购买的yum源不用配置)

yum -y install gpm-devel pam-devel openssl-devel make gcc epel-release strongswan

设置别名

alias ipsec='strongswan'

进入软件目录

cd /etc/strongswan

2、生成证书(如果不懂就直接复制粘贴即可)

ipsec pki --gen --outform pem > ca.pemipsec pki --self --in ca.pem --dn "C=CN, O=VPN, CN=strongSwan CA" --ca --lifetime 3652 --outform pem > ca.cert.pem这里C表示国家名,O表示组织名,CN为通用名。默认证书有效期为3年,这里配置3652天,即10年。生成服务器私钥,然后从私钥中导出公钥,用CA证书签发服务器证书
ipsec pki命令可用来生成RSA密钥对,包含了私钥和公钥,公钥是在网络上传输的,而私钥是藏好用来和接收到的公钥配对的(因此私钥里也有整个公钥,用来配对)。ipsec pki --gen --outform pem > server.pemipsec pki --pub --in server.pem | ipsec pki --issue --lifetime 3652 --cacert ca.cert.pem --cakey ca.pem --dn "C=CN, O=VPN, CN=*.*.*.*" --san="*.*.*.*" --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem上述的“*.*.*.*”替换为你的服务器公网ip。IOS 客户端要求 CN 也就是通用名必须是你的服务器的 URL 或 IP 地址。除了上述要求,Windows 7 还要求必须显式说明这个服务器证书的用途(用于与服务器进行认证)--flag serverAuth。非 iOS 的 Mac OS X 要求了“IP 安全网络密钥互换居间(IP Security IKE Intermediate)”这种增强型密钥用法(EKU)--flag ikdeIntermediate。Android 和 iOS 都要求服务器别名(serverAltName)就是服务器的 URL 或 IP 地址,--san。所以这里C、O的值要跟第1步的一致,CN值及--san值是服务器公网地址或url,另外这里可以设置多个--san值。否则会出现错误 13801:IKE身份验证凭证不可接受。ipsec pki --gen --outform pem > client.pemipsec pki --pub --in client.pem | ipsec pki --issue --lifetime 3652 --cacert ca.cert.pem    --cakey ca.pem --dn "C=CN, O=VPN, CN=strongSwan Client" --outform pem > client.cert.pem这里C、O的值要跟第1步的一致。
生成 pkcs12 证书,用来导入手机或电脑(输入一下命令会让你输入密码,两次输入一直即可,请记住这个密码,在客户端导入此证书时需输入该密码。)
openssl pkcs12 -export -inkey client.pem -in client.cert.pem -name "strongSwan Client" -certfile ca.cert.pem -caname "strongSwan CA" -out client.cert.p12

安装证书,把刚才生成的私钥和证书文件复制到目录/etc/strongswan/ipsec.d/下的指定目录下即可。

cp -r ca.cert.pem /etc/strongswan/ipsec.d/cacerts/ &&
cp -r server.cert.pem /etc/strongswan/ipsec.d/certs/ &&
cp -r server.pem /etc/strongswan/ipsec.d/private/ &&
cp -r client.cert.pem /etc/strongswan/ipsec.d/certs/ &&
cp -r client.pem /etc/strongswan/ipsec.d/private/cacerts/目录下放置CA证书,certs/目录下放置服务器和客户端证书,private/目录下放置服务器和客户端私钥

三、软件配置

strongSwan包含3个配置文件,在目录/etc/strongswan/下
strongswan.conf strongSwan各组件的通用配置
ipsec.conf IPsec相关的配置,定义IKE版本、验证方式、加密方式、连接属性等等
ipsec.secrets 定义各类密钥,例如:私钥、预共享密钥、用户账户和密码

1、配置 strongswan.conf

(该配置文件可以直接覆盖原有文件)

vi /etc/strongswan/strongswan.conf# strongswan.conf - strongSwan configuration file
#
# Refer to the strongswan.conf(5) manpage for details
#
# Configuration changes should be made in the included filescharon {load_modular = yesduplicheck{               #冗余检查关闭,以允许同时连接多个设备enable = no       }                  compress = yes                                  #传输启用压缩plugins {include strongswan.d/charon/*.conf}dns1 = 8.8.8.8                                  #给远程端指定DNS服务器dns2 = 8.8.4.4nbns1 = 8.8.8.8                                 #指定Windows的WINS服务器nbns2 = 8.8.4.4filelog {                                       #配置strongSwan日志级别和路径/var/log/strongswanlog {                #log前加.会报错time_format = %b %e %Tdefault = 2append = noflush_line = yes}}
}include strongswan.d/*.conf

2、 配置ipsec.conf

(请注意该配置文件中包含公网ip配置请注意修改)

vi /etc/strongswan/ipsec.conf# ipsec.conf - strongSwan IPsec configuration fileconfig setupuniqueids=never               #关闭ID唯一性,即允许多个客户端使用同一个证书,多设备同时在线conn %default                           #默认配置项,其他conn配置项都会调用此默认项left=%any                           #left表示local,即本地端(服务器端)IP地址;%any是魔数字,表示任意地址leftsubnet=0.0.0.0/0                #本地端网络,0.0.0.0/0为通配,表示所有IP网段right=%any                          #right表示remote,即远程端(客户端)IP地址可为任意地址rightsourceip=10.10.10.0/24         #分配给远程端的虚拟IP地址段,尽量避免使用常用私网地址段以免冲突dpdaction=clear                     #dpd表示Dead Peer Detection,对端失效检测,clear表示对端失效时关闭连接conn IKEv1-CERT-XAUTH                   #供老版本IOS使用。IKEv1,使用证书和XAUTH验证keyexchange=ikev1                   #密钥交换使用IKEv1fragmentation=yes                   #允许分片leftauth=pubkey                     #本地端使用公钥验证leftcert=server.cert.pem            #指定本地端证书rightauth=pubkey                    #远程端使用公钥验证rightauth2=xauth                    #远程端使用用户账号验证rightcert=client.cert.pem           #指定远程端证书auto=add                            #auto定义strongSwan服务启动时该连接的行为,add是添加连接类型但不启动conn IKEv1-PSK-XAUTH                    #供IOS, Android使用。IKEv1,使用预共享密钥和XAUTH验证keyexchange=ikev1                   #密钥交换使用IKEv1leftauth=psk                        #本地端使用预共享密钥验证rightauth=psk                       #远程端使用预共享密钥验证rightauth2=xauth                    #远程端使用用户账号验证auto=add                            #strongSwan启动时添加连接类型但不启动conn IKEv2-CERT                         #供Windows 7+, Linux使用。IKEv2,使用证书验证keyexchange=ikev2                   #密钥交换使用IKEv2leftauth=pubkey                     #本地端使用公钥验证leftcert=server.cert.pem            #指定本地端证书rightauth=pubkey                    #远程端使用公钥验证rightcert=client.cert.pem           #指定远程端证书auto=add                            #strongSwan启动时添加连接类型但不启动conn IKEv2-EAP                          #供Windows 7+, IOS9+使用。IKEv2,EAP验证keyexchange=ikev2                   #密钥交换使用IKEv2ike=aes256-sha256-modp1024,3des-sha1-modp1024,aes256-sha1-modp1024!                #第一阶段加密方式esp=aes256-sha256,3des-sha1,aes256-sha1!                                           #ESP的顺序与IKE一致rekey=no                            #本地端对Windows远程端发出rekey请求会断开连接,所以需配置为noleftauth=pubkey                     #本地端使用公钥验证leftcert=server.cert.pem            #指定本地端证书leftsendcert=always                 #本地端总是发送证书leftid=*.*.*.*              #本地端标识,使用本地端公网IP地址作为标识,和生成服务器证书时的--san参数对应rightauth=eap-mschapv2              #远程端使用eap-mschapv2验证rightsendcert=never                 #不要求远程端发送证书eap_identity=%any                   #指定EAP验证身份,任意账户fragmentation=yes                   #允许分片auto=add                            #strongSwan启动时添加连接类型但不启动

3、配置ipsec.secrets

(如果文件不存在就自己生成该文件)

vi /etc/strongswan/ipsec.secrets: RSA server.pem              #指定服务器的RSA私钥文件
: PSK "psktest"                   #配置预共享密钥为:psktest
test1 : XAUTH "123456"        #配置XAUTH验证的用户名test1和密码123456,可配置多个用户账户
test2 : EAP "123456"          #配置EAP验证的用户名test2和密码123456,可配置多个用户账户

四、防火墙配置

1、开启内核转发

sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf如果不成功就执行echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf执行sysctl -p 看下加载情况

2、修改防火墙规则

(配置文件中的ip与ipsec.conf配置文件中的ip要保持一致)

vi /etc/firewalld/zones/public.xml<?xml version="1.0" encoding="utf-8"?>
<zone><short>Public</short><description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description><interface name="eth0"/><service name="ssh"/><service name="dhcpv6-client"/><service name="ipsec"/><port protocol="tcp" port="1723"/><port protocol="tcp" port="47"/><port protocol="tcp" port="1701"/><port protocol="tcp" port="22"/><masquerade/><rule family="ipv4"><source address="10.10.10.0/24"/><masquerade/>                                                                                                                                                                                    </rule><rule family="ipv4"><source address="10.10.10.0/24"/><forward-port to-port="4500" protocol="udp" port="4500"/></rule><rule family="ipv4"><source address="10.10.10.0/24"/><forward-port to-port="500" protocol="udp" port="500"/></rule><masquerade/>
</zone>

3、启动软件

systemctl enable firewalld && systemctl start firewalld && systemctl enable strongswan && systemctl start strongswan

五、修改服务器安全组规则

登录阿里云管理控制台- -> 云服务器ECS- ->网络和安全- ->安全组- ->添加安全组规则:授权策略:允许
协议类型:自定义UDP
端口范围:500/500
授权类型:地址段访问
授权对象:0.0.0.0/0
优先级:100
描述:随便填授权策略:允许
协议类型:自定义UDP
端口范围:4500/4500
授权类型:地址段访问
授权对象:0.0.0.0/0
优先级:100
描述:随便填

六、vpn连接

打开网络偏好设置

新建连接,选择vpn

vpn类型选择Cisco/IPSec

填写服务器地址,XAUTH类型的帐号的密码,


并在认证设置中填入配置好的密钥

点击连接,测试成功。

七、测试

浏览器输入https://www.google.com/,看到以下页面,成功!

Centos 7.6 Strongswan的搭建及使用相关推荐

  1. Ubuntu 12.04 64bit或者CentOS 6.3 64bit上搭建OpenRTMFP/Cumulus服务器

    Ubuntu 12.04 64bit或者CentOS 6.3 64bit上搭建OpenRTMFP/Cumulus服务器 2013-12-25 1.从官网下载源码包 cd ~/progrom_devel ...

  2. CentOS下的DNS服务器搭建

    CentOS下的DNS服务器搭建 实验环境:VMware workstation 10         centos 6.4 说明: DNS是计算机域名系统或域名解析服务器(Domain Name S ...

  3. CentOS下C++开发环境搭建

    CentOS下C++开发环境搭建 vimplus github 我的环境 CentOS 7.5 64位 环境部署 vim 编辑工具 g++ 编译器 git 版本控制 gdb 调试工具 cmake 跨平 ...

  4. centos 下 mysql 主从库搭建

    作者:蘑菇 今天在本本上装了个mysql主从库配置,中间遇到了几个问题,不过经过搜寻资料,已经可以正常工作了. 过程写下来做个记录: 因为上次已经装过LNMP,所以只要再装一个mysql做从库就好了. ...

  5. CentOS 7一键安装Seafile搭建私有云存储

    Seafile 是一款开源企业云盘,和Owncloud类似,个人感觉Seafile更加稳定,搭建也很简单,为了方便,xiaoz写了一个一键脚本,方便快速搭建自己的私有云. 环境要求 CentOS 7 ...

  6. 【傻瓜教程】CentOS 7 下 LNMP 环境搭建过程

    1.安装MariaDB CentOS 7 下,推荐使用MariaDB(MySQL的一种开源分支),且建议用yum安装. 安装命令 yum -y install mariadb mariadb-serv ...

  7. 7 centos 源码安装samba_CentOS搭建WonderTrader开发环境及v0.5.4版本发布

    前言 之前发过一篇关于如何搭建WonderTrader开发环境的文章<从零搭建WonderTrader的开发环境>,帮助不少用户解决了一些编译源码的问题.因为笔者是在Ubuntu 18.0 ...

  8. CentOS 7下安装Nextcloud搭建个人网盘

    [转载自 https://www.linuxidc.com/Linux/2018-11/155310.htm] 该方法是在linxu公社中发布的.感谢作者! 本人亲测,此方法可行,我在手机.电脑上都可 ...

  9. CentOS 6.7 Gitolite 服务搭建及TortoiseGit配置连接

    咳咳~好几天没写博文啦,这几天都在研究Git,没办法公司要要抛弃SVN转站Git,废话就不多说,下面我们进行操作演示: 环境:之前搭建的Redis-Master服务器一枚,配置一般般~ 工具:Tort ...

最新文章

  1. visual studio 2013 中配置OpenCV2.4.13 姿势
  2. qt4.8添加mysql驱动_Windows下编译Qt4.8 MySQL数据库驱动
  3. 编译成功,但引用之后报错undefined symbol: _ZN10tensorflow7strings6StrCatERKNS0_8AlphaNumE
  4. python︱matplotlib使用(读入、显示、写出、opencv混用、格式转换...)
  5. python selenium初入
  6. 烧写嵌入式linux,嵌入式linux系统烧写
  7. 589页22万字城市智慧应急指挥中心大数据信息化系统整体设计方案
  8. 北京市中小学信息学竞赛汇总 徐于铃
  9. 【浏览器强制360网页导航】360导航被强制设成首页如何取消?
  10. QuickTime Component实例
  11. python中字节(bytes)是如何转换成整型(long)的?
  12. C#习题——三角形或者长方形的边长,计算其周长和面积
  13. Aip接口自动化测试框架pytest+allure+request+jsonpath+excle
  14. bcc语料库下载_BCC语料库使用指南
  15. 结构作为函数参数要注意什么_为什么要重视间架结构
  16. 高性能分布式缓存redis(持久化原理 安全策略 过期删除内存淘汰策略 性能压测 高可用 Redis Cluster)
  17. 如何自动识别视频语音内容并生成字幕
  18. 查看QQ空间秘密的发布时间
  19. 用友NC6财务共享服务助企业财务管理转型升级
  20. android+m3+max,Android Opencore OpenMAX学习(3)...

热门文章

  1. product()函数
  2. css 预编译处理器 - Stylus
  3. python 分割字串_在Python中分割,连结和连结字串
  4. [vagrant]win7+vagrant2.0+vbox5.2启动集群
  5. 不区分语言开发工具1(服务压力测试,跨域问题解决,Redis进行密码的设置,设计模式,搭建FTP局域网服务,redis热key,redis哨兵,VueRouter模式)
  6. mysql 类型转换_MySQL常用类型转换函数总结(推荐)
  7. YGG 与社交 RPG 游戏 Solarbots 达成合作,购买价值 80,000 美元的资产
  8. 美国埃博拉患者是怎样治愈的?
  9. 关于“带头大哥”关闭博客的思考
  10. 7-3 求符合给定条件的整数集 (15 分)