domingo, 3 de mayo de 2009

Desplegar Tomcat en CentOs

Tomcat se puede instalar en CentOs a través de la opción 'Agregar/Quitar Software' en las opciones de menú. En esta opción hay que seleccionar el servidor Web e instalar los paquetes opcionales de Tomcat5, con lo cual se instala una versión de Tomcat5 que puede ser iniciada como un servicio Linux.

Este servidor Tomcat5 viene configurado para ejectuarse contra la máquina Java OpenJDK 1.6.0

Se puede utilizar este servidor o instalar una versión distinta de la JVM y de Tomcat, que será lo que se describa a continuación.

Instalar un JDK/JRE

En los Howtos de CentOS, se describe como instalar una máquina virtual de Java paso a paso:

http://wiki.centos.org/HowTos/JavaOnCentOS

En resumen, se han de seguir los pasos:
  • Crear un archivo ~/.rpmmacros que incluya:

         %_topdir /home//rpmbuild
%_tmppath %{_topdir}/tmp
  • Ejecutar los comandos:
         $ mkdir -p ~/rpmbuild/{SOURCES,SRPMS,SPECS,RPMS,tmp,BUILD}

# yum install -y rpm-build gcc gcc-c++ redhat-rpm-config
Nota ($ implica un usuario distinto de root)

  • Descargar de la web de sun los fuentes del JDK/JRE deseado http://java.sun.com/products/archive (por ejemplo j2sdk-1_4_2_17-linux-i586.bin) teniendo en cuenta que el JDK puede crear problemas de dependencias al ser instalado y moverlo a
    ~/rpmbuild/SOURCES/
  • Compilar el JDK/JRE:
    $ rpmbuild --rebuild java-1.4.2-sun-1.4.2.17-1jpp.nosrc.rpm
  • Instalar los paquetes rpm generados en ~/rpmbuild/RPMS/i586, ejecutando para cada paquete:
    # yum install java-1.4.2-sun-1.4.2.17-1jpp.i586.rpm
  • Asignar la Jvm por defecto:
    # alternatives --config java
  • Agregar las variables de entorno al archivo /etc/profile:
    export JAVA_HOME=/usr/lib/jvm/jre-1.5.0-sun
    export PATH=$PATH:${JAVA_HOME}/bin
  • Comprobar el valor de las variables asignadas:
    echo $JAVA_HOME
Instalar Tomcat

  • Decargar la versión deseada de la web de ApacheTomcat
  • Seguir los pasos del tutorial http://www.howtoforge.com/apache2_tomcat5_mod_jk que consisten básicamente en descomprimir los archivos de tomcat (tar xvzf apache-tomcat-5.5.17.tar.gz) en el directorio /var/lib
  • Desplegar la aplicación .war en webapps
  • Arrancar el servidor: sh /var/lib/apache-tomcat-5.5.27/bin/startup.sh

miércoles, 29 de abril de 2009

Instalar con rpm

Para instalar las herramientas graficas de MySQL (GUI Tools), descargamos el correspondiente paquete de binarios (xxx.tar.gz) de la web de MySQL y descomprimimos los archivos mediante el comando:
    tar xvzf fichero.tar.gz
Seguidamente, instalaremos los distintos paquetes rpm ejecutando el comando
    rpm -ivh fichero.rpm
En este caso:
    rpm -ivh mysql-gui-tools-5.0r12-1rhel4.i386.rpm
rpm -ivh mysql-query-browser-5.0r12-1rhel4.i386.rpm

rpm -ivh mysql-administrator-5.0r12-1rhel4.i386.rpm
Como pequeño resumen de los opciones de rpm:
  • rpm -q - > Me dice si este paquete ya esta instalado o no.
  • rpm -qa - > Me dice todos los paquetes que están instalados.
  • rpm -i - > Instala el paquete.
  • rpm -e - > Desinstala un paquete.
  • rpm -ivh - > para instalar y ver el progreso
  • rpm -Uvh - > para instalar y actualizar el paquete rpm

GZIP Linux

