Archive for the ‘Seguridad’ Category

Evitar el ssh brute force

Thursday, September 13th, 2007

Uno de los principales problemas a los que se enfrentan los administradores que tienen máquinas conectadas directamente a internet es encontrarse a menudo con trazas de este tipo en el fichero auth.log

Sep 13 09:53:22 localhost sshd[22528]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=77.23.4.12 user=root

Normalmente son intentos de fuerza bruta automatizados para obtener nuestra password de root. Si no queremos que este tipo de ataque consuma nuestro ancho de banda o peor aun, puedan averiguar nuestras claves, podemos utilizar alguna de las siguientes medidas:

1. Cambiar el puerto de escucha del servidor ssh, para ello modificamos el fichero /etc/ssh/sshd_config y cambiamos donde pone Port 22 por el puerto que queramos.

2. Deshabilitar el acceso root por ssh. Editamos el fichero /etc/ssh/sshd_config y cambiamos PermitRootLogin Yes por No.

3. Si tenemos instalado iptables podemos limitar el numero de conexiones por tiempo al servidor ssh. Por ejemplo podemos limitar a 6 intentos de conexion por minuto. Cosa que no nos afectara si conocemos la clave. Para ello ejecutamos:

iptables -A INPUT -i eth0 -p tcp –dport 22 -m state –state NEW -m recent –set –name SSH
iptables -A INPUT -i eth0 -p tcp –dport 22 -m state –state NEW -m recent –update –seconds 60 –hitcount 6 –rttl –name SSH -j DROP

4. Otra alternativa es utilizar el software portsentry, para quien no lo haya utilizado, es un demonio que escucha en los puertos que digamos y bloquea la ip del que intente conectarse a ese puerto. Si tenemos debian tecleamos:

apt-get install portsentry

Una vez instalado editamos el fichero /etc/portsentry/portsentry.conf y cambiamos el parámetro TCP_PORTS por:

TCP_PORTS=”22″

y comentamos la línea del párametro UDP_PORTS. En la sección Dropping Routes podemos decirle que añada una regla en el iptables para bloquear la ip del atacante, para ello descomentamos la siguiente línea y comentamos la que estaba antes ya que solo puede haber una variable KILL_ROUTE definida.

# iptables support for Linux
KILL_ROUTE=”/sbin/iptables -I INPUT -s $TARGET$ -j DROP”

Ahora reiniciamos el servicio con el comando

/etc/init.d/portsentry restart

A partir de ahora cada vez que alguien intente conectar al puerto 22 quedará registrado en el fichero syslog y su ip será bloqueada.

Espero que os resulte útil ;)

Instalar Nessus en Debian Etch

Wednesday, September 5th, 2007

Nessus es un popular auditor de seguridad para servidores. Con el podrás testear si tu servidor tiene algun punto débil utilizando plugins que emulan diversos ataques y chequean vulnerabilidades. Esta formado por un servidor que es el que realiza los chequeos y un cliente qu es el que nos permite configurar los tests que vamos a realizar y nos devuelve los resultados.

Para instalar ambas partes en Etch, utilizando nuestro querido apt-get escribimos lo siguiente:

apt-get install nessusd
apt-get install nessus
apt-get install nessus-plugins

Una vez instalado necesitamos crear un usuario para poder realizar las pruebas.

Ejecutamos:

nessus-adduser

Y escribimos el login y el password para el nuevo usuario.

Si todo ha ido bien, en aplicaciones > internet ya debería aparecer el icono de nessus. Lo lanzamos y en la ventana de host tenemos que configurar el login y la clave del usuario para poder conectarnos al servidor y realizar las pruebas.

pantallazo-nessus-setup.png

Es recomendabe lanzar de vez en cuando el comando nessus-update-plugins para actualizar los plugins.

Y con eso ya tendriamos nessus funcionando. ;)

Cómo ocultar la versión de PHP en Apache

Monday, August 20th, 2007

Aunque en el servidor pongamos la directiva “ServerTokens Prod”, que oculta la versión de Apache y php en ciertas cabeceras y en los mensajes de error, la versión de PHP se puede seguir viendo en una de las cabeceras.

