Issabel ISO (Latest): Download Here
Cloud Services: User Portal - Quick Guide
News: Telegram channel
Become a Patron!
  • General
  • Beware: New Elastix 2.5 / 4.0 FreePBX 2.11.0.26 exploit..

hgmnetwork Hola hgmnetwork,

Gracias por toda tu ayuda. Desafortunadamente para mí creo que la misma llegó muy tarde puesto que todos mis PBX Elastix afectados con el problema amanecieron hoy nuevamente con el freePBX dañado y el famoso magnito.php presente. Tal parece que ya es un script que se ha metido y que desde adentro está fastidiando porque revisando ssl_access.log potenciales atacantes sólo reciben error 401 y 403 de HTTP

Me va a tocar exhaustivamente buscar scripts PHP con fechas recientes y borrarlos ya que esto para mí prueba de que es algo que ya está metido y no importa lo que haga, me van a seguir fastidiando la vida.

Otra Consulta: Pueden cohexistir el módulo de firewall de Elastix / Issabel con CSF Firewall y con el anti-hacker? No quisiera tener una ensalada de productos para proteger al sistema contra intrusos y luego entre ellos se fastidien y resulte en problemas en el PBX o resultados no deseados en la protección.

Gracias de nuevo por todo,

Paul

    markmarco16 Hola Mark,

    Los ataques que he reportado no han sido contra Issabel 4 sino Elastix 2.5 y Elastix 4.0. Déjame saber si igual te interesa ver los logs o no por favor.

    Nicolás indicó que el fork del FreePBX con el que Issabel viene es el 2.11.0.43 que ya no tiene esta vulnerabilidad y Elastix como has de saber llegó sólo hasta el 2.11.0.26

    Estoy considerando migrar dos de estos servidores a Issabel 4 pero quisiera saber si con sólo cambiar los repositorios y correr "yum update" el Elastix 2.5 y 4.0 se convierten en Issabel 2.5 y 4.0 respectivamente..

    asternic Nicolás,

    Definitivamente creo que las reglas no se están aplicando bien porque en /var/log/messages veo intentos de conexión al servidor TFTP que está bloqueado para todos menos mis IPs así como el mismísimo http o https.

    EL resultado de correr iptables -vnL en uno de mis Elastix atacados es:

    Chain INPUT (policy ACCEPT 148K packets, 107M bytes)
    pkts bytes target prot opt in out source destination

    18 840 f2b-vsftpd tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 21
    11378 885K f2b-ssh tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 45622
    26353 2717K f2b-https tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443
    6060 3205K f2b-asterisk udp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 5060

    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target prot opt in out source destination

    Chain OUTPUT (policy ACCEPT 112K packets, 21M bytes)
    pkts bytes target prot opt in out source destination

    Chain f2b-asterisk (1 references)
    pkts bytes target prot opt in out source destination

    12 8924 REJECT all -- 146.0.32.94 0.0.0.0/0 reject-with icmp-port-unreachable
    1229 786K REJECT all -- 154.16.126.40 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 95.154.217.168 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 95.110.232.224 0.0.0.0/0 reject-with icmp-port-unreachable
    28 21757 REJECT all -- 92.114.32.74 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 89.163.146.72 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 89.163.146.243 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 89.163.144.189 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 87.106.16.49 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 82.165.97.126 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 62.210.181.99 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 62.210.181.161 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 62.210.143.74 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 51.15.71.197 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 51.15.146.174 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 5.152.215.58 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 5.104.111.244 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 5.104.105.102 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 45.61.34.247 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 45.243.58.167 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 37.8.37.27 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 35.184.220.231 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 31.6.23.109 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 23.239.70.162 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 23.239.69.227 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 23.239.66.123 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 213.202.233.77 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 213.202.233.200 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 212.83.168.81 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 212.47.247.54 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 212.129.47.132 0.0.0.0/0 reject-with icmp-port-unreachable
    29 16511 REJECT all -- 209.126.117.58 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 209.126.116.166 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 195.154.214.162 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 185.111.228.246 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 185.111.228.158 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 163.172.4.70 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 163.172.121.136 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 139.196.15.87 0.0.0.0/0 reject-with icmp-port-unreachable
    0 0 REJECT all -- 104.143.31.104 0.0.0.0/0 reject-with icmp-port-unreachable
    4762 2371K RETURN all -- 0.0.0.0/0 0.0.0.0/0

    Chain f2b-https (1 references)
    pkts bytes target prot opt in out source destination

    0 0 REJECT all -- 95.141.35.112 0.0.0.0/0 reject-with icmp-port-unreachable
    26353 2717K RETURN all -- 0.0.0.0/0 0.0.0.0/0

    Chain f2b-ssh (1 references)
    pkts bytes target prot opt in out source destination

    11378 885K RETURN all -- 0.0.0.0/0 0.0.0.0/0

    Chain f2b-vsftpd (1 references)
    pkts bytes target prot opt in out source destination

    18 840 RETURN all -- 0.0.0.0/0 0.0.0.0/0

    striderec Te recomendaria instalar el webmin + modulo csf (Firewall) y hay bloqueas cualquier ip que no sea del pais xx asi pones solo las que sepas que son mas viables.

    Aparte puedes bloquear si hacen x intentos o peticiones

    Suele ser muy efectivo yo lo tengo instalado en los elastix 2.5 ( no llegue a poner ningun 4 en producción)

    Es bastante facil de instalar.

    yum install webmin

    una vez instalado te debe ir a la ip_servidor:10000

    el user y pass es el root
    y luego el modulo de csf puedes ver como implementarlo aqui https://www.bitronictech.net/knowledgebase/10088/Installing-CSF-on-Webmin.html

    espero te ayude.

      hgmnetwork Hola hgmNetwork,

      Entiendo tus sugerencias a la perfección pero aún quisiera saber si esto no va a inteferir con anti hacker y el firewall de Elastix (reglas de iptables) que ya existen en el sistema.. no quisiera que se pisen la manguera entre bomberos como decimos en mi país...

      Ya tengo instalado webmin pero antes de proceder con CSF quisiera me pudieras contestar esa pregunta sobre "conflicto de intereses" entre estos módulos de seguridad.

      Se me ocurre a mi desactivar el firewall de Elastix, inactivar anti-hacker (o eliminar el módulo) y de allí instalar CSF y configurarlo.

      Gracias de antemano!

        Lo primero es que añadas tu ip a la lista blanca para que sea como sea no te bloquees a ti mismo :D eso es muy importante, esto tanto en el de elastix como en el csf y en el fail2ban.

        Yo suelo mantener el propio de elastix activado y a la vez el csf lo uso para bloquear ips de rusia, china y no recuerdo cual mas, y tambien para determinados puertos y flood

        lo que si me despiste de indicarte que debes en el firewall de elastix activar y permitir el acceso al puerto 10.000 si no no te dejara entrar al webmin :D porque el firewall del propio elastix te bloqueara ese puerto.

        con el CFS incluso tiene opciones que te ayudaran a mejorar la seguridad con muy pocos pasos, por ejemplo yo suelo cambiar el puerto ssh tambien y poner en el ssh 1 solo intento si se falla cierra conexion si yo pongo mal la clave de root tengo que probar de nuevo pero si es un ataque lo complica bastante mas. si lo cambias tambien recuerda abrir el puerto que uses en el firewall de elastix y poner tu ip en la lista blanca para que a ti nunca te bloquee.

          hgmnetwork Entiendo lo de no bloquearme mi propia IP y lo de cambiar el puerto SSH. De hecho hace años ya no uso el puerto 22 sino uno alto. También tengo abierto el puerto 10000 ya que si he usado webmin desde hace años pero jamás el CSF. Cómo integro GeoIP al CSF?

          Muchas gracias de antemano.

            Esta todo al instalarlo una de las opciones que tiene es bloquesr todos mos puertos o determinados puertos soll debes poner las siglas del pais mira en google hay mucha ayuda

              striderec Fijate que las reglas de iptables solo listan fail2ban, el firewall de Elastix no esta activo. Con respecto a repetidas intrusiones, pueden haber habilitado un back shell con lo que ya no hace falta atacar via http a scripts vulnerables.

              Con respecto a compatibilidades, con Issabel 4 no usarás más el módulo antihacker (fail2ban), pues ya está integrado. No es un addon, es base del producto. Con respecto al firewall, geolocalización estará incluído de base también, no hace instalar otros administradores de firewall (si bien un usuario experto está en todo su derecho de usar las herramientas que más le gusten!).

              Restricción .htaccess no vamos a llegar a hacerlo me parece para la semana próxima. Seguramente en un update posterior. Veré si llegamos pero está complicado pues al ser un release canidate lo que ya tenemos, no deberíamos agregar funcionalidad nueva.

              Con respecto a módulos adicionales de apache, si existen .rpm para centos 7 se pueden agregar facilmente. Si no existen y alguien quiere contribuir a empaquetarlos, estupendo.. se pueden probar y agregar via yum y listo.

              striderec Hola, yum update así como así no va a funcionar lamentablemente, cambia la version base de centos y no hay upgrade posible via yum. Lo que tendrás que hacer para migrar un 2.5 es un backup completo, luego instalar Issabel 4, subir el backup via scp o via web en el modulo backup/restore. El módulo detecta si es un backup de elastix y te permite "migrar" que es una opción especial para migrar de sistemas legacy.

              El "yum install issabel" quizás funcione para pasar del beta 2 al final, pero también aquí hay problemas pues hemos renombrado TODOS los paquetes y esto genera un problema con los menús del admin (que se borran al desinstalarse paquetes elastix). Se pueden reinstalar los rpm de Issabel para que se regeneren los menús, pero no es muy elegante que digamos. En estos casos también se puede hacer backup completo, instalar a nuevo y restaurar/migrar.

              Geolocalización está presente de base, no hace falta que uses scripts adicionales. En el firewall agregas una regla y en protocolo eliges "Geoip" y luego seleccionas países individuales o continentes enteros y REJECT o similar.

              Es decir, se instala Issabel 4, ni bien instalas ingresas a Seguridad, Firewall, y lo habilitas, si quieres le agregas una regla de geoip. Puedes ir a fail2ban/admin y habilitarlo también. Las tablas geoip se actualizan semanalmente.

              Fail2ban está configurado por defecto de modo que verifica distintos servicios, apache, ssh, postfix y asterisk y pueden seleccionarse cuales habilitar o no, por cuanto tiempo bloquear, etc. También esta la opción de ver las ip bloqueadas y desbloquearlas si así lo desean.

              Dejo el link (secreto) :) del ultimo iso generado hace unos minutos:

              http://iso.issabel.org/issabel4-test-2017-06-16.iso

              El miércoles anunciaremos el oficial y subiremos el iso a sourceforge.

                asternic Nicolás...

                1) ¿Puedo con toda seguridad crear un backup de toda una central PBX Elastix 2.5 (incluyendo Voicemails y grabaciones de llamadas, es decir TODO) y después de instalar un Issabel 4 con el último ISO migrar con confianza todo?

                2) ¿Qué hay con migraciones de servidores con Elastix 4? Puedo hacer un backup completo de Elastix 4.0 y aplicarlo a una instalación nueva de paquete de Issabel 4 sin problemas?

                3) Issabel 4 usa CentOS 7 y como sabes Elastix 2.5 usa CentOS 5.11 que ya está descontinuado. Asumo que el proceso de migración de centrales Elastix 2.5 a Issabel 4.0 toman en cuenta ese detalle, ¿correcto?

                4) Si instalo este ISO nuevo del link que es Release candidate y el Miércoles sale el oficial.. necesito reinstalar todo desde cero o el yum update se encargará de convertir esa versión final de prueba en la oficial de Issabel?

                Gracias y quedo a la espera de tus respuestas. Voy a instalar el nuevo ISO y tratar de hacer unas migraciones de prueba a ver cómo me va...

                asternic Nicolás, ¿cómo determino si tengo un back shell y cómo lo puedo eliminar? No quisiera migrar los datos de una de mis PBX Elastix afectadas con estos scripts o backshells a una instalación nueva de Issabel 4 y "exportar" o "migrar" ese script malicioso también...

                striderec Hola. estuve probando la migracion desde Elastix 2.5 y 4 a Issabel 4 test 2017-06-16 usando el modulo de Backup/Restore. El unico "inconveniente" que tiene por el momento que soporta uploads de backups solo hasta 600MB. Con lo cual habria que ver si las grabaciones de llamada toca migrarlas con otra herramienta.
                El resto todo OK.
                Si puedes probarlo y dejar tus comentarios seria de gran ayuda.

                  striderec La migración no restaura archivos html/php por lo que si tienes un back shell o similar, no va a 'restaurarse' en el equipo de destino. Como puedes darte cuenta si tienes uno? Es dificil decirlo, tienes que mirar si no tienes algún .php que te sobre en algún lugar dentro del web root. Muchas veces se crean directorios 'ocultos' con prefijo "." para que no los veas. Si lo encuentras, simplemente borra ese archivo o directorio.

                  De todas maneras, si pones protección .htaccess auth basic o similar en el web root y no lo cancelas en subdirectorios, entonces incluso esos scripts no serán accesibles a menos que el hacker sepa el usuario y clave que configuraste.

                  No dan los tiempos para armar un módulo para proteger directorios con .htaccess, de todos modos no es muy complicado hacerlo aunque puede ser una molestia para el usuario tener que autenticar dos veces.

                    striderec 1) Issabel es open source, como tal no te da garantía de ningún tipo. Hicimos todos los esfuerzos necesarios para tratar de minimizar incidencias o problemas, pero siempre pueden ocurrir. Migrar sistemas nunca es sencillo. Así que lo de "toda seguridad" te la debemos. Puedo comentarte que hemos hecho pruebas restaurando backups de elastix 2.5 y 4, con voicemails, faxes, extensions, etc.. y la migración fue correcta.

                    La base del sistema operativo da igual, la restauración del sistema es sobre configuraciones, no sobre programas o paquetes específicos. Esto quiere decir que vas a migrar configuraciones de tu PBX, pero no los addons que tenías en el otro equipo. Si tienes addons o cualquier otro agregado, tendrás que migrarlo manualmente. Con respecto a addons, los que existían con Elastix no serán compatibles con Issabel, requerirán de al menos un reempaquetado para que se puedan instalar, y en varios casos cambio de código por versiones de php más recientes y demás. Por lo tanto, deberás hacer pruebas con esas herramientas/addons antes de lanzarte a una migración si es que dependes de las mismas.

                    El iso que pasé es un release candidate, como tal no conviene usarlo en producción, no es que pase nada serio, solo que en el final quizás haya algun que otro parche que NO vas a obtener via yum hasta tanto se saque el siguiente release al oficial.. si tienes ahora paquetes 4.0.0-1 tendrás que esperar a que se actualicen al 4.0.0-2. En estos 5 días que faltan seguramente habrá algún que otro pequeño fix y/o agregado.

                    La idea es que con tus pruebas nos puedas decir si encontraste algún bug o problema, y ver si es posible resolverlo antes del release oficial (si es que se puede verificar el problema).

                    Gracias!

                    asternic Hola Nicolás,

                    Entiendo todo lo que dices.

                    En este instante estoy instalando Issabel 4 con el ISO que pusiste y luego de eso subiré backups de Elastix a ver qué pasa. Tengo un par de backups de 6 GB porque hay archivos con grabaciones. Espero que no haya problemas.

                    Otras cosa que he notado:

                    Cuando se instala Issabel 4 con un servidor virtualizado con WMWare el botón del mouse no funciona. Puedo deslizar el puntero entre las opciones de instalación pero cuando hago click no hace nada y debo entonces usar la tecla TAB, las direccionales y la barra espaciadora para seleccionar y cambiar lo que me interesa. Con Elastix 2.5 y 4.0 (que usa CentOS 7) no pasa eso, puedo hacer cambios y moverme de través de los menús perfectamente haciendo click con el mouse.

                      asternic Mis primeras observaciones:

                      1) En Fail2Ban cuando pones "Enable Fail2Ban" el mensaje en la parte superior dice que lo ha hecho pero el botón sigue diciendo "Enable Fail2Ban" como que no lo hubiera hecho. No se si es algo sólo visual y si lo activó o si en realidad las reglas de Fail2Ban no están activas. Adicionalmente no veo opción para decirle a Fail2Ban a dónde enviar alertas en caso de intrusiones. El módulo anti hacker de Elastix te permitía cambiar una plantilla con el text del e-mail que querías recibir y a qué e-mail enviar la información de las IPs bloqueadas y a qué servicio trataron de atacar... no veo esa opción en esta configuración de fail2ban y me parece vital que se te envíe un correo con las alertas de los intrusos bloqueados.

                      2) Al importar el backup de uno de mis servidores con Elastix 2.5 a Issabel 4 para realizar una prueba a pesar de que el sistema me indicó que la migración fué exitosa pues no fué así y recibo este error:

                      Reload failed because retrieve_conf encountered an error: 255
                      click here for more info
                      1 error(s) occurred, you should view the notification log on the dashboard or main screen to check for more details.

                      Los detalles al hacer click son:

                      exit: 255
                      found language dir it for speeddial, not installed on system, skipping
                      found language dir en_GB for speeddial, not installed on system, skipping
                      PHP Fatal error: Call to undefined function core_users_list() in /var/www/html/admin/modules/voicemail/functions.inc.php on line 181

                      asternic Con todo respeto no comparto la implementación de .htaccess Auth Basic por defecto en Issabel, esto obedece a una particularidad de implementación (exposición a red WAN).

                      Podría más bien tomarse como referencia en una Guia "Aseguramiento de Issabel v4 para WAN"

                      Voy a probar migrar el backup de mis centrales 2.5 a Issabel 4 y compartire los resultados

                      striderec Si el botón sigue diciendo "enable" es que el servicio en realidad no se ha levantado, en ese caso deberás probar en consola y mirar las tablas creadas:

                      iptables -vnL

                      Si tienes fail2ban activo, verás montones de cadenas con nombre f2b-xxxxx (una para cada jaula creada).

                      Con respecto a la migración, el error que ves es el llamado a una función en el core de issabelPBX. (antes freePBX), y la verdad que me parece muy raro ya que la migración no importa tu freePBX anterior, sino solo sus configuraciones. En ese caso tendríamos que hacer pruebas con el archivo de backup que has usado para ver si podemos reproducir el inconveniente.. El backup de que versión de Elastix es? Habría que ver como puedes contactar para ver si puedes compartir un backup para que podamos hacer las pruebas de migracion con el mismo.

                      Saludos,

                      markmarco16 No creo que la protección .htaccess deba hacerse por defecto. La idea era dar la posibilidad de que opcionalmente quien quiera pueda habilitar protección .htaccess via GUI, para facilitarlo a quienes lo requieren y le tengan miedo a la línea de comandos, ya que no es para nada complicado hacerlo desde consola.