IPsec de FortiGate en Linux: qué cliente se conecta de verdad
El cliente de Linux del proveedor solo habla SSL VPN. Un perfil IPsec móvil debe reconstruirse en vpnc o strongSwan, y cuatro campos deben coincidir con la puerta de enlace.
Tu compañero de Windows importa un perfil del asistente de FortiGate y está en línea en un minuto. Tú instalas el mismo paquete del proveedor en Ubuntu, buscas una pestaña IPsec y encuentras un cliente que solo sabe abrir un SSL VPN. La conclusión que sigue suele ser doblemente errónea: la puerta de enlace no te rechaza y la compilación de Linux no está rota. Fortinet distribuye ese cliente solo con soporte de SSL VPN, así que un perfil IPsec móvil no tiene dónde vivir y hay que reconstruirlo en algún sitio que hable IKEv1.
Primero, decide qué protocolo te han dado realmente
Esa reconstrucción es mecánica en cuanto dejas de tratar al cliente del proveedor como la implementación de referencia.
Los dispositivos FortiGate publican tanto SSL VPN como IPsec, y el correo de traspaso rara vez dice cuál te han concedido. Una URL de portal más una página de inicio de sesión estilo navegador significa SSL VPN, y en Linux la respuesta allí es openfortivpn, no el mapeo de campos de abajo. Un identificador de grupo más una clave precompartida significa IPsec móvil, que es lo que manejan vpnc y strongSwan.
Equivocarse en esto es la razón más común de que un intento en Linux muera antes de completarse la primera fase: el cliente ofrece IKEv1 a un portal HTTPS o al revés. Pide al administrador el nombre del protocolo por escrito antes de instalar nada.
Cuatro credenciales viajan en cuatro campos distintos
La palabra password aparece dos veces en la mayoría de los traspasos y significa dos cosas diferentes. La clave precompartida autentica al propio peer, y es un secreto de máquina que el administrador lee de la configuración de la puerta de enlace. La contraseña de tu cuenta es una credencial aparte que demuestra qué persona hay detrás de ese peer.
Los otros dos valores son más fáciles de pasar por alto. El identificador de grupo es la cadena que el asistente escribió en el objeto de grupo IPsec, y 0 es un valor legítimo y no un campo vacío. La propuesta cubre cifrado, hash y un grupo Diffie-Hellman para cada fase, además del ajuste PFS, y cada elemento debe coincidir con la puerta de enlace. Cuando una conexión falla en la fase 1, casi siempre el culpable es uno de esos cuatro, así que anótalos por separado en lugar de meterlos en un solo diálogo.
Qué debe contener cada campo de vpnc
Instala el cliente junto con la interfaz del editor y luego crea una conexión VPNC:
sudo apt install vpnc network-manager-vpnc network-manager-vpnc-gnome
Pon la puerta de enlace en la dirección pública del FortiGate y el nombre de grupo exactamente en el identificador de la puerta de enlace, incluido un cero pelado. Group password toma la clave precompartida, mientras que el nombre de usuario y la contraseña toman tu cuenta, con cualquier token añadido como la puerta de enlace espera. En el diálogo avanzado, elige el grupo Diffie-Hellman que nombra la propuesta, iguala PFS al mismo grupo, activa el traversal NAT cuando el cliente está detrás de un router doméstico y deja la detección de peer muerto al mismo paso que la puerta de enlace.
El nombre de grupo es el campo que se omite, porque parece opcional y el cero por defecto se parece a un marcador. Envíalo en blanco y el cliente transmite un identificador distinto del que valida la puerta de enlace. Si el perfil sigue fallando, compara los valores avanzados con el cliente de Windows que funciona en lugar de con un mensaje de foro de otro sitio.
El mismo perfil escrito para strongSwan
strongSwan es el mejor contenedor a largo plazo para estos valores, ya que la configuración es un archivo de texto que puedes revisar y conservar:
conn office-fw
keyexchange=ikev1
aggressive=yes
left=%any
leftauth=psk
leftauth2=xauth
xauth_identity=YOUR_USER
right=GATEWAY_ADDRESS
rightauth=psk
rightsubnet=OFFICE_SUBNET
ike=aes128-sha1-modp1536!
esp=aes128-sha1-modp1536!Lee las líneas de la propuesta antes del bloque, porque el signo de exclamación final cambia su significado: fija esa única propuesta y elimina las alternativas que el cliente ofrecería de otro modo. Una puerta de enlace configurada para un solo par de transformaciones rechazará un cliente que se abre con una lista, así que la fijación es lo que convierte una negociación en una coincidencia. Toma los nombres exactos de los algoritmos del perfil de puerta de enlace que funciona y sustituye los marcadores por tus propios valores.
Las dos líneas de autenticación no son redundantes. La PSK demuestra el peer, el bloque XAuth demuestra el usuario, y eliminar cualquiera de las dos deja una fase que la puerta de enlace no terminará.
Lee el fallo antes de cambiar otro campo
Trabaja hacia atrás desde el síntoma en lugar de volver a aleatorizar el diálogo. Un IKE SA que sube sin dirección asignada significa que el intercambio de autenticación de usuario falló o nunca se ejecutó, así que revisa la cuenta y el manejo del token. Una fase 1 que nunca se completa apunta a la propuesta, al identificador de grupo o al modo agresivo, y cada uno de ellos se compara con la puerta de enlace, no solo con el cliente de Windows.
Un túnel que se establece y luego muere cada pocos minutos es un desacuerdo de detección de peer muerto entre los dos extremos; iguala el temporizador de la puerta de enlace en lugar de desactivar los keepalive en todas partes. Un túnel establecido en el que los hosts de la oficina siguen inalcanzables suele significar que la subred empujada nunca llegó a la tabla de enrutamiento local, algo que un cliente de terceros puede no hacer por sí solo.
Devuelve los valores que funcionan al dueño de la puerta de enlace cuando termines: protocolo, identificador de grupo, clave precompartida, propuesta, PFS y la decisión de DPD. La siguiente máquina Linux tarda entonces minutos en lugar de una tarde, y nadie tiene que redescubrir que el nombre de grupo era cero.