Mostrando entradas con la etiqueta centos. Mostrar todas las entradas
Mostrando entradas con la etiqueta centos. Mostrar todas las entradas

2012-07-09

Crear un nuevo volumen logico en linux CentOS

Un volumen lógico tiene unas propiedades muy parecidas a una partición normal y corriente, pero con algunas ventajas, como la facilidad a la hora de hacer backups.

Para crear un volumen lógico nuevo en nuestra máquina linux CentOS, lo primero que debemos hacer es comprobar si tenemos espacio disponible en alguno de nuestros grupos de volúmenes.

Esto lo podemos hacer con el comando
vgdisplay
que nos mostrará los nombres de los grupos de volúmenes y el espacio disponible en cada uno de ellos.

Para crear el volumen lógico usaremos el comando "lvcreate". Si, por ejemplo, queremos crear un nuevo volumen lógico que se llame "dbdata01" usando el grupo de volúmenes "vg00" con una capacidad de 4 Gb usaremos el comando
lvcreate -n dbdata01 -L 4G vg00

Una vez creado el nuevo volumen lógico podremos ver sus propiedades (y las de los demás volúmenes lógicos que tengamos) con el comando
lvdisplay

Ahora sólo debéis crear un sistema de ficheros sobre el nuevo volumen lógico (formatearlo con "mkfs") y ya podéis empezar a usarlo.

Sencillo y útil, ¿no es así?


2012-07-07

Añadir un disco a un volumen logico de linux CentOS

Con el paso del tiempo la máquina que instalamos con linux CenOS se nos habra ido quedando sin espacio en disco.

Podemos añadir un nuevo disco a nuestro sistema para conseguir más espacio.

Usaremos este disco nuevo para extender el espacio disponible en nuestro volumen lógico.

Una vez añadido el nuevo disco debemos crear un nuevo volumen físico sobre él.

Para saber a qué dispositivo corresponde el nuevo disco que hemos añadido podemos usar el comando

fdisk -l
que nos mostrará los dispositivos (discos) disponibles.
El que no contiene ninguna partición es nuestro nuevo disco (por ejemplo /dev/sdb)

Para crear el nuevo volumen físico usaremos el comando
pvcreate /dev/sdb

Podemos visualizar los volumenes físicos de nuestro sistema con el comando
pvdisplay

Ahora debemos extender un grupo de volumenes usando el nuevo volumen físico que acabamos de crear.

Para saber cuales son los grupos de volumenes disponibles en nuestro sistema usaremos el comando
vgdisplay

Si el grupo de volumenes que queremos extender es, por ejemplo, VolGroup00, debemos usar el comando
vgextend VolGroup00 /dev/sdb

Una vez que el grupo de volumenes tiene más espacio disponible podemos extender el volumen lógico que queramos.

Para saber los volumenes lógicos que tenemos disponibles en nuestro sistema podemos usar el comando
lvdisplay

Si quisieramos, por ejemplo, añadir 2 Gb más de capacidad al volumen  lógico /dev/VolGroup00/LogVol00 tendríamos que usar el comando
lvextend -L +2GB /dev/VolGroup00/LogVol00

Por último, para que el nuevo espacio añadido al volumen lógico esté disponible para su uso debemos usar el comando resize para agrandar la partición correspondiente.
resize2fs /dev/VolGroup00/LogVol00

2012-02-04

Comparativa - Tomcat en CentOS y Debian

¿Que sistema linux es capaz de tratar más peticiones por segundo?

Para esta comparativa no se ha realizado ninguna prueba exhaustiva, simplemente se ha usado el mismo hardware (virtual), las mismas versiones de Tomcat y de java, y la misma página web servida por ambos entornos.

La comparativa se ha realizado usando 50000 peticiones simulando hasta 5 usuarios concurrentes con ApacheBench.

Las características de las máquinas son:
  • 256 MB RAM
  • 1 CPU virtual
