Cursos Asterisk en México

Ataques locales FreePbx

Colapsar

Anuncio

Colapsar
No hay anuncio todavía.
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Ataques locales FreePbx

    Saludos amigos espero que se encuentren bien, acudo a ver si alguien me pueda ayudar con este problema

    Tengo una central asterisk con FreePbx estaba funcionando de forma local sin problemas, el dueño de la empresa tubo la necesidad de implementar extensiones remotas, para ello el ISP proporcionó una Ip pública y esta fue configurada en un router con los respectivos nateos, yo le sugerí que se coloque un servidor Linux antes de la central para que actue de firewall para proteger pero por falta de presupuesto el cliente no lo implemento y otra persona realizó la instalación de este router mostrando al mundo la central.

    Para darle un poco de seguridad a la central instale y configuré fail2ban activando el baneo para accesos no registrados por ssh y registros sip en el puerto 5060, también coloque un par de scripts que leen los logs de asterisk y encuentra fallos de autenticación saca la ip y al banea por tiempo indefinido, a los dos dias después de realizar la instalación de la central con acceso al mundo pincharon esta central, busque en los logs y como tal no pincharon la central sino pincharon una extensión, esta extensión era local y no tenia acceso a realizar llamadas internacionales, es más el código de marcado para llamadas internacionales no esta creada en la central, lo que encontré es esto

    [2016-06-10 05:48:46] VERBOSE[28087][C-00001c08] pbx.c: -- Executing [00970597802233@from-internal:1] Macro("SIP/310-0000153f", "user-callerid,LIMIT,EXTERNAL,") in new stack

    Después de este hackeo se realizó la implementación del servidor Linux como firewall, he estado monitoreando la central y me encuentro con estos mensajes

    [2016-06-11 11:47:40] NOTICE[2975][C-00000001]: chan_sip.c:25751 handle_request_invite: Failed to authenticate device 1299<sip:1299@XX.XX.XX.XX>;tag=70e28bff
    [2016-06-11 11:47:52] NOTICE[2975][C-00000002]: chan_sip.c:25751 handle_request_invite: Failed to authenticate device 902<sip:902@XX.XX.XX.XX>;tag=6c0d5810

    Donde XX.XX.XX.XX es la ip pública del servidor, es como que el mismo servidor esta haciendo auto ataques lo cuál me parece un poco ilógico.

    Podrían por favor guiarme que es loq ue esta pasando la central esta hackeada o son intentos de hackeo.

    Gracias a todos
    Editado por última vez por chelinux; https://asteriskmx.org/foros/member/2043-chelinux en 06-11-2016, 03:05 PM.

  • #2
    Hola, lo que debes hacer es convencer a tu cliente de que cierre el acceso a los puertos SIP e instalar un servicio de VPN. Openvpn es fácil de instalar y cuenta con clientes para todas las plataformas.

    Lo que comentas de un autoataque se debe a que la versión de asterisk que usa tu versión de FreePBX no contiene el parche que muestra la información completa en el log, solo te muestra la información del contacto, es decir tu la ves:

    Código:
     Failed to authenticate device "502" <sip:502@216.224.194.132>;tag=3309269768c2
    y con el parche-el cual tiene años- deberías ver:

    Código:
     Failed to authenticate device "502" <sip:502@216.224.164.118>;tag=3309269768c2 from 209.126.122.27
    Esto tampoco es tan necesario ya que si lees el log de security encontrarás las IPs remotas. Asi que puedes usar fail2ban para leer ese log y bloquear esas IPs.

    El tener este tipo de ataques es muy normal incluso deberás encontrar ataques de tipo INVITE cuando actives el sip debug.

    Comentario


    • #3
      Gracias Navismo uso esta version de asterisk asterisk 11.21.2

      Ahora con relación al parche podrías decirme como lo instalo

      Comentario


      • #4
        Para aplicar el parche necesitas tener las fuentes de asterisk ya que debes editar el archivo sip.c sustituyendo:

        Código:
         ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From"));
        Por

        Código:
         ast_log(LOG_NOTICE, "Failed to authenticate device %s from %s\n", sip_get_header(req, "From"), ast_sockaddr_stringify_addr(addr));
        Una vez hecho eso debes recompilar, según entiendo FreePBX usa rpms así que debes verificar que módulos necesitas si vas a recompilar. La solución más facil es usar una VPN ya que es un server de producción o bien activa el log de security ahi veras la IP remota de manera más sencilla sin recompilar nada ya que puedes crear regex como:

        Código:
         "asterisk-Security1":
                r'SECURITY.* SecurityEvent="InvalidPassword".*RemoteAddress=".*/.*/{HOST_IP}/.*".*',
        
            "asterisk-Security2":
                r'SECURITY.* SecurityEvent="FailedACL".*RemoteAddress=".*/.*/{HOST_IP}/.*".*',
        
            "asterisk-Security3":
                r'SECURITY.* SecurityEvent="InvalidAccountID".*RemoteAddress=".*/.*/{HOST_IP}/.*".*',
        
            "asterisk-Security4":
                r'SECURITY.* SecurityEvent="ChallengeResponseFailed".*RemoteAddress=".*/.*/{HOST_IP}/.*".*',
        Editado por última vez por navaismo; https://asteriskmx.org/foros/member/1218-navaismo en 06-11-2016, 08:05 PM.

        Comentario


        • #5
          Gracias Navismo para activar ese log seria este proceso
          1.- editar vi /etc/asterisk/logger_logfiles_additional.conf
          2.- Agregar security_log => security
          3.- Reiniciar asterisk

          Gracias nuevamente

          Comentario


          • #6
            En realidad con un "logger reload" basta. No necesitas reinciar todo el servicio de asterisk,

            Comentario


            • #7
              Gracias en el asunto dentro de security log debería salir algo como esto Severity=Informational pero en vez de Informational que debería decir?

              Comentario

              Principales Usuarios Activos

              Colapsar

              No hay usuarios activos superiores.
              Trabajando...
              X