У меня есть машина Solaris, находящаяся где-то в эфире, которую я хотел бы сделать частью моей сети через IPsec. У меня это работает между машинами Solaris, но не между Solaris и Linux.
Я думаю, что основная проблема заключается в том, что Solaris использует только туннельный режим IPsec так же, как и интерфейсы виртуальных туннелей Cisco IPsec, то есть туннель IP-in-IP, защищенный IPsec. Я действительно не знаю, как воспроизвести это в Linux. Я действительно хочу, чтобы у туннеля был IP-адрес, потому что удаленный хост не маршрутизирует локальную сеть, а только сам.
Конфигурация Solaris выглядит так:
# ipsecinit.conf
{tunnel ip.tun0 negotiate tunnel}
ipsec {encr_algs AES-CBC encr_auth_algs HMAC-SHA1 auth_algs HMAC-SHA1 sa shared}
# hsotname.ip.tun0
130.95.13.254 130.95.13.253 tsrc 192.168.13.20 tdst 130.95.13.20 router up
# ike.config
{ label "manduba192-musundo"
local_addr 192.168.13.20
remote_addr 130.95.13.20
p1_xform
{ auth_method preshared oakley_group 5 auth_alg sha1 encr_alg aes }
p2_pfs 5
}
Это создает SA, которые выглядят следующим образом:
SA: flags=0xc0038000 < X_USED X_PAIRED X_OUTBOUND X_UNIQUE X_TUNNEL >
SRC: Source address (proto=4/ipip)
SRC: AF_INET: port 0, 192.168.13.20 (manduba192.ucc.gu.uwa.edu.au).
DST: Destination address (proto=4/ipip)
DST: AF_INET: port 0, 130.95.13.20 (musundo.ucc.gu.uwa.edu.au).
INS: Inner source address (proto=0/<unspecified>)
INS: AF_INET: port 0, 0.0.0.0 <unspecified>.
IND: Inner destination address (proto=0/<unspecified>)
IND: AF_INET: port 0, 0.0.0.0 <unspecified>.
KMC: Protocol 1, cookie="manduba192-musundo" (3)
Я действительно не знаю, как воспроизвести это в Linux. Я пробовал это:
spdadd 0.0.0.0/0 0.0.0.0/0 any -P out ipsec
esp/tunnel/130.95.13.126-192.168.13.20/use
ah/tunnel/130.95.13.126-192.168.13.20/use;
spdadd 0.0.0.0/0 0.0.0.0/0 any -P in ipsec
esp/tunnel/192.168.13.20-130.95.13.126/use
ah/tunnel/192.168.13.20-130.95.13.126/use;
над которым я могу предположительно поставить туннель IPIP? Но согласование IKE не удается из-за несоответствия SPD.
Любые идеи?