# rm-rf.es

APF: Unable to load iptables module (ip_tables), aborting

En caso de recibir el siguiente error en el log de APF:

Unable to load iptables module (ip_tables), aborting.

El problema solamente lo he encontrado en instalaciones Fedora, y se soluciona modificando el siguiente parámetro en el fichero de configuración de apf:

fichero: /etc/apf/conf.apf

Parámetro:

MONOKERN="0" 

Lo pasamos a:

MONOKERN="1"

Y reiniciamos APF:

/etc/init.d/apf restart

El origen del problema reside en tener iptables compilado en el kernel de forma estática en lugar de como módulo.

PHP: Deshabilitar funciones peligrosas

A estas altura todos conocemos la potencia y versatilidad del lenguaje PHP. Existen no obstante ciertas funciones que utilizadas de forma incorrecta, o con fines maliciosos (exploits, crackeos, etc) comprometan seriamente la seguridad del servidor que está ejecutando el php. Estamos hablando de bugs en una versión de php instalada, bugs en la programación, mala securización de un servidor y muchos más puntos a tener en cuenta y que pueden provocar graves problemas de seguridad en una máquina.

Un buen punto sobre el que comenzar a securizar php, es deshabilitar ciertas funciones potencialmente peligrosas, y que si nuestra programación no utiliza, es 100% recomendable desactivar completamente. Para desactivar funciones, debemos listarla en el fichero de configuración de php (php.ini), utilizando la directiva “disable_functions“. El fichero php.ini normalmente se encuentra en /etc/php.ini, no obstante podéis buscarlo con el comando:

whereis php

Un ejemplo sobre el que podemos comenzar de funciones a deshabilitar es el siguiente:

disable_functions ="system,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,pcntl_exec"

En php.net podéis observar las tareas que desempeña cada una y revisar la viabilidad de su desactivación. En otros sitios web van más allá, y amplian mucho más la lista de funciones a desactivar:

disable_functions ="apache_child_terminate, apache_setenv, define_syslog_variables, escapeshellarg, escapeshellcmd, eval, exec, fp, fput, ftp_connect, ftp_exec, ftp_get, ftp_login, ftp_nb_fput, ftp_put, ftp_raw, ftp_rawlist, highlight_file, ini_alter, ini_get_all, ini_restore, inject_code, mysql_pconnect, openlog, passthru, php_uname, phpAds_remoteInfo, phpAds_XmlRpc, phpAds_xmlrpcDecode, phpAds_xmlrpcEncode, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_setuid, posix_uname, proc_close, proc_get_status, proc_nice, proc_open, proc_terminate, shell_exec, syslog, system, xmlrpc_entity_decode"

Aquí ya entran las necesidades de cada uno y la adaptación al entorno de trabajo. Os recomiendo investigar las funciones. Securizar este punto os puede librar de muchos disgustos.

Generador de passwords aleatorios

Ahora que en todos los medios se habla sobre el reciente ataque de phising a servidores de correo como Hotmail, en los que se han crackeado unas 10.000 contraseñas de cuentas de correo con una pésima seguridad en sus claves de acceso, os dejo un generador de claves aleatorias de números y letras (mayúsculas y minúsculas) escrito en bash:

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 10 | tr -d '\n'; echo 

Si queréis más de 10 caracteres en la clave, simplemente cambiad el número que le pasamos a “head”:

# strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 15 | tr -d '\n'; echo
admk1iEtH7umbo8

Por supuesto, hay muchas formas de hacerlo, esta es simplemente una de ellas.

Ah! Viene bien recordar esta cita:

Treat your password like your toothbrush. Don’t let anybody else use it, and get a new one every six months

Clifford Stoll

Bloquear direcciones IP en Windows 2003 Server

Al margen de opciones de terceros como software y aplicaciones de Firewall, disponemos de una potente y versátil opción integrada en el propio sistema operativo que nos va a permitir realizar filtrados de IP y rangos completos.

RRAS

