You are on page 1of 13

0351 Grupo | Consultora

IT

Manual de referencia
Seguridad en servidores CentOS con Elastix + buenas
prcticas

V. 0.7

Autor: Rodrigo A. Martin

Copyright 2005 -2010, 0351 Grupo. Todos los derechos reservados.


El presente documento tiene solo fines informativos y su contenido est sujeto a cambios sin notificacin
alguna.
El presente documento no podr ser reproducido ni transmitido de ninguna forma ni por ningn medio,
sin consentimiento por escrito de 0351 Grupo.

0351 Grupo | Consultora IT

Antes de comenzar el desarrollo del presente, debo aclarar que no se trata de un


manual que cubre todos los aspectos de seguridad a tener en cuenta al poner un
servidor elastix en produccin, sino, ciertas recomendaciones y configuraciones
bsicas del S.O, junto con otros aplicativos, extradas de libros, tutoriales y
experiencias personales que nos ayudaran a mantenerlo ms seguro. Mi
recomendacin inicial es cambiar todos los passwords que trae elastix por defecto
(esto lo podemos encontrar en el libro Elastix a Ritmo de Merengue captulo 12)
dicho esto, comencemos:

Firewall-Iptables
Iptables es el firewall que trae instalado nuestro CentOS , este es muy popular y
uno de los ms utilizados en distribuciones Linux por su robustez y estabilidad. Lo
ideal es que el firewall sea un componente independiente separado de los dems
servidores, pero si no tenemos dicho dispositivo, podemos aplicar estas reglas
directamente sobre nuestro servidor y as establecer polticas con los puertos de
red del mismo.
Lo que haremos por medio de esta herramienta ser habilitar o abrir solo los
puertos que estamos utilizando y cerrar todos los dems brindando as mayor
proteccin al servidor. Es importante el orden de ingreso de las reglas, ya que
iptables va macheando por estas desde la primera que se ingresa, hasta llegar a
la ltima, si no encuentra ninguna coincidencia, la ltima regla que escribiremos
ser cerrar todos los dems puertos, as que si no coincide con los especificados al
principio, no podr gestionar alguna conexin por dicho puerto.
En el ejemplo tomamos que la tarjeta de red por defecto es eth0
Aceptando el trfico SIP:
# iptables -A INPUT -p udp -m udp -i eth0 --dport 5060 -j ACCEPT
Aceptando el trfico IAX2:
# iptables -A INPUT -p udp -m udp -i eth0 --dport 4569 -j ACCEPT
Aceptando el trfico RTP (Suponiendo que no se ha alterado el archivo rtp.conf):
# iptables -A INPUT -p udp -m udp -i eth0 --dport 10000:20000 -j
ACCEPT
Aceptando trfico MGCP (solo aplicar si es que se va a usar. En la mayora de los
casos
no es necesario):
# iptables -A INPUT -p udp -m udp -i eth0 --dport 2727 -j ACCEPT
Aceptando el trfico de mensajera instantnea (si es que se va a acceder desde
fuera):
# iptables -A INPUT -p tcp -i eth0 --dport 9090 -j ACCEPT
Aceptando 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

Aceptando trfico Web (HTTP y HTTPS) para poder visitar la interfase administrativa
de Elastix:
0351 Grupo Consultora IT
Gral. Justo Jos de Urquiza 1456 (5000) Crdoba Argentina
+54 (351) 414 7444 | info@0351grupo.com | www.0351grupo.com

0351 Grupo | Consultora IT


# iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -i eth0 --dport 443 -j ACCEPT
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 usamos el comando:
iptables -L
Si algo no sali de acuerdo a lo esperado, podemos hacer un flush (borrar) de
todas las reglas con el comando:
iptables -F

