Limpiar la memoria cache en un servidor linux

Un buena manera de limpiar la cache de memoria sin usar es la siguiente, puede usarse en casi cualquier servidor linux, en mi caso yo uso Centos.

Añade la siguiente linea al cron de la cuenta de Root ejecuntado el comando “crontab -e” hay que entrar por ssh o por medio de la consola de comando si estamos trabajando con un servidor en local.

[bash]
0 * * * * /root/limpiacache.sh
[/bash]

Crea un archivo en la carpeta /root/ con el nombre ‘limpiacache.sh’ y añade las dos siguientes líneas

[bash]
#!/bin/sh
sync; echo 3 > /proc/sys/vm/drop_caches
[/bash]

Dale persmisos de escritura al archivo:

[bash]
chmod +x limpiacache.sh
[/bash]

Algunos trucos para trabajar con el Firewall en Centos

Ver las entradas del firewall

Eliminar entradas del firewall si queremos hacer pruebas es muy sencillo. Para mostrar todas las reglas del firewall con el fin de ver quien tenemos baneados usamos:

[bash]iptables -L[/bash]

nos arrojaría un resultado parecido al siguiente

[bash]
Chain fail2ban-postfix (1 references)
target prot opt source destination
RETURN all — anywhere anywhere

Chain fail2ban-sasl (1 references)
target prot opt source destination
DROP all — xxx.xxx.xxx.xxx anywhere
RETURN all — anywhere anywhere
[/bash]

Eliminar entradas del firewall

Para eliminar la entrada que veamos oportuna podemos hacerlo con este comando substituyendo el nombre del filtro y la dirección ip:

[bash]iptables -D fail2ban-sasl -s xxx.xxx.xxx.xxx -j DROP[/bash]

Trucos para Fail2Ban en Centos

Fail2Ban es una excelente herramienta que se programa para revisar los logs de los distintos programas a intervalos periódicos, si encuentra a través de sus filtros registros que pueden ser sospechosos podemos tomar medidas de seguridad para bloquear el servicio a la ip en cuestión, incluso bloquear por X tiempo cualquier petición de dicha ip sospechosa, etc.

Instalar Fail2ban

Unos sencillos comandos para descargar, descomprimir, installar y configurar… merece la pena.

[bash]
wget https://github.com/downloads/fail2ban/fail2ban/fail2ban_0.8.7.1.orig.tar.gz
tar xzvf fail2ban_0.8.7.1.orig.tar.gz
cd fail2ban-0.8.7.1/
service fail2ban stop
python setup.py install
vi /etc/fail2ban/jail.conf
[/bash]

Configurar Fail2ban

Estos son algunos de los filtros que podemos activar en función de los servicios que corriendo en el servidor:
Para ello editamos el archivo jail.conf, segun la instalacion por defecto de cada distribucion el fichero se encuentra en /etc/fail2ban/jail.conf

[bash]

[ssh-iptables]

enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=Fail2banSSH, dest=admin@email.com, sender=root@server.com]
logpath = /var/log/secure
maxretry = 2

[proftpd-iptables]

enabled = true
filter = proftpd
action = iptables[name=ProFTPD, port=ftp, protocol=tcp]
sendmail-whois[name=Fail2banProftp, dest=admin@email.com, sender=root@server.com]
logpath = /var/log/proftpd/ftp.log
maxretry = 3

[sasl-iptables]

enabled = true
filter = sasl
backend = polling
action = iptables[name=sasl, port=smtp, protocol=tcp]
sendmail-whois[name=Fail2banSASL, dest=kikopc@gmail.com, sender=root@s1.ksirve.com]
logpath = /var/log/maillog

[dovecot]

enabled = true
filter = dovecot
action = iptables-multiport[name=Dovecot, port="110,995,143,993,25", protocol=tcp]
sendmail-whois[name=Fail2Dovecot, dest=admin@email.com, sender=root@server.com]
logpath = /var/log/maillog
/var/log/secure
maxretry = 3

[postfix-tcpwrapper]

enabled = true
filter = postfix
action = iptables-multiport[name=postfix, port="110,995,143,993,25", protocol=tcp]
sendmail[name=Fail2banPostfix, dest=admin@email.com, sender=root@server.com]
logpath = /var/log/postfix.log
/var/log/maillog
bantime = 30000

[/bash]

Configurar filtros en fail2ban

Cada uno deberá configurar los servicios que vea oportunos, también debemos asegurarnos de que los filtros funcionan, los filtros se encuentran en /etc/fail2ban/filter.d/ los podemos encontrar en formato Nombre_Filtro.conf. Un ejemplo que me he encontrado en un Centos usando Virtualmin es el filtro SASL por defecto viene erróneo, hay que ajustar el failregex dentro del archivo que podemos encontrar en /etc/fail2ban/filter.d/sasl.conf

[bash]
failregex = : warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed$
#cambiamos por
failregex = (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed

[/bash]

Si queremos probar si funciona correctamente podemos aplicar el filtro con el siguiente comando

Comprobar un filtro

[bash]

fail2ban-regex /var/log/maillog /etc/fail2ban/filter.d/sasl.conf

[/bash]

Para hacer reportes

[bash]

#resumen de ips y reglas
grep "Ban " /var/log/fail2ban.log | awk -F[\ \:] ‘{print $10,$8}’ | sort | uniq -c | sort -n
#Reporte del dia en curso
grep "Ban " /var/log/fail2ban.log | grep `date +%Y-%m-%d` | awk ‘{print $NF}’ | sort | awk ‘{print $1,"("$1")"}’ | logresolve | uniq -c | sort -n
#Resumen de vida de fail2ban
zcat /var/log/auth.log* | grep ‘Failed password’ | grep sshd | awk ‘{print $1,$2}’ | sort -k 1,1M -k 2n | uniq -c

[/bash]

Si quereis ver como configurar el firewall con algunos sencillos comandos, aqui los teneis.