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

2012-07-05

Añadir un nuevo disco a nuestra máquina linux Debian

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

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

Una vez añadido el nuevo disco debemos crear una nueva partición y formatearla antes de poder montar el disco para poder usarlo.

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 las particiones usaremos el comando
fdisk /dev/sdb
y seguimos las instrucciones.

A continuación creamos un sistema de ficheros en la nueva partición.

Para saber cúal es el formato de las particiones que ya tenemos en nuestro sistema podemos usar el comando
df -hT

Para crear el nuevo sistema de ficheros usamos el comando
mkfs.ext3 /dev/sdb1

Ahora ya podemos montar y empezar a usar el nuevo disco con el comando
mount /dev/sdb1 /mnt

Si queremos que el nuevo disco se monte automáticamente al iniciar linux podemos modificar el fichero
/etc/fstab
para añadir el nuevo dispositivo.

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 Debian

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

Su instalación es muy sencilla


apt-get 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 Debian

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
### BEGIN INIT INFO
# Provides:          tomcat
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Tomcat
# Description:       Tomcat
### END INIT INFO
# Author: Hipolito Jimenez <hipolito.jimenez@gmail.com>
#
# Please remove the "Author" lines above and replace them
# with your own name if you copy and modify this script.
# Do NOT "set -e"
do_start()
{
        su - tomcat -c "export CATALINA_PID=/opt/tomcat/logs/tomcat.pid; export JAVA_HOME=/opt/java; /opt/tomcat/bin/startup.sh"
        iptables -t nat --append PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
}
#
# Function that stops the daemon/service
#
do_stop()
{
        su - tomcat -c "export CATALINA_PID=/opt/tomcat/logs/tomcat.pid; export JAVA_HOME=/opt/java; /opt/tomcat/bin/shutdown.sh"
        iptables -t nat --flush
}
case "$1" in
  start)
        do_start
        ;;
  stop)
        do_stop
        ;;
  *)
        echo "Usage: tomcat {start|stop}" >&2
        exit 3
        ;;
esac




Para monitorizar tomcat desde monit ahora debemos añadir la siguiente regla al fichero de configuración "/etc/monit/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 Debian

Con monit, además de monitorizar la memoria y la CPU de nuestra máquina linux Debian, 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 (/etc/monit/monitrc) para añadir las siguientes líneas:
check filesystem fs01 with path /dev/sda1
    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/sda1 supere el 80% monit nos enviará una alerta por email.

¿No os parece útil?

2012-01-07

Monitorizar la CPU de linux Debian 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 Debian sobrepase ciertos valores.

Para esto debemos modificar el fichero de configuración /etc/monit/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 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 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.

Configuración básica de monit en linux Debian

Una vez tenemos instalado monit en nuestro sistema linux Debian 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 /etc/monit/monitrc.

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


set daemon 120
que hará que monit monitorice nuestro sistema cada 120 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 modificar el fichero /etc/default/monit para cambiar el valor de la opción startup de 0 a 1.
startup=1

Ahora, para arrancar monit sólo debemos hacer el habitual:
service monit start


2012-01-04

Instalar monit en linux Debian

Una herramienta muy útil para monitorizar nuestro sistema linux Debian 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 lo único que debemos hacer es usar el comando apt-get


apt-get install monit

Más sencillo no puede ser.

2011-12-21

Instalar rootkit hunter en linux Debian

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


apt-get install rkhunter

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



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.

2011-12-08

Enviar email con línea de comandos desde linux Debian 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 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
set smtp-auth-password=tu.password
set ssl-verify=ignore

Bastante sencillo, ¿verdad?

2011-09-21

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 Debian

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
### BEGIN INIT INFO
# Provides:          tomcat
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Tomcat
# Description:       Tomcat
### END INIT INFO

# Author: Hipolito Jimenez <hipolito.jimenez@gmail.com>
#
# Please remove the "Author" lines above and replace them
# with your own name if you copy and modify this script.

# Do NOT "set -e"

do_start()
{
    su - tomcat -c "export JAVA_HOME=/opt/java; /opt/tomcat/bin/startup.sh"
    iptables -t nat --append PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
}

#
# Function that stops the daemon/service
#
do_stop()
{
    su - tomcat -c "export JAVA_HOME=/opt/java; /opt/tomcat/bin/shutdown.sh"
    iptables -t nat --flush
}

case "$1" in
  start)
    do_start
    ;;
  stop)
    do_stop
    ;;
  *)
    echo "Usage: tomcat {start|stop}" >&2
    exit 3
    ;;
esac



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

2011-08-16

Arranque automático de tomcat en linux Debian

Los scripts de arranque automático se situan en el directorio /etc/init.d

