25/6/09

Borrar por fecha

Mi compañero del curro me pasó hace tiempo este práctico comando, junto a la explicación de cada uno de los parámetros, para borrar ficheros con más de 30 días de antigüedad. ¡Muchas gracias!

Aquí tienes un comando para que te borre los ficheros modificados hace más 30 dias.

find . -maxdepth 2 -ctime +30 -exec rm -f {} + \;

maxdepth es para indicar hasta que profundidad puede llegar desde el directorio que estas

ctime es n*24 horas, n es el numero de días que indicas

exec ejecuta lo que quieras

{} find sustituye esto por el resultado que devuelve

+ es obligatorio como parametro del exec

\ fin de comando

; creo que es preciso tambien.

Subir o bajar el volumen por consola

Con los siguientes comandos podemos subir o bajar el volumen del sistema:

Para subir un 10% el volumen:

amixer sset Master 10%+

Y para bajarlo:

amixer sset Master 10%-

Esto puede ser útil para emplearlo en un script o asignarlo a una combinación de teclas.
Lo vi aquí.

Borrar mensajes de la cola de correo

Con el siguiente script podemos borrar de la cola de correo de nuestro servidor los mensajes de determinado usuario.
Por ejemplo para borrar los de spam@basura.com

for i in `mailq | grep spam@basura.com | cut -f1 -d*`; do postsuper -d $i; done

En ocasiones esto nos puede ser muy útil para aliviar la cola de correo.

Comparar ficheros gráficamente

Con Meld, podemos comparar ficheros de texto y además sustituir las diferencias de uno a otro. Un práctico programa que podemos encontrar en los repositorios de ubuntu.

24/6/09

Sugerencias tras una nueva instalación de Ubuntu

¡Muy práctico ToDo trás una nueva instalación de Ubuntu!

Cambiar nombre host

Para cambiar el nombre del host, utilizamos el comando:

hostname NUEVONOMBRE

Si lo introducimos sin argumentos, nos muestra el nombre de host actual, si le pasamos un argumento, lo cambia.

También debemos actualizar las referencias al anterior nombre de host en los ficheros:

/etc/hostname
/etc/hosts

Lo vi aquí.

22/6/09

Filtrar IPs

Vamos a ver como filtrar con iptables las IPs de spammers y hackers que pretendan atacar a nuestro servidor.

Una vez hayamos detectado la IP atacante, por ejemplo con logcheck, crearemos una regla para filtrar dicha IP.

Por ejemplo para filtrar la ip 99.99.99.99:

iptables -A INPUT -s 99.99.99.99 -j DROP

Podemos eliminar una línea cambiando el parámetro -A por -D.

Para listar todas las reglas creadas usamos:

iptables -L

Estas reglas se pierden al reiniciar el sistema, por lo que vamos a salvarlas a un fichero y hacer que se carguen en el arranque:

Si es necesario creamos el directorio /var/lib/iptables

Comprobamos que están activas las reglas deseadas con iptables -L

Las volcamos a un fichero con:

iptables-save > /var/lib/iptables/iptablesReglas

Ahora crearemos un script en el directorio:

/etc/network/if-up.d

Lo llamaremos por ejemplo inicioIptables y el contenido será el siguiente:

#!/bin/sh
/sbin/iptables-restore < /var/lib/iptables/iptablesReglas

Hay que darle permisos de ejecución al fichero: chmod a+x inicioIptables

Con esto en cada inicio del sistema, se cargaran las reglas para iptables.

Seguidamente vamos a configurar el sistema para que guarde en un log registro de los accesos denegados:

Editamos: /etc/syslog.conf

Y añadimos la línea:

kern.warning /var/log/iptables.log

Debemos añadir este log a los logs monitorizados por logcheck.

Ahora lo que hay que hacer es para cada ip bloqueada, crear dos reglas iptables: una para guardar el registro y la otra para rechazar la conexión.

Por ejemplo:

iptables -A INPUT -s 99.99.99.99 -j LOG --log-prefix 'IP BLOQUEADA ' --log-level 4
iptables -A INPUT -s 99.99.99.99 -j DROP

Para reiniciar el servicio de monitorización: /etc/init.d/sysklogd restart
(Si tras reiniciar el servicio, no registra los accesos denegados en el log, probar reiniciando todo el sistema).

15/6/09

Monitorizar logs con logcheck

Usaremos logcheck para monitorizar los logs del apache.

Para instalarlo:

apt-get install logcheck

Configurarlo:

Editar /etc/logcheck/logcheck.conf

e indicar en la línea

SENDMAILTO="correo@electron.ico"

la dirección donde queremos recibir las notificaciones

Editar /etc/logcheck/logcheck.logfiles

y añadir las líneas:

/var/log/apache2/access.log
/var/log/apache2/error.log

Para programar su ejecución:

editar /etc/cron.d/logcheck

y modificar la frecuencia que deseemos en:

5 * * * * logcheck if [ -x /usr/sbin/logcheck ]; then nice -n10 /usr/sbin/logcheck; fi

Monitorizar logs con logwatch

logwatch realiza un chequeo de los logs del sistema y envía un email con el resultado.

Para instalarlo:

apt-get install logwatch

Configurarlo:

copiar el fichero /usr/share/logwatch/default.conf
a /etc/logwatch/conf/logwatch.conf

y editar este último, realizando los siguientes cambios si es necesario:

Print = No
Output = mail
MailTo = correo@electron.ico
Range = Today
Detail = High

Si al ejecutar logwatch da un error crear el directorio:

mkdir /var/cache/logwatch

Por último para programar su ejecución diaria añadir a /etc/crontab

0 6 * * * root /usr/sbin/logwatch

Chequeo de actualizaciones con apticron

El paquete apticron chequea diariamente las actualizaciones disponibles para el sistema y las descarga y envía un mail notificándolo.

Para instalarlo:

apt-get install apticron

Configurarlo:

Editar /etc/apticron/apticron.conf

e indicar en la línea

EMAIL="correo@electron.ico"

la dirección en la que queremos recibir las notificaciones.