La versión de java usada ha sido jdk1.6.0_26

La versión de Tomcat ha sido la 7.0.19

La versión del kernel de la máquina CentOS ha sido 2.6.18-274.17.1.el5
La versión del kernel de la máquina Debian ha sido 2.6.32-5-686

Estos son los resultados obtenidos:

ConcurrenciaPeticiones por Segundo CentOSPeticiones por Segundo Debian
11778,771127,55
22122,021389,49
32173,911476,01
42216,071544,4
52178,351493,23

Los números obtenidos no sirven como una prueba de rendimiento real del sistema, pero son válidos para realizar una comparativa.

Lo que sí podemos ver de forma muy clara en el gráfico es que Tomcat corriendo en linux CentOS sirve un mayor número de peticiones por segundo que cuando corre en linux Debian.

2012-01-16

Monitorizar el tráfico de las tarjetas de red con IPTraf en linux CentOS

IPTraf es una aplicación que nos proporciona estadísticas sobre las tarjetas de red del sistema.

Su instalación es muy sencilla

yum install iptraf

La aplicación se arranca ejecutando el comando

iptraf

y es muy simple de utilizar.

Es especialmente útil si nuestro sistema usa discos iSCSI o similar (como es el caso de las máquinas virtuales de Amazon EC2) y sospechamos que tenemos un cuello de botella en el rendimiento de nuestro sistema debido a la red.


2012-01-15

Monitorizar tomcat con monit en linux CentOS

Monit nos permite también monitorizar procesos o servicios específicos (anteriormente vimos como se puede monitorzar el espacio en disco ó la CPU del sistema).

Podemos comprobar si están siendo ejecutados, si consumen demasiada CPU ó memoria, si están escuchando en el puerto TCP/IP adecuado, etc.

Para hacer esto lo más simple es usar el PID del proceso.

Para tomcat podemos definir el fichero PID definiendo la variable de entorno CATALINA_PID al nombre de un fichero que contendrá el PID de tomcat.

El script de arranque de tomcat "/etc/init.d/tomcat" quedará entonces:

#!/bin/sh
#
# chkconfig: 2345 20 80
# description: Tomcat
#
start()
{
        su - tomcat -c "export CATALINA_PID=/opt/tomcat/logs/tomcat.pid;/opt/tomcat/bin/startup.sh"
        iptables -t nat --append PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
}
stop()
{
        su - tomcat -c "export CATALINA_PID=/opt/tomcat/logs/tomcat.pid;/opt/tomcat/bin/shutdown.sh"
        iptables -t nat --flush
}
case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        *)
                echo $"Usage: $0 {start|stop}"
                exit 1
esac

Para monitorizar tomcat desde monit ahora debemos añadir la siguiente regla al fichero de configuración "/opt/monit/conf/monitrc":

check process tomcat with pidfile /opt/tomcat/logs/tomcat.pid
  if failed port 8080 then alert

Esta regla nos alertará por email si tomcat no está corriendo (si el PID del fichero no está en memoria) y si ese proceso no tiene abierto el puerto 8080.

2012-01-08

Monitorizar el espacio libre en disco con monit en linux CentOS

Con monit, además de monitorizar la memoria y la CPU de nuestra máquina linux CentOS, podemos monitorizar el espacio en disco de nuestro sistema.

Lo primero es averiguar el nombre de los dispositivos que queremos monitorizar.
Para esto podemos usar el comando
df -h
que devuelve el nombre de cada dispositivo de almacenamiento y el espacio libre que queda disponible.

Ahora podemos editar el fichero de configuración de monit (/opt/monit/conf/monitrc) para añadir las siguientes líneas:
check filesystem fs01 with path /dev/mapper/VolGroup00-LogVol00
    if space usage > 80% for 5 times within 15 cycles then alert
    if inode usage > 80% then alert

A partir de ahora, cuando el espacio usado en nuestro disco /dev/mapper/VolGroup00-LogVol00 supere el 80% monit nos enviará una alerta por email.

