CentOS 8 请移步《CentOS 8 使用 Strongswan 搭梯(IPsec IKEv2 VPN)》
更新于 2018-08-29
新写了一篇简单一点的文章,移步《CentOS 7 使用 Strongswan 配置 IKEv2 VPN》查看。
最近感觉我国”建筑行业龙头企业”的施工水平又有提升, ipsec + l2tp 方式也难逃厄运. so, 放弃, 改用 IKEv2.
google 到一款名为 strongSwan 的开源服务端. 官网为 https://www.strongswan.org.
本文只介绍 IKEv2 方式的 VPN 配置, 如果需要 PPTP 方式, 请参考 <<CentOS VPS 建立 PPTP VPN 服务>>
这里使用的 VPS 服务器配置:
- CentOS 7 / 512M / 20G ssd , $5/月. 详情请看 这里
- 禁用 firewallD, 启用 iptables.
- strongSwan 版本 5.2
- xl2tpd 版本 1.3.6
安装 strongSwan
strongSwan 的发行版已包含在 EPEL 源中, 如果没有添加 EPEL 源, 请看 <<CentOS 7 配置 LNMP + FTP 环境>> 添加 EPEL 源.
添加完 EPEL 源后输入如下命令
当前为 5.4.0 版本, 官网上最新为 5.5.0, 但是需要编译安装.
1 2 3 |
yum install strongswan systemctl enable strongswan systemctl start strongswan |
生成证书
生成 CA 根证书
1. 生成一个私钥:
1 |
strongswan pki --gen --outform pem > ca.key.pem |
2. 基于这个私钥自己签一个 CA 根证书:
1 |
strongswan pki --self --in ca.key.pem --dn "C=CN, O=ITnmg, CN=ITnmg StrongSwan CA" --ca --lifetime 3650 --outform pem > ca.cert.pem |
–self 表示自签证书
–in 是输入的私钥
–dn 是判别名
- C 表示国家名,同样还有 ST 州/省名,L 地区名,STREET(全大写) 街道名
- O 组织名称
- CN 友好显示的通用名
–ca 表示生成 CA 根证书
–lifetime 为有效期, 单位是天
生成服务器端证书
1. 同样先生成一个私钥
1 |
strongswan pki --gen --outform pem > server.key.pem |
2. 用我们刚才自签的 CA 证书给自己发一个服务器证书:
1 2 3 4 5 |
#从私钥生成公钥 strongswan pki --pub --in server.key.pem --outform pem > server.pub.pem #用刚生成的公钥生成服务器证书 strongswan pki --issue --lifetime 3600 --cacert ca.cert.pem --cakey ca.key.pem --in server.pub.pem --dn "C=CN, O=ITnmg, CN=vpn.itnmg.net" --san="vpn.itnmg.net" --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem |
–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. 依然是生成私钥:
1 |
strongswan pki --gen --outform pem > client.key.pem |
2. 然后用刚才自签的 CA 证书来签客户端证书:
1 2 3 4 5 |
#从私钥生成公钥 strongswan pki --pub --in client.key.pem --outform pem > client.pub.pem #这里就不需要上面那一堆特殊参数了 strongswan pki --issue --lifetime 1200 --cacert ca.cert.pem --cakey ca.key.pem --in client.pub.pem --dn "C=CN, O=ITnmg, CN=vpn.itnmg.net" --outform pem > client.cert.pem |
打包证书为 pkcs12
1 |
openssl pkcs12 -export -inkey client.key.pem -in client.cert.pem -name "ITnmg StrongSwan Client Cert" -certfile ca.cert.pem -caname "ITnmg StrongSwan CA" -out client.cert.p12 |
此时会提示输入两次密码, 这个密码是在导入证书到其他系统时需要验证的. 没有这个密码即使别人拿到了证书也没法使用.
安装证书
1 2 3 4 5 6 7 |
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/ cp -r client.cert.pem /etc/strongswan/ipsec.d/certs/ cp -r client.key.pem /etc/strongswan/ipsec.d/private/ |
把 CA 证书(ca.cert.pem)、客户端证书(client.cert.pem)和 .p12 证书(client.cert.p12)用 FTP 复制出来给客户端用
配置 vpn
先修改主配置
1 |
nano /etc/strongswan/ipsec.conf |
下面是一些常用的设置说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
config setup #是否缓存证书吊销列表 #<em>cachecrls = yes</em> #是否严格执行证书吊销规则 # strictcrlpolicy=yes #如果同一个用户在不同的设备上重复登录,yes 断开旧连接,创建新连接;no 保持旧连接,并发送通知; never 同 no, 但不发送通知. uniqueids=no #配置根证书, 如果不使用证书吊销列表, 可以不用这段. 命名为 %default 所有配置节都会继承它 #ca %default #证书吊销列表url,可以是 LDAP, http, 或文件路径 #crluri = <uri> #定义连接项, 命名为 %default 所有连接都会继承它 conn %default #是否启用压缩, yes 表示如果支持压缩会启用. compress = yes #当意外断开后尝试的操作, hold, 保持并重连直到超时. dpdaction = hold #意外断开后尝试重连时长 dpddelay = 30s #意外断开后超时时长, 只对 IKEv1 起作用 dpdtimeout = 60s #闲置时长,超过后断开连接. inactivity = 300s #数据传输协议加密算法列表 esp = aes256-sha256,aes256-sha1,3des-sha1! #密钥交换协议加密算法列表 ike = aes256-sha1-modp1024,aes128-sha1-modp1024,3des-sha1-modp1024! #默认的密钥交换算法, ike 为自动, 优先使用 IKEv2 keyexchange = ike #服务端公网ip, 可以是魔术字 %any,表示从本地ip地址表中取. left = %any #客户端ip, 同上 right = %any #指定服务端与客户端的dns, 多个用","分隔 leftdns = 8.8.8.8,8.8.4.4 rightdns = 8.8.8.8,8.8.4.4 #服务端用于ike认证时使用的端口, 默认为500,如果使用了nat 转发, 则使用4500 #leftikeport = <port> #服务器端虚拟ip地址 #leftsourceip = %config #客户端虚拟ip段 rightsourceip = 10.0.0.0/24 #服务器端子网, 魔术字 0.0.0.0/0. 如果为客户端分配虚拟 IP 地址的话,那表示之后要做 iptables 转发,那么服务器端就必须是用魔术字 leftsubnet = 0.0.0.0/0 #rightsubnet = <ip subnet>[[<proto/port>]][,...] conn IKEv2-BASE #服务器端根证书DN名称 leftca = "C=CN, O=ITnmg, CN=ITnmg StrongSwan CA" #服务器证书, 可以是 PEM 或 DER 格式 leftcert = server.cert.pem #不指定客户端证书路径 #rightcert = <path> #指定服务器证书的公钥 leftsigkey = server.pub.pem #rightsigkey = <raw public key> | <path to public key> #是否发送服务器证书到客户端 leftsendcert = always #客户端不发送证书 rightsendcert = never #服务端认证方法,使用证书 leftauth = pubkey #客户端认证使用 EAP 扩展认证 , 貌似 eap-mschapv2 比较通用 rightauth = eap-mschapv2 #服务端id, 可以任意指定, 默认为服务器证书的 subject, 还可以是魔术字 %any,表示什么都行. leftid = vpn.itnmg.net #客户端id, 任意 rightid = %any #ios, mac os, win7+, linux conn IKEv2-EAP also=IKEv2-BASE #指定客户端eap id eap_identity = %any #不自动重置密钥 rekey = no #开启IKE 消息分片 fragmentation = yes #当服务启动时, 应该如何处理这个连接项. add 添加到连接表中. auto = add |
我的设置项
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
config setup uniqueids=no conn %default compress = yes esp = aes256-sha256,aes256-sha1,3des-sha1! ike = aes256-sha256-modp2048,aes256-sha1-modp2048,aes128-sha1-modp2048,3des-sha1-modp2048,aes256-sha256-modp1024,aes256-sha1-modp1024,aes128-sha1-modp1024,3des-sha1-modp1024! keyexchange = ike keyingtries = 1 leftdns = 8.8.8.8,8.8.4.4 rightdns = 8.8.8.8,8.8.4.4 conn ikev2-eap leftca = "C=CN, O=ITnmg, CN=ITnmg StrongSwan CA" leftcert = server.cert.pem leftsendcert = always rightsendcert = never leftid = vpn.itnmg.net left = %any right = %any leftauth = pubkey rightauth = eap-mschapv2 leftfirewall = yes leftsubnet = 0.0.0.0/0 rightsourceip = 10.1.0.0/16 fragmentation = yes rekey = no eap_identity=%any auto = add |
修改 dns 配置
v5.1.2 之后, 所有插件配置都分散在 /etc/strongswan/strongswan.d/ 目录中.
1 |
nano /etc/strongswan/strongswan.d/charon.conf |
修改如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
charon { duplicheck.enable = no #同时连接多个设备,把冗余检查关闭. # windows 公用 dns dns1 = 8.8.8.8 dns2 = 8.8.4.4 #以下是日志输出, 生产环境请关闭. filelog { /var/log/charon.log { # add a timestamp prefix time_format = %b %e %T # prepend connection name, simplifies grepping ike_name = yes # overwrite existing files append = no # increase default loglevel for all daemon subsystems default = 1 # flush each line to disk flush_line = yes } } } |
配置验证方式的用户名与密码
1 |
nano /etc/strongswan/ipsec.secrets |
下面添加用户
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#使用证书验证时的服务器端私钥 #格式 : RSA <private key file> [ <passphrase> | %prompt ] : RSA server.key.pem #使用预设加密密钥, 越长越好 #格式 [ <id selectors> ] : PSK <secret> %any : PSK "预设加密密钥" #EAP 方式, 格式同 psk 相同 用户名 : EAP "密码" #XAUTH 方式, 只适用于 IKEv1 #格式 [ <servername> ] <username> : XAUTH "<password>" 用户名 : XAUTH "密码" |
开启内核转发
1 |
nano /etc/sysctl.conf |
写入以下配置
1 2 3 |
# VPN net.ipv4.ip_forward = 1 net.ipv6.conf.all.forwarding=1 |
保存退出, 执行下面命令.
1 |
sysctl -p |
配置防火墙
iptables 配置方法
将下面几条规则加入 iptables 规则中, 适当使用 -I 参数替换 -A 参数, 确保所有的项目位置都在拒绝项前面.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#开放端口 iptables -A INPUT -p udp --dport 500 -j ACCEPT iptables -A INPUT -p udp --dport 4500 -j ACCEPT #启用ip伪装 iptables -t nat -I POSTROUTING -s 10.1.0.0/16 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT iptables -t nat -A POSTROUTING -s 10.1.0.0/16 -o eth0 -j MASQUERADE #添加转发 iptables -A FORWARD -s 10.1.0.0/16 -j ACCEPT #保存规则 service iptables save #重启服务 systemctl restart iptables |
如果嫌上面的操作麻烦, 可以直接编辑 iptables 规则文件.
1 |
nano /etc/sysconfig/iptables |
将下面的规则部分贴进去, 不要整个复制粘贴, 根据原有规则适当调整每条规则的位置, 确保规则在拒绝项前, 使之能生效.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
*nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 10.1.0.0/16 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT -A POSTROUTING -s 10.1.0.0/16 -o eth0 -j MASQUERADE COMMIT *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p udp -m udp --dport 500 -j ACCEPT -A INPUT -p udp -m udp --dport 4500 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -s 10.1.0.0/16 -j ACCEPT -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT |
保存退出, 重启 iptables 使之生效.
1 |
systemctl restart iptables |
以下是 firewallD 的配置方法, 使用 iptables 的可以忽略.
firewalld 介绍请看 <<CentOS 7 firewalld 动态防火墙介绍>>
首先将公网网卡添加到当前区域中
1 2 |
#查看所有网卡信息, 找出公网网卡 ip addr |
编辑网卡配置
1 |
nano /etc/sysconfig/network-scripts/ifcfg-eth0 |
在最末尾加上区域配置
1 |
ZONE=public |
保存退出,重启服务
1 2 |
systemctl restart network systemctl restart firewalld |
然后新建一个服务
1 |
nano /etc/firewalld/services/strongswan.xml |
填入以下内容
1 2 3 4 5 6 |
<?xml version="1.0" encoding="utf-8"?> <service> <short>Strongswan</short> <description>Strongswan VPN</description> <port protocol="udp" port="500,4500"/> </service> |
保存退出
添加服务到当前区域, 开启转发
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#以下命令没有指定 --zone 参数, 都是针对默认区域 public #为区域添加服务 firewall-cmd --permanen --add-service=strongswan #启用ip伪装 firewall-cmd --permanen --add-rich-rule='rule family="ipv4" source address="10.1.0.0/16" masquerade' #添加 nat 转发 firewall-cmd --permanen --add-rich-rule='rule family="ipv4" source address="10.1.0.0/16" forward-port port="4500" protocol="udp" to-port="4500"' firewall-cmd --permanen --add-rich-rule='rule family="ipv4" source address="10.1.0.0/16" forward-port port="500" protocol="udp" to-port="500"' #重新加载防火墙配置 firewall-cmd --reload |
除了用 firewall-cmd 命令外, 还可以换种方法添加上面的规则.
1 2 |
#编辑当前区域的xml配置文件 nano /etc/firewalld/zones/public.xml |
改成如下内容, 我这里只开放了 ssh 和 vpn 端口, 其他内容根据各自的情况修改.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?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> <service name="strongswan"/> <service name="ssh"/> <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> <rule family="ipv4"> <source address="10.1.0.0/16"/> <masquerade/> </rule> </zone> |
1 2 |
#重新加载防火墙配置 firewall-cmd --reload |
配置完防火墙后重启 strongswan 服务
1 2 |
strongswan stop #使用strongswan 自身的命令停止服务 systemctl start strongswan #使用 systemctl 命令启动服务 |
这里不使用 strongswan restart 命令的原因是, 使用这条命令后, 再用 systemctl status strongswan 命令得不到正确的运行状态.
至此, 服务端配置已完成.
为了学用 firewalld , 特意用了两天时间研究, 学会了才发现, firewalld 要比 iptables 占太多内存. 小内存的 vps 用 firewalld 有点奢侈. 还是换回 iptables 了.
客户端配置
IOS:
先导入 CA 证书
将之前创建的 ca.cert.pem 用 ftp 导出 , 写邮件以附件的方式发到邮箱, 在 ios 浏览器登录邮箱, 下载附件, 安装 ca 证书.
1. 使用 IKEv2 + EAP 认证
找到手机上 “设置->VPN->添加配置”, 选 IKEv2
- 描述: 随便填
- 服务器: 填url或ip
- 远程ID: ipsec.conf 中的 leftid
- 用户鉴定: 用户名
- 用户名: EAP 项用户名
- 密码: EAP 项密码
2. 使用 IKEv2 + 客户端证书 认证
把之前的 .p12 证书(里面包含ca证书)发到邮箱在手机上打开. 导入到手机(此时需要之前设置的证书密码).
找到手机上 “设置->VPN->添加配置”, 选 IKEv2
- 描述: 随便填
- 服务器: 填url或ip
- 远程ID: ipsec.conf 中的 leftid
- 用户鉴定: 证书
- 证书: 选择安装完的客户端证书
3. 使用 IKEv2 + 预设密钥 认证
找到手机上 “设置->VPN->添加配置”, 选 IKEv2
- 描述: 随便填
- 服务器: 填url或ip
- 远程ID: ipsec.conf 中的 leftid
- 用户鉴定: 无
- 使用证书: 关
- 密钥: PSK 项密钥
Windows 10
导入证书:
- 将 CA 根证书 ca.cert.pem 重命名为 ca.cert.crt
- 双击 ca.cert.crt 开始安装证书
- 点击安装证书
- “存储位置” 选择 “本地计算机”, 下一步
- 选择 “将所有的证书都放入下列存储区”, 点浏览, 选择 “受信任的根证书颁发机构”, 确定, 下一步, 完成.
建立连接:
- “控制面板”-“网络和共享中心”-“设置新的连接或网络”-“连接到工作区”-“使用我的 Internet 连接”
- Internet 地址写服务器 IP 或 URL。
- 描述随便写。
- 用户名密码写之前配置的 EAP 的那个。
- 确定
- 转到 控制面板网络和 Internet网络连接
- 在新建的 VPN 连接上右键属性然后切换到“安全”选项卡
- VPN 类型选 IKEv2
- 数据加密选“需要加密”
- 身份认证这里需要说一下,如果想要使用 EAP 认证的话就选择“Microsoft:安全密码(EAP-MSCHAP v2)”; 想要使用私人证书认证的话就选择“使用计算机证书”。
- 再切换到 “网络” 选项卡, 双击 “Internet 协议版本 4” 以打开属性窗口, 这里说一下, 如果你使用的是老版本的 win10, 可能会打不开属性窗口, 这是已知的 bug, 升级最新版本即可解决.
- 点击 “高级” 按钮, 勾选 “在远程网络上使用默认网关”, 确定退出.
VPN 配置完成
Windows 7 导入证书略有不同
- 开始菜单搜索「cmd」,打开后输入 mmc(Microsoft 管理控制台)。
- 「文件」-「添加/删除管理单元」,添加「证书」单元
- 证书单元的弹出窗口中一定要选「计算机账户」,之后选「本地计算机」,确定。
- 在左边的「控制台根节点」下选择「证书」-「受信任的根证书颁发机构」-「证书」,右键 -「所有任务」-「导入」打开证书导入窗口。
- 选择 CA 证书 ca.cert.crt 导入即可
我搜索了3周,这是我找到过的最好的文章。但是在ios10.3.3上使用4G测试时,一直连不上。
下面是日志:
Nov 8 09:44:33 09[NET] received packet: from 1.68.41.22[34990] to 128.199.115.97[500] (604 bytes)
Nov 8 09:44:33 09[ENC] parsed IKE_SA_INIT request 0 [ SA KE No N(REDIR_SUP) N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) ]
Nov 8 09:44:33 09[IKE] 1.68.41.22 is initiating an IKE_SA
Nov 8 09:44:33 09[IKE] remote host is behind NAT
Nov 8 09:44:33 09[ENC] generating IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP) N(NATD_D_IP) N(FRAG_SUP) N(MULT_AUTH) ]
Nov 8 09:44:33 09[NET] sending packet: from 128.199.115.97[500] to 1.68.41.22[34990] (448 bytes)
Nov 8 09:44:33 10[NET] received packet: from 1.68.41.22[34991] to 128.199.115.97[4500] (496 bytes)
Nov 8 09:44:33 10[ENC] unknown attribute type (25)
Nov 8 09:44:33 10[ENC] parsed IKE_AUTH request 1 [ IDi N(INIT_CONTACT) N(MOBIKE_SUP) IDr CPRQ(ADDR DHCP DNS MASK ADDR6 DHCP6 DNS6 (25)) N(ESP_TFC_PAD_N) N(NON_FIRST_FRAG) SA TSi TSr ]
Nov 8 09:44:33 10[CFG] looking for peer configs matching 128.199.115.97[128.199.115.97]…1.68.41.22[10.167.205.208]
Nov 8 09:44:33 10[CFG] selected peer config ‘ikev2-eap’
Nov 8 09:44:33 10[IKE] initiating EAP_IDENTITY method (id 0x00)
Nov 8 09:44:33 10[IKE] received ESP_TFC_PADDING_NOT_SUPPORTED, not using ESPv3 TFC padding
Nov 8 09:44:33 10[IKE] peer supports MOBIKE
Nov 8 09:44:33 10[IKE] authentication of ‘128.199.115.97’ (myself) with RSA signature successful
Nov 8 09:44:33 10[IKE] sending end entity cert “C=CN, O=xzys, CN=128.199.115.97”
Nov 8 09:44:33 10[ENC] generating IKE_AUTH response 1 [ IDr CERT AUTH EAP/REQ/ID ]
Nov 8 09:44:33 10[ENC] splitting IKE message with length of 1456 bytes into 2 fragments
Nov 8 09:44:33 10[ENC] generating IKE_AUTH response 1 [ EF(1/2) ]
Nov 8 09:44:33 10[ENC] generating IKE_AUTH response 1 [ EF(2/2) ]
Nov 8 09:44:33 10[NET] sending packet: from 128.199.115.97[4500] to 1.68.41.22[34991] (1236 bytes)
Nov 8 09:44:33 10[NET] sending packet: from 128.199.115.97[4500] to 1.68.41.22[34991] (292 bytes)
Nov 8 09:45:03 11[JOB] deleting half open IKE_SA with 1.68.41.22 after timeout
你的这个日志看不出什么问题, 应该仔细看日志里[err]或者[wraing](具体是哪种标签忘了)部分的内容.
按照你的方法试了很多次,在win10无论用哪种验证都是提醒:无法连接到vpn连接。无法建立计算机和vpn服务器之间的网络连接,因为远程服务器未响应。这可能是因为未将计算机与远程服务器之间的某种网络设备(如防火墙、nat、路由器等)配置为允许vpn连接。
首先确保你的vps可以访问国外网络, 再确定你的vps ip 没有被墙. 然后再查配置的问题.
我可以付费你远程帮我搭建吗?跟着你的步骤做了几十次了,也不断的检查和百度,就是搭建不了,因为这个也不是我的专业,我不想浪费太多的时间在搭建上,我能确定vps是没问题的,我一直用这个vps搭l2tp。邮件联系可以吗?
付费就不必了, 你可以加我qq, 这几天有时间的话帮你看下. 3375583
请问server端可以不配置证书只配置PSK嘛?
不行. ikev2必须要证书.
有测试过Android的设备吗?Android的设备好像不是太好用
不知道是不是防火墙规则设置问题,也是DO的vps,CentOS6,能拨号,就是不能上网。
我用小米note ,android6.0系统,也是能连上, 无法上网。
用aws,没法配置firewall或者iptable,请问怎么整?
没用过aws, 如果你没有完全控制权, 那可能就没办法了.
谢啦~
在验证的时候,无法通过,我是用EAP验证的,会弹出用户名密码登录,但是输入之后就登录失败
[root@izj6c8ba6c30va6rfy05vlz ~]# tail -f /var/log/messages
Feb 18 11:58:26 izj6c8ba6c30va6rfy05vlz systemd: Started Update UTMP about Syste m Runlevel Changes.
Feb 18 11:58:26 izj6c8ba6c30va6rfy05vlz systemd: Startup finished in 581ms (kern el) + 1.161s (initrd) + 11.303s (userspace) = 13.047s.
Feb 18 11:58:27 izj6c8ba6c30va6rfy05vlz systemd: Created slice user-0.slice.
Feb 18 11:58:27 izj6c8ba6c30va6rfy05vlz systemd: Starting user-0.slice.
Feb 18 11:58:27 izj6c8ba6c30va6rfy05vlz systemd: Started Session 1 of user root.
Feb 18 11:58:27 izj6c8ba6c30va6rfy05vlz systemd-logind: New session 1 of user ro ot.
Feb 18 11:58:27 izj6c8ba6c30va6rfy05vlz systemd: Starting Session 1 of user root .
Feb 18 11:59:54 izj6c8ba6c30va6rfy05vlz systemd: Started Session 2 of user root.
Feb 18 11:59:54 izj6c8ba6c30va6rfy05vlz systemd-logind: New session 2 of user ro ot.
Feb 18 11:59:54 izj6c8ba6c30va6rfy05vlz systemd: Starting Session 2 of user root
检查ipsec配置,证书配置。
win10没有问题。iphone7 ikev2不好用。ca,p12证书都导入成功,但是仍然连不上。配置文件完全参照你的帖子,相关域名及IP都已经改成自己的了。
试一下用户名和密码登录, 不用客户端证书验证.
Cisco的QuickConnect VPN在国内会被和谐吗,由于AnyConnect只是Cisco中高端产品才支持,最近打算买台Cisco路由器
是Cisco QuickVPN
没用过, 貌似兼容性不太好吧.
一个问题想请教下,请问我有个脚本需要在每次连接ikev2的时候去运行,我应该添加在哪个配置文件的什么地方?(脚本内容为获取当前连接人的ikev2分配的内网地址),万分感谢!
这个我也不清楚, 看看官网有没有例子.
好吧,谢谢你!