Debian, Openswan y Fortigate – 1

Me preguntaron: ¿Es posible con un servidor Linux establecer una VPN IPsec contra un dispositivo Fortigate usando como enlace de Internet un servicio ADSL de TELMEX?

Según este enlace es posible: Using an Openswan client with FortiGate VPN, pero no me pareció tan sencillo como se menciona.

Los equipos Fortigate de la marca Fortinet tienen una interfaz gráfica cómoda que nos permite realizar dependiendo nuestras necesidades diversas VPN como PPTP, SSL e IPsec.

En este pequeño documento describiré la conexión de Openswan con un par de modelos Fortigate que son el 500 y el 600C. Lo realizare de una manera conforme me fui topando con diversos problemas de conexión.

Los parámetros serán los siguientes:

Cliente Debian Linux 7.2.0
Openswan versión 2.6.37
Fortigate 500 y 600C.
Enlace dedicado con IP publica del lado del firewall Fortinet.
Enlace de Internet ADSL Telmex Infinitum con IP dinámica.

El diagrama de red lo presento a continuación.

Diagrama de red.

Diagrama de red.

Tenemos una LAN con red 192.168.1.0/24 que es la red de una pequeña oficina que se necesita conectar a servicios que están en una oficina matriz con red 172.16.30.0/28.

Nombraremos a la red matriz como Iturbide y a la oficina remota como Guerrero.

Oficina Guerrero:

Equipos de la oficina (PC, Laptop, Impresoras): 192.168.10-30/24
Servidor Debian Linux con Openswan: 192.168.1.100.
Router ADSL: 192.168.1.254

Oficina Iturbide:

Equipos de la oficina (PC, Servidores, BD): 172.16.30.2-12/28
Equipo Fortigate 500: 172.16.30.1
IP publica: 200.xxx.xxx.xxx

Creación de la VPN en el equipo Fortigate 500.

Vamos a configurar la VPN en el equipo Fortigate mediante su interfaz web.

IPsec-FG-500-1

Creamos la fase 1.

Name Openswan_p1_Guerrero
Remote Gateway Dialup User
Local Interface external (WAN1)
Mode Main (ID protection)
Authentication Method Preshared Key
Pre-shared Key ConexionPruebas

IPsec-FG-500-2-2

Creamos la fase 2.

Name Openswan_p2_Guerrero
Phase 1 Openswan_p1_Guerrero

IPsec-FG-500-3

Con esto ya tenemos nuestra VPN configurada posteriormente agregaremos un par de detalles.

IPsec-FG-500-4

Creamos la red origen.

Name Red-Oficina-Iturbide
Type Subnet/IP Range
Subnet/IP Range 172.16.30.0/255.255.255.240
Interface port1 (internal)

IPsec-FG-500-6

Creamos la red destino.

Name Red-Oficina-Guerrero
Type Subnet/IP Range
Subnet/IP Range 192.168.1.0/255.255.255.0
Interface external (WAN1)

IPsec-FG-500-5

Vamos a crear la política.

Source Interface/Zone port1 (internal)
Source Address Red-Oficina-Iturbide
Destination Interface/Zone external (WAN1)
Destination Address Red-Oficina-Guerrero
Schedule always
Service ANY
Action IPSEC
VPN Tunnel Openswan_p1_Guerrero

IPsec-FG-500-7

Por el momento eso es todo lo que haremos en el dispositivo fortigate posteriormente realizaremos mas cambios.

Partimos de una instalación básica solamente con el servicio de SSH instalado, por lo cual instalaremos openswan junto con sus dependencias.

Verificamos el núcleo y la versión de nuestro sistema Debian.

root@debian-tester:~# uname -a
Linux debian-tester 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux
root@debian-tester:~# cat /etc/issue.net
Debian GNU/Linux 7

Vamos a buscar los paquetes.

