28/6/09

Ubuntu como servidor de DNS

Vamos a ver como utilizar ubuntu como servidor de DNS en una red local, para poder emplear nuestros propios dominios en lugar de trabajar con IPs.

En primer lugar instalamos el paquete bind9.

apt-get install bind9

Editamos el fichero:

/etc/bind/named.conf.local

Y añadimos las zonas que queramos, por ejemplo para cafetera.com:

zone "cafetera.com" {
type master;
file "/etc/bind/db.cafetera";
};

Ahora copiamos db.local a db.cafetera.

cp db.local db.cafetera

Y lo editamos para dejarlo así:

;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA cafetera.com. root.cafetera.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS cafetera.com.
@ IN A 192.168.0.30
@ IN AAAA ::1
www IN A 192.168.0.30

Nótese la última línea, gracias a la cual podremos usar tanto cafetera.com como www.cafetera.com.

Reiniciamos el servicio:

/etc/init.d/bind9 restart

Y ya podemos configurar en los ordenadores de nuestra LAN la IP del ordenador que hemos configurado como servidor de DNS.

La información está obtenida de este tutorial, que a su vez es un resumen de este otro.

26/6/09

Simular instalación de paquetes con apt-get

Si no tenemos claro que dependencias tiene un determinado paquete, y a la configuración de que otros paquetes puede afectar, podemos simular su instalación con el parámetro -s.
Por ejemplo:

apt-get -s install PAQUETE

Nos mostrará un listado de las acciones que se realizarían: paquetes instalados, desinstalados y configurados.
Mucha más información sobre el uso de apt-get en esta página.

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.

8/6/09

Descomprimir archivos .cab

Con el comando cabextract podemos descomprimir archivos cab.

cabextract ARCHIVO.cab

Lo encontré aquí.

3/6/09

Port Forwarding

Interesante artículo sobre los túneles ssh.

Arrancar máquina VMW desde una iso

Supongamos que tenemos creada una máquina VMWare y queremos que arranque desde la iso de un cd, en lugar de un cd. Tenemos que editar el fichero .vmx de la máquina, localizar las líneas:

ide1:0.present = “true”
ide1:0.fileName = “auto detect”
ide1:0.deviceType = “atapi-cdrom”

comentarlas y sustituirlas por:

ide1:0.present = “true”
ide1:0.fileName = "IMAGEN.iso”
ide1:0.deviceType = “cdrom-image”

Me inspiré en este artículo.