Entries for seguridad
Actualizaciones de seguridad de Ubuntu Server en el correo
20 August 2011
Acabo de terminar un script realizado en Python que comprueba actualizaciones de seguridad para Ubuntu Server y en caso de que tener instalado algún paquete, se enviará un mail a la dirección de correo indicada. Este script está pensado principalmente para administradores de sistemas, que como yo, no están dedicados a esta tarea y no disponen de mucho tiempo.
El equipo de Ubuntu utiliza un RSS para publicar las actualizaciones de seguridad, http://www.ubuntu.com/usn/rss.xml. Así que el script se conecta, parsea las entradas del RSS, selecciona los paquetes que son específicos para la versión de Ubuntu instalada, se comprueba si el paquete está instalado y se envía un mail con el listado de paquetes.
Comprobar ataques DOS en routers NetGear WNDR3300
3 August 2011
Hace unos días estuve revisando la configuración de un router NetGear WNDR3300 debido a un mal funcionamiento. La causa resultó ser una serie de ataques DOS que se estaban realizando al router. Estos ataques se estaban realizando desde la propia red local, así que decidí hacerme un script para detectarlos lo antes posibles.
LOG_FILENAME=router.log
USER=admin
PASS=password
IP=192.168.1.1
LOGURL=FW_log.htm
curl -s http://$USER:$PASS@$IP/$LOGURL | grep '^\[.*[0-9]$' > $LOG_FILENAME
attacks="`grep -i 'DOS' $LOG_FILENAME`"
if [ attacks != "" ] ; then
echo "$attacks"
# Esta parte no es necesaria, a no ser que se quiera
# hacer un tratamiento especial para cada IP de forma
# independiente, cómo averiguar la dirección MAC
ips=`grep -i 'DOS' $LOG_FILENAME | cut -f7 -d' ' | cut -f1 -d','`
for ip in $ips
do
echo "Hacer algo con esta $ip"
done
fi
Aquí podemos ver un ejemplo de la salida del script:
[DOS attack: STORM] attack packets in last 20 sec from ip [172.16.0.13], Sunday, Jul 24,2011 21:16:57
[DOS attack: STORM] attack packets in last 20 sec from ip [172.16.0.5], Sunday, Jul 24,2011 21:54:10
[DOS attack: STORM] attack packets in last 20 sec from ip [172.16.0.5], Sunday, Jul 24,2011 21:54:46
[DoS Attack: ACK Scan] from source: 50.99.45.xx, port 64976, Friday, July 29,2011 01:16:26
[DoS Attack: RST Scan] from source: 108.49.85.xx, port 56258, Friday, July 29,2011 01:16:21
Espero que sea de utilidad para alguien :)
Configurando avisos automáticos por correo en Fail2Ban
22 April 2011
Hace poco escribía sobre como instalar Fail2Ban para proteger nuestro sistema contra ataques por fuerza bruta. Un detalle interesante es que cada vez que se realice un bloqueo, se nos envíe un informe de forma automática con información de whois. Para ello debemos configurar lo siguiente:
# nano /etc/fail2ban/jail.conf
...
destemail = admin@micorreo.com
action = %(action_mw)s
...
Después, reiniciamos el servicio y listo:
# service fail2ban restart
Proteger tu servidor SSH contra ataques de fuerza bruta
15 April 2011
Hoy he estado revisando los logs de mi servidor, y me he dado cuenta que llevan 5 días de ataques por fuerza bruta para intentar tener un acceso SSH. Seguro que a alguien le resulta útil este script:
import re
exp = re.compile(r'.*[\s]*sshd\[.*?\]:[\s]*Invalid user.*')
f = open('/var/log/auth.log')
for line in f.readlines():
if exp.match(line):
print line[:-1]
Este script nos mostrará todos los accesos fallidos que hay en el servidor. Ahora vamos a ver la forma más sencilla de impedir este tipo de ataques: fail2ban.
Agujero de seguridad generando contenido dinámico para una ForeignKey
24 December 2010
Hace un rato os contaba como generar contenido dinámico para una ForeignKey de un formulario, y mientras escribía he descubierto un agujero de seguridad.
Si modificamos el HTML del formulario, donde se selecciona el usuario, podemos cambiar el identificador del usuario manualmente y se añadiría de encargado a un usuario no permitido.
La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.
