Asegurando Elastix.pdf

download Asegurando Elastix.pdf

of 38

Transcript of Asegurando Elastix.pdf

  • 5/23/2018 Asegurando Elastix.pdf

    1/38

    1

  • 5/23/2018 Asegurando Elastix.pdf

    2/38

    2

    Asegurando ElastixPrimera Edicin Agosto de 2011

    Samuel Cornu

  • 5/23/2018 Asegurando Elastix.pdf

    3/38

    3

    [PAGINA DEJADA INTENCIONALMENTE EN BLANCO]

  • 5/23/2018 Asegurando Elastix.pdf

    4/38

    4

    Contenido

    AGRADECIMIENTOS .................. .................................... .......................................... ....... .... 5

    LICENCIAMIENTO .............................................................................................................. 5

    INTRODUCCIN ................................................................................................................ 6

    SERVICIOS ............................................................................................................... ........ 7

    RUN LEVELS...................................................................................................................... 9

    ASEGURANDO SSH ...................... ....... ................................................................. ............. 12

    Grupo Wheel ..................................................................... ........................................... 12

    Uso del sudo................................................................................................................. 14

    FIREWALL ........................................................................................................................ 17

    NETFILTER-IPTABLES ....................................................................................................... 17

    ASEGURANDO HTTPS ...... ............. .................................... .................................... ............. 21

    Fail2ban .......................................................................................................................... 24

    Instalacin y Configuracin ............................................................................................ 24

    fail2ban y SSH .............................................................................................................. 24

    Fail2ban y Asterisk ....................................................................................................... 25

    Fail2ban y apache2 ....................................................................................................... 26

    PORTSENTRY .................................... ............................................................................... 28

    Configuracin ............................................................................................................... 28

    Portsentry - Modo clsico ............................................................................................... 28

    Portsentry - Modo avanzado ........................................................................................... 29

    Portsentry - Otras opciones de configuracin .................................................................... 29

    CHKROOTKIT ................................................................................................................... 31

    TCPWRAPPER ................................................................................................................... 32

    PRCTICAS RECOMENDADAS ............................................................................................. 33

    SIETE PASOS PARA MEJORAR LA SEGURIDAD SIP EN ASTERISK PUBLICADOS POR DIGIUM .... 34

    Backdoor en FreePBX .................................................................................................... 35

    NOTAS FINALES ............................................................................................................... 37

    FUENTES ......................................................................................................................... 38

  • 5/23/2018 Asegurando Elastix.pdf

    5/38

    5

    AGRADECIMIENTOS

    Principalmente quiero agradecer a mi familia (esposa e hijos) que me apoya cuando mequedo probando cosas los fines de semana o cuando me quedo toda la noche haciendoruido.

    A Juan Manuel Garca Carral que me introdujo en el paranoico mundo de la seguridad yme prest algo de tiempo para que pueda escribir este manual.

    Rafael Ibez por el apoyo institucional para este proyecto.

    A la gente de PaloSanto Solutions por corregir y publicar este manual.

    LICENCIAMIENTO

    Copyright 2011 Samuel Cornu

    Este documento est permitido de copiar, distribuir y/o modificar bajo los trminos de lalicencia GNU Free Documentation License Versin 1.3; sin Secciones Invariantes

    (Invariant Sections), Textos de Cubierta Frontal (Front-Cover Texts), y sin Textos deCubierta Posterior (Back-Cover Texts).

    El autor puede en cualquier momento decidir actualizar la licencia de la presente obra auna versin ms reciente de la GNU Free Documentation License.

  • 5/23/2018 Asegurando Elastix.pdf

    6/38

    6

    INTRODUCCIN

    En el mundo actual, donde las comunicaciones son cada da ms importantes, losservidores de comunicaciones, tanto Elastix como cualquier otro, se encuentrancomprometidos.

    El avance constante de la telefona y la VOIP hace que da a da aumenten lasinstalaciones de servidores de comunicaciones. Paralelo a este avance van las tcnicasde ataques a estos servidores. Las herramientas actuales hacen que cualquier personacon un mnimo de conocimiento pueda realizar un dao grande en ellos.

    Las empresas en busca de reducir costos utilizando los avances en comunicaciones,

    muchas veces no toman las precauciones de seguridad necesarias. Puede ser pordesconocimiento o simplemente por optar por la empresa o persona inadecuada.

    Estos errores se traducen en grandes costos en comunicaciones y que culminangeneralmente en el retiro de servidores con distribuciones de cdigo abierto porservicios propietarios de grandes Empresas como Cisco o Avaya. Esto tambin setraduce en desprestigio para el software Libre.

    No se trata de una gua definitiva de seguridad sino un buen punto de partida, ya queconstantemente aparecen nuevas vulnerabilidades. El administrador del servidor decomunicaciones tendr que estar al da con los boletines de seguridad y

    constantemente mirando los logs del sistema.Existen muchos productos tendientes a utilizar las bondades de la telefona IP, paraeste ejemplo se va a utilizar Asterisk, creado por Mark Spencer, y mantenido por laempresa Digium.

    Uno de los productos ms difundidos en el mundo de la telefona IP es Elastix.

    Elastix es un software de cdigo abierto para el establecimiento comunicaciones unificadas.

    Pensando en este concepto el objetivo de Elastix es el de incorporar en una nica solucin

    todos los medios y alternativas de comunicacin existentes en el mbito empresarial.

    Las siguientes especificaciones de seguridad son el fruto de la lectura de manuales,

    participacin en foros y experiencias personales.

  • 5/23/2018 Asegurando Elastix.pdf

    7/38

    7

    SERVICIOS

    Lo primero que hay que tener en cuenta a la hora de administrar un servidor, es tenercontrol de los servicios que estn corriendo en el mismo.

    Al momento de la instalacin algunos servicios son instalados por defecto y realmenteno sern necesarios en el uso cotidiano del servidor de comunicaciones.

    A continuacin los servicios que corren al inicio en un servidor Elastix luego de unainstalacin.

    # chkconfig --list

    Acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    asterisk 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

    auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    cyrus-imapd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

    dahdi 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    elastix-firstboot 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    elastix-updaterd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    haldaemon 0:off 1:off 2:off 3:on 4:on 5:on 6:offhttpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

    hylafax 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    iaxmodem 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    ip6tables 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    isdn 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    kudzu 0:off 1:off 2:off 3:on 4:on 5:on 6:off

    lm_sensors 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    lvm2-monitor 0:off 1:on 2:on 3:on 4:on 5:on 6:off

    mcstrans 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    mdmonitor 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    messagebus 0:off 1:off 2:off 3:on 4:on 5:on 6:off

    mysqld 0:off 1:off 2:off 3:on 4:on 5:on 6:off

    netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off

    network 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    nfslock 0:off 1:off 2:off 3:on 4:on 5:on 6:off

  • 5/23/2018 Asegurando Elastix.pdf

    8/38

    8

    ntpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

    openfire 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    portmap 0:off 1:off 2:off 3:on 4:on 5:on 6:offpostfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    rawdevices 0:off 1:off 2:off 3:on 4:on 5:on 6:off

    rpcgssd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

    rpcidmapd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

    saslauthd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

    sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    wanrouter 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    xfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off

    xinetd based services:

    tftp: on

  • 5/23/2018 Asegurando Elastix.pdf

    9/38

    9

    RUN LEVELS

    Antes de configurar los servicios del sistema, debemos conocer los niveles de ejecucino runlevels de un sistema Linux. Un run level es un modo de ejecucin, condeterminadas caractersticas.

    Los niveles de ejecucin o run levels existentes son

    0 Halt1 Single-user mode2 Multi-user without network support.3 Full multi-user mode).4 Not used (user-definable).5 Full multi-user mode (with an X-based login screen).6 Reboot

    Cuando el sistema se encuentra en modo texto, se est ejecutando el modo 3. Si por elcontrario usa un sistema de ventanas, ejecuta el modo 5. Estos dos run levels correnservicios diferentes, ya que el modo 5 necesita al menos los servicios necesarios paraque la interfaz grafica funcione en el sistema. Este documento abarcara solo losservicios que son ejecutados en el run level 3, ya queel sistema Elastix se encuentra enmodo texto, es decir en ese nivel.

    Ahora se debe analizar los servicios necesarios para el servidor de comunicaciones.

    Uno de los servicios que se puede deshabilitar, si es que no se est usando esip6tables.

    Esta tarea se realiza ejecutando la siguiente accin:

    chkconfig level 345 ip6tables off

    Otros servicios a deshabilitar son:

    KUDZU

    Se encarga de detectar y configurar el hardware nuevo conectado al equipo. Serecomienda desactivar este servicio y ejecutarlo cuando sea necesario. Para realizaresta tarea se debe ejecutar la siguiente accin:

    chkconfig --level 345 kudzu off

  • 5/23/2018 Asegurando Elastix.pdf

    10/38

    10

    ISDN

    Servicio utilizado para conexin a Internet. Si no dispone de un modem de este tipo,

    debe deshabilitar el servicio ejecutando la siguiente accin:chkconfig --level 2345 isdn of

    NETFS

    Monta sistema de archivos en red como NFS, Samba, entre otros. Al momento del iniciodel sistema.

    Para desactivar este servicio ejecutamos la siguiente accin:

    chkconfig --level 345 netfs off

    NFSLOCK

    Bloquea los archivos que se encuentran compartidos en la red a travs de NFS. Si noutiliza NFS para acceder a unidades compartidas puede deshabilitar este servicio.

    Para desactivar este servicio ejecutamos la siguiente accin:

    chkconfig level 345 nfslock off

    PORTMAP

    Es un Servicio complementario al NFS (Network File System) y NIS (Autenticacin). Sino se hace uso de NFS, el servicio debe estar desactivado.

    Para desactivar este servicio ejecutamos la siguiente accin:

    chkconfig --level 345 portmap off

    RESTODECOND

    Se usa monitorizar y restaurar file context para SELinux. Puede deshabilitarlo con:

    chkconfig --level 345 restodecond off

    PCGSSD / RPCIDMAPD

    Servicios utilizados por NFS, si usted no utiliza este protocolo, debe deshabilitarlo.

    Para desactivar este servicio ejecutamos la siguiente accin:

    chkconfig level 345 pcgssd off

    chkconfig level 345 rpcidmapd off

  • 5/23/2018 Asegurando Elastix.pdf

    11/38

    11

    WANROUTER

    Es el driver para las tarjetas Sangoma, si no utiliza una en el servidor de

    comunicaciones es recomendable desactivarlo. Para desactivar este servicio ejecutamosla siguiente accin:

    Chkconfig level 345 wanrouter off

    XINETD

    A travs de xinetd se puede hacer uso de funciones especiales, tales como el tftp. En elcaso de ser vulnerado puede dar un riesgo a nivel seguridad. Si no va a utilizar elservicio de tftp puede deshabilitarlo ejecutando la siguiente accin:

    chkconfig level 345 xinetd off

    Hasta ahora slo se deshabilitaron los servicios al arranque, pero los mismos an siguencorriendo. Se pueden parar todos los servicios con:

    service kudzu stop

    service isdn stop

    service netfs stop

    service nfslock stop

    service portmap stop

    service restodecond stop

    service pcgssd stop

    service rpcidmapd stop

    service wanrouter stop

    service xinetd stop

    De esta manera slo han quedado los servicios necesarios para el buen funcionamientode un servidor de comunicaciones integradas, y resta asegurar a los mismos.

  • 5/23/2018 Asegurando Elastix.pdf

    12/38

    12

    ASEGURANDO SSH

    SSH(Secure Shell) es el nombre de un protocolo y del programa que lo implementa, ysirve para acceder a mquinas remotas a travs de una red. Permite manejar porcompleto la computadora mediante un intrprete de comandos.

    Antes de explicar cmo agregar seguridad al Secure Shell se explicarn algunas polticasde usuario que luego sern utilizadas para asegurar SSH.

    Grupo WheelEl uso del grupo wheel para usuarios superusuarios es una tradicin en los Unixestilo BSD, y que ha sido adoptada en otros sistemas operativos Unix-like. No es unaobligacin hacerlo, pero es una de las tantas formas en las cuales puede mejorarse laseguridad de un sistema Linux.

    El programa su permite cambiar la identidad de un usuario a otro, generalmente seutiliza para convertirse en superusuario. Esto es sumamente peligroso, por ello, esconveniente, regular el acceso a un programa como este.

    En Linux para realizar esta tarea se puede utilizar PAM (Pluggable AuthenticationModules" para Linux), es una suite de libreras compartidas que permiten al

    administrador local del sistema escoger cmo autentifican a los usuarios y lasaplicaciones.

    Para ello hay que editar el archivo /etc/pam.d/su en el cual se encuentran lascondiciones de autenticacin para emplear el comando

    #vim /etc/pam.d/su

    #%PAM-1.0

    Auth sufficient pam_rootok.so

    # Uncomment the following line to implicitly trust users in the "wheel" group.

    #auth sufficient pam_wheel.so trust use_uid

    # Uncomment the following line to require a user to be in the "wheel" group.

    #auth required pam_wheel.so use_uid

    auth include system-auth

    account sufficient pam_succeed_if.so uid = 0 use_uid quiet

    account include system-auth

    password include system-auth

  • 5/23/2018 Asegurando Elastix.pdf

    13/38

    13

    session include system-auth

    session optional pam_xauth.so

    Se debe descomentar la siguiente lnea:

    auth required pam_wheel.so use_uid

    Tal como dice el comentario que precede esa lnea al descomentar la misma se requiereser del grupo wheel para poder utilizar el comando su

    Si quita el comentario a la siguiente lnea implica confianza en los usuarios del grupoWheel:

    auth sufficient pam_wheel.so trust use_uid

    Le brindara a cualquier usuario del grupo Wheel la posibilidad de cambiar asuperusuario sin la necesidad de introducir password. Por supuesto que esta opcin esinaceptable desde el punto de vista de la seguridad del sistema. Por lo tantonicamente es necesario descomentar la lnea:

    auth required pam_wheel.so use_uid

    Para archivo quede de la siguiente manera:

    #cat /etc/pam.d/su

    #%PAM-1.0

    auth sufficient pam_rootok.so

    # Uncomment the following line to implicitly trust users in the "wheel" group.

    #auth sufficient pam_wheel.so trust use_uid

    # Uncomment the following line to require a user to be in the "wheel" group.

    auth required pam_wheel.so use_uid

    auth include system-auth

    account sufficient pam_succeed_if.so uid = 0 use_uid quiet

    account include system-auth

    password include system-auth

    session include system-auth

    session optional pam_xauth.so

  • 5/23/2018 Asegurando Elastix.pdf

    14/38

    14

    Ahora simplemente se debe crear un usuario y asignarlo al grupo Wheel

    adduser -G wheel -m -s /bin/bash Samuel

    passwd Samuel

    De esta manera el usuario Samuel podr utilizar el comando su para convertirse ensuperusuario.

    Sin embargo cualquier otro usuario no podr hacerlo.

    Uso del sudoExisten algunos comandos muy tiles como el tcpdump que slo se pueden correr comosuperusuario. Como se vio anteriormente no es recomendable dar a todos los usuariosel poder de cambiar de usuario. Entonces qu sucedera si se necesita utilizar unaherramienta que requiere el uso del usuario root y el administrador no tiene acceso auna PC con Internet. Deber esperar el tiempo que sea necesario?

    Afortunadamente existe el comando sudo que permite que un usuario corra unprograma como superusuario, para ello necesita entregarle el password del root al

    usuario y lamentablemente, realizar esta accin, es un grave error. Dar a un usuario,sin los conocimientos necesarios, este privilegio puede comprometer la integridad de susistema.

    Para evitar futuros dolores de cabeza se puede indicar al comando sudo que a ciertosusuarios le permita utilizar determinados comandos sin la necesidad de ingresar elpassword de root.

    Esta tarea se realiza editando el archivo /etc/sudoers

    Para ello es necesario editar el archivo desde consola como superusuario ejecutando el

    siguiente comando:

    Visudo

    Y agregar al final del mismo.

    user ALL = NOPASSWD: /usr/sbin/tcpdump

    No se profundizar en el tema ya que est fuera del mbito de este documento. Por ellosolo se explicara cmo realizar esta tarea en un sistema Elastix que ya usa este archivopara el usuario Asterisk y simplifica la configuracin

  • 5/23/2018 Asegurando Elastix.pdf

    15/38

    15

    Si bien aqu se podran incluir todos los comandos que desee es recomendable que seanlos menos posibles.

    Hasta este momento se establecieron polticas de usuarios tendientes a mejorar laseguridad del sistema. Para continuar con las polticas de seguridad se deben modificarlas opciones de seguridad del servicio SSH, que habitualmente se utiliza paraadministracin remota.

    OpenSSH (o Shell Seguro) se ha convertido en el estndar para el acceso remoto,reemplazando al protocolo telnet. SSH ha hecho que los protocolos como telnet seanobsoletos, por el hecho de que la conexin es encriptada y las contraseas no sonenviadas en texto plano para que todos la puedan ver. De todas maneras, una

    instalacin por defecto de SSH no es segura, y hay algunos pasos simples que puedenfortalecer una instalacin.

    1.Usar contraseas Fuertes

    Si usted est corriendo ssh y se encuentra expuesto al mundo exterior, y revisa elarchivo /var/log/audit/audit.log peridicamente, notar la cantidad de intentos deusuarios mal intencionado tratando de acceder a su equipo. Un atacante escanear elpuerto 22 (el puerto por defecto en el cual SSH escucha) para encontrar mquinas queestn corriendo el servicio SSH, y de esta manera intentarn un ataque de fuerza-bruta

    contra sta.Con contraseas fuertes cualquier ataque ser registrado y notificado antes de quepueda tener xito. Si usted no est utilizando contraseas fuertes, trate de escogercombinaciones que cumplan las siguientes particularidades:

    12 Caracteres como mnimo Mezcle letras maysculas y minsculas Mezcle letras y nmeros Use caracteres no alfabticos (ej.: caracteres especiales como ! " $ % ^ etc.) Rote las contraseas peridicamente.

    Los beneficios de una contrasea fuerte no son exclusivos de SSH, pero tienen fuerteimpacto en todos los aspectos de la seguridad del sistema

    2. Deshabilitar el acceso como root

    La configuracin del servidor SSH se encuentra almacenada en el fichero

    /etc/ssh/sshd_config. Para deshabilitar el acceso de root, asegrese de tener lasiguiente entrada:

    # Authentication:

  • 5/23/2018 Asegurando Elastix.pdf

    16/38

    16

    #LoginGraceTime 2

    PermitRootLogin no

    y reiniciar el servicio sshd:

    service sshd restart

    Si usted necesita acceder como root, acceda como un usuario normal que pertenezca algrupo Wheel y use el comando su -.

    3. No utilizar el puerto por defecto

    Por defecto, SSH escucha las conexiones entrantes en el puerto 22. Para que un hackerdetermine si SSH se est ejecutando en su mquina, lo ms probable es que escanee el

    puerto 22. Un mtodo efectivo es ejecutar SSH en un puerto no estndar. Cualquierpuerto sin usar funcionar, pero es preferible usar uno por encima del 1024.

    Muchas personas escogen el 2222 como un puerto alternativo, de la misma forma queel 8080 es conocido, como un puerto HTTP alternativo. Por esta razn, probablementeesta no es la mejor opcin. De la misma forma que cualquier hacker escanear elpuerto 22, seguramente tambin escanear el puerto 2222 slo como buena medida. Esmejor escoger cualquier puerto alto al azar que no sea usado por ningn servicioconocido. Para hacer los cambios, aada una lnea como esta a su fichero

    /etc/ssh/sshd_config:

    # Ejecutar ssh en un puerto No-Estndar:

    Port 30022

    y reinicie el servicio sshd.

  • 5/23/2018 Asegurando Elastix.pdf

    17/38

    17

    FIREWALL

    Un firewall es un elemento de hardware o software que filtra el trfico entre dos redesu hosts conectados entre s. El firewall permite controlar el flujo de paquetes que vande un lado al otro, es decir, decide si un paquete pasa, se descarta o es respondido conun mensaje de error. Los firewalls ms comunes operan en las capas de transporte y dered, es decir, analizan los paquetes en base al protocolo TCP/IP. Para ello, el firewallexamina primero si la comunicacin es entrante o saliente, de dnde viene y haciadnde se dirige (direcciones IP y puertos origen - destino).

    Siempre es recomendable poseer un Firewall en la red, para que tome las decisionessobre aceptar, rechazar o denegar. En algunos casos no existe la posibilidad de contar

    con l, por costos, disponibilidad o decisiones comerciales. Para estos casos se puedeutilizar las herramientas disponibles en CentOS, el sistema operativo elegido para lasdistribuciones Elastix.

    NETFILTER-IPTABLES

    Netfilter es un framework disponible en el Kernel de Linux a partir de la versin 2.4, quepermite interceptar y manipular paquetes de red. Dicho framework permite realizar elmanejo de paquetes en diferentes estados del procesamiento. Netfilter es tambin elnombre que recibe el proyecto que se encarga de ofrecer herramientas Open Sourcepara firewall basados en Linux.

    El componente ms popular construido sobre Netfilteres iptables, una herramientade firewall que permite no solamente filtrar paquetes, sino tambin realizar traduccinde direcciones de red (NAT) para IPv4 o mantener registros de log.

    Para proteger el sistema operativo y el servidor de comunicaciones Elastix, es necesario,aceptar slo las conexiones que sean necesarias y rechazar las dems. De esta manera

    se reduce la exposicin del Servidor de comunicaciones.Un punto a tener en cuenta es el orden de ingreso de las reglas, ya que iptables vaexaminado las reglas desde la primera que se ingresa, hasta llegar a la ltima, si noencuentra ninguna coincidencia, la ltima regla debe ser denegar todo, de estamanera, si no encuentra ninguna coincidencia, no podr gestionar alguna conexin.

    En el ejemplo, se tomar en cuenta slo una tarjeta de red (NIC).

    Se introducirn las lneas con sus respectivas explicaciones, el lector puede si lo deseaarmar un script.

  • 5/23/2018 Asegurando Elastix.pdf

    18/38

    18

    Se borran las reglas anteriores

    #iptables F

    #iptables F t nat

    Aceptar todo a local loop

    #iptables -A INPUT -i lo -j ACCEPT

    Aceptar la red interna, se asume que el texto $RED_LAN es una variable que tienecargada la red interna

    #iptables -A INPUT -s $RED_LAN -d 0/0 -j ACCEPT

    Acepto el trafico SIP de un proveedor. El texto $IP_ITSP1 y $IP_ITSP2 representan a ladireccin IP de un ITSP

    #iptables -A INPUT -s $IP_ITSP1 -p udp --dport 5060 -j ACCEPT#iptables -A INPUT -s $IP_ITSP2 -p udp --dport 5060 -j ACCEPT

    En el caso de que se tenga usuarios que deben registrarse desde IP remotas dinmicas

    no deben introducir las lneas anteriores y agregar la siguiente.#iptables -A INPUT -p udp -m udp --dport 5060 -j ACCEPT

    Esto es un faro para los atacantes, si necesita tener esta regla, deber implementaralgn analizador de log, tal como se explicar ms adelante.

    Se agrega el seguimiento de conexiones slo para una conexin existente y unarelacionada tanto para la cadena input y output

    #iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    #iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    Estas lneas permitirn el trafico RTP.

    #iptables -A INPUT s $IP_ITSP1 p udp dport 10000:20000 -j ACCEPT

    #iptables -A INPUT s $IP_ITSP2 p udp dport 10000:20000 -j ACCEPT

    Tener especial cuidado con estas lneas, ya que no siempre los ITSP utilizan las mismasIPs para sealizacin y media, a veces, hasta utilizan subredes diferentes. En el caso de

  • 5/23/2018 Asegurando Elastix.pdf

    19/38

    19

    que quiera liberar la tarea administrativa que lleva tener que agregar estas IPs o redespuede agregar la siguiente entrada.

    #iptables -A INPUT p udp m udp dport 10000:20000 j ACCEPTAceptar el trfico IAX2. Como su nombre indica es un protocolo propietario de Asterisky sirve para interconectar servidores corriendo Asterisk

    Si algn proveedor provee una interconexin utilizando este protocolo se debe ingresarla siguiente lnea.

    #iptables -A INPUT -s $IP_ITSP2 -p udp --dport 4569 -j ACCEPT

    En el caso de que existan algunos clientes IAX2 con IP dinmica ingresar la siguiente

    lnea.# iptables -A INPUT -p udp -m udp -i eth0 --dport 4569 -j ACCEPT

    Aceptar trfico MGCP (slo aplicar si es que se va a usar. En la mayora de los casos noes necesario):

    # iptables -A INPUT -p udp -m udp -i eth0 --dport 2727 -j ACCEPT

    Aceptar el trfico de mensajera instantnea (si es que se va a acceder desde fuera)

    desde la red interna no hace falta ya que est permitido todo el trfico:

    # iptables -A INPUT -p tcp -i eth0 --dport 9090 -j ACCEPT

    Aceptar el trfico del servidor de correo y POP/IMAP:

    # iptables -A INPUT -p tcp -i eth0 --dport 25 -j ACCEPT

    # iptables -A INPUT -p tcp -i eth0 --dport 110 -j ACCEPT

    # iptables -A INPUT -p tcp -i eth0 --dport 143 -j ACCEPT

    En el caso de que se quiera utilizar el servidor de comunicaciones unificadas como mailserver. Si no se va a utilizar de esta manera no ingrese ninguna de estas reglas.

    Aceptar trfico Web (HTTPS) para poder visitar la interface administrativa de Elastix:

    Tambin es conveniente ingresar desde una IP o IPs de confianza, en este caso el texto$IP_CONFIANZA1 asume una direccin IP

    iptables -A INPUT -s $IP_CONFIANZA1 -p tcp --dport 443 -j ACCEPT

  • 5/23/2018 Asegurando Elastix.pdf

    20/38

    20

    Se pueden ingresar cuantas lneas como IPs de confianza se tenga. Sin embargo si serequiere ingresar desde cualquier IP deber ingresar la siguiente lnea.

    # iptables -A INPUT -p tcp -i eth0 --dport 443 -j ACCEPT

    Esto es como otro faro para los atacantes, por ello, se vern algunas polticas pararestringir el acceso HTTP ms tarde en este documento

    Finalmente denegando el acceso a todo lo dems:

    #iptables -A INPUT -p all -i eth0 -j DROP

    Para verificar si las reglas se aplicaron correctamente utilizar el comando:

    #iptables L n v

    Luego para guardar las reglas de iptables

    #service iptables save

  • 5/23/2018 Asegurando Elastix.pdf

    21/38

    21

    ASEGURANDO HTTPS

    Para las ocasiones que no puede cerrar el HTTPS para las redes de confianza, se puedeagregar ms seguridad al mismo. En este caso se va a evitar que todo el mundo queingrese en su navegador https://IPDEMIELASTIX obtenga una imagen como esta.

    Para ello hay que configurar apache2 para que antes de que autentifique Elastix tomealgunos recaudos de seguridad.

    A muchos les gusta el mod_auth_mysql para bloquear http, sin embargo es ms

    prctico para estos fines realizarlo mediante htpasswd ya que hay que realizar unospequeos ajustes para hacerlo funcionar.

    Simplemente hay editar el archivo /etc/httpd/conf.d/elastix.conf para que quede similara este ejemplo

    #vim /etc/httpd/conf.d/elastix.conf

    # Apache-level configuration for Elastix administration interface

    Timeout 300

    # Default apache configuration specifies greater limits than these

    #MaxClients 150

    #MaxRequestsPerChild 1000

    # Default apache User and Group directives MUST be commented out

    # in order for these to take effect.

  • 5/23/2018 Asegurando Elastix.pdf

    22/38

    22

    User asterisk

    Group asterisk

    # Redirect administration interface to https

    RewriteEngine On

    RewriteCond %{HTTPS} off

    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    AuthType Basic

    AuthName "Zona Restringida"AuthUserFile /usr/local/apache/wwwpasswd

    Require user elastix Samuel

    Como se nota se han agregado las ltimas 4 lneas al archivo y se explicarn una poruna

    La primera habla del tipo de autentificacin La segunda habla de la leyenda que saldr con el pop up solicitando usuario y

    contrasea. La tercera habla de la ruta donde ir a buscar el usuario y password cifrado. La ltima hace alusin al usuario a utilizar.

    El siguiente paso es generar el password con el comando htpasswd:

    # mkdir /usr/local/apache

    #htpasswd c /usr/local/apache/wwwpasswd Samuel

    Luego solicitara ingresar un password, finalizados estos pasos es necesario reiniciarapache para que tome los cambios

    #service httpd restart

  • 5/23/2018 Asegurando Elastix.pdf

    23/38

    23

    A partir de ahora, el servidor de contenidos web mostrar una ventana similar a estaen lugar de la pgina de inicio de Elastix.

    Todo intento de acceso errneo ser guardado en los archivos de log que se encuentranen /var/log/httpd/

  • 5/23/2018 Asegurando Elastix.pdf

    24/38

    24

    Fail2ban

    Fail2Ban es un analizador de logs que busca intentos fallidos de registro y bloquea lasIPs de donde provienen estos intentos. Se distribuye bajo la licencia GNU y tpicamentefunciona en todos los sistemas que tengan interfaz con un sistema de control depaquetes o un firewall local.

    Fail2Ban tiene una gran configuracin pudiendo, adems, crear reglas para programaspropios o de terceros.

    Instalacin y Configuracin

    Para instalar fail2ban en un sistema operativo CentOS es necesario ejecutar:

    # yum install fail2ban

    Ahora hay que configurar Fail2Ban para que analice los logs que deseamos y bloqueeIPs, enviando notificaciones va e-mail. Para ello se modificara el archivo jail.conf queencontramos en /etc/fail2ban

    # cd /etc/fail2ban

    # vim jail.conf

    Lo primero a modificar es el valor bantime, este valor determina el tiempo en segundosque quedar bloqueada la IP del atacante, por defecto el valor viene en 600 segundos.

    Despus buscar el valor maxretry que sern el nmero de veces que una IP puedetener una autenticacin fallida antes de ser bloqueada.

    fail2ban y SSH

    Para que busque intentos fallidos de logueo por SSH modificar el archivo hasta que seasimilar a las siguientes lneas:

    [ssh-iptables] # Configuracin de fail2ban para el puerto ssh

    enabled = true

    filter = sshd

    action = iptables[name=SSH, port=22, protocol=tcp]

  • 5/23/2018 Asegurando Elastix.pdf

    25/38

    25

    sendmail-whois[name=SSH, [email protected], sender=fail2ban@localhost]

    logpath = /var/log/secure # Este es el log que analizar fail2ban

    maxretry = 3 # cualquier IP que tenga tres o ms intentos erroneos se bloqueara.

    bantime = 86400 # Tiempo de baneo de 24 horas expresado en segundos

    Si modifico el puerto donde escucha el SSH, deber modificar el parmetro port

    Fail2ban y Asterisk

    Ahora se debe configurar para que fail2ban lea los registros de Asterisk#cd /etc/fail2ban/filter.d

    Crear el archivo asterisk.conf

    #vim asterisk.conf

    Copiar estas lneas

    [INCLUDES]

    [Definition]

    failregex = NOTICE.* .*: Registration from '.*' failed for '' - Wrong passwordNOTICE.* .*: Registration from '.*' failed for '' - No matching peer

    found

    NOTICE.* .*: Registration from '.*' failed for '' - Username/auth namemismatch

    NOTICE.* failed to authenticate as '.*'$

    NOTICE.* .*: No registration for peer '.*' (from )

    NOTICE.* .*: Host failed MD5 authentication for (*.) '*.'

    NOTICE.* .*: Registration from '.*' failed for '' Device does not matchACL

    NOTICE.* .*: Failed to authenticate user .*@.*

    ignoreregex =

    Con esto le indica a fail2ban que tiene que controlar eventuales accesos indeseados enel archivo de registro de Asterisk.

    Luego hay que modificar el archivo de configuracin de fail2ban

  • 5/23/2018 Asegurando Elastix.pdf

    26/38

    26

    cd /etc/fail2ban

    vim jail.conf

    Aadir al final del archivo de texto las siguientes lneas

    [asterisk-iptables]

    enabled = true

    filter = asterisk

    action = iptables-allports[name=ASTERISK, protocol=all]

    sendmail-whois[name=ASTERISK, [email protected],

    sender=fail2ban@localhost]

    logpath = /var/log/asterisk/fullmaxretry = 3

    bantime = 86400

    Para que funcione este nuevo jail hay que chequear la configuracin de los archivos deregistro de Asterisk:

    #vim /etc/asterisk/logger.conf

    Agregar las siguientes lneas al inicio.

    [general]

    dateformat=%F %T

    Recargar el modulo de asterisk

    #asterisk rx module reload

    Fail2ban y apache2

    Otro servicio que se puede monitorear con fail2ban son los intentos fallidos de logeo enApache2, para ello solo hay que cambiar algunos parmetros en el archivo jail.conf

    enabled = true

    port = http,https

    filter = apache-auth

    logpath = /var/log/httpd/ssl_error_log.log

    #logpath = /var/log/apache*/*error.log

  • 5/23/2018 Asegurando Elastix.pdf

    27/38

    27

    maxretry = 6

    Reiniciar el servicio de fail2ban para que tome en cuenta las modificaciones realizadas

    service fail2ban restart

    Starting fail2ban: [ OK ]

    Para lograr que fail2ban al inicio del sistema, ejecutar:

    #chkconfig fail2ban on

    Si aparece algn error tendr que revisar la configuracin.

    Es una herramienta muy flexible que permitir realizar los filtros que crea necesariopero los mismos exceden los alcances de este documento.

  • 5/23/2018 Asegurando Elastix.pdf

    28/38

    28

    PORTSENTRY

    Una herramienta muy til para evitar escaneos de puertos es Portsentry. Su misin essentarse y escuchar a los puertos que se le indique que deben permanecer siempreinactivos. En caso de llegar una conexin a uno de ellos puede marcarlo en el log delsistema, bloquear toda la comunicacin con la direccin identificada como agresora, ocorrer un comando externo.

    Siga los siguientes pasos para su instalacin:

    #wget

    ftp://ftp.pbone.net/mirror/ftp.falsehope.net/home/tengel/centos/4/te/i386/RPMS/portsentry-1.2-1.te.i386.rpm(para la versin de 32 bits)

    # rpm -Uvh portsentry-1.2-1.te.i386.rpm

    Para agregarlo para que arranque al inicio del sistema operativo, utilizar el comando:

    # chkconfig portsentry on

    Configuracin

    La configuracin de Portsentry se hace en el archivo

    /etc/portsentry/portsentry.conf

    Portsentry tiene varios modos de operacin. Slo se explicar dos: el ms comn ysencillo es el modo clsico, y el ms poderoso es el modo avanzado.

    Portsentry - Modo clsico

    En este modo, se especifica a Portsentry que escuche determinados puertos TCP y UDP,en las opciones UDP_PORTS y TCP_PORTS en los que no se brindan servicio y son pocosolicitados. Por ejemplo, puede que nuestro servidor no est dando servicio de red SMB(Samba, red tipo Microsoft). Sin embargo, es comn que las computadoras Windowsmanden mensajes broadcast buscando a un sistema en especfico, con lo quepodramos recibir una gran cantidad de falsos positivos. Vienen varios puertospredefinidos en el archivo de configuracin, y son buenos como recomendacin inicial.

  • 5/23/2018 Asegurando Elastix.pdf

    29/38

    29

    Portsentry - Modo avanzado

    En ste modo, Portsentry no abre ningn puerto, sino que le pide al kernel que lenotifique si llega alguna peticin a algn puerto menor al especificado en las opciones

    ADVANCED_PORTS_TCP y ADVANCED_PORTS_UDP. Claro, tendremos que excluiralgunos puertos que sean particularmente ruidosos --como el ejemplo quecomentbamos en la seccin anterior de la red SMB-- y para ello tenemos las opciones

    ADVANCED_EXCLUDE_TCP y ADVANCED_EXCLUDE_UDP.

    Como ventaja adicional de este modo, al ejecutar netstat -na estando en modoavanzado el sistema no reportar los puertos que est escuchando, dado que no estnrealmente abiertos. Esto puede simplificar el trabajo como administradores.

    El modo avanzado es mucho ms sensible que el modo clsico, dado que escucha amuchos ms puertos, por lo que puede efectivamente causar una negacin de serviciosi no es configurado con cuidado

    Portsentry - Otras opciones de configuracin

    Tras haber especificado los puertos que deseamos escuchar, hay algunos parmetrosadicionales que se deben especificar:

    IGNORE_FILE

    Es el nombre del archivo que incluye la lista de direcciones en las que confiamosy por tanto no se quiere bloquear si intentan accesar un puerto bloqueado. Porejemplo, sera muy molesto que quisiramos correr nmap contra uno denuestros servidores para asegurar de que no haya servicios abiertos que no serequieran y que nos bloqueramos por ello.

    HISTORY_FILE

    Contiene la lista de direcciones que Portsentry ha detectado intentando accesarpuertos monitoreados.

    BLOCKED_FILE

    Es equivalente a HISTORY_FILE, pero relevante nicamente a la sesin actualde Portsentry.

  • 5/23/2018 Asegurando Elastix.pdf

    30/38

    30

    BLOCK_TCP

    Especifica qu hacer cuando un barrido de puertos TCP es detectado. Tiene tres

    posibles valores: 0 (slo registrar el intento), 1 (bloquear la direccin queintento el escaneo) y 2 (correr un comando externo especificado enKILL_RUN_CMD).

    BLOCK_UDP

    Es equivalente a BLOCK_TCP para barridos de puertos UDP.

    KILL_ROUTE

    Guarda el comando utilizado para descartar toda la comunicacin con unadireccin. En los Unixs que no incluyen un paquete que permita manejar reglasde filtrado de paquetes tipo firewall sugiere hacerlo creando una ruta estticahacia dicho host por una interfaz por la que nunca podremos llegar a l (unadireccin IP falsa o localhost), evitando toda posible respuesta. En un sistemaque incluya un filtro de paquetes (por ejemplo, iptables en Linux o ipf en los*BSD) es muy preferible manejar una regla bloqueando la conexin.

    KILL_HOSTS_DENY

    Tiene la lnea que deber ser agregada a /etc/hosts.deny para que la direccinatacante sea bloqueada por TCPwrappers. Es conveniente activarlo, pues a

    diferencia de las reglas manejadas por KILL_ROUTE ste archivo sobrevivir a labaja del sistema. Claro, no hay que confiarse - TCPwrappers slo manejadeterminados servicios, y si slo nos protegemos con l, el sistema podr seguirproporcionando informacin importante a nuestro atacante.

    KILL_RUN_CMD

    Puede guardar un comando a ser ejecutado de ser detectada una intrusin. Norecomendamos utilizar esta opcin, ya que puede fcilmente llevar a unanegacin de servicio. Hay administradores que sugieren utilizar esta opcin paralanzar un contraataque contra el atacante.

    SCAN_TRIGGER

    Indica qu tan rpido marcar un intento fallido de conexin como un ataque.Probablemente, si a la primera bloqueamos toda comunicacin con el presuntoatacante, dejaremos fuera a muchos usuarios legtimos que por casualidadhicieron la conexin equivocada. Sin embargo, si ponemos un nmero muy altonos exponemos a dar ms informacin de la que hubiramos querido. Un valorde 1 o 2 es recomendado.

  • 5/23/2018 Asegurando Elastix.pdf

    31/38

    31

    CHKROOTKIT

    Para instalar y ejecutar correctamente la aplicacin Chkrootkit siga los siguientes pasos:

    1.-Descagar e instalar el chkrootkit con los siguientes comandos:

    cd /usr/local/src

    wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz

    tar -zxvf chkrootkit.tar.gz

    mkdir /usr/local/chkrootkit

    mv /usr/local/src/chkrootkit*/* /usr/local/chkrootkit

    cd /usr/local/chkrootkit

    make sense

    2.- Agregar al CRON para que se ejecute a diario:

    vim /etc/cron.daily/chkrootkit.sh

    #!/bin/sh

    (

    /usr/local/chkrootkit/chkrootkit

    ) | /bin/mail -s 'CHROOTKIT Daily Run Nombre_del_Server' [email protected]

    # ingresar un email de su preferencia, a modo ilustrativo yo ingrese el mo

    3.- Cambiar los permisos necesarios:

    chmod 700 /etc/cron.daily/chkrootkit.sh

    4.- Ejecutar en el momento con el siguiente comando:./chkrootkit

    Esto analizara todo los archivos ejecutables en busca de algn rootkit

  • 5/23/2018 Asegurando Elastix.pdf

    32/38

    32

    TCPWRAPPER

    TCP Wrapper ("Envoltorio de TCP") es un sistema de ACL que trabaja en terminales yque se usa para filtrar el acceso de red a servicios de protocolos de Internet que correnen sistemas operativos (tipo UNIX), como Linux o BSD. Permite que las direcciones IP,los nombres de terminales y/o respuestas de consultas ident de las terminales osubredes sean usadas como tokenssobre los cuales filtrar para propsitos de control deacceso.

    Este proceso trabaja con los archivos /etc/hosts.allow y /etc/hosts.deny. Al compararsecon las directivas de control de acceso de una terminal, que comnmente seencuentran en los archivos de configuracin de los demonios, TCP Wrappers tienen elbeneficio de una reconfiguracin de ACL en tiempo de ejecucin (es decir, los serviciosno necesitan ser cargados nuevamente o reiniciados). Esto facilita su uso en scriptsanti-gusano, tales como Fail2ban, para agregar y sacar reglas de bloqueo a clientes,cuando estos producen excesivos intentos de conexin o varios errores en el procesomismo.

    Utilizando TCPWapper se puede acotar los accesos por ejemplo de SSH.

    Ejemplo de host allow

    sshd : 192.168.2.1 : allow

    sshd : 172.16.86.0/255.255.255.0 : allow

    En el archivo /etc/hosts.deny debe existir una lnea como la siguiente.

    sshd : ALL : deny

    Tambin existen otros demonios que utilizan esta ACL los cuales quedaran a cargo dellector buscar informacin al respecto.

  • 5/23/2018 Asegurando Elastix.pdf

    33/38

    33

    PRCTICAS RECOMENDADAS

    Les dejo algunos puntos importantes a tener en cuenta al momento de una nuevaimplementacin. Son algunas recomendaciones que evitaran problemas futuros. Esto noquiere decir que implementando todos estos puntos nunca tendrn un evento deseguridad, sino que ser muy difcil para un atacante poder vulnerar un sistema de estamanera. Es posible que cualquier atacante desista de intentar atacar un sistemaprotegido, e intente otro que no lo est. Por ello les propongo las siguientes prcticas:

    Tener una poltica de acceso fsico al servidor adecuada Polticas de acceso remoto limitado por firewall, ACL, y usuarios. Conocer perfectamente el sistema por dentro. Llevar un control exhaustivo del sistema. Estar al da con las actualizaciones, vulnerabilidades y soluciones. Llevar un mantenimiento continuo. Observar los logs del sistema. Evitar utilizar puertos estndares. Utilizar un firewall. Utilizar herramientas como fail2ban y portsentry para evitar escaneos y ataques

    DoS. Denegar peticiones al 5060/4569 UDP desde el exterior siempre que no tenga

    usuarios SIP/IAX externos. DROPear cualquier paquete procedente de cualquier IP que no sea de su red de

    confianza. Rotar password peridicamente. Tener listas de Acceso (ACL) para las registraciones de las extensiones. No dejar los usuarios y password por defectos de Elastix En el caso de utilizar el protocolo SIP, autentificar el paquete de INVITE. No permitir llamadas sin autentificar. Validar la integridad de los ejecutables del sistema. (chkrootkit) Tener un control de la integridad de los directorios y archivos. Correr solo los servicios que realmente sean necesarios. Implementar Monitoreo y log remotos. Una solucin a conciencia de Backup y disaster recovery.

  • 5/23/2018 Asegurando Elastix.pdf

    34/38

    34

    SIETE PASOS PARA MEJORAR LA SEGURIDAD SIP EN ASTERISK

    PUBLICADOS POR DIGIUM

    En los ltimos meses han aparecido una serie de nuevas herramientas que hace posiblea cualquier usuario novel atacar y cometer fraudes en equipos SIP, incluyendo lossistemas basados en Asterisk.

    Existen herramientas fcilmente disponibles que hacen un barrido de redes en busca dehosts que ofrezcan servicios SIP, luego, una vez encontrado, realiza un barrido enbusca de extensiones y contraseas.

    Existen ciertas reglas, de aplicacin inmediata, que eliminan muchos de los problemas

    de seguridad, protegiendo al servidor Asterisk de los barridos masivos y los ataquesposteriores. Estos mtodos y herramientas de proteccin ya existen, simplemente hayque aplicarlos.

    1) No aceptar pedidos de autenticacin SIP desde cualquier direccin IP. Utilizar laslneas permit= y deny= de sip.conf para slo permitir un subconjunto razonable dedirecciones IP alcanzar cada usuario/extensin listado en el archivo sip.conf. Aunaceptando llamadas entrantes desde anywhere (va [default]) no se debe permitir aesos usuarios alcanzar elementos autenticados.

    2) Establecer el valor de la entrada alwaysauthreject=yes en el archivo sip.conf. Estaopcin est disponible desde la versin 1.2 de Asterisk, pero su valor por defecto es"no", lo que puede ser potencialmente inseguro. Estableciendo este valor en "yes" serechazarn los pedidos de autenticacin fallidos utilizando extensiones vlidas, es decirenva un mensaje SIP 404 not found, en lugar del clsico 403 forbidden. De esta formano facilitamos la tarea al atacante para detectar nombres de extensiones existentesutilizando tcnicas de "fuerza bruta".

    3) Utilizar claves SEGURAS para las entidades SIP. Este es probablemente la msimportante medida de seguridad. Los programas que generan y prueban claves porfuerza bruta son accesibles desde la web. Usar smbolos, nmeros, una mezcla de letrasminsculas y maysculas y al menos 12 caracteres de longitud es una buena prctica yllevara demasiado tiempo a un atacante poder descifrar una contrasea as.

    4) Bloquear los puertos del Asterisk Manager Interface. Usar permit= y deny= enmanager.conf para limitar las conexiones entrantes slo a hosts conocidos. Una vez ms

  • 5/23/2018 Asegurando Elastix.pdf

    35/38

    35

    utilizar claves seguras aqu tambin, al menos 12 caracteres de longitud en unacombinacin de nmeros, letras y smbolos.

    5) Permitir slo una o dos llamadas por vez por entidades SIP cuando sea posible.Limitar el uso no autorizado de las lneas voip es una sabia decisin, esto tambin estil para el caso que usuarios legtimos hagan pblica su clave y pierdan control de suuso.

    6) Los nombres de usuarios SIP deben ser diferentes que sus extensiones.

    A pesar de ser conveniente tener una extensin 1234que mapee a una entrada SIP1234 la cual es tambin el usuario SIP 1234, esto tambin facilita a los atacantespara descubrir nombres de autenticacin SIP. En su lugar usar las direcciones MAC del

    dispositivo, o alguna combinacin de frases comunes + extensin MD5 hash (porejemplo: desde el Shell prompt, hacer md5 -s ThePassword5000)

    7) Asegurarse que el contexto [default] sea seguro. No permitir que llamadores noautenticados alcancen contextos que les permitan llamar. Permitir slo una cantidadlimitada de llamadas activas pasen por el contexto default (utilizar la funcin GROUPcomo contador). Prohibir totalmente las llamadas no autenticadas (si es que as loqueremos) estableciendo allowguest=no en la parte [general] de sip.conf.

    Backdoor en FreePBX

    Backdoor detectado en FreePBX (hasta la versin 2.0.1 de Elastix - Agosto 2010)

    Resea

    En el mes de agosto de 2010, Andrs Babativa, miembro de lista general de Elastixdescubri que uno de los usuarios definidos para acceder a la base de datos, poda

    acceder como usuario Admin por el front-end de FreePBX, as es; mas all de que noshayamos esmerado muchsimo en usuarios y contraseas fuertes, si yo vengo con elgold super user entro sin ningn problema con permisos de admin y puedo hacer loque quiero en cualquier Asterisk que tenga un FreePBX!

    Para verificar esto podemos acceder a la interfaz de FreePBX, cuando nos solicite user ypassword ingresamos: asteriskuser/eLaStIx.asteriskuser.2oo7

  • 5/23/2018 Asegurando Elastix.pdf

    36/38

    36

    Frente a esto ese mismo da, horas ms tarde el equipo de desarrolladores de PalosantoSolutions ya tena listo el paquete RPM de FreePBX corregido en los repositorios deElastix.

    Para aplicarlo debemos actualizar FreePBX; para esto ejecutamos en la consola comousuario root:

    yum upgrade freePBX

    Una vez actualizado, se puede corroborar que el problema est solucionado ingresandoel usuario y password anteriormente mencionados y notar que ya no puede acceder.

  • 5/23/2018 Asegurando Elastix.pdf

    37/38

    37

    NOTAS FINALES

    Sin dudas la mejor opcin es tener un firewall delante de un servidor Elastix, y luegoponer un segundo nivel de reglas en el servidor de comunicaciones, sin embargo, nosiempre es posible disponer de este escenario.

    Para estas ocasiones es recomendable personalizar el firewall del servidor decomunicaciones, dejando solo lo que es estrictamente necesario y denegar el resto,suena algo paranoico pero a veces es mejor restringir de ms y corregir sobre lamarcha, que pagar voluminosas facturas telefnicas por ser demasiado permisivo.

    De esta manera, finaliza este manual y recopilacin de buenas prcticas, espero que ellector lo encuentre interesante y sobre todo til.

  • 5/23/2018 Asegurando Elastix.pdf

    38/38

    38

    FUENTES

    Comunicaciones unificadas con Elastix volumen 1 y 2 de Edgar Landvar Elastix a ritmo del merengue de Alfio Muoz www.wikipedia.org securing_trixbox_ce de Tim Yardley. www.google.com www.iddover.net Material interno de Crossfone Argentina.