HEAD http://apache-es.org/index.php
200 OK
Connection: close
Date: Fri, 16 Jun 2006 01:16:30 GMT
Server: Apache
Content-Type: text/html; charset=UTF-8
Client-Date: Fri, 01 Jan 2007 21:48:13 GMT
Client-Peer: 192.168.0.102:80
Client-Response-Num: 1
X-Powered-By: PHP/5.1.2-1+b1 

Para ocultarlo, basta con ir al fichero php.ini, y poned a “off” la línea “expose_php = On”. Esta línea viene activada en la mayoría de las distribuciones, y en las compilaciones de PHP.

Via apache-es

Denegar Ping con Iptables

Friday, March 23rd, 2007

Si queremos denegar el ping en algun interfaz de red con iptables tenemos que pasarle los siguientes parametros, para ello podemos crear un script con el siguiente contenido:

#/bin/bash
iptables -A INPUT -i eth0 -p icmp –icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -i eth0 -p icmp –icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -i eth0 -p icmp –icmp-type echo-reply -j ACCEPT
iptables -A INPUT -i eth0 -p icmp -j DROP

Tambien podemos eliminar el -i eth0 y bloquear el ping en todas las interfaces de red.

Otra forma de hacerlo es poner el valor “icmp_echo_ignore_all” a 1 , para ello puedes utilizar el siguiente comando:

echo “1″ > /proc/sys/net/ipv4/icmp_echo_ignore_all

Informacion obtenida de unixmexico.org

Cambiar la direccion MAC

Thursday, March 1st, 2007

Puede haber razones muy diversas para decidir camuflar la MAC (es decir, la dirección Ethernet de los dispositivos de red, grabada “a fuego” en su hardware), pero la forma de lograrlo es muy diferente según el sistema operativo de que se trate…

Supongamos que 00:00:00:AA:AA:AA sea la MAC deseada y vayamos por partes, sin utilizar en ningún caso aplicaciones ajenas al propio sistema operativo:

Linux

Basta teclear estos tres comandos:

ifconfig eth0 down
ifconfig eth0 hw ether 00:00:00:AA:AA:AA
ifconfig eth0 up

BSD

El proceso a seguir es muy similar al visto para Linux:

ifconfig xl0 down
ifconfig xl0 link 00:00:00:AA:AA:AA
ifconfig xl0 up

Mac OS X

Ojo: si la versión es anterior a Tiger antes hay que aplicar un parche al kernel.

sudo ifconfig en0 lladdr 00:00:00:AA:AA:AA

Windows 2000/XP (método A)

En Windows has de saber primero si tu dispositivo de red soporta o no la clonación de MAC. Si no es ése el caso, has de ir al método B.

Inicio -> Configuración -> Panel de Control -> Redes
Click derecho sobre el NIC cuyo MAC se quiere cambiar -> Propiedades.
General -> Configuración -> Avanzada.
Propiedad -> Dirección de Red (o Dirección administrada localmente).
Valor -> Teclear la nueva MAC (sin los : de separación).
Ventana de comandos -> teclear ipconfig /all (o net config rdr) para comprobar si se ha realizado o no el cambio.

Si el cambio se ha realizado, rearrancar la máquina. Si no, probar el método B.

Windows 2000/XP (método B)

Inicio -> Ejecutar -> Teclear regedt32.
Ir a HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Control\Class\
{4D36E972-E325-11CE-BFC1-08002BE10318}
Doble clic
Buscar la clave DriverDesc del inyterfaz que se quiere modificar.
Editar (o añadir) la clave de cadena (tipo REG_SZ) NetworkAddress para que contenga la nueva MAC.
Deshabilitar y volver a habilitar el interfaz cambiado (o rearrancar el sistema).

Se trata de una operación nada habitual -cierto- pero que obliga a replantearse si Windows resulta siempre el sistema más amistoso con el usuario.

Nota: Esta información ha sido obtenida de kriptopolis.