root@debian-tester:~# aptitude search openswan
p   openswan                                                                                - Internet Key Exchange daemon                                                                      
p   openswan-dbg                                                                            - Internet Key Exchange daemon - debugging symbols                                                  
p   openswan-doc                                                                            - Internet Key Exchange daemon - documentation                                                      
p   openswan-modules-dkms                                                                   - Internet Key Exchange daemon - DKMS source                                                        
p   openswan-modules-source                                                                 - Internet Key Exchange daemon - kernel module source

Instalamos la aplicación.

root@debian-tester:~# aptitude install openswan
The following NEW packages will be installed:
  bind9-host{a} ca-certificates{a} geoip-database{a} host{a} libbind9-80{a} libcap2{a} libclass-isa-perl{a} libcurl3{a} libdns88{a} libgeoip1{a} libisc84{a} libisccc80{a} libisccfg82{a} 
  libldap-2.4-2{a} liblwres80{a} librtmp0{a} libsasl2-2{a} libsasl2-modules{a} libssh2-1{a} libswitch-perl{a} libxml2{a} openssl{a} openswan perl{a} perl-modules{a} sgml-base{a} 
  xml-core{a} 
0 packages upgraded, 27 newly installed, 0 to remove and 0 not upgraded.
Need to get 14.8 MB of archives. After unpacking 48.2 MB will be used.
Do you want to continue? [Y/n/?] Y
Get: 1 http://security.debian.org/ wheezy/updates/main libcurl3 amd64 7.26.0-1+wheezy6 [331 kB]
Get: 2 http://ftp.de.debian.org/debian/ wheezy/main libcap2 amd64 1:2.22-1.2 [13.6 kB]
Get: 3 http://ftp.de.debian.org/debian/ wheezy/main libsasl2-2 amd64 2.1.25.dfsg1-6+deb7u1 [120 kB]
.
.
.
Setting up openswan (1:2.6.37-3) ...
ipsec_setup: Starting Openswan IPsec 2.6.37-g955aaafb-dirty...
ipsec_setup: No KLIPS support found while requested, desperately falling back to netkey
ipsec_setup: NETKEY support found. Use protostack=netkey in /etc/ipsec.conf to avoid attempts to use KLIPS. Attempting to continue with NETKEY
Setting up libclass-isa-perl (0.36-3) ...
.
.
.
Updating certificates in /etc/ssl/certs... 158 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.
Processing triggers for sgml-base ...

Verificamos el estado del servicio y por el momento no hay ningún túnel arriba.

root@debian-tester:~# /etc/init.d/ipsec status
IPsec running  - pluto pid: 4606
pluto pid 4606
No tunnels up

Tomando como referencia la documentación de la base de conocimientos de fortinet tenemos la siguiente configuración inicial:

conn office 
 #left side is home
 left=%defaultroute
 #right side is work
 #set right to vpn remote gateway
 right=xxx.xxx.xxx.xxx
 #set rightsubnet to remote network
 rightsubnet=172.20.120.0/24
 keyexchange=ike
 #auth=esp
 #auto=start
 authby=secret
 #specify encryption FortiGate VPN uses
 esp=3des
 #perfect forward secrecy (default yes)
 #pfs=no
 #optionally enable compression
 compress=yes

Crearemos un archivo llamado iturbide.conf dentro del directorio /etc/ipsec.d/ el cual tendrá el siguiente contenido cambiando las opciones adecuándolas a nuestro esquema de red.

root@debian-tester:~# cat /etc/ipsec.d/iturbide.conf
conn iturbide
 #left side is home
 left=%defaultroute
 #right side is work
 #set right to vpn remote gateway
 right=200.xxx.xxx.xxx
 #set rightsubnet to remote network
 rightsubnet=172.16.30.0/28
 keyexchange=ike
 #auth=esp
 #auto=start
 authby=secret
 #specify encryption FortiGate VPN uses
 esp=3des
 #perfect forward secrecy (default yes)
 #pfs=no
 #optionally enable compression
 compress=yes

Al final del archivo /etc/ipsec.secrets colocamos nuestra contraseña de la siguiente manera:

