Una de las formas más simples (y útiles) de monitorizar que nuestro sitio web no se ha caido y sigue online es mediante el uso de herramientas externas que regularmente comprueban que nuestra página web es accesible desde internet.
Una vez nos hallamos registrado en esta aplicación podremos, de manera gratuita, monitorizar una página web de nuestra elección, y pingdom nos enviará un email (también se puede notificar a traves de SMS, twitter, aplicaciones de iPhone y android).
Sólo tenemos que poner la dirección de nuestra página (www.nioos.com en nuestro caso) y el intervalo de comprobación, y pingdom se encargará de enviarnos un email cuando la página esté caida.
Las cosas mas sencillas suelen ser las más útiles, ¿verdad?
Cuando tenemos un servidor en internet es muy común sufrir a diario
algún tipo de ataque externo automatizado que trata de acceder y
controlar nuestra máquina linux.
Podemos evitar parte de estos ataques instalando la utilidad fail2ban,
que permite escanear los ficheros logs del sistema, detecta los ataques
sufridos y toma automáticamente medidas para evitarlos, por ejemplo, baneando la IP de la máquina atacante durante cierto tiempo.
La instalación se puede hacer con apt-get.
apt-get install fail2ban
Ahora podemos habilitar las reglas de escaneo de logs que queramos modificando el fichero de configuración /etc/fail2ban/jail.conf.
Aqui podremos, por ejemplo, cambiar la dirección del correo electronico de destino de las notificaciones, el contenido del correo, etc.
destemail = correo.de.destino@dominio.com mta = mail action = %(action_mwl)s
La configuración por defecto escanea el fichero /var/log/auth.log que, entre otras cosas, usa el demonio sshd para escribir el log de los intentos fallidos de login para que, usando iptables, restringa los accesos desde la IP atacante y, a la vez, nos envíe un correo electronico avisándonos (un ataque de fuerza bruta muy habitual en internet).
La mayoría de las veces se trata de máquinas que han sido infectadas por
algún troyano sin que sus dueños sepan que están siendo usadas para
atacar a otras máquinas.
Si podeis poneros en contacto con el dueño y avisarle os lo agradecerá enormemente.
Cuando tenemos un servidor en internet es muy común sufrir a diario algún tipo de ataque externo automatizado que trata de acceder y controlar nuestra máquina linux.
Podemos evitar parte de estos ataques instalando la utilidad fail2ban, que permite escanear los ficheros logs del sistema, detecta los ataques sufridos y toma automáticamente medidas para evitarlos, por ejemplo, baneando la IP de la máquina atacante durante cierto tiempo.
Podemos descargar fail2ban directamente en nuestra máquina linux desde su página en github.
También es interesante instalar las librerías de gamin en nuestro sistema, para facilitar la tarea de monitorización de los ficheros logs.
Esto se hace con el comando
yum install gamin
Una vez descargado el fichero fail2ban.0.8.6.tar.gz lo podemos descomprimir usando el comando
tar xvfz fail2ban.0.8.6.tar.gz
La instalación consiste ahora en ejecutar el script de instalación que se encuentra en la carpeta creada por la descompresión.
python setup.py install
Una vez hecho esto podemos comprobar que la instalación ha sido correcta ejecutando el comando
fail2ban-client -h
que mostrará la ayuda del comando.
Si queremos que fail2ban se arranque al iniciar la máquina, podemos copiar el fichero redhat-initd que está dentro del directorio files al directorio de los scripts de arranque de linux CentOS.
cp files/redhat-initd /etc/init.d/fail2ban
Recordar que debemos darle los permisos adecuados
chmod 755 /etc/init.d/fail2ban
y que debemos usar la utilidad chkconfig para crear los enlaces simbólicos usados en el arranque automático.
chkconfig --add fail2ban
Fail2ban también genera su propio fichero log que es conveniente rotar con logrotate.
Para esto podemos crear el fichero /etc/logrotate.d/fail2ban con el siguiente contenido.
Ahora podemos habilitar las reglas de escaneo de logs que queramos modificando el fichero de configuración /etc/fail2ban/jail.conf.
Por ejemplo, podemos habilitar el escaneo del fichero /var/log/secure que, entre otras cosas, usa el demonio sshd para escribir el log de los intentos fallidos de login para que, usando iptables, restringa los accesos desde la IP atacante y, a la vez, nos envíe un correo electronico avisándonos (un ataque de fuerza bruta muy habitual en internet).
Por último, debemos instalar el comando whois en nuestra máquina para recibir más información sobre la IP atacante.
yum install jwhois
La mayoría de las veces se trata de máquinas que han sido infectadas por algún troyano sin que sus dueños sepan que están siendo usadas para atacar a otras máquinas.
Si podeis poneros en contacto con el dueño y avisarle os lo agradecerá enormemente.
Ya hemos visto anteriormente como podemos usar Gmail como servidor de correo electronico para nuestro dominio,
pero también es posible enviar correos electrónicos directamente desde
nuestro sistema linux Debian desde línea de comandos usando Gmail como relay de correo si instalamos la utilidad "mailx" (también conocida como "nail").
Podemos usar apt-get para instalarla.
apt-get install heirloom-mailx
La configuración general de "mailx" se realiza en el fichero /etc/nail.rc.
Aquí añadiremos las siguientes líneas para hacer que "mailx" use Gmail como nuestro relay de correo.
set smtp-use-starttls
set ssl-verify=ignore
set smtp-auth=login
set smtp=smtp://smtp.gmail.com:587
set from="tu.direccion.de.correo@tu.dominio"
set smtp-auth-user=tu.direccion.de.correo@tu.dominio
Ya hemos visto anteriormente como podemos usar Gmail como servidor de correo electronico para nuestro dominio, pero también es posible enviar correos electrónicos directamente desde nuestro sistema linux CentOS desde línea de comandos usando Gmail como relay de correo si instalamos la utilidad "nail" (también conocida como "mailx").
Una vez descargado el paquete lo podemos instalar usando "rpm".
rpm -ivh nail-12.3-4.el5.kb.i386.rpm
Lo más cómodo ahora es crear algunos links simbólicos para que las aplicaciones que habitualmente usan el comando "mail" de linux empiecen a usar nuestro nuevo comando "nail".
ln -s /usr/bin/nail /usr/bin/mail
ln -s /usr/bin/nail /bin/mail
Por último, la configuración general de "nail" se realiza en el fichero /etc/nail.rc.
Aquí añadiremos las siguientes líneas para hacer que "nail" use Gmail como nuestro relay de correo.
set smtp-use-starttls
set ssl-verify=ignore
set smtp-auth=login
set smtp=smtp://smtp.gmail.com:587
set from="tu.direccion.de.correo@tu.dominio"
set smtp-auth-user=tu.direccion.de.correo@tu.dominio
Con el paso del tiempo el tamaño y cantidad de ficheros logs de tomcat se vuelve muy elevado.
Podemos borrar estos ficheros logs haciendo uso de "cron" y del comando "find".
Esto lo hacemos modificando el fichero shell script (en nuestro el fichero "tomcat.log.cron") del directorio "/etc/cron.daily".
El comando "find" busca ficheros (-type f) en el directorio "/opt/tomcat/logs/" con la terminación txt.gz ó log.gz (-name '*.txt.gz') que hallan sido modificados hace más de 30 días (-mtime +30) aproximadamente, y ejecutar (-exec) sobre ellos el comando de borrado rm.
Esto mismo se puede hacer con cualquier tipo de fichero log, no es necesario que sea de tomcat.
Una forma sencilla de ahorrar una espacio en el disco de nuestro sistema.
Con el paso del tiempo el tamaño y cantidad de ficheros logs de tomcat se vuelve muy elevado.
Podemos comprimir estos ficheros logs haciendo uso de "cron" y del comando "find".
Esto lo hacemos creando un fichero shell script en el directorio "/etc/cron.daily" para que "cron" los ejecute diariamente (en nuestro caso lo llamaremos "tomcat.log.cron").
El comando "find" busca ficheros (-type f) en el directorio "/opt/tomcat/logs/" con la terminación txt ó log (-name '*.txt') que hallan sido modificados hace más de 2 días (-mtime +2) aproximadamente, y ejecuta (-exec) sobre ellos el comando de compresión gzip.
Esto mismo se puede hacer con cualquier tipo de fichero log, no es necesario que sea de tomcat.
Una forma sencilla de ahorrar una espacio en el disco de nuestro sistema.