假设你的服务器公网ip是99.99.99.99 , 下文中出现的指令中的“你的服务器公网ip”替换成99.99.99.99

1、安装strongswan

yum install strongswan

2、创建证书

strongswan pki --gen --outform pem > ca.key.pem
strongswan pki --self --in ca.key.pem --dn "C=CN, O=Org, CN=Org Me CA" --ca --lifetime 3650 --outform pem > ca.cert.pem
strongswan pki --gen --outform pem > server.key.pem
strongswan pki --pub --in server.key.pem --outform pem > server.pub.pem
strongswan pki --pub --in server.key.pem | strongswan pki --issue --lifetime 3601 --cacert ca.cert.pem --cakey ca.key.pem --dn "C=CN, O=Org, CN=Org Me CA" --san="99.99.99.99" --san="99.99.99.99" --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem

注意:

  1. 这里C=CN, O=Org, CN=Org Me CA Org指机构名字 Me是自己名字 随便填。
  2. --san="99.99.99.99" --san="99.99.99.99" 如果已经有域名 可以把一个改成域名

3、安装证书

cp -r ca.key.pem /etc/strongswan/ipsec.d/private/
cp -r ca.cert.pem /etc/strongswan/ipsec.d/cacerts/
cp -r server.cert.pem /etc/strongswan/ipsec.d/certs/
cp -r server.pub.pem /etc/strongswan/ipsec.d/certs/
cp -r server.key.pem /etc/strongswan/ipsec.d/private/

4、配置VPN

vi /etc/strongswan/ipsec.conf
config setup  uniqueids=never #允许多个客户端使用同一个证书conn %default  #定义连接项, 命名为 %default 所有连接都会继承它compress = yes #是否启用压缩, yes 表示如果支持压缩会启用.dpdaction = hold #当意外断开后尝试的操作, hold, 保持并重连直到超时.dpddelay = 30s #意外断开后尝试重连时长dpdtimeout = 60s #意外断开后超时时长, 只对 IKEv1 起作用inactivity = 300s #闲置时长,超过后断开连接.leftdns = 8.8.8.8,8.8.4.4 #指定服务端与客户端的dns, 多个用","分隔rightdns = 8.8.8.8,8.8.4.4conn IKEv2-BASEleftca = "C=CN, O=Org, CN=Org Me CA" #服务器端根证书DN名称,与 --dn 内容一致 leftsendcert = always #是否发送服务器证书到客户端rightsendcert = never #客户端不发送证书conn IKEv2-EAP  keyexchange=ikev2       #默认的密钥交换算法, ike 为自动, 优先使用 IKEv2left=%any       #服务器端标识,%any表示任意  leftid= 你的服务器公网ip     #服务器端ID标识,你的服务器公网ip(99.99.99.99)  leftsubnet=0.0.0.0/0        #服务器端虚拟ip, 0.0.0.0/0表示通配.  leftcert = server.cert.pem     #服务器端证书  leftauth=pubkey     #服务器校验方式,使用证书  right=%any      #客户端标识,%any表示任意  rightsourceip = 10.1.0.0/16    #客户端IP地址分配范围  rightauth=eap-mschapv2  #eap-md5#客户端校验方式#KEv2 EAP(Username/Password)   also=IKEv2-BASEeap_identity = %any #指定客户端eap idrekey = no #不自动重置密钥fragmentation = yes #开启IKE 消息分片auto = add  #当服务启动时, 应该如何处理这个连接项. add 添加到连接表中.

5、修改 dns 配置

vi /etc/strongswan/strongswan.d/charon.conf
charon {duplicheck.enable = no #同时连接多个设备,把冗余检查关闭.# windows 公用 dnsdns1 = 8.8.8.8dns2 = 8.8.4.4#以下是日志输出, 生产环境请关闭.filelog {/var/log/charon.log {# add a timestamp prefixtime_format = %b %e %T# prepend connection name, simplifies greppingike_name = yes# overwrite existing filesappend = no# increase default loglevel for all daemon subsystemsdefault = 1# flush each line to diskflush_line = yes}}}
vi /etc/strongswan/strongswan.conf
charon {load_modular = yesduplicheck.enable = nocompress = yesplugins {include strongswan.d/charon/*.conf}dns1 = 8.8.8.8nbns1 =8.8.4.4
}
include strongswan.d/*.conf

6、配置用户和密码

vi /etc/strongswan/ipsec.secrets
#ipsec.secrets - strongSwan IPsec secrets file#使用证书验证时的服务器端私钥
#格式 : RSA <private key file> [ <passphrase> | %prompt ]
: RSA server.key.pem#使用预设加密密钥, 越长越好
#格式 [ <id selectors> ] : PSK <secret>
admin : PSK "123456"#EAP 方式, 格式同 psk 相同 (用户名/密码 例:oneAA/oneTT)
admin : EAP "123456"#XAUTH 方式, 只适用于 IKEv1
#格式 [ <servername> ] <username> : XAUTH "<password>"
admin : XAUTH "123456"

注意:账号密码分别是 admin 123456 这个自己定义

7、开启内核转发

vi /etc/sysctl.conf

配置里添加如下:

net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding=1

8、配置防火

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.1.0.0/16"/><masquerade/>                                                                                                                                                                                    </rule><rule family="ipv4"><source address="10.1.0.0/16"/><forward-port to-port="4500" protocol="udp" port="4500"/></rule><rule family="ipv4"><source address="10.1.0.0/16"/><forward-port to-port="500" protocol="udp" port="500"/></rule><masquerade/>
</zone>

9、开启 防火墙/strongswan 以及 自动启动

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

10、阿里云开放端口

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

注意!添加完成后必须 重启 服务器

11、证书安装及连接

用ftp工具(例:FileZilla)下载 ca.key.pem 证书到本地。

Windows10:

见另一篇文章https://blog.csdn.net/liyaxin2010/article/details/83148442

ios证书安装:

将 ca.cert.pem 用 ftp 导出 , 写邮件以附件的方式发到邮箱, 在ios Safari浏览器登录邮箱, 下载附件, 安装证书。

设置–>VPN- ->添加VPN配置

例:类型:IKEv2
​ 描述:随便填
​ 服务器:你的服务器公网ip
​ 远程ID:你的服务器公网ip
​ 本地ID:不用填,空着
​ 选择- ->用户名,填写-用户名-密码 - ->点击–完成

回到VPN 界面- ->勾选你在描述里填写的内容显示- ->点击–连接

mac证书安装:

双击 ca.cert.pem -->选中你的证书–>显示简介–>信任–>始终信任(然后会弹框填写mac登录密码)。
步骤:系统编好设置- ->网络- ->点击+号- ->接口:VPN - ->VPN类型:IKEv2 - ->服务名称:随便- ->点击 创建。
接下来填写账户密码地址

例:服务器地址:你的服务器公网ip
远程ID:你的服务器公网ip
本地ID:不用填,空着

点击- -鉴定设置- ->选择- ->用户名,填写-用户名-密码 - ->点击–连接

android:

去strongswan官网下载安装

例:https://download.strongswan.org/Android/strongSwan-1.9.6.apk
或:https://download.csdn.net/download/qq_29364417/10482582
或者编译源码:https://github.com/strongswan/strongswan/tree/master/src/frontends/android
步骤:右上角选项–>CA证书–>再选择右上角选项–>导入证书–>找到ca.cert.pem点击即可。
​ 回到主界面–>添加VPN配置–>例:服务器地址:你的服务器公网ip
​ VPN类型:IKEv2 EAP(用户名/密码),填写用户名和密码
​ CA证书:选择刚才导入的ca.cert.pem证书
​ 点击右上角–保存

或者提前双击安装证书,这里选择自动。

参考:

https://blog.csdn.net/sqzhao/article/details/76093994

https://blog.csdn.net/wengzilai/article/details/78707134

https://blog.csdn.net/sqzhao/article/details/71307510

CentOS搭建Strongswan相关推荐

  1. Centos 搭建高性能WEB服务 Nginx+PHP+MYSQL+Discuz论坛

    Centos 搭建高性能WEB服务 Nginx+PHP+MYSQL+Discuz论坛 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运 ...

  2. php5.3 php7兼容,Centos搭建PHP7.0.x让php5.3和php7兼容共存教程

    先安装php5.3 就不说,说Centos搭建PHP7.0教程: # wget  http://php.net/get/php-7.0.4.tar.gz/from/a/mirror 解压安装 # ta ...

  3. [记录]CentOS搭建SVN服务器(主从同步)

    CentOS搭建SVN服务器(主从同步) 1.安装步骤如下: 1)安装: #yum install subversion 2)查看安装位置: #rpm -ql subversion 3)查看版本: # ...

  4. Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17

    Centos搭建PHP5.3.8+Nginx1.0.9+Mysql5.5.17 操作环境 操作系统:Mac Os Loin 虚拟主机:VMware Fusion 虚拟系统:Centos 5.5+ 操作 ...

  5. ngrok linux开机自启动,CentOS 搭建ngrok服务器

    原标题:CentOS 搭建ngrok服务器 1一.前提条件 1. 准备好一台主机,带公网IP 2. 准备一个一级域名,做好泛解析(二级域名的没有配置成功,汗...) 切记 一定要做好域名泛解析 二.安 ...

  6. Centos搭建FTP服务

    前言: Centos 搭建FTP服务学习记录 FTP简介 FTP简称"文件传输协议",用于Internet上的控制文件的双向传输. 在FTP中常遇到两个概念: 下载和上传 &quo ...

  7. Centos 搭建activemq

    Centos 搭建activemq 1,官方下载  http://activemq.apache.org/activemq-5122-release.html apache-activemq-5.15 ...

  8. lepus mysql 复制监控_MySQL数据库之CentOS搭建lepus3.8监控MySQL

    本文主要向大家介绍了MySQL数据库之CentOS搭建lepus3.8监控MySQL ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. LNMP环境 yum -y install ...

  9. 阿里云服务器CentOS搭建

    一. 阿里云服务器CentOS搭建 阿里云的CentOS云系统是一个集成了Python环境基于yum安装的镜像,包含Nginx.MySQL.Pyenv.IPython等. CentOS(Communi ...

最新文章

  1. 【CVPR Oral】TensorFlow实现StarGAN代码全部开源,1天训练完
  2. Java 垃圾回收算法之G1
  3. poj2182 Lost Cows-暴力
  4. java ios 字符串_Java 与 iOS使用RSA 加密签名
  5. 周鸿祎:希望将互联网基因与汽车制造企业基因进行重组
  6. python生成json_python中如何进行json转化
  7. 【.NET】Linq几样特点
  8. oracle 表 队列,如何将复制队列表移出系统(SYSTEM)表空间
  9. Centos7安装WPS
  10. ThinkPad Tablet2升级Windows10(各种故障及解决方案)
  11. c++11 std::decay源码剖析
  12. Android HIDL 介绍学习之客户端调用
  13. 基于SSM的家政服务管理系统
  14. OKRs-E 让目标推进成功率提升200%
  15. selenium模拟12306登录
  16. 2D平台类游戏开发教程(翻译)
  17. Pandas分组统计函数:groupby、pivot_table及crosstab
  18. 谷歌问答上线 悲凉下的涌动
  19. 通过企业微信和微信打造免费的消息提醒Push机制
  20. 《推荐系统实践》__第1章__好的推荐系统

热门文章

  1. sass,less,stylus
  2. MacBook typora快捷键
  3. windows加载动画
  4. fast-tmp入门
  5. 定积分几何应用(面积、体积计算) 笔记
  6. Linux基础(二十六)——高级网络配置
  7. Contest3032 - 计科2101~2104算法设计与分析上机作业03
  8. 一个有趣的问题(随缘更新)
  9. 虚拟摄像头之七:《详解 CameraService 都做了什么》之 CameraService 与 cameraclient 通讯
  10. Inductive Entity Representations from Text via Link Prediction