在兩台主機之間的 LAN 上設置 IPSEC (OpenBSD)
試圖在 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 將 B/etc/iked/pubkeys/ipv4/10.0.2.10
複製
/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
檢查配置:
/sbin/iked -n Configuration OK
我很困惑下一步該做什麼。我想我需要設置
/etc/ipsec.conf
,但我只找到了 IKEv1 文件。重新啟動兩台機器。沒有錯誤。說 iked 守護程序已啟動。如果我將公鑰重命名為任何內容,仍然可以相互 ping 通,因此 IPSEC 似乎無法正常工作。
- 我還需要配置什麼?
- 是否有 IPSEC 和 iked 的日誌,如果有,我在哪裡可以找到它們?
- 如何判斷 IPSEC 是否在配置後工作,而不查看機器之間的數據包?從 B ping 到 A,在 A 上執行 tcpdump。應該在 tcpdump 中看到“esp”和“spi”
更新:我讓 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
十六進制必須全部大寫
chmod 640 /etc/ipsec.conf ipsecctl -F (delete config) ipsecctl -f /etc/ipsec.conf (load config) ipsecctl -s all -v (show config)
我更喜歡使用 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
主機 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