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,
      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.