Asegurando SSH en su sistema


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
sean redundantes, en su mayora, por el hecho de que la conexin es encriptada y
las contraseas no son enviadas en texto plano para que todos la puedan ver.
De todas maneras, una instalacin por defecto de ssh no es perfecta, y cuando
corremos un servidor ssh, hay algunos pasos simples que pueden endurecer
dramticamente una instalacin.
1. Usar contraseas Fuertes
Si usted est corriendo ssh y se encuentra expuesto al mundo exterior, una de las
primeras cosas que podr notar sern los intentos de los hackers tratando de
acceder para adivinar su nombre de usuario/contrasea. Tpicamente un hacker
escanear el puerto 22 (el puerto por defecto por el cual ssh escucha) para
encontrar mquinas que estn corriendo ssh, y entonces intentarn un ataque de
fuerza-bruta contra sta. Con contraseas fuertes en su lugar, felizmente cualquier
ataque ser registrado y notificado antes de que pueda tener xito.
Afortunadamente usted ya est usando una contrasea fuerte, de lo contrario
entonces trate de escoger contraseas que contengan:
8 Caracteres como mnimo
Mezcle letras maysculas y minsculas
Mezcle letras y nmeros
Use caracteres no alfabticos (ej: caracteres especiales como ! " $ % ^ etc.)
Los beneficios de una contrasea fuerte no son especficos de SSH, pero tienen
fuerte impacto en todos los aspectos de la seguridad del sistema.

2. Deshabilitar el acceso como root


0351 Grupo Consultora IT
Gral. Justo Jos de Urquiza 1456 (5000) Crdoba Argentina
+54 (351) 414 7444 | info@0351grupo.com | www.0351grupo.com

0351 Grupo | Consultora IT


La configuracin del servidor SSH se encuentra almacenada en el fichero
/etc/ssh/sshd_config. Para deshabilitar el acceso de root, asegrese de tener la
siguiente entrada:

#Prevent root logins:


PermitRootLogin no

y reiniciar el servicio sshd:


service sshd restart
Si usted necesita acceder como root, acceda como un usuario normal y use el
comando su -.
3. Deshabilitar el protocolo 1
SSH posee dos protocolos que se pueden usar, protocolo 1 y protocolo 2. El viejo
protocolo 1 es menos seguro y debe estar deshabilitado, a menos que usted lo
requiera para algo especfico. Busque la siguiente lnea en el fichero
/etc/ssh/sshd_config, descomntela y modifquela como sigue:

# Protocol 2,1
Protocol 2
reinicie el servicio sshd.
4. Usar un Puerto No-Estndar
Por defecto, ssh escucha las conexiones entrantes en el puerto 22. Para que un
hacker determine 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.
Cualquier puerto sin usar funcionar, pero es preferible usar uno por encima del
1024.
Muchas personas escogen el 2222 como un puerto alternativo (porque es fcil de
recordar), de la misma forma que el 8080 es conocido, a menudo, como un puerto
HTTP alternativo. Por esta razn, probablemente esta no es la mejor opcin. De la
misma forma que cualquier hacker escanear el puerto 22, seguramente tambin
escanear el puerto 2222 solo como buena medida. Es mejor escoger cualquier
puerto alto al azar que no sea usado por ningn servicio conocido.
Para hacer los cambios, aada una lnea como esta a su fichero
/etc/ssh/sshd_config:

# Ejecutar ssh en un puerto No-Estndar:


Port 22

#Cambiar Aqu!!! Por ej: Port 7634

0351 Grupo Consultora IT


Gral. Justo Jos de Urquiza 1456 (5000) Crdoba Argentina
+54 (351) 414 7444 | info@0351grupo.com | www.0351grupo.com

0351 Grupo | Consultora IT

y reinicie el servicio sshd.


Recuerde hacer cualquier cambio necesario a los puertos de reenvo en su
enrutador y a cualquier regla aplicable al cortafuego.

Fail2ban
Fail2Ban es un analizador de logs que busca intentos fallidos de registro y bloquea
las IPs de donde provienen estos intentos. Se distribuye bajo la licencia GNU y
tpicamente funciona en todos los sistemas que tengan interfaz con un sistema de
control de paquetes o un firewall local.
Fail2Ban tiene una gran configuracin pudiendo, adems, crear reglas para
programas propios o de terceros.

Instalacin y Configuracin
Debemos de Instalar python en nuestro servidor, para ello ejecutamos
[root@elastix]# yum install python*
Descargamos Fail2ban en la carpeta /usr/src desde su pagina en sourceforge
[root@elastix]# cd /usr/src
[root@elastix src]# wget
http://sourceforge.net/projects/fail2ban/files/fail2banstable/fail2ban-0.8.4/fail2ban-0.8.4.tar.bz2/download
Descomprimimos e instalamos Fail2Ban
[root@elastix
[root@elastix
[root@elastix
[root@elastix

src]# tar xvfj fail2ban-0.8.4.tar.bz2


src]# cd fail2ban-0.8.4
fail2ban-0.8.4]# python setup.py install
fail2ban-0.8.4]# cd /files

Copiamos el script para manejarlo como servicio


cp redhat-initd /etc/init.d/fail2ban
chmod 755 /etc/init.d/fail2ban
Con esto tendremos instalado Fail2Ban en /usr/share/fail2ban. Los scripts los
encontramos en /usr/bin.
Ahora debemos de configurar Fail2Ban para que analice los logs que deseamos y
bloque IP,s y nos sean enviadas notificaciones va e-mail.para ello modificaremos el
archivo jail.conf que encontramos en /etc/fail2ban
[root@elastix src]# cd /etc/fail2ban
[root@elastix fail2ban]# vim jail.conf
Lo primero a modificar es el valor bantime, este valor determina el tiempo en
segundos que quedar bloqueada la ip que esta atacndonos, por defecto el valor
viene en 600.
0351 Grupo Consultora IT
Gral. Justo Jos de Urquiza 1456 (5000) Crdoba Argentina
+54 (351) 414 7444 | info@0351grupo.com | www.0351grupo.com

0351 Grupo | Consultora IT


Despus buscamos el valor maxretry que sern el nmero de veces que una IP
puede tener una autenticacin fallida antes de ser bloqueada.
Para que busque intentos fallidos de logueo por ssh buscamos la siguiente parte:
[ssh-iptables]
enabled = false
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=you@mail.com, sender=fail2ban@mail.com]
logpath = /var/log/sshd.log
maxretry = 5
y la modificamos de la siguiente manera
[ssh-iptables] # Configuracin de fail2ban para el puerto ssh
enabled
filter
action