Los scripts que tengamos en este directorio podrán ser llamados por el comando "service" y podrán ser ejecutados como parte del proceso de arranque de la máquina.

Linux Debian viene con un ejemplo (skeleton) de script de arranque automático que se puede copiar y usar como base de los scripts que hagamos para nuestros servicios.

El script más simple de arranque automático de tomcat es:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          tomcat
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Tomcat
# Description:       Tomcat
### END INIT INFO

do_start()
{
    su - tomcat -c "export JAVA_HOME=/opt/java; /opt/tomcat/bin/startup.sh"
}

do_stop()
{
    su - tomcat -c "export JAVA_HOME=/opt/java; /opt/tomcat/bin/shutdown.sh"
}

case "$1" in
  start)
    do_start
    ;;
  stop)
    do_stop
    ;;
  *)
    echo "Usage: tomcat {start|stop}" >&2
    exit 3
    ;;
esac

La primera parte del script, entre "BEGIN INIT INFO" y "END INIT INFO", sirve para que posteriormente, mediante el comando "insserv", se generen los links adecuados en los directorios de arranque.
De esta forma, si nuestro script de arranque se llama "tomcat", el comando de instalación sería "insserv tomcat"

(Si quisieramos "desinstalar" el servicio deberíamos ejecutar el comando "insserv -r tomcat", que borraría los links de los directorios de arranque, impidiendo que se arrancara de forma automática con la máquina).

2011-08-13

Correr Tomcat como un usuario normal en linux Debian

Para evitar posibles problemas de seguridad no es recomendable correr programas como el usuario administrador (root).

Después de instalar tomcat y de crear un usuario, para correr tomcat como ese usuario que hemos creado debemos:
  1. Como usuario root cambiar el dueño y grupo de los ficheros y directorios de instalación de tomcat
  2. Definir la variable de entorno JAVA_HOME para el  usuario tomcat
  3. Como usuario tomcat arrancar el demonio de tomcat
En comandos:
  • Como usuario root: 
cd /opt/tomcat
chown tomcat:tomcat -R *

  • Como usuario tomcat:
vi .bashrc (para añadir la línea "export JAVA_HOME=/opt/java")
/opt/tomcat/bin/startup.sh (para arrancar tomcat)

2011-08-09

Instalación de Tomcat en linux Debian

La forma más sencilla de instalar apache tomcat en linux debian es:
  1. Descargar tomcat directamente en la máquina linux debian desde la web de apache usando el comando "wget"
  2. Descomprimir el fichero "tar.gz" usar el comando "tar"
  3. Mover el directorio descomprimido al lugar elegido de instalación (por ejemplo el directorio "/opt")
  4. Crear un link a tomcat para simplificar su uso
Traducido en línea de comandos:

wget http://apache.rediris.es/tomcat/tomcat-7/v7.0.19/bin/apache-tomcat-7.0.19.tar.gz
tar xvzf apache-tomcat-7.0.19.tar.gz
mv apache-tomcat-7.0.19 /opt/
ln -s /opt/apache-tomcat-7.0.19 /opt/tomcat

Para arrancar tomcat debemos usar el comando:

/opt/tomcat/bin/startup.sh

No olvideis que debeis definir previamente la variable de entorno "JAVA_HOME" para que funcione correctamente, por ejemplo:

export JAVA_HOME=/opt/java

2011-07-31

2011-07-28

Añadir usuarios a linux Debian

La forma más sencilla de añadir usuarios a linux Debian es mediante el comando

adduser <nombreDeUsuario>

y siguiendo las instrucciones que aparecen para rellenar el nombre de usuario, su password, etc.

2011-07-25

Instalación de java en linux Debian

Es posible descargar directamente el instalable de java desde http://www.oracle.com/technetwork/java/javase/downloads/index.html a la máquina linux usando la utilidad "wget".

wget http://download.oracle.com/otn-pub/java/jdk/6u26-b03/jdk-6u26-linux-i586.bin

Una vez descargada sólo hay que ejecutarla para que se descomprima automaticamente.
El directorio creado en la descompresión automática lo podemos mover y crear un link simbólico donde más nos convenga.

./jdk-6u26-linux-i586.bin
mv jdk1.6.0_26/ /opt/
ln -s /opt/jdk1.6.0_26 /opt/java



¿No os parece sencillo?

Instalación del servidor "sshd" en linux Debian

Para conectarnos remotamente a nuestra máquina linux de forma segura podemos usar el protocolo "ssh".

Para instalar el servidor de "ssh" en nuestro entorno debemos ejecutar los siguientes comandos:

apt-get update
apg-get install openssh-server



A partir de este momento podemos conectarnos a nuestro entorno con una conexión segura.