Estoy hablando de RRAS (Servicio de enrutamiento y acceso remoto), que permite realizar configuraciones específicas para redes remotas, redes de acceso telefónico, VPN, etc. No voy a entrar en las configuraciones específicas de cada tipo de red, sino a explicaros como tener la opción de bloquear una IP o rango en Windows 2003 Server sin necesitar un software de firewall.

Para ello:

  1. Accedemos a Inicio —> Ejecutar —> MMC
  2. En el menú Archivo, añadimos un nuevo complemento, enrutamiento y acceso remoto.
  3. Una vez aparezca la sección de enrutamiento en la consola, podemos añadir el servidor, en este caso será el servidor local.
  4. Ahora hay que configurarlo y habilitar el enrutamiento. Para ello seguimos el asistente y adecuamos la configuración a la de nuestro servidor/red.
  5. Una vez realizado esto, en la pestaña general de la interfaz de red sobre la que queramos trabajar, podemos acceder a la sección de filtros de entrada y añadir las IPs o rangos que queremos bloquear según los criterios especificados.
  6. Una vez realizadas las configuraciones, arrancamos el “servidor” en la consola para que surtan efecto todas las configuraciones.

Snort: FATAL ERROR: OpenPcap() device eth0 open: bind: Network is down

Es común encontrar este error al tratar de arrancar Snort en una instalación nueva, es debido a que en el fichero de arranque (/etc/init.d/snort) por defecto tiene configurado para esnifar en la interfaz eth0, si utilizamos otra interfaz de red para ello encontraremos el error.

Para solucionarlo, acceded al script de configuración y cambiar el parámetro que indico a continuación especificando la interfaz de red que esnifará:

vi /etc/init.d/snort
----------------------------------------------------------
# Specify your network interface here
INTERFACE=eth0
----------------------------------------------------------

Una vez cambiado reiniciamos snort:

/etc/init.d/snort restart

SpamAssassin: Crear regla que examine las cabeceras en busca de una cadena

Spamassassin permite personalizar de una forma increible las reglas y filtros por defecto así como crear nuevas reglas. Normalmente las reglas base suelen ser efectivas para la mayor parte de servidores. Existe la posibilidad por ejemplo de que necesitemos buscar una cadena de texto, host, dirección de correo, etc dentro de TODAS las cabeceras de correo, no solo el FROM:, SUBJECT:, … Para ello podemos crear una nueva regla tal que así:

header LOCAL_DEMONSTRATION_ALL  ALL =~ /cadena\_a\sbuscar/i
score LOCAL_DEMONSTRATION_ALL   20.1

Esta regla es sencilla, le decimos que busque en todas (ALL) las cabeceras (header) una cadena concreta que construimos con la potencia de las expresiones regulares. Posteriormente le asignamos un puntaje spam de 20.

Podéis ubicar estas reglas personalizadas en /etc/mail/spamassassin/local.cf.

Esto es por supuesto la punta del iceberg, hay muchísimas más opciones en la creación de reglas anti-spam, os recomiendo revisar el Wiki de SpamAssassin donde lo explican perfectamente con ejemplos.

Encriptar mensajes de Gmail con FireGPG

Gmail Encrypt

Últimamente no tengo demasiado tiempo para publicar artículos, no obstante os voy a ir dejando enlaces curiosos y de utilidad, por supuesto seguiré posteando cuando sea posible, normalmente cada uno o dos días.

Hoy os dejo un enlace en el que explican como encriptar los mensajes que enviamos a través de Gmail, se hace con la extensión de Firefox FireGPG

Podéis leer el artículo si queréis pinchando aquí (Inglés)

Actualización del kernel para Red Hat Enterprise Linux 5

Red Hat ha publicado una actualización del kernel de Red Hat Enterprise Linux 5 que corrige diversas vulnerabilidades.

Los principales problemas corregidos son:

- Se ha corregido un fallo en la función ‘__scm_destroy’ de net/core/scm.c, que podría ser aprovechado por un atacante para causar una denegación de servicio a través de ciertas operaciones de conexión UNIX.

[Sigue leyendo en Hispasec.com...]