root@debian-tester:~# cat /etc/ipsec.secrets 
# This file holds shared secrets or RSA private keys for inter-Pluto
# authentication.  See ipsec_pluto(8) manpage, and HTML documentation.
 
# RSA private key for this host, authenticating it to any other host
# which knows the public part.  Suitable public keys, for ipsec.conf, DNS,
# or configuration of other implementations, can be extracted conveniently
# with "ipsec showhostkey".
 
# this file is managed with debconf and will contain the automatically created RSA keys
include /var/lib/openswan/ipsec.secrets.inc
 
: PSK "ConexionPruebas"

Reiniciamos el servicio de IPsec.

root@debian-tester:~# /etc/init.d/ipsec restart
ipsec_setup: Stopping Openswan IPsec...
ipsec_setup: Starting Openswan IPsec 2.6.37-g955aaafb-dirty...
ipsec_setup: No KLIPS support found while requested, desperately falling back to netkey
ipsec_setup: NETKEY support found. Use protostack=netkey in /etc/ipsec.conf to avoid attempts to use KLIPS. Attempting to continue with NETKEY

Si tenemos un error como el siguiente se debe a que existe un espacio o tabulador en la linea donde esta la opción de include /etc/ipsec.d/*.conf.

root@debian-tester:~# /etc/init.d/ipsec restart
failed to start openswan IKE daemon - the following error occured:
can not load config '/etc/ipsec.conf': /etc/ipsec.conf:41: syntax error, unexpected INCLUDE [include]
root@debian-tester:~# cat /etc/ipsec.conf | grep include
        include /etc/ipsec.d/*.conf
root@debian-tester:~# cat /etc/ipsec.conf | grep include
include /etc/ipsec.d/*.conf

Ahora iniciamos la VPN.

root@debian-tester:~# ipsec auto --add iturbide
root@debian-tester:~# ipsec auto --up iturbide
022 "iturbide": We cannot identify ourselves with either end of this connection.

Tenemos un error que es asociado a que no puede identificar nuestra correcta puerta de enlace, así que empezaremos a modificar un poco la configuración en la que nos basamos, cambiamos el parametro left y agregar leftsubnet que sera la red origen y lefnexthop que es nuestro puerta de enlace.

root@debian-tester:~# vim /etc/ipsec.d/iturbide.conf
left=192.168.1.100
leftsubnet=192.168.1.0/24
leftnexthop=192.168.1.254

Reiniciamos de nuevo.

root@debian-tester:~# /etc/init.d/ipsec restart

Volvemos a iniciar la conexión.

root@debian-tester:~# ipsec auto --add iturbide
root@debian-tester:~# ipsec auto --up iturbide
104 "iturbide" #1: STATE_MAIN_I1: initiate
003 "iturbide" #1: received Vendor ID payload [RFC 3947] method set to=109 
003 "iturbide" #1: received Vendor ID payload [Dead Peer Detection]
106 "iturbide" #1: STATE_MAIN_I2: sent MI2, expecting MR2
003 "iturbide" #1: NAT-Traversal: Result using RFC 3947 (NAT-Traversal): i am NATed
108 "iturbide" #1: STATE_MAIN_I3: sent MI3, expecting MR3
004 "iturbide" #1: STATE_MAIN_I4: ISAKMP SA established {auth=OAKLEY_PRESHARED_KEY cipher=oakley_3des_cbc_192 prf=oakley_sha group=modp1536}
117 "iturbide" #2: STATE_QUICK_I1: initiate
003 "iturbide" #2: ignoring informational payload, type IPSEC_RESPONDER_LIFETIME msgid=0cd368e8
004 "iturbide" #2: STATE_QUICK_I2: sent QI2, IPsec SA established tunnel mode {ESP=>0x10c29931 <0xfb540947 xfrm=3DES_0-HMAC_MD5 NATOA=none NATD=none DPD=none}

Logramos iniciar la conexión satisfactoriamente vamos a verificar el estado de la VPN.

root@debian-tester:~# ipsec auto --status
000 using kernel interface: netkey
000 interface lo/lo ::1
000 interface lo/lo 127.0.0.1
000 interface lo/lo 127.0.0.1
000 interface eth0/eth0 192.168.1.100
000 interface eth0/eth0 192.168.1.100
000 %myid = (none)
000 debug none
.
.
.
000  
000 "iturbide": 192.168.1.0/24===192.168.1.100<192.168.1.100>[+S=C]---192.168.1.254...200.xxx.xxx.xxx<200.xxx.xxx.xxx>[+S=C]===172.16.30.0/28; erouted; eroute owner: #2
000 "iturbide":     myip=unset; hisip=unset;
000 "iturbide":   ike_life: 3600s; ipsec_life: 28800s; rekey_margin: 540s; rekey_fuzz: 100%; keyingtries: 0
000 "iturbide":   policy: PSK+ENCRYPT+COMPRESS+TUNNEL+PFS+UP+IKEv2ALLOW+SAREFTRACK+lKOD+rKOD; prio: 24,28; interface: eth0; 
000 "iturbide":   newest ISAKMP SA: #1; newest IPsec SA: #2; 
000 "iturbide":   IKE algorithm newest: 3DES_CBC_192-SHA1-MODP1536
000 "iturbide":   ESP algorithms wanted: 3DES(3)_000-MD5(1)_000, 3DES(3)_000-SHA1(2)_000; flags=-strict
000 "iturbide":   ESP algorithms loaded: 3DES(3)_192-MD5(1)_128, 3DES(3)_192-SHA1(2)_160
000 "iturbide":   ESP algorithm newest: 3DES_000-HMAC_MD5; pfsgroup=<Phase1>
000  
000 #2: "iturbide":4500 STATE_QUICK_I2 (sent QI2, IPsec SA established); EVENT_SA_REPLACE in 27276s; newest IPSEC; eroute owner; isakmp#1; idle; import:admin initiate
000 #2: "iturbide" esp.10c29931@200.xxx.xxx.xxx esp.fb540947@192.168.1.100 tun.0@200.xxx.xxx.xxx tun.0@192.168.1.100 ref=0 refhim=4294901761
000 #1: "iturbide":4500 STATE_MAIN_I4 (ISAKMP SA established); EVENT_SA_REPLACE in 2471s; newest ISAKMP; lastdpd=1s(seq in:0 out:0); idle; import:admin initiate
000

El servicio ya nos indica que tenemos un túnel conectado.

root@debian-tester:~# /etc/init.d/ipsec status
IPsec running  - pluto pid: 9186
pluto pid 9186
1 tunnels up
some eroutes exist

Y tenemos trafico desde nuestro servidor al equipo fortigate.

root@debian-tester:~# ping 172.16.30.1
PING 172.16.30.1 (172.16.30.1) 56(84) bytes of data.
64 bytes from 172.16.30.1: icmp_req=1 ttl=255 time=26.6 ms
64 bytes from 172.16.30.1: icmp_req=2 ttl=255 time=25.8 ms
64 bytes from 172.16.30.1: icmp_req=3 ttl=255 time=27.7 ms
64 bytes from 172.16.30.1: icmp_req=4 ttl=255 time=28.6 ms
64 bytes from 172.16.30.1: icmp_req=5 ttl=255 time=31.9 ms
^C
--- 172.16.30.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4008ms
rtt min/avg/max/mdev = 25.895/28.167/31.957/2.112 ms

De igual manera el equipo fortigate puede alcanzar a nuestro servidor Openswan.

FGT5002803033352 # execute ping 192.168.1.100
PING 192.168.1.100 (192.168.1.100): 56 data bytes
64 bytes from 192.168.1.100: icmp_seq=0 ttl=64 time=28.7 ms
64 bytes from 192.168.1.100: icmp_seq=1 ttl=64 time=28.5 ms
64 bytes from 192.168.1.100: icmp_seq=2 ttl=64 time=26.9 ms
64 bytes from 192.168.1.100: icmp_seq=3 ttl=64 time=27.8 ms
64 bytes from 192.168.1.100: icmp_seq=4 ttl=64 time=25.8 ms
 
--- 192.168.1.100 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 25.8/27.5/28.7 ms

Ahora eso es del lado de nuestro servidor si queremos algo de debug en el fortigate podemos acceder mediante consola o SSH a estos equipos y ejecutar el modo de diagnostico para este tipo de conexión de la siguiente manera.

FGT5002803033352 # diagnose debug console 
FGT5002803033352 # diagnose debug enable
FGT5002803033352 # diagnose debug application ike -1

Justamente cuando iniciamos la conexión en nuestro servidor aquí empezó a registrar todo el proceso de conexión.

FGT5002803033352 # 0: comes 201.124.89.127:49198->200.xxx.xxx.xxx:500,ifindex=3....                                                                                                               
0: exchange=Identity Protection id=0334eedbdbcc0a40/0000000000000000 len=592                                                                                                                    
0:Openswan_p1_Guerrero: new connection.                                                                                                                                                         
0:Openswan_p1_Guerrero:44: responder: main mode get 1st message...
0:Openswan_p1_Guerrero:44: unknown VID (12): OEfdpoplS^}i
0:Openswan_p1_Guerrero:44: VID DPD
0:Openswan_p1_Guerrero:44: DPD negotiated
0:Openswan_p1_Guerrero:44: VID RFC 3947
0:Openswan_p1_Guerrero:44: VID draft-ietf-ipsec-nat-t-ike-03
0:Openswan_p1_Guerrero:44: VID draft-ietf-ipsec-nat-t-ike-02
 
0:Openswan_p1_Guerrero:44: VID draft-ietf-ipsec-nat-t-ike-02
0:Openswan_p1_Guerrero:44: VID draft-ietf-ipsec-nat-t-ike-00
0:Openswan_p1_Guerrero:44: negotiation result
0:Openswan_p1_Guerrero:44: proposal id = 1:
0:Openswan_p1_Guerrero:44:   protocol id = ISAKMP:
0:Openswan_p1_Guerrero:44:      trans_id = KEY_IKE.
0:Openswan_p1_Guerrero:44:      encapsulation = IKE/none
0:Openswan_p1_Guerrero:44:         type=OAKLEY_ENCRYPT_ALG, val=3DES_CBC.
0:Openswan_p1_Guerrero:44:         type=OAKLEY_HASH_ALG, val=SHA.
0:Openswan_p1_Guerrero:44:         type=AUTH_METHOD, val=PRESHARED_KEY.
0:Openswan_p1_Guerrero:44:         type=OAKLEY_GROUP, val=1536.
0:Openswan_p1_Guerrero:44: ISKAMP SA lifetime=28800
0:Openswan_p1_Guerrero:44: selected NAT-T version: RFC 3947
0:Openswan_p1_Guerrero:44: cookie 0334eedbdbcc0a40/2980a6536ba23616
0:Openswan_p1_Guerrero:44: sent IKE msg (ident_r1send): 200.xxx.xxx.xxx:500->201.124.89.127:49198, len=120
Openswan_p1_Guerrero: Responder: sent 201.124.89.127 main mode message #1 (OK)
0: comes 201.124.89.127:49198->200.xxx.xxx.xxx:500,ifindex=3....
0: exchange=Identity Protection id=0334eedbdbcc0a40/2980a6536ba23616 len=292
0: found Openswan_p1_Guerrero 200.xxx.xxx.xxx 3 -> 201.124.89.127:49198
0:Openswan_p1_Guerrero:44: responder:main mode get 2nd message...
0:Openswan_p1_Guerrero:44: NAT detected: PEER
0:Openswan_p1_Guerrero:44: sent IKE msg (ident_r2send): 200.xxx.xxx.xxx:500->201.124.89.127:49198, len=292
0:Openswan_p1_Guerrero:44: put connection to natt list...ip=201.124.89.127.
Openswan_p1_Guerrero: Responder: sent 201.124.89.127 main mode message #2 (OK)
0: comes 201.124.89.127:49199->200.xxx.xxx.xxx:4500,ifindex=3....
0: exchange=Identity Protection id=0334eedbdbcc0a40/2980a6536ba23616 len=68
0:Openswan_p1_Guerrero:44: responder: main mode get 3rd message...
0:Openswan_p1_Guerrero:44: PSK authentication succeeded
0:Openswan_p1_Guerrero:44: authentication OK
0:Openswan_p1_Guerrero: adding new dialup tunnel for 201.124.89.127:49199
0:Openswan_p1_Guerrero_0: added new dialup tunnel for 201.124.89.127:49199
Openswan_p1_Guerrero_0: Responder: parsed 201.124.89.127 main mode message #3 (DONE)
0:Openswan_p1_Guerrero_0:44: confirmed nat-t RFC 3947
0:Openswan_p1_Guerrero_0:44: sent IKE msg (ident_r3send): 200.xxx.xxx.xxx:4500->201.124.89.127:49199, len=68
Openswan_p1_Guerrero_0: Responder: sent 201.124.89.127 main mode message #3 (DONE)
0:Openswan_p1_Guerrero_0:44: ISAKMP SA established
0:Openswan_p1_Guerrero_0:44: no pending Quick-Mode negotiations
0: comes 201.124.89.127:49199->200.xxx.xxx.xxx:4500,ifindex=3....
0: exchange=Quick id=0334eedbdbcc0a40/2980a6536ba23616:e868d30c len=412
0: found Openswan_p1_Guerrero_0 200.xxx.xxx.xxx 3 -> 201.124.89.127:49199
0:Openswan_p1_Guerrero_0:44::852: responder received first quick-mode message
0:Openswan_p1_Guerrero_0:44:852: peer proposal is: peer:192.168.1.0-192.168.1.255, me:172.16.30.0-172.16.30.15, ports=0/0, protocol=0/0
0:Openswan_p1_Guerrero_0:44:852: trying Openswan_p2_Guerrero
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: matched phase2
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: dialup
0:Openswan_p1_Guerrero_0:44: cmpsaprop: natt flags 0x5, pr1 encmode 3, pr2 encmode 1
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: negotiation result
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: proposal id = 0:
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852:   protocol id = IPSEC_ESP:
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852:      trans_id = ESP_3DES
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852:      encapsulation = ENCAPSULATION_MODE_TUNNEL
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852:         type = AUTH_ALG, val=MD5
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: set pfs=1536
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: encapsulation = 1
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: using udp tunnel mode.
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: add RESPONDER-LIFETIME 1800 seconds
0:Openswan_p1_Guerrero_0:44: confirmed nat-t RFC 3947
0:Openswan_p1_Guerrero_0:44: sent IKE msg (quick_r1send): 200.xxx.xxx.xxx:4500->201.124.89.127:49199, len=388
Openswan_p1_Guerrero_0: Responder: sent 201.124.89.127 quick mode message #1 (OK)
0: comes 201.124.89.127:49199->200.xxx.xxx.xxx:4500,ifindex=3....
0: exchange=Quick id=0334eedbdbcc0a40/2980a6536ba23616:e868d30c len=52
0: found Openswan_p1_Guerrero_0 200.xxx.xxx.xxx 3 -> 201.124.89.127:49199
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: set sa life soft seconds=1790.
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: set sa life hard seconds=1800.
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: add SA #src=1 #dst=1
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: src 0 7 0.0.0.0-255.255.255.255
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: dst 0 7 192.168.1.0-192.168.1.255
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: installed SA: SPIs=10c29931/fb540947
0:Openswan_p1_Guerrero_0:44:Openswan_p2_Guerrero:852: sending SNMP tunnel UP trap
Openswan_p1_Guerrero_0: Responder: parsed 201.124.89.127 quick mode message #2 (DONE)
0:Openswan_p1_Guerrero_0: link is idle 3 200.xxx.xxx.xxx->201.124.89.127:49199 dpd=2 seqno=1
shrank heap by 122880 bytes
0:Openswan_p1_Guerrero_0: link is idle 3 200.xxx.xxx.xxx->201.124.89.127:49199 dpd=2 seqno=2
0:Openswan_p1_Guerrero_0: send DPD probe, seqno 2
0:Openswan_p1_Guerrero_0:44: confirmed nat-t RFC 3947

0:Openswan_p1_Guerrero_0:44: sent IKE msg (R-U-THERE): 200.xxx.xxx.xxx:4500->201.124.89.127:49199, len=92
0: comes 201.124.89.127:49199->200.xxx.xxx.xxx:4500,ifindex=3….
0: exchange=Informational id=0334eedbdbcc0a40/2980a6536ba23616:23aa5bf4 len=84
0: found Openswan_p1_Guerrero_0 200.xxx.xxx.xxx 3 -> 201.124.89.127:49199
0:Openswan_p1_Guerrero_0:44: notify msg received: R-U-THERE-ACK
0:Openswan_p1_Guerrero_0: link is idle 3 200.xxx.xxx.xxx->201.124.89.127:49199 dpd=2 seqno=3
0:Openswan_p1_Guerrero_0: send DPD probe, seqno 3
0:Openswan_p1_Guerrero_0:44: confirmed nat-t RFC 3947

0:Openswan_p1_Guerrero_0:44: sent IKE msg (R-U-THERE): 200.xxx.xxx.xxx:4500->201.124.89.127:49199, len=92
0: comes 201.124.89.127:49199->200.xxx.xxx.xxx:4500,ifindex=3....
0: exchange=Informational id=0334eedbdbcc0a40/2980a6536ba23616:d2b2b49e len=84
0: found Openswan_p1_Guerrero_0 200.xxx.xxx.xxx 3 -> 201.124.89.127:49199
0:Openswan_p1_Guerrero_0:44: notify msg received: R-U-THERE-ACK
0:Openswan_p1_Guerrero_0: link is idle 3 200.xxx.xxx.xxx->201.124.89.127:49199 dpd=2 seqno=4
0:Openswan_p1_Guerrero_0: send DPD probe, seqno 4
0:Openswan_p1_Guerrero_0:44: confirmed nat-t RFC 3947

En la interfaz web podemos visualizar el estado de la VPN.

IPsec-FG-500-8

Si queremos detener la VPN bastara lo siguiente.

root@debian-tester:~# ipsec auto --down iturbide
root@debian-tester:~# ipsec auto --delete iturbide

Para iniciar la VPN automáticamente cada vez que el servicio de IPsec se ejecute necesitamos habilitar en nuestro archivo de configuración el siguiente parámetro.

#auto=start

El archivo final de nuestra configuración queda de la siguiente manera:

root@debian-tester:~# cat /etc/ipsec.d/iturbide.conf
conn iturbide
 #left side is home
 left=192.168.1.100
 leftsubnet=192.168.1.0/24
 leftnexthop=192.168.1.254
 #right side is work
 #set right to vpn remote gateway
 right=200.xxx.xxx.xxx
 #set rightsubnet to remote network
 rightsubnet=172.16.30.0/28
 keyexchange=ike
 #auth=esp
 auto=start
 authby=secret
 #specify encryption FortiGate VPN uses
 esp=3des
 #perfect forward secrecy (default yes)
 #pfs=no
 #optionally enable compression
 compress=yes

Referencias para saber más:

Using an Openswan client with FortiGate VPN

http://www.iphouse.com/blog/2012/01/20/debugging-ipsec-vpns-in-fortigate/

http://wildengineer.ilcavolfiore.it/?p=454

http://listarc.com/showthread.php?1179640-Openswan+to+Fortigate+60B+-+VPN

http://www.slashroot.in/linux-ipsec-site-site-vpnvirtual-private-network-configuration-using-openswan

http://www.linuxparatodos.net/portal/staticpages/index.php?page=openswan-diseno-vpn

One Comment

  1. Reply
    Wildeng January 13, 2014

    Cool stuff, thanks for using my blog as a reference!

    Cheers!

Leave a Reply

Your email address will not be published. Required fields are marked *