= true
= sshd
= iptables[name=SSH, port=22, protocol=tcp]
sendmail-whois[name=SSH, dest=miMail@mail.com,
sender=fail2ban@mail.com]
logpath = /var/log/secure #indicamos que log controlar
maxretry = 3 #le damos solo tres intentos
bantime = 36000 #tiempo de baneo expresado en segundos
Ahora podemos configurarlo para que lea los registros de Asterisk
cd /etc/fail2ban/filter.d
Creamos el archivo asterisk.conf
vim asterisk.conf
Copiamos estas lneas
# Fail2Ban configuration file
#
#
# $Revision: 250 $
#
[INCLUDES]
# Read common prefixes. If any customizations available -- read them
from
# common.local
#before = common.conf
[Definition]
#_daemon = asterisk
# Option: failregex
# Notes.: regex to match the password failures messages in the
logfile. The
#
host must be matched by a group named "host". The tag
"<HOST>" can
#
be used for standard IP/hostname matching and is only an
alias for
#
(?:::f{4,6}:)?(?P<host>\S+)
0351 Grupo Consultora IT
Gral. Justo Jos de Urquiza 1456 (5000) Crdoba Argentina
+54 (351) 414 7444 | info@0351grupo.com | www.0351grupo.com

0351 Grupo | Consultora IT


# Values:
#

TEXT

failregex = NOTICE.* .*: Registration from '.*' failed for '<HOST>' Wrong password
NOTICE.* .*: Registration from '.*' failed for '<HOST>' No matching peer found
NOTICE.* .*: Registration from '.*' failed for '<HOST>' Username/auth name mismatch
NOTICE.* <HOST> failed to authenticate as '.*'$
NOTICE.* .*: No registration for peer '.*' (from <HOST>)
NOTICE.* .*: Host <HOST> failed MD5 authentication for
'.*' (.*)
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is
ignored.
# Values: TEXT
#
ignoreregex =
Con esto le decimos a fail2ban que tiene que controlar eventuales accesos
indeseados en el archivo de registro de Asterisk.
Ahora tenemos que modificar el archivo de configuracin de fail2ban
cd /etc/fail2ban
vim jail.conf
y aadimos al final del archivo de texto estas lneas
[asterisk-iptables]
enabled
filter
action

= true
= asterisk
= iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK, dest=root@localhost,
sender=fail2ban@pbx.dyndns.org]
logpath = /var/log/asterisk/full
maxretry = 4
bantime = 18000
Para que funcione tenemos que chequear la configuracin del los archivos de
registro de Asterisk:
vim /etc/asterisk/logger.conf
y averiguar que la lnea messages tenga el parmetro que aparece en negrita
messages => notice,debug

Terminamos con la configuracin del script de arranque:


cd /usr/src/fail2ban-0.8.4/files/
0351 Grupo Consultora IT
Gral. Justo Jos de Urquiza 1456 (5000) Crdoba Argentina
+54 (351) 414 7444 | info@0351grupo.com | www.0351grupo.com

0351 Grupo | Consultora IT

y copiamos el script en el init.d para que corra como servicio


cp redhat-initd /etc/init.d/fail2ban
chmod 755 /etc/init.d/fail2ban
Usamos chkconfig para que levante fail2ban cada vez que iniciemos nuestro
servidor.
chkconfig fail2ban on
Iniciamos el servicio
service fail2ban start
Starting fail2ban: [ OK ]
Si aparece algn error tenemos que revisar la configuracin.

Seguimiento de logueo de elastix con fail2ban


Esto est en versin de prueba todava:
Agregar en el archivo /var/www/html/index.php
Las siguientes lneas (en rojo):
<?php
/* vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
Codificacin: UTF-8
+----------------------------------------------------------------------+
| Elastix version 0.5
|
| http://www.elastix.org
|
+----------------------------------------------------------------------+
| Copyright (c) 2006 Palosanto Solutions S. A.
|
+----------------------------------------------------------------------+
| Cdla. Nueva Kennedy Calle E 222 y 9na. Este
|
| Telfs. 2283-268, 2294-440, 2284-356
|
| Guayaquil - Ecuador
|
| http://www.palosanto.com
|
+----------------------------------------------------------------------+
| The contents of this file are subject to the General Public License |
| (GPL) Version 2 (the "License"); you may not use this file except in |
| compliance with the License. You may obtain a copy of the License at |
| http://www.opensource.org/licenses/gpl-license.php
|
|
|
| Software distributed under the License is distributed on an "AS IS" |
| basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See |
| the License for the specific language governing rights and
|
| limitations under the License.
|
+----------------------------------------------------------------------+
| The Original Code is: Elastix Open Source.
|
| The Initial Developer of the Original Code is PaloSanto Solutions
|
+----------------------------------------------------------------------+
$Id: index.php,v 1.3 2007/07/17 00:03:42 gcarrillo Exp $ */
include_once("libs/misc.lib.php");
include_once "configs/default.conf.php";
include_once "libs/paloSantoNavigation.class.php";
include_once "libs/paloSantoDB.class.php";
include_once("libs/paloSantoACL.class.php");// Don activate unless you know
what you are doing. Too risky!
$developerMode=false;

0351 Grupo Consultora IT


Gral. Justo Jos de Urquiza 1456 (5000) Crdoba Argentina
+54 (351) 414 7444 | info@0351grupo.com | www.0351grupo.com

0351 Grupo | Consultora IT


session_name("elastixSession");
session_start();
if(isset($_GET['logout']) && $_GET['logout']=='yes') {
session_destroy();
session_name("elastixSession");
session_start();
}
//cargar el archivo de idioma
//$lang=isset($arrConf['language'])?$arrConf['language']:"en";
//include_once("lang/".$lang.".lang");
load_language();
$pDB = new paloDB($arrConf['elastix_dsn']['acl']);
if(!empty($pDB->errMsg)) {
echo "ERROR DE DB: $pDB->errMsg <br>";
}
$pACL = new paloACL($pDB);
if(!empty($pACL->errMsg)) {
echo "ERROR DE DB: $pACL->errMsg <br>";
}
// Load smarty
require_once("libs/smarty/libs/Smarty.class.php");
$smarty = new Smarty();
$smarty->template_dir =
$smarty->compile_dir =
$smarty->config_dir =
$smarty->cache_dir =
//$smarty->debugging =

"themes/" . $arrConf['mainTheme'];
"var/templates_c/";
"configs/";
"var/cache/";
true;

//funcion para grabar el logueo aprox line 72


