我正在尝试使用自签名 CA 证书创建基于 x.509 的隧道。
我正在 AWS 上创建解决方案,VPN 网关是 Debian Stretch 机器版本 Linux ip-10-0-0-208 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u3 (2018-08- 19) x86_64 GNU/Linux,strongSwan 版本为 Linux StrongSwan U5.5.1/K4.9.0-8-amd64。
首先,我仅创建了用于东网关的 RSA 隧道:
openssl genrsa -out us-east-a1.key 4096
openssl rsa -in us-east-a1.key -pubout > us-east-a1.pub
我也为西门创建了同样类型的钥匙。然后,我将公钥复制到两个网关,并创建 ipsec.conf 和 ipsec.secrets 配置文件。
此配置运行没有任何问题。
现在我正在尝试进行使用 CA 证书的配置,但该配置并未建立连接。
我使用清除了证书和ikes
ipsec purgecerts
ipsec purgeike
所以IPsec缓存中没有剩余,并且我停止了Ipsec和strongSwan。
然后
我为西网关和东网关创建了 CA 主密钥、根 CA 证书、RSA 证书(私有/公共)。
之后,我在两个网关上创建了新的 ipsec.conf 和 ipsec.secrets。
隧道两侧启动后
systemctl restart networking
systemctl start ipsec
systemclt start strongswan
我运行命令
ipsec statusall
这是输出
Status of IKE charon daemon (strongSwan 5.5.1, Linux 4.9.0-9-amd64, x86_64):<br>
正常运行时间:45分钟,自2019年8月11日13:41:48起
malloc:sbrk 1486848,mmap 0,已使用415232,空闲1071616
工作线程:16个中的11个空闲,5/0/0/0工作,作业队列:0/0 /0/0,计划:1个
已加载插件:charon aesni aes rc2 sha2 sha1 md5 random nonce x509 撤销约束 pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp agent xcbc hmac gcm attr kernel-netlink 解析套接字默认 connmark中风 updown
侦听 IP 地址:
10.1.2.250
连接:
tunnel-east:54.88.xxx.yyy...13.57.zz.dd IKEv2,dpddelay=30stunnel
-east:本地:[C=DE,O=组织名称,CN= east-ssw-gateway] 使用公钥认证
tunnel-east: remote: [C=DE, O=Orgname, CN=west-ssw-gateway] 使用公钥认证
tunnel-east: child: 10.1.0.0/16 == = 10.0.0.0/16 隧道,dpdaction=重新启动
安全关联(0 向上,1 连接):
隧道东[1]:连接,54.88.xxx.yyy[%any]...13.57.zz.dd[%any ]
隧道东[1]:IKEv2 SPI:a157af3c58009cd8_i* 0000000000000000_r
隧道东[1]:活动任务:IKE_VENDOR IKE_INIT IKE_NATD IKE_CERT_PRE IKE_AUTH IKE_CERT_POST IKE_CONFIG CHILD_CREATE IKE_MOBIKE
我的 ipsec.conf “west” 看起来像这样:
配置设置
charondebug =“全部”
uniqueids = yes
strictcrlpolicy = no
conn%default
conntunnel-west
left = 13.57.zz.dd
leftsubnet = 10.0.0.0/16
right = 54.88.xxx.yyy
rightsubnet = 10.1.0.0/16
ike = aes256-sha2_256-modp1024!
esp=aes256-sha2_256!
keyingtries=0
ikelifetime=1h
生命周期=8h
dpddelay=30
dpdtimeout=120
dpdaction=重新启动
authby=pubkey
自动=启动
keyexchange=ikev2
类型=隧道
leftrsasigkey=vpn-west-public-certificate.pem
rightrsasigkey=vpn-east-public-certificate .pem
leftid="C=DE, O=Orgname, CN=west-ssw-gateway"
rightid="C=DE, O=Orgname, CN=east-ssw-gateway"
包括 /var/lib/strongswan/ipsec。 conf.inc
的 ipsec.secrets “west” 看起来像这样
include /var/lib/strongswan/ipsec.secrets.inc
: RSA vpn-west-private-key.pem
我的 ipsec.conf “east” 看起来像这样:
config setup<br>
charondebug="all"<br>
uniqueids=yes<br>
strictcrlpolicy=no<br>
conn %default
conn 隧道东
左=54.88.xxx.yyy
leftsubnet=10.1.0.0/16
right=13.57.zz.dd
rightsubnet=10.0.0.0/16
ike=aes256-sha2_256-modp1024!
esp=aes256-sha2_256!
keyingtries=0
ikelifetime=1h
生命周期=8h
dpddelay=30
dpdtimeout=120
dpdaction=重新启动
authby=pubkey
自动=启动
keyexchange=ikev2
类型=隧道
leftrsasigkey=vpn-east-public-certificate.pem
rightrsasigkey=vpn-west-public-certificate .pem
leftid="C=DE, O=Orgname, CN=east-ssw-gateway"
rightid="C=DE, O=Orgname, CN=west-ssw-gateway"
包括 /var/lib/strongswan/ipsec。会议公司
ipsec.secrets“东”看起来像这样
include /var/lib/strongswan/ipsec.secrets.inc <br>
: RSA vpn-east-private-key.pem
在双方我得到:
Security Associations (0 up, 1 connecting):<br>
知道我做错了什么吗?
正如AB建议的那样,我添加了 leftca= ,没有任何改变。
这是 Charon.log
2019-08-11T17:34:27+0000 04[NET] 写入套接字时出错:参数无效
2019-08-11T17:34:27+0000 01[JOB] 3s 999ms 内的下一个事件,等待
2019-08-11T17: 34:27+0000 10[MGR] 签入 IKE_SA 隧道东[1]
2019-08-11T17:34:27+0000 10[MGR] 签入 IKE_SA 成功
2019-08-11T17:34:31+0000 01[作业] 得到事件,排队作业等待执行
2019-08-11T17:34:31+0000 01[JOB] 999ms 内的下一个事件,等待
2019-08-11T17:34:31+0000 12[MGR] 使用 SPI 签出 IKEv2 SA 3dbe135f4a4d8d96_i 0000000000000000_r
2019-08-11T17:34:31+0000 12[MGR] IKE_SAtunnel-east[1] 成功签出
2019-08-11T17:34:31+0000 12[IKE] 重新传输 1 个消息 ID 为 0 的请求
2019 -08-11T17:34:31+0000 12[NET]发送数据包:从54.88.xxx.yyy[500]到13.57.zz.dd[500](336字节)
2019-08-11T17:34:31+0000 12[MGR] 签入 IKE_SA 隧道东[1]
2019-08-11T17:34:31+0000 12[MGR] 签入 IKE_SA 成功
2019-08-11T17:34:31+0000 04[NET] 发送数据包:来自54.88.xxx.yyy[500] 到 13.57.zz.dd[500]
2019-08-11T17:34:31+0000 04[NET] 写入套接字时出错:参数无效
2019-08-11T17:34:31+0000 01[JOB] 998ms 内的下一个事件,正在等待
2019-08-11T17:34:32+0000 01[JOB] 已获取事件,正在排队执行作业
2019-08-11T17:34:32+0000 01[JOB] 下一个事件6s 200ms,等待
2019-08-11T17:34:32+0000 13[MGR] 使用 SPI 签出 IKEv2 SA
3dbe135f4a4d8d96_i 0000000000000000_r
2019-08-11T17:34:32+0000 13[MGR] IKE_SA 隧道东[1] 已成功检查out
2019-08-11T17:34:32+0000 13[IKE] 重新传输 2 个消息 ID 为 0 的请求
2019-08-11T17:34:32+0000 13[NET] 发送数据包:来自 54.88.xxx.yyy[500 ] 到 13.57.zz.dd[500](336 字节)
2019-08-11T17:34:32+0000 13[MGR] 签入 IKE_SA 隧道东[1]
2019-08-11T17:34:32+0000 13[ MGR] 签入 IKE_SA 成功
2019-08-11T17:34:32+0000 04[NET] 发送数据包:从 54.88.xxx.yyy[500] 到 13.57.zz.dd[500]
2019-08-11T17:34:32+0000 04[NET] 写入套接字时出错:参数无效
因此,看起来写入套接字不起作用。
这可能意味着数据包无法离开服务器!
这是接口列表:
root@ip-10-1-2-250:/var/log# ip a
1:lo:mtu 65536 qdisc noqueue状态未知组默认qlen 1链接/环回00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8范围主机lo valid_lft永远首选_lft 永远 inet6 ::1/128 范围主机 valid_lft 永远首选_lft 永远 2: eth0: mtu 9001 qdisc pfifo_fast 状态 UP 组默认 qlen 1000 link/ether 12:09:c3:5b:9c:78 brd ff:ff:ff: ff:ff:ff inet 10.1.2.250/24 brd 10.1.2.255 作用域全局 eth0 valid_lft 永远 Preferred_lft 永远 inet6 fe80::1009:c3ff:fe5b:9c78/64 作用域链接 valid_lft 永远 Preferred_lft 永远
很明显,AWS public (EIP) 没有被直接解决,这可能就是原因。
那么,遇到这种情况该如何解决呢。