Nei*_*gan 6 local-area-network ipsec openbsd ikev2
尝试在 LAN 上的两台主机之间使用 IPSEC。不涉及 VPN
使用 OpenBSD 5.8(在 VirtualBox 中)。我更喜欢使用 OpenBSD 对 IPSEC 和密钥交换的内置支持,而不是第三方。
两个主机:(10.0.2.10主机“A”)和10.0.2.11(主机“B”)
他们可以在尝试设置 IPSEC 之前互相 ping/ssh。
更新:我想也许 OpenIKED (IKE v2) 不支持transport模式,所以我也会接受 isakmp (IKE v1) 的答案
复制A/etc/iked/local.pub到B/etc/iked/pubkeys/ipv4/10.0.2.10
复制B/etc/iked/local.pub到A/etc/iked/pubkeys/ipv4/10.0.2.11
双方:
echo "ikev2 esp from any to any" > /etc/iked.conf
chmod 640 /etc/iked.conf
echo "ipsec=YES" > /etc/rc.conf.local
echo "iked_flags=" >> /etc/rc.conf.local
Run Code Online (Sandbox Code Playgroud)
检查配置:
/sbin/iked -n
Configuration OK
Run Code Online (Sandbox Code Playgroud)
我对接下来要做什么感到困惑。我想我需要设置/etc/ipsec.conf,但我只找到了 IKEv1 文档。
重新启动了两台机器。没有错误。说 iked 守护进程启动了。如果我将公钥重命名为任何内容,仍然可以互相 ping 通,因此 IPSEC 似乎不起作用。
更新:我让 IPSEC 使用手动密钥交换
/etc/ipsec.conf:
# .10 is source, .11 is destination
flow esp from 10.0.2.10 to 10.0.2.11 type require
esp transport from 10.0.2.10 to 10.0.2.11 \
spi 0xCAFEBABE:0xCAFEBABE \
authkey 0x64CHARHEX:0x64CHARHEX \
enckey 0x64CHARHEX:0x64CHARHEX
Run Code Online (Sandbox Code Playgroud)
十六进制需要全部大写
chmod 640 /etc/ipsec.conf
ipsecctl -F (delete config)
ipsecctl -f /etc/ipsec.conf (load config)
ipsecctl -s all -v (show config)
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用 IKEv2 的自动键控。我能做什么?
像书呆子一样回答我自己的问题
问题 1. OpenIKED (IKEv2) 不支持传输模式,因此只能将其用于 VPN,而不能用于 LAN。使用isakmpd(IKEv1)
问题 2. 的文档ipsec.conf说auth和enc值具有默认值,但您似乎仍然需要设置它们
我还需要配置什么?
您需要设置正确的rc.d标志isakmpd(见下文)
是否有 IPSEC 和 iked 的日志?如果有,在哪里可以找到它们?
日志位于/var/log/daemon
配置后如何判断 IPSEC 是否正常工作,而不查看机器之间的数据包?
在 B 上运行tcpdump host A,在 A 上运行ping B。您想在 tcpdump 输出中看到esp和spi
设置:
主机A (10.0.2.10)
# cat << EOF > /etc/ipsec.conf
ike active esp transport from 10.0.2.10 to 10.0.2.11 \
main auth hmac-sha1 enc aes \
quick auth hmac-sha2-256 enc aes
EOF
# chmod 640 /etc/ipsec.conf
# cd /etc/isakmpd/pubkeys/ipv4
# scp notRoot@10.0.2.11:/etc/isakmpd/local.pub 10.0.2.11 `# copy remote's public key`
# rcctl enable ipsec
# rcctl enable isakmpd
# rcctl set isakmpd flags "-KTv" `#K = use ipsec.conf for configuration, T = disable NAT traversal, v = verbose logging`
# ipsecctl -vf /etc/ipsec.conf `# start ipsec, or reboot`
# rcctl start isakmpd
Run Code Online (Sandbox Code Playgroud)
主机 B (10.0.2.11)
# cat << EOF > /etc/ipsec.conf
ike active esp transport from 10.0.2.11 to 10.0.2.10 \
main auth hmac-sha1 enc aes \
quick auth hmac-sha2-256 enc aes
EOF
# chmod 640 /etc/ipsec.conf
# cd /etc/isakmpd/pubkeys/ipv4
# scp notRoot@10.0.2.10:/etc/isakmpd/local.pub 10.0.2.10 `# copy remote's public key`
# rcctl enable ipsec
# rcctl enable isakmpd
# rcctl set isakmpd flags "-KTv" `#K = use ipsec.conf for configuration, T = disable NAT traversal, v = verbose logging`
# ipsecctl -vf /etc/ipsec.conf `# start ipsec, or reboot`
# rcctl start isakmpd
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1829 次 |
| 最近记录: |