function registroDeLogueo($numero,$texto){
$ip = $_SERVER['REMOTE_ADDR'];
$ddf = fopen('/var/log/loginElastix.log','a');
fwrite($ddf,"[".date("d/m/Y H:m:s")."] Notificacion $numero: $texto desde la
ip '$ip' \n");
fclose($ddf);
}
//- 1) SUBMIT. Si se hizo submit en el formulario de ingreso
//autentico al usuario y lo ingreso a la sesion
if(isset($_POST['submit_login']) and !empty($_POST['input_user'])) {
$pass_md5 = md5($_POST['input_pass']);
if($pACL->authenticateUser($_POST['input_user'], $pass_md5)) {
$_SESSION['elastix_user'] = $_POST['input_user'];
$_SESSION['elastix_pass'] = $pass_md5;
registroDeLogueo('001','Ingreso del usuario:'.
$_SESSION['elastix_user']); //grabo el acceso del usuario
} else {
registroDeLogueo('002',"Password Incorrecto para el Usuario: '".
$_POST['input_user']."'"); // grabo el acceso errneo para el usuario
}
}
$pDBMenu = new paloDB($arrConf['elastix_dsn']['menu']);
$arrMenu = cargar_menu($pDBMenu) ;
// 2) Autentico usuario
if(isset($_SESSION['elastix_user']) && isset($_SESSION['elastix_pass']) &&
$pACL->authenticateUser($_SESSION['elastix_user'], $_SESSION['elastix_pass'])
or $developerMode==true) {

0351 Grupo Consultora IT


Gral. Justo Jos de Urquiza 1456 (5000) Crdoba Argentina
+54 (351) 414 7444 | info@0351grupo.com | www.0351grupo.com

0351 Grupo | Consultora IT


$idUser = $pACL->getIdUser($_SESSION['elastix_user']);
if(!isset($_SESSION['elastix_user_permission'])){
if($developerMode!=true) {
$arrMenuFiltered=array();
//- TODO: Mejorar el siguiente bloque. Seguro debe de haber una
forma mas
//eficiente de hacerlo
//- Primero me barro todos los submenus
$arrSubmenu=array();
foreach($arrMenu as $idMenu=>$arrMenuItem) {
if(!empty($arrMenuItem['IdParent'])) {
if ($pACL->isUserAuthorizedById($idUser, "access",
$idMenu)) {
$arrSubmenu[$idMenu] = $arrMenuItem;
$arrMenuFiltered[$idMenu] = $arrMenuItem;
}
}
}
//- Ahora me barro el menu principal
foreach($arrMenu as $idMenu=>$arrMenuItem) {
if(empty($arrMenuItem['IdParent'])) {
foreach($arrSubmenu as $idSubMenu=>$arrSubMenuItem) {
if($arrSubMenuItem['IdParent']==$idMenu) {
$arrMenuFiltered[$idMenu] = $arrMenuItem;
}
}
}
}
} else {
$arrMenuFiltered = $arrMenu;
}
//Guardo en la session los menus q tiene con permisos el usuario
logoneado, esto se implement para mejorar
//el proceso del httpd ya que consumia mucho recurso. Reportado por
Ana Vivar <avivar@palosanto.com>
//Una vez q exista en la session solo se lo sacara de ahi y no se
vovera a consultar a la base.
$_SESSION['elastix_user_permission']= $arrMenuFiltered;
}
$arrMenuFiltered = $_SESSION['elastix_user_permission'];
//traducir el menu al idioma correspondiente
foreach($arrMenuFiltered as $idMenu=>$arrMenuItem) {
$arrMenuFiltered[$idMenu]
['Name']=isset($arrLang[$arrMenuItem['Name']])?$arrLang[$arrMenuItem['Name']]:
$arrMenuItem['Name'];
}
$oPn = new paloSantoNavigation($arrConf, $arrMenuFiltered, $smarty);
$smarty->assign("THEMENAME", $arrConf['mainTheme']);
$smarty->assign("ABOUT_ELASTIX",$arrLang['About Elastix']." ".
$arrConf['elastix_version']);
$smarty->assign("ABOUT_ELASTIX_CONTENT",$arrLang['About Elastix
Content']);
$smarty->assign("ABOUT_CLOSED",$arrLang['About Elastix Closed']);
$smarty->assign("LOGOUT",
$arrLang['Logout']);
//$menu= (isset($_GET['menu']))?$_GET['menu']:'';
if(isset($_GET['menu'])) $menu=$_GET['menu'];
elseif(empty($menu) and !empty($_SESSION['menu']))
$menu=$_SESSION['menu'];
else $menu='';
$_SESSION['menu']=$menu;

0351 Grupo Consultora IT


Gral. Justo Jos de Urquiza 1456 (5000) Crdoba Argentina
+54 (351) 414 7444 | info@0351grupo.com | www.0351grupo.com

0351 Grupo | Consultora IT


if (count($arrMenuFiltered)>0)
$smarty->assign("MENU", $oPn->showMenu($menu));
else
$smarty->assign("MENU", "No modules");
// rawmode es un modo de operacion que pasa directamente a la pantalla la
salida
// del modulo. Esto es util en ciertos casos.
if(isset($_GET['rawmode']) && $_GET['rawmode']=='yes') {
// Autorizacion
if($pACL->isUserAuthorizedById($idUser, "access", $oPn->currSubMenu)
or $developerMode==true) {
echo $oPn->showContent();
}
} else {
// Autorizacion
if($pACL->isUserAuthorizedById($idUser, "access", $oPn->currSubMenu)
or $developerMode==true) {
$smarty->assign("CONTENT",
$oPn->showContent());
}
$smarty->display("_common/index.tpl");
}
} else {
$smarty->assign("THEMENAME", $arrConf['mainTheme']);
$smarty->assign("PAGE_NAME",$arrLang['Login page']);
$smarty->assign("WELCOME",$arrLang['Welcome to Elastix']);
$smarty->assign("ENTER_USER_PASSWORD",$arrLang['Please enter your username
and password']);
$smarty->assign("USERNAME",$arrLang['Username']);
$smarty->assign("PASSWORD",$arrLang['Password']);
$smarty->assign("SUBMIT",$arrLang['Submit']);
$smarty->display("_common/login.tpl");
}
?>

Luego agregar al final del archivo jail.conf lo siguiente:


[loginelastix-iptables]
enabled
filter
action

= true
= loginelastix
= iptables-allports[name=LoginElastix, protocol=all]
sendmail-whois[name=ElastixLogin, dest=root@localhost,
sender=fail2ban@pbx.dyndns.org]
logpath = /var/log/loginElastix.log
maxretry = 3
bantime = 18000

Dentro de /etc/fail2ban/filter.d crear el archivo loginelastix.conf, y copiar


el siguiente contenido en el mismo:
#

0351 Grupo Consultora IT


Gral. Justo Jos de Urquiza 1456 (5000) Crdoba Argentina
+54 (351) 414 7444 | info@0351grupo.com | www.0351grupo.com

0351 Grupo | Consultora IT


#
# $Revision: 1
# Autor: Rodrigo Martin
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
#before = common.conf
[Definition]
# Option:
# Notes.:
#
#
#
# Values:
#

failregex
regex to match the password failures messages in the logfile. The
host must be matched by a group named "host". The tag "<HOST>" can
be used for standard IP/hostname matching and is only an alias for
(?:::f{4,6}:)?(?P<host>\S+)
TEXT

#[Wed, 07 Jul 2010 18:23:19 -0300] Notificacion 002: Password Incorrecto para
el Usuario: 'rerf' desde la ip '192.168.1.12'
failregex = Notificacion 002: Password Incorrecto para el Usuario: .* desde la
ip '<HOST>'
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =

Guardamos e Ingresamos a /var/log:


cd /var/log/

Crear el archivo loginElastix.log, aqu se escribirn los log de la pgina de ingreso


del elastix:
vi loginElastix.log

Lo dejamos vacio guardamos y cambiamos los permisos del mismo:


chmod 766 loginElastix.log

Podemos probar loguearnos en el elastix para ver si el archivo php esta escribiendo
el loginElastix.log registrando la actividad del loguin. Si todo va bien reiniciamos
fail2ban y probamos:
Service fail2ban restart

Para ver el estado de fail2ban podemos usar el comando:


fail2ban-client status
0351 Grupo Consultora IT
Gral. Justo Jos de Urquiza 1456 (5000) Crdoba Argentina
+54 (351) 414 7444 | info@0351grupo.com | www.0351grupo.com

0351 Grupo | Consultora IT


Para ver puntualmente el estado de los servicios que controla fail2ban utilizamos:
fail2ban-client status ssh-iptables (para ssh)
fail2ban-client status asterisk-iptables (para asterisk)
fail2ban-client status loginelastix-iptables (para login de elastix)

Fuentes:
Comunicaciones Unificadas con Elastix, vol. 1 y 2 Edgar Landivar
Elastix a Ritmo de Merengue Alfio Muoz
wiki.centos.org/es/HowTos/Network/SecuringSSH
www.fail2ban.org
blogs.elastix.org/es/2010/01/14/instalacion-de-fail2ban/
www.voztovoice.org/?q=node/135

0351 Grupo Consultora IT


Gral. Justo Jos de Urquiza 1456 (5000) Crdoba Argentina
+54 (351) 414 7444 | info@0351grupo.com | www.0351grupo.com

You might also like