¿No os parece útil?


2012-01-07

Monitorizar la CPU de linux CentOS con monit

Después de instalar y configurar el envio de alertas de monit podemos hacer que nos avise cuando el uso de la CPU o de la memoria de nuestro sistema linux CentOS sobrepase ciertos valores.

Para esto debemos modificar el fichero de configuración /opt/monit/conf/monitrc.

La monitorización de la CPU y la memoria se realiza con:

check system nombre.del.sistema
    if loadavg (1min) > 4 then alert
    if loadavg (5min) > 2 then alert
    if memory usage > 75% then alert
    if swap usage > 25% then alert
    if cpu usage (user) > 70% then alert
    if cpu usage (system) > 30% then alert
    if cpu usage (wait) > 20% then alert

De esta forma monit enviará un email
  • cuando la carga promedio del sistema sea mayor de 4 durante más de 1 minuto
  • cuando la carga promedio del sistema sea mayor de 2 durante más de 5 minutos seguidos
  • cuando el uso de memoria supere el 75%
  • cuando el uso de la memoria swap supere el 25%
  • cuando el uso de CPU de usuario supere el 70%
  • cuando el uso de CPU de sistema supere el 30%
  • etc.
Todos estos parámetros los podeis cambiar según os convenga.

Sencillo y útil.

2012-01-05

Configuración básica de monit en linux CentOS

Una vez tenemos instalado monit en nuestro sistema linux CentOS lo tenemos que configurar con los parámetros adecuados para que nos mande las alertas por email.

La configuración de monit se realiza en el fichero /opt/monit/conf/monitrc.

Aquí podemos añadir las siguientes líneas:

set daemon  60
que hará que monit monitorice nuestro sistema cada 60 segundos

set logfile /var/log/monit.log
para que el fichero log de monit se escriba en /var/log/monit.log

set mailserver smtp.gmail.com port 587
    username "hipolito.jimenez@nioos.com" password "mypassword"
    using tlsv1
    with timeout 30 seconds
que define el servidor de correo electronico que usaremos para enviar las notificaciones sobre nuestro sistema, en este caso usaremos gmail como nuestro relay de correo electronico.

set mail-format { from: hipolito.jimenez@nioos.com }
define el campo from del correo electronico de aviso (la persona que envía el email de aviso)

y

set alert hipolito.jimenez@nioos.com
define el destinatario de los correos electronicos con los avisos

Es conveniente rotar con logrotate el log de monit.
Para esto podemos crear el fichero /etc/logrotate.d/monit con el siguiente contenido.

/var/log/monit.log {
    weekly
    rotate 7
    missingok
    compress
    postrotate
        kill -1 `cat /var/run/monit.pid` || true
    endscript
}
 

Por último debemos añadir la siguiente línea al fichero de arranque del sistema /etc/inittab
mo:2345:respawn:/opt/monit/bin/monit -Ic /opt/monit/conf/monitrc
que hará que monit se arranque con el sistema en modo respawn.

Para que la nueva configuración empiece a funcionar sin tener que reiniciar nuestro sistema debemos ejecutar el comando
telinit q


2012-01-03

Instalar monit en linux CentOS

Una herramienta muy útil para monitorizar nuestro sistema linux CentOS es monit.

Esta herramienta nos permitirá monitorizar el uso de la CPU, la memoria, el espacio en disco, los procesos que corren en nuestro sistema, etc, y nos avisará mediante el envío de un correo electronico ó ejecutando automáticamente alguna acción (como borrar los archivos del directorio /tmp cuando nos quede poco espacio en disco).

Para instalar monit debemos descargarlo en nuestro sistema con el comando

wget http://mmonit.com/monit/dist/binary/5.3.2/monit-5.3.2-linux-x86.tar.gz

Lo descomprimimos con el comando
tar xvfz monit-5.3.2-linux-x86.tar.gz