Actualmente hay muchos formatos de compresión. Algunos parecen más propios de Windows (.zip, .rar) y otros aparecen más de Unix/Linux (.gz, .bz2, .tar.gz, .tar.bz2) :

  • .zip: El formato zip que habitualmente abrimos con Winzip en Windows. En Linux existen los comandos zip y unzip para comprimir y descomprimir, respectivamente.
    zip archivo.zip lista_ficheros_directorios
    unzip archivo.zip
  • .rar: El formato rar que habitualmente abrimos con Winrar en Windows. Existen en Linux los comandos rar y unrar que permiten comprimir y descomprimir, respectivamente, en este formato
    rar archivo.rar lista_ficheros_directorios
    unrar x archivo.rar
  • .gz: El formato gzip, propio de ámbitos Unix/Linux. Se trabaja con él con los comandos gzip y gunzip para comprimir y descomprimir, respectivamente
    gzip fichero
    gunzip fichero.gz

    Hay que tener en cuenta que el comando gzip sólo es capaz de comprimir archivos sueltos sobre sí mismos (se pierde el archivo original) por lo que para crear ficheros comprimidos donde podamos guardar tanto ficheros como directorios, se hace utilizando el comando tar y gzip de manera conjunta, tanto para comprimir como para descomprimir. Asi, lo más habitual es utilizar siempre estos comandos:

    tar cvzf fichero.tar.gz lista_ficheros_directorios
    tar xvzf fichero.tar.gz

    para comprimir y descomprimir, respectivamente

  • .bz2: Trabaja de manera similar al formato gzip pero realiza una compresión mayor. Se utiliza también conjuntamente con el comando tar
    tar cvjf fichero.tar.bz2 lista_ficheros_directorios
    tar xvjf ficheros.tar.bz2

martes, 28 de abril de 2009

VSFTPD on LAN

Esta entrada del blog trata de explicar, cual es la configuración de VSFTPD que puede ser utilizada cuando el servidor FTP reside en una LAN y quiero conectarme con un cliente FTP desde la WAN.

La resolución es sencilla, siempre y cuando dispongamos de un modem que permita redireccionar los puertos (port forward) a la IP local de nuestro servidor FTP.

Suponiendo que utilizamos una conexión FTP pasiva (el servidor FTP devuelve la IP y puertos al cliente para la transferencia de datos) , deberemos limitar el rango de puertos y redireccionar dichos puertos a nuestra IP local en la configuración del modem. Además, debermos configurar el servidor para que devuelva la IP pública de nuestra conexión (IP WAN del modem) como IP de FTP pasiva.

Los parámetros de configuración necesarios en vsftpd.conf serán: pasv_address, pasv_min_port y pasv_max_port.

jueves, 23 de abril de 2009

FTP en CentOS

CentOS tiene el servidor FTP vsftpd. Para comprobar si el servicio ha sido instalado se puede ejecutar el comando:
  • rpm -q vsftp
Y si el servicio no está instalado, hay que ejecutar la instalación del mismo:
  • yum -y install vsftpd
El proximo paso es configurar el servidor. La configuración del mismo reside en el fichero /etc/vsftpd/vsftpd.conf. En este archivo se determina si se permite la conexión a usuarios anónimos, el funcionamiento de las listas user_list y denied_user para el control de acceso a usuarios de sistema, y un largo etcetera.

Sin embargo, en el howtos de CentOS, nos proporcionan unos scripts para configurar el servidor de modo que podamos hacer FTP seguro con usuarios que no sean de sistema a través de TLS (Transport layer security, un protocolo muy similar a SSL)
y además nos proporciona scrips para gestionar estos usuarios.

http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users

Finalmente, si queremos que el servicio se inicie en el arranque del servido simplemente hay que ejecutar:
  • chkconfig vsftpd on

Conexion VNC a CentOS

Hoy me he conseguido conectar a mi servidor CentOS, desde una máquina windows. El problema radicaba en que el servidor CentOS está situado en una LAN, detrás de un modem-router bastante rutinario (o tal vez capado), el cual proporciona una dirección IP-LAN, del estilo 192.168.0.x.
Y la maquina windows, está situada en otra red local (otra ubicación física).

Brevemente, estos han sido los pasos realizados:
  1. Configurar e iniciar el VncServer en el servidor CentOS, tal y como se indica en http://wiki.centos.org/HowTos/VNC-Server
  2. Habilitar el firewall para conexiones SSH en el servidor CentOS
  3. Instalar un cliente vnc, por ejemplo RealVNC, en la máquina windows.
  4. Instalar Putty en la máquina windows (descarga en http://www.putty.org/)
  5. Configurar Putty:
    • En el nombre del host hay que poner el nombre del host o la ip wan de modem-router
    • Hay que darle un nobre a X disply location (localhost:0 por ejemplo)
    • Finalmente hay que establecer la conexión SSH y generar un tunel, del puerto 5900 local al puerto 5901 de la IP-LAN de nuestro servidor CentOS.
  6. Y ya esta todo, queda iniciar la conexión SSH con putty, y una vez proporcionado el usuario y pwd, iniciar la conexión cliente VNC (indicando por ejemplo localhost:0)