IPSec en múltiples direcciones IP de OpenVZ, usando 127.0.0.2 en venet0

IPSec en múltiples direcciones IP de OpenVZ, usando 127.0.0.2 en venet0

Tengo una caja OpenVZ con IPSec habilitado.

root@wa000:~# ipsec verify
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path                                 [OK]
Linux Openswan U2.6.38/K2.6.32-042stab094.7 (netkey)
Checking for IPsec support in kernel                            [OK]
 SAref kernel support                                           [N/A]
 NETKEY:  Testing XFRM related proc values                      [OK]
    [OK]
    [OK]
Checking that pluto is running                                  [OK]
 Pluto listening for IKE on udp 500                             [OK]
 Pluto listening for NAT-T on udp 4500                          [OK]
Two or more interfaces found, checking IP forwarding            [FAILED]
Checking NAT and MASQUERADEing                                  [OK]
Checking for 'ip' command                                       [OK]
Checking /bin/sh is not /bin/dash                               [WARNING]
Checking for 'iptables' command                                 [OK]
Opportunistic Encryption Support                                [DISABLED]

Instalé openswan y xl2tpd para L2TP VPN. Cuando reinicio ipsec:

# service ipsec restart
ipsec_setup: Stopping Openswan IPsec...
ipsec_setup: Starting Openswan IPsec U2.6.38/K2.6.32-042stab094.7...
ipsec_setup: multiple ip addresses, using  127.0.0.2 on venet0

Detectó 127.0.0.2, que creo que es una IP local para servir. Quiero que se publique en mi dirección IP pública. Pero no tengo idea de cómo permitir que ipsec funcione en la IP correcta. Busqué en Google, pero nada parece ser realmente útil.

Aquí está el ifconfig -aresultado. Reemplacé las IP reales con xxxx, yyyy y zzzz.

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:18:51:69:44:e6  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

gre0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          NOARP  MTU:1476  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

gretap0   Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
          BROADCAST MULTICAST  MTU:1476  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:118 errors:0 dropped:0 overruns:0 frame:0
          TX packets:118 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:18229 (18.2 KB)  TX bytes:18229 (18.2 KB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:127.0.0.2  P-t-P:127.0.0.2  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:126133 errors:0 dropped:0 overruns:0 frame:0
          TX packets:102937 errors:0 dropped:724 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:11322355 (11.3 MB)  TX bytes:40737353 (40.7 MB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:x.x.x.x  P-t-P:x.x.x.x  Bcast:x.x.x.x  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

venet0:1  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:y.y.y.y  P-t-P:y.y.y.y  Bcast:y.y.y.y  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

venet0:2  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:z.z.z.z  P-t-P:z.z.z.z  Bcast:z.z.z.z  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

Respuesta1

  1. No lo especificó, pero según su ifconfig -aextracto podemos asumir que está ejecutando ipsec dentro de OpenVZ VE, no en el nodo de hardware (HN). Sólo para estar seguro: ¿revisaste el suyo?recomendaciónpara ese tipo de configuración?
  2. Las plantillas de OpenVZ para VE son a veces realmente alucinantes. Les pregunté a los desarrolladores por qué querríamos usar IP de rango 127/8 en interfaces sin loopback, pero su respuesta fue "bueno, no lo sabemos, alguien más lo agregó y ahora es un legado". Absoluta mierda. Puede eliminar de forma segura este "error" 127.0.0.2 de la interfaz en cuestión, no hace nada: ip ad del 127.0.0.2/32 dev venet0. Sin embargo, el problema es que en cada reinicio de VE se volvería a agregar esta tontería. Si está controlando el nodo de hardware, puede configurar la plantilla en algo que no active su "torpeza" que contiene la configuración de red. Si no lo estás controlando, bueno, la solución es poner este "ip ad del" en algo como /etc/rc.localy luego reiniciar ipsec.

Respuesta2

Dehttps://lists.openswan.org/pipermail/users/2010-June/018901.html

Cuando Openswan se inicia, parece que elige la primera dirección IP en la interfaz br0 para anunciar lo que está seleccionando. En caso de que se equivoque uno de estos días, ¿cómo puedo decirle definitivamente qué dirección IP en qué interfaz? ¿O es sólo un anuncio de apertura y no necesito preocuparme por eso?

Se vincula a todas las direcciones que se configuran al inicio. Si se agrega una dirección más adelante, actualmente es necesario decirle a Plutón que vuelva a vincularlas con "ipsec whack --listen".

ipsec_setup: múltiples direcciones IP, usando 10.0.0.10 en br0

El mensaje es un poco confuso. "Utilizará" la dirección IP de la que recibió un paquete al responder, y utilizará la dirección IP "más cercana" al iniciar cuando utilice "%defaultroute". Si utilizará la IP o la IP del nombre de host resuelto si se especifica en la conexión.

Es posible que sus interfaces OpenVZ no se vinculen automáticamente ya que no existen al inicio.

Además, puede forzarlo a escuchar solo en una IP editando su /etc/ipsec.confarchivo, agregando la especificación correcta XX.XX.XX.XX o la interfaz venet0:X usando las directivas listen=XX.XX.XX.XXo interface=venet0:Xen la config setupsección.

http://linux.die.net/man/5/ipsec.conf

información relacionada