Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Tunel IPSec no se mantiene levantado

    Scheduled Pinned Locked Moved Español
    18 Posts 4 Posters 3.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      gts
      last edited by

      Hola a todos,
      tengo un pequeño problema. He configurado en varios equipos PFsense un túnel IPSec contra otros equipos (Cisco) y contra otros PFSense. Al ponerlos en marcha todo funciona correctamente pero pasado el tiempo configurado en las diferentes fases (24h) se desconecta y tengo todos los días que volver a levantarlos. Cuando están levantados funciona correctamente.
      Alguien me puede ayudar con este problema, como poder tener los túneles levantados sin que se caigan constantemente al cumplir el "time" programado.
      Me es un poco urgente solucionarlo.

      Un saludo.

      1 Reply Last reply Reply Quote 0
      • D
        donizt
        last edited by

        Yo tengo un problema "parecido" entre varios pfsense, por las pruebas que he realizado en mi caso el problema viene cuando tengo vpns ipsec y openvpn. En mi caso todavia sigo investigando que es lo que pasa para que la phase 2 de una de las vpn ipsec se quede muerta cada 4 o 5 horas.

        Si te urge arreglarlo reinicia el servicio ipsec con cron

        1 Reply Last reply Reply Quote 0
        • G
          gts
          last edited by

          Hola,
          si ese es mi caso, en la phase 2 es la que se queda muerta y hay que volver a levantarlo manualmente de nuevo. He puesto la casilla de un ping continuo pero aun así tampoco lo evita.

          1 Reply Last reply Reply Quote 0
          • J
            javcasta
            last edited by

            Hola

            Doc de pfSense sobre problemas y su resolución en IPsec:

            https://doc.pfsense.org/index.php/IPsec_Troubleshooting

            Si el problema fuese que el servicio IPsec cae, con el paquete watchdog, se le pueden añadir servicios para ser monitorizados y si se encuentras caidos los levante watchdog

            Salu2

            Javier Castañón
            Técnico de comunicaciones, soporte y sistemas.

            Mi web: https://javcasta.com/

            Soporte scripting/pfSense https://javcasta.com/soporte/

            1 Reply Last reply Reply Quote 0
            • D
              donizt
              last edited by

              La cosa es mas "jodida" el watchdog ni se entera por que el servicio esta levantado y funciona (los otros tuneles van bien)

              No estoy todavía en disposición de dar mas información por que sigo analizando los log. Y me esta costando encontrar el fallo.

              En mi caso lo único que he descubierto es el el open-vpn tiene algo que ver. Si paro los server open-vpn el ipsec no cae, pero las redes ipsec y openvpn no tienen absolutamente nada que ver.

              En los log y en la configuración no he encontrado todavía nada que explique por que pasa eso, tengo todavía que recabar mucha mas información antes.

              En mi caso tengo la sospecha de que las rutas que se propagan por ospf entre los tuneles open-vpn puedan hacer algún conflicto con el ipsec. Pero por ahora no es mas que una sospecha.

              Lo he comentado por si ha gts le podia ayudar a acotar el problema.

              Cuando encuentre de donde viene el fallo lo posteare. Un saludo

              1 Reply Last reply Reply Quote 0
              • J
                javcasta
                last edited by

                Hola.

                Sí, watchdog sólo vigila los servicios que se le añadan a monitorizar, no el estado de los túneles de IPSec (up/down).

                Esperamos tu solución de "convivencia" entre OpenVPN e IPSec.

                Por cierto el subforo de IPSec, por si buscando ahí, encuentras alguna solución:

                https://forum.pfsense.org/index.php?board=16.0

                Salu2

                Javier Castañón
                Técnico de comunicaciones, soporte y sistemas.

                Mi web: https://javcasta.com/

                Soporte scripting/pfSense https://javcasta.com/soporte/

                1 Reply Last reply Reply Quote 0
                • J
                  javcasta
                  last edited by

                  Hola

                  Probad este script y me contais si va bien (no tengo ahora un tunel IPSec para probar)

                  El script se ejecutaria creando un cron (cada x horas) con la orden:

                  /bin/sh /path/MonitorIPSEC.sh
                  

                  Donde path es la carpeta o rutas de carpetas, donde alojeis el script
                  Y lo que haces es: monitoriza que si no hay ningún tunel IPSec levantado, entonces los levanta

                  El código de MonIPSEC.sh

                  
                  #!/bin/sh
                  # ref # https://forum.pfsense.org/index.php?topic=112463.0
                  #########################
                  # by @javcasta - 2016 https://javcasta.com/
                  # MonitorIPSEC.sh
                  # Create cron with: /bin/sh /path/MonitorIPSEC.sh ;every x hours
                  #########################
                  
                  # Script to be executed via cron every x hours
                  # Script para ser ejecutado vía cron cada x horas
                  
                  # Monitors that if there is no IPSec tunnel raised, then it raises them
                  # monitoriza que si no hay ningún tunel IPSec levantado, entonces los levanta
                  
                  ISDOWN=0
                  #If none conexion then UP conexions - Si no hay ninguna conexión, levantar conexiones
                  ISDOWN=$(/usr/local/sbin/ipsec status | grep -c none)
                  if [ $ISDOWN -eq 1 ]; then
                  	for CONEXION in $(/usr/local/sbin/ipsec status | egrep "con[123456789]" | cut -d"{" -f1 | sort -u); do
                  		/usr/local/sbin/ipsec up ${CONEXION}
                  	done
                  fi
                  
                  

                  Salu2

                  Javier Castañón
                  Técnico de comunicaciones, soporte y sistemas.

                  Mi web: https://javcasta.com/

                  Soporte scripting/pfSense https://javcasta.com/soporte/

                  1 Reply Last reply Reply Quote 0
                  • D
                    donizt
                    last edited by

                    Funciona de PM. :-) ahora queda saber por que falla.

                    1 Reply Last reply Reply Quote 0
                    • D
                      donizt
                      last edited by

                      Retiro no me funciona :-( he esperado al al fallo para ejecutar el script no va

                      Esto es el ipsec status funcionando

                      /usr/local/sbin/ipsec status
                      Shunted Connections:
                        bypasslan:  192.168.200.0/24|/0 === 192.168.200.0/24|/0 PASS
                      Routed Connections:
                          con2003{2615}:  ROUTED, TUNNEL, reqid 93
                          con2003{2615}:  192.168.199.0/24|/0 === 192.168.240.0/24|/0
                          con2002{2614}:  ROUTED, TUNNEL, reqid 92
                          con2002{2614}:  192.168.200.0/24|/0 === 192.168.241.0/24|/0
                          con2001{2613}:  ROUTED, TUNNEL, reqid 91
                          con2001{2613}:  192.168.200.0/24|/0 === 192.168.240.0/24|/0
                          con2000{2612}:  ROUTED, TUNNEL, reqid 90
                          con2000{2612}:  192.168.201.0/24|/0 === 192.168.240.0/24|/0
                          con4000{2611}:  ROUTED, TUNNEL, reqid 104
                          con4000{2611}:  192.168.200.0/24|/0 === 192.168.229.0/24|/0
                          con1000{2610}:  ROUTED, TUNNEL, reqid 7
                          con1000{2610}:  192.168.200.0/24|/0 === 192.168.230.0/24|/0
                      Security Associations (3 up, 0 connecting):
                          con1000[56]: ESTABLISHED 2 hours ago, 192.168.1.10[oficina_madrid]…AA.BB.CC.DD[oscar_rozas]
                          con1000{2587}:  INSTALLED, TUNNEL, reqid 7, ESP in UDP SPIs: c03d24d0_i c0ed72df_o
                          con1000{2587}:  192.168.200.0/24|/0 === 192.168.230.0/24|/0
                        ->  con4000[58]: ESTABLISHED 3 seconds ago, 192.168.1.10[oficina_madrid]…AA.BB.CC.DD[oscar_villanueva]
                        ->  con4000{2618}:  INSTALLED, TUNNEL, reqid 104, ESP in UDP SPIs: cfcXXXXb_i c7XXXX1_o
                        ->  con4000{2618}:  192.168.200.0/24|/0 === 192.168.229.0/24|/0
                          con2000[57]: ESTABLISHED 92 minutes ago, 192.168.1.10[oficina_madrid]…AA.BB.CC.DD[oficina_nueva]
                          con2001{2595}:  INSTALLED, TUNNEL, reqid 91, ESP in UDP SPIs: c5XXXX_i cd8XXXX_o
                          con2001{2595}:  192.168.200.0/24|/0 === 192.168.240.0/24|/0
                          con2000{2596}:  INSTALLED, TUNNEL, reqid 90, ESP in UDP SPIs: c4eXXXX9_i cXXXXf5_o
                          con2000{2596}:  192.168.201.0/24|/0 === 192.168.240.0/24|/0
                          con2002{2604}:  INSTALLED, TUNNEL, reqid 92, ESP in UDP SPIs: ccfXXXX_i c14XXXX4_o
                          con2002{2604}:  192.168.200.0/24|/0 === 192.168.241.0/24|/0
                          con2003{2605}:  INSTALLED, TUNNEL, reqid 93, ESP in UDP SPIs: c6eXXXX2a_i c6XXXX6_o
                          con2003{2605}:  192.168.199.0/24|/0 === 192.168.240.0/24|/0

                      Y esto cuando falla:

                      /usr/local/sbin/ipsec status
                      Shunted Connections:
                        bypasslan:  192.168.200.0/24|/0 === 192.168.200.0/24|/0 PASS
                      Routed Connections:
                          con2003{2615}:  ROUTED, TUNNEL, reqid 93
                          con2003{2615}:  192.168.199.0/24|/0 === 192.168.240.0/24|/0
                          con2002{2614}:  ROUTED, TUNNEL, reqid 92
                          con2002{2614}:  192.168.200.0/24|/0 === 192.168.241.0/24|/0
                          con2001{2613}:  ROUTED, TUNNEL, reqid 91
                          con2001{2613}:  192.168.200.0/24|/0 === 192.168.240.0/24|/0
                          con2000{2612}:  ROUTED, TUNNEL, reqid 90
                          con2000{2612}:  192.168.201.0/24|/0 === 192.168.240.0/24|/0
                          con4000{2611}:  ROUTED, TUNNEL, reqid 104
                          con4000{2611}:  192.168.200.0/24|/0 === 192.168.229.0/24|/0
                          con1000{2610}:  ROUTED, TUNNEL, reqid 7
                          con1000{2610}:  192.168.200.0/24|/0 === 192.168.230.0/24|/0
                      Security Associations (3 up, 0 connecting):
                          -> con4000[55]: ESTABLISHED 7 hours ago, 192.168.1.10[oficina_madrid]…AA.BB.CC.DD[oscar_villanueva]
                          con1000[56]: ESTABLISHED 2 hours ago, 192.168.1.10[oficina_madrid]…AA.BB.CC.DD[oscar_rozas]
                          con1000{2587}:  INSTALLED, TUNNEL, reqid 7, ESP in UDP SPIs: c03XXXX0_i c0XXXXdf_o
                          con1000{2587}:  192.168.200.0/24|/0 === 192.168.230.0/24|/0
                          con2000[57]: ESTABLISHED 91 minutes ago, 192.168.1.10[oficina_madrid]…AA.BB.CC.DD[oficina_nueva]
                          con2001{2595}:  INSTALLED, TUNNEL, reqid 91, ESP in UDP SPIs: c5XXXXf7_i cd8XXXX9c_o
                          con2001{2595}:  192.168.200.0/24|/0 === 192.168.240.0/24|/0
                          con2000{2596}:  INSTALLED, TUNNEL, reqid 90, ESP in UDP SPIs: c4eXXXX_i cde1XXXX_o
                          con2000{2596}:  192.168.201.0/24|/0 === 192.168.240.0/24|/0
                          con2002{2604}:  INSTALLED, TUNNEL, reqid 92, ESP in UDP SPIs: ccfXXXX_i XXXX_o
                          con2002{2604}:  192.168.200.0/24|/0 === 192.168.241.0/24|/0
                          con2003{2605}:  INSTALLED, TUNNEL, reqid 93, ESP in UDP SPIs: c6eXXXX_i XXXX9e6_o
                          con2003{2605}:  192.168.199.0/24|/0 === 192.168.240.0/24|/0

                      1 Reply Last reply Reply Quote 0
                      • J
                        javcasta
                        last edited by

                        Hola

                        Cuando funciona, el status muestra:

                        Security Associations (3 up, 0 connecting):

                        Cuando falla, status muestra:

                        Security Associations (3 up, 0 connecting):

                        Es decir , lo mismo :). 3 conexiones levantadas y 0 conectando

                        Por lo que veo usas 3 túneles, que pfSense denomina:

                        con1000
                        con2000
                        con4000

                        ¿Cual de los 3 falla, todos, uno, 2, …, la fase 2 sólo, por lo que veo en logs los túneles están UP? O.o

                        Ahora no tengo túneles IPSec para hacer pruebas, en unos días me llega un box nuevo de pfSense y tengo que reestructurar mi red, pero implementaré IPSec y haré pruebas.

                        Otra cosa que podrias intentar, es crear un cron cada x horas (o a ejecutar cuando menos tráfico vía tunel haya) que reinicie IPSec

                        
                        #!/bin/sh
                        # by @javcasta - 2016
                        # restart ipsec
                        /usr/local/sbin/pfSsh.php playback svc stop ipsec
                        /usr/local/sbin/pfSsh.php playback svc start ipsec
                        sleep 90 # delay de 90sg para dar tiempo a IPSec a reiniciarse
                        
                        ISDOWN=0
                        #If none conexion then UP conexions - Si no hay ninguna conexión, levantar conexiones
                        ISDOWN=$(/usr/local/sbin/ipsec status | grep -c none)
                        if [ $ISDOWN -eq 1 ]; then
                        
                        	for CONEXION in $(/usr/local/sbin/ipsec status | egrep "con[123456789]" | cut -d"{" -f1 | sort -u); do
                        		/usr/local/sbin/ipsec up ${CONEXION}
                        	done
                        fi
                        
                        

                        Pero lo ideal seria saber si caen todos los túneles, todo el servicio , uno, etc … hmmm, sin hacer pruebas reales estoy dando palos de ciego. Te vuelvo a remitir al doc https://doc.pfsense.org/index.php/IPsec_Troubleshooting

                        Salu2

                        Javier Castañón
                        Técnico de comunicaciones, soporte y sistemas.

                        Mi web: https://javcasta.com/

                        Soporte scripting/pfSense https://javcasta.com/soporte/

                        1 Reply Last reply Reply Quote 0
                        • G
                          gts
                          last edited by

                          Hola,
                          En esto soy nuevo. Me podéis indicar como poder subir ese  script o algún manual de como hacerlo.
                          También quería comentar que la versión de PFsense que uso es la 2.2.1-RELEASE, es la misma que os pasa a vosotros o tenéis alguna mas avanzada?
                          No se si hubiese alguna versión mas nueva que pueda corregir el problema.

                          Un saludo.

                          1 Reply Last reply Reply Quote 0
                          • J
                            javcasta
                            last edited by

                            Hola

                            En firewalls prefiero usar la ver más actualizada, para pfSense: 2.3.2_1 = 2.3.2-RELEASE-p1

                            Para crear un fichero en pfSense, puedes usar en Diagnostics > edit file (si no existe lo crea) copias y pegas el contenido y lo guardas con nombre y extension, lo puedes guardar en la raiz ( en / ) o en una carpeta. Para crear la carpeta /scripts , desde Diagnostics > command prompt > Execute shell command > mkdir /scripts , y luego puedes subir el fichero con Upload File o como citaba antes con copy/paste en edit file.

                            Pero, para mi  lo mejor es trabajar directamente con la shell (sshd enable) y usar el comando para copiar en remoto a local y de local a remoto: scp

                            Salu2

                            Javier Castañón
                            Técnico de comunicaciones, soporte y sistemas.

                            Mi web: https://javcasta.com/

                            Soporte scripting/pfSense https://javcasta.com/soporte/

                            1 Reply Last reply Reply Quote 0
                            • G
                              gts
                              last edited by

                              Hola,
                              Gracias por la información que me has facilitado.
                              Me puedes dar la sintaxis del comando CRONTAB para programar la tarea cada cierto tiempo todos los dias del año.
                              Se puede meter el comando vía web o hay que hacerlo vía shell.

                              Un saludo.

                              1 Reply Last reply Reply Quote 0
                              • J
                                javcasta
                                last edited by

                                Hola

                                @gts:

                                Hola,
                                Gracias por la información que me has facilitado.
                                Me puedes dar la sintaxis del comando CRONTAB para programar la tarea cada cierto tiempo todos los dias del año.
                                Se puede meter el comando vía web o hay que hacerlo vía shell.

                                Un saludo.

                                En pfSense para programar una tarea: Usa el paquete Cron (instalalo si no lo tienes instalado) y define los cron vía GUI. En el menú: Services > Cron

                                Nota: En un cron en pfSense cualquier comando o llamada a un script se debe indicar el path completo

                                Salu2

                                Javier Castañón
                                Técnico de comunicaciones, soporte y sistemas.

                                Mi web: https://javcasta.com/

                                Soporte scripting/pfSense https://javcasta.com/soporte/

                                1 Reply Last reply Reply Quote 0
                                • G
                                  gts
                                  last edited by

                                  Hola,
                                  lo hemos subido pero nos ha tirado el túnel y al levantarlo manualmente había un problema, el túnel estaba funcionando pero no podíamos llegar desde una red a la otra. por dentro del túnel no dejaba trabajar.

                                  Otra cosa, al actualizar la versión, este problema se corrige lo habéis comprobado. Voy a actualizar la versión por si funcionase mejor.
                                  Para hacerlo, la versión de donde la bajo y lo puedo realizar en remoto?

                                  Un saludo.

                                  1 Reply Last reply Reply Quote 0
                                  • J
                                    javcasta
                                    last edited by

                                    Hola

                                    @gts:

                                    Hola,
                                    lo hemos subido pero nos ha tirado el túnel y al levantarlo manualmente había un problema, el túnel estaba funcionando pero no podíamos llegar desde una red a la otra. por dentro del túnel no dejaba trabajar.

                                    Otra cosa, al actualizar la versión, este problema se corrige lo habéis comprobado. Voy a actualizar la versión por si funcionase mejor.
                                    Para hacerlo, la versión de donde la bajo y lo puedo realizar en remoto?

                                    Un saludo.

                                    https://doc.pfsense.org/index.php/Upgrade_Guide

                                    Salu2

                                    Javier Castañón
                                    Técnico de comunicaciones, soporte y sistemas.

                                    Mi web: https://javcasta.com/

                                    Soporte scripting/pfSense https://javcasta.com/soporte/

                                    1 Reply Last reply Reply Quote 0
                                    • gersonofstoneG
                                      gersonofstone
                                      last edited by

                                      Hola

                                      Tienes habilitado el

                                      Dead Peer Detection - en Phase 1?

                                      Papu!! :V

                                      1 Reply Last reply Reply Quote 0
                                      • G
                                        gts
                                        last edited by

                                        Hola,
                                        si, lo tengo activado con la configuración siguiente:

                                        10 seg
                                        5 retries

                                        un saludo.

                                        1 Reply Last reply Reply Quote 0
                                        • First post
                                          Last post
                                        Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.