更新日期:2018年4月23日

-我做了一个视频教程,《一键搭建自己的VPN服务器》,使用到的技术都是本系列教程中所讲的内容,

-另外推荐一个香港的VPS,延时在60-70ms,速度非常快,我自己一直在用,年付价格折合人名币64元/月,支持支付宝付款,有兴趣的同学可点击这里

香港服务器

本文Centos6 通过安装配置 Strongswan VPN服务器,最后通过windows、osx等不同操作系统连接到VPN服务器。

  • strongSwan 版本 5.2
  • xl2tpd 版本 1.3.6

一. IPSec VPN

1、安装准备

2、安装strongswan

生成证书

证书应用于所有 pubkey 认证方式中

生成 CA 证书

1. 生成一个私钥:

2. 基于这个私钥自己签一个 CA 证书:

这里 –self 表示自签证书,–in 是输入的私钥,–dn 是判别名,–ca 表示生成 CA,–lifetime 为有效期。这里需要解释下判别名:

  • C 表示国家名,同样还有 ST 州/省名,L 地区名,STREET(全大写) 街道名。
  • O 表示组织名。
  • CN 为通用名。

生成服务器证书

1. 同样先生成一个私钥

2. 用我们刚才自签的 CA 证书给自己发一个服务器证书:

–issue, –cacert 和 –cakey 就是表明要用刚才自签的 CA 证书来签这个服务器证书。
–dn, –san,–flag 是一些客户端方面的特殊要求:

  • 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。

生成客户端证书

1. 依然是生成私钥:

2. 然后用刚才自签的 CA 证书来签客户端证书:

生成 PKCS12 证书

此时会提示输入两次密码, 这个密码是在导入证书到其他系统时需要验证的. 没有这个密码即使别人拿到了证书也没法使用,密码为空也可以。

安装证书

把 CA 证书(ca.cert.pem)、客户端证书(client.cert.pem)和 .p12 证书(client.cert.p12)用 FTP 复制出来给客户端用

配置 vpn

修改配置

修改 dns 配置

修改如下

配置验证方式的用户名与密码

格式为 :

以 : 为分界,分别从左到右填充,除了各类密码缺失以 null 补位,其它都用 %any 补位(密码怎么可能是 %any).

例如:

实际上等于

下面添加用户

开启内核转发

nano /etc/sysctl.conf

写入以下配置

保存退出, 执行下面命令.

配置防火墙

首先安装iptables

iptables 配置方法

将下面几条规则加入 iptables 规则中。

重启 iptables 使之生效.

配置完防火墙后重启 strongswan 服务

至此, 服务端配置已完成.

下面配置客户端

IOS:

有两种选择

1. 使用证书

把之前的 .p12 证书用邮件发送到手机上. 导入到手机(此时需要之前设置的证书密码).

找到手机上 “设置->VPN->添加配置”, 选 IPSec

  • 描述: 随便填
  • 服务器: 填url或ip
  • 帐户: 服务端设置中的 EAP 项用户名
  • 密码: 服务端设置中的 EAP 项密码
  • 使用证书: 打开

2. 使用预设密钥

找到手机上 “设置->VPN->添加配置”, 选 IPSec

  • 描述: 随便填
  • 服务器: 填url或ip
  • 帐户: 服务端设置中的 EAP 项用户名
  • 密码: 服务端设置中的 EAP 项密码
  • 使用证书: 关闭
  • 密钥: 服务端设置中的 PSK 项密钥

Windows 7+

导入证书:

  • 开始菜单搜索“cmd”,打开后输入 mmc(Microsoft 管理控制台)。
  • “文件”-“添加/删除管理单元”,添加“证书”单元
  • 证书单元的弹出窗口中一定要选“计算机账户”,之后选“本地计算机”,确定。
  • 在左边的“控制台根节点”下选择“证书”-“个人”,然后选右边的“更多操作”-“所有任务”-“导入”打开证书导入窗口。
  • 选择刚才生成的 client.cert.p12 文件。下一步输入私钥密码。下一步“证书存储”选“个人”。
  • 导入成功后,把导入的 CA 证书剪切到“受信任的根证书颁发机构”的证书文件夹里面。
  • 打开剩下的那个私人证书,看一下有没有显示“您有一个与该证书对应的私钥”,以及“证书路径”下面是不是显示“该证书没有问题”。
  • 然后关闭 mmc,提示“将控制台设置存入控制台1吗”,选“否”即可。

千万不要双击 .p12 证书导入!因为那样会导入到当前用户而不是本机计算机中,ipsec 守护精灵是访问不了它的。

建立连接:

  • “控制面板”-“网络和共享中心”-“设置新的连接或网络”-“连接到工作区”-“使用我的 Internet 连接”
  • Internet 地址写服务器 IP 或 URL。
  • 描述随便写。
  • 用户名密码写之前配置的 EAP 的那个。
  • 确定
  • 以下是可选步骤
  • 点击右下角网络图标,在新建的 VPN 连接上右键属性然后切换到“安全”选项卡,
  • VPN 类型选 IKEv2.
  • 数据加密是“需要加密”
  • 身份认证这里需要说一下,如果想要使用 EAP-MSCHAPV2 的话就选择“使用可扩展的身份认证协议”-“Microsoft 安全密码”,想要使用私人证书认证的话就选择“使用计算机证书”。