El directorio resultante lo movemos al lugar seleccionado para la instalación (a mi me gusta ponerlo en /opt)
mv ./monit-5.3.2/ /opt/

Por comodidad es conveniente crear un link simbólico para acceder a los ejecutables y la configuración de una forma más comoda.
ln -s /opt/monit-5.3.2/ /opt/monit

Como veis se trata de una instalación sencilla.


2011-12-13

Instalar rootkit hunter en linux CentOS

De la misma forma que existen virus para sistemas windows hay rootkits para linux.

Podemos comprobar si nuestro sistema tiene alguno de estos rootkits si instalamos algún tipo de herramienta que los detecte.

Una de estas herramientas es Rootkit Hunter.

Podemos descargarla directamente en nuestro sistema linux con el comando

wget http://downloads.sourceforge.net/project/rkhunter/rkhunter/1.3.8/rkhunter-1.3.8.tar.gz

Lo descomprimimos con el comando

tar xvzf rkhunter-1.3.8.tar.gz

Una vez descomprimido, se instala ejecutando el script de instalación localizado en el directorio "rkhunter"

./installer.sh --install

Una vez instalado podemos ejecutarlo haciendo uso de los siguientes comandos, que pueden incluse ejecutarse desde cron:

rkhunter --versioncheck
comprueba si hay una versión más moderna de Rootkit Hunter disponible para ser descargada.

rkhunter --update
actualiza la base de datos de los rootkits detectados desde el repositorio central de internet.



rkhunter --propupd
actualiza la base de datos de control de los comandos instalados en nuestro sistema.


rkhunter --check --sk
escanea el sistema en busca de posibles rootkits.

Útil y sencillo.


2011-12-10

Proteger CentOS de ataques externos con fail2ban

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.

wget --no-check-certificate --output-document=fail2ban.0.8.6.tar.gz https://github.com/fail2ban/fail2ban/tarball/0.8.6

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.

/var/log/fail2ban.log {
    weekly
    rotate 7
    missingok
    compress
    postrotate
        /usr/bin/fail2ban-client reload 1>/dev/null || true
    endscript
}

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).

[ssh-iptables]
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           mail-whois[name=SSH, dest=correo.de.destino@dominio.com, sender=persona.que.manda.el.correo@dominio.com]
logpath  = /var/log/secure
maxretry = 5

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.

2011-12-08

Enviar email con línea de comandos desde linux CentOS usando Gmail

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").

Podemos encontrar la última versión de "nail" en http://rpm.pbone.net/.

La podemos descargar directamente en nuestro sistema con "wget"

wget ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/i386/RPMS/nail-12.3-4.el5.kb.i386.rpm

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
set smtp-auth-password=tu.password
set ssl-verify=ignore

Bastante sencillo, ¿verdad?


2011-09-23

Detener el servicio MySQL en CentOS

Unos de los servidores de base de datos más populares en entornos linux es MySQL.

Si no vamos a dedicar nuestra máquina a servidor de base de datos es recomendable que paremos este servicio y lo deshabilitamos para que no sea arrancado con la máquina.

Lo que debemos hacer es:


service mysqld stop
chkconfig --del mysqld

donde la primera línea (service mysqld stop) detiene el servicio y la segunda línea (chkconfig --del mysqld) evita que se vuelva a arrancar automáticamente con la máquina.



Detener spamassassin en CentOS

Spamassassin es un servidor antispam muy popular en el entorno linux.

Sin embargo, si no vamos a dedicar el servidor linux como servidor de correo electronico es recomendable que paremos este servicio y lo deshabilitamos para que no sea arrancado con la máquina.

Lo que debemos hacer es:


service spamassassin stop
chkconfig --del spamassassin
donde la primera línea (service spamassassin stop) detiene el servicio y la segunda línea (chkconfig --del spamassassin) evita que se vuelva a arrancar automáticamente con la máquina.


2011-09-22

Detener el servicio Parallels Plesk en CentOS

Unos de los servicios de gestión remota de servidore más populares linux es Parallels Plesk.

Sin embargo, si decidimos gestionar el servidor usando "ssh" es recomendable que paremos este servicio y lo deshabilitamos para que no sea arrancado con la máquina.

Lo que debemos hacer es:


service psa stop
chkconfig --del psa

donde la primera línea (service psa stop) detiene el servicio y la segunda línea (chkconfig --del psa) evita que se vuelva a arrancar automáticamente con la máquina.

2011-09-21

Detener el servicio postfix en CentOS

Unos de los servidores de correo electronico más populares linux es posftix.

Si no vamos a dedicar nuestra máquina a servidor de correo electronico es recomendable que paremos este servicio y lo deshabilitamos para que no sea arrancado con la máquina.

Lo que debemos hacer es:


service postfix stop
chkconfig --del postfix

donde la primera línea (service postfix stop) detiene el servicio y la segunda línea (chkconfig --del postfix) evita que se vuelva a arrancar automáticamente con la máquina.

Detener el servicio PostgreSQL en CentOS

Unos de los servidores de base de datos más populares en entornos linux es PostgreSQL.

Si no vamos a dedicar nuestra máquina a servidor de base de datos es recomendable que paremos este servicio y lo deshabilitamos para que no sea arrancado con la máquina.

Lo que debemos hacer es:


service postgresql stop
chkconfig --del postgresql

donde la primera línea (service postgresql stop) detiene el servicio y la segunda línea (chkconfig --del postgresql) evita que se vuelva a arrancar automáticamente con la máquina.

Detener el servicio courier de CentOS

Unos de los servidores de correo electronico más populares de CentOS es courier.

Si no vamos a dedicar nuestra máquina a servidor de correo electronico es recomendable que paremos este servicio y lo deshabilitamos para que no sea arrancado con la máquina.

Lo que debemos hacer es:

service courier-imap stop
chkconfig --del courier-imap

donde la primera línea (service courier-imap stop) detiene el servicio y la segunda línea (chkconfig --del courier-imap) evita que se vuelva a arrancar automáticamente con la máquina.

Usar dmidecode para mostrar el hardware

Algunas veces nos es útil mostrar remotamente el hardware de una máquina (quizás porque acabamos de alquilar una máquina de hosting y queremos saber cual es exactamente su hardware).

En este caso podemos hacer uso del comando "dmidecode".

Este comando nos mostrará todas las características hardware de la máquina.

Especialmente útiles son los comandos:

"dmidecode -t processor" que nos mostrará toda la información relacionada con los procesadores.


"dmidecode -t memory" que nos mostrará toda la información relacionada con la memoria.

Un comando tremendamente simple y potente.


2011-08-20

Correr Tomcat en el puerto 80 en linux CentOS

Normalmente tomcat corre en el puerto 8080.
Sin embargo los servidores web corren en el puerto estandar http 80.

Para correr tomcat en el puerto 80 tenemos 2 opciones:
  1. Correr tomcat como usuario root, lo cual no es aconsejable debido a posibles problemas de seguridad
  2. Redireccionar el puerto 80 al puerto 8080
Es posible redireccionar el puerto 80 al puerto 8080 usando el comando iptables.

iptables -t nat --append PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

Es conveniente añadir este comando al script de inicio automático de tomcat, de esta forma, el script queda:


#!/bin/sh
#
# chkconfig: 2345 20 80
# description: Tomcat
#
start()
{
    su - tomcat -c /opt/tomcat/bin/startup.sh
    iptables -t nat --append PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
}

stop()
{
    su - tomcat -c /opt/tomcat/bin/shutdown.sh
    iptables -t nat --flush
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    *)
        echo $"Usage: $0 {start|stop}"
        exit 1
esac


El comando
iptables -t nat --flush
sirve para eliminar las redirecciones que tengamos definidas en el sistema.