sábado, 19 de abril de 2014


Instalar Servidor de aplicaciones (Apache, PHP, Tomcat ) en Ubuntu

Un servidor web es el programa que muestra las páginas webs en tu navegador y Apache es el servidor web más usado del mundo: gratuito, modular, multiplataforma y de código abierto.


Se puede combinar con múltiples bases de datos, scripts de configuración e interfaces web para facilitar tareas al usuario.
También existen suites de programas especialmente compilados que instalan todo de golpe (sobre todo para platadormas windows), pero si lo vamos a desplegar en un entorno de producción, es recomendable instalar sólo las librerías y módulos que vayamos a usar, para evitar exponer el menor número de brechas de seguridad a los hackers.
Vamos a ver cómo instalarlo en Ubuntu con PHP, y Tomcat:


Instalar Apache

Abrimos una consola y ponemos:
sudo apt-get install apache2


Comprobamos si funciona abriendo un navegador con la URL http://127.0.0.1:


Instalamos PHP 5 cómo módulo:
sudo apt-get install php5 libapache2-mod-php5


Reiniciamos el servidor web:
sudo /etc/init.d/apache2 restart





Ahora creamos el info.php para comprobar el funcionamiento de PHP:
sudo gedit /var/www/info.php

Pegar lo siguiente dentro, luego guardar y cerrar:
<?php phpinfo(); ?>


Comprobar entrando a la dirección http://127.0.0.1/info.php:







Ahora podemos instalar todos los módulos PHP restantes, siendo la mayoría opcionales:
sudo apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick
php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode
php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl


Reiniciamos de nuevo el servidor web:

sudo /etc/init.d/apache2 restart






Apache Tomcat



Apache Tomcat (también llamado Jakarta Tomcat o simplemente Tomcat) es un servidor web desarrollado bajo el proyecto Jakarta (Apache Software Foundation) con soporte para servlets y JSPs (implementa las especificaciones de los servlets y de JavaServer Pages (JSP) de Sun Microsystems).
Nota: Vas a necesitar permisos de administrador (sudo) para seguir este tutorial.

Paso 1: Instalar JDK

La única dependencia requerida para instalar Tomcat es disponer Java en nuestro sistema. Si no lo tienes instalado, lo puedes hacer muy fácilmente usando apt-get:
sudo apt-get install default-jdk





Paso 2: Instalar Tomcat

Para instalar Tomcat tenemos dos opciones, podemos utilizar apt-get o podemos descargarlo directamente desde el website de Apache Tomcat.
Descargar Tomcat directamente desde el sitio web de la Fundación Apache:
Actualmente, la versión más reciente de Tomcat es la 7.0.50

http://tomcat.apache.org/download-80.cgi




Una vez se haya completado la descarga, descomprimimos el fichero:
tar xvzf apache-tomcat-.0.53.tar.gz



Por último, movemos la carpeta descomprimida a la ruta que deseemos, como por ejemplo:

sudo mv apache-tomcat-.0.53  /opt/apache_tomcat





Paso 3: Configurar el entorno

El último paso consiste en establecer las variables necesarias en el fichero .bashrc de nuestro directorio home:
Nos desplazamos a nuestro directorio personal:

cd
Editamos el fichero .bashrc

gedit .bashrc

E incluimos al final del mismo las siguientes líneas:


export JAVA_HOME=/usr/lib/jvm/default-java
export CATALINA_HOME=/opt/apache_tomcat

Guardamos el fichero y hacemos lo siguiente para que el sistema tome los nuevos valores:

source .bashrc



 



Paso 4: Arrancar el servidor
Tomcat ya está instalado y configurado, sin embargo, todavía no lo hemos arrancado. Para ello, hacemos esto:

$CATALINA_HOME/bin/startup.sh


Listo!

Si todo ha ido bien, tienes un flamante servidor web Tomcat preparado para recibir peticiones en el puerto 8080. Podrás verificar que Tomcat está trabajando si accedes a la página



Instalación de servidor DNS

Servidor DNS


Un servidor DNS (Domain Name System) es un sistema que nos permite usar nombres de dominio en lugar de direcciones IP. Su principal ventaja es que para nosotros es mucho más fácil recordar un nombre que una dirección IP.
El servidor DNS más utilizado es Bind y, aunque teníamos un poco abandonado a Ubuntu Server en Slice of Linux, hoy vamos a ver cómo instalarlo y configurarlo sobre él paso a paso. El contenido de este tutorial es genérico pero las pruebas y capturas de pantalla se han hecho sobre Ubuntu 10.04 Server.
Los valores que debemos tener claros antes de comenzar son los siguientes:
       Dirección IP del servidor: 192.168.2.1
       Nombre del servidor: servidor
       Dominio que vamos a crear: redlinux.lan
Estos valores deberemos sustituirlos por los que necesitemos en cada caso.



Los pasos para instalar y configurar Bind en Ubuntu Server son los siguientes:
1.    Actualizamos la información de los repositorios con el siguiente comando:
sudo aptitude update
2.    Instalamos el servidor DNS Bind9:
sudo aptitude install bind9

3.    Hacemos una copia de seguridad del archivo que vamos a modificar:
sudo cp /etc/bind/named.conf.local{,.original}
4.    Editamos el archivo /etc/bind/named.conf.local con el siguiente comando:
sudo nano /etc/bind/named.conf.local
y añadimos el siguiente contenido:
zone "redlinux.lan" {
  type master;
  file "db.redlinux.lan";
};

zone "2.168.192.in-addr.arpa" {
  type master;
  file "db.192.168.2";
};
Esto se puede ver en la siguiente captura de pantalla:



Editamos el archivo /etc/bind/named.conf.local


Para guardar el archivo debemos pulsar la combinación de teclas Control+O y para salir Control+X.
5.    Creamos el archivo /var/cache/bind/db.redlinux.lan:
sudo nano /var/cache/bind/db.redlinux.lan



e incluimos el siguiente contenido:
$ORIGIN redlinux.lan.
$TTL 86400 ; 1 dia
@       IN      SOA     servidor        postmaster (
        1    ; serie
        6H   ; refresco (6 horas)
        1H   ; reintentos (1 hora)
        2W   ; expira (2 semanas)
        3H   ; mínimo (3 horas)
)
         NS     servidor
servidor A      192.168.2.1
El contenido del archivo es bastante especial y no lo vamos a comentar pero para más información se puede leer el RFC 1912 y el RFC 2308. Aquí deberíamos añadir todos los equipos de nuestra red que quisiéramos mantener identificados pero como es más fácil hacerlo con DDNS (Dynamic DNS) ya lo veremos en otra ocasión.


6.    A continuación creamos el archivo /var/cache/bind/db.192.168.2 para la zona inversa:
sudo nano /var/cache/bind/db.192.168.2
e incluimos el siguiente contenido:
$ORIGIN 2.168.192.in-addr.arpa.
$TTL 86400     ; 1 dia
@       IN      SOA     servidor        postmaster (
        1      ; serie
        6H     ; refresco (6 horas)
        1H     ; reintentos (1 hora)
        2W     ; expire (2 semanas)
        3H     ; mínimo (3 horas)
)
       NS      servidor.redlinux.lan.
1      PTR     servidor.redlinux.lan.


7.    Reiniciamos el servicio:
sudo service bind9 restart
Si todo va bien, veremos que está OK.







8.    Editamos el archivo /etc/resolv.conf para que nuestro servidor resuelva las peticiones DNS:
sudo nano /etc/resolv.conf
Cambiando el primero de los servidores DNS por la IP del nuestro:
nameserver 192.168.2.1
nameserver 8.8.8.8


9.    Probamos nuestro servidor de nombres:
dig redlinux.lan
La respuesta será muy parecida a la siguiente:




Ejecución de dig redlinux.lan


10.                       Probamos la resolución inversa:
dig -x 192.168.2.1
Esta sería la salida esperada del comando anterior:



Ejecución de dig -x 192.168.2.1


11.                       Por último, para poder sacarle partido al servidor que hemos creado nos faltaría incluir este servidor DNS en la configuración de los clientes.


Instalación de Servidor FTP

Qué significa FTP?

FTP significa “File Transfer Protocol”, Protocolo para la Transferencia de Archivos.

¿Qué es un servidor FTP?

Un servidor FTP es un programa especial que se ejecuta en un servidor conectado normalmente en Internet (aunque puede estar conectado en otros tipos de redes, LAN, MAN, etc.). La función del mismo es permitir el desplazamiento de datos entre diferentes servidores / ordenadores.

vsftpd
vsftpd es un servidor ftp para Linux sencillo de instalar y configurar. Es el recomendado por Debian y Ubuntu, tiene una configuración muy sencilla en un solo fichero y es bastante ligero y seguro.

Instalación.
La configuración del servidor FTP requiere del paquete vsftpd. Para ello abre el terminal (Aplicaciones/Accesorios/Terminal) y escribe:
# sudo apt-get install vsftpd.


También puedes instalar el servidor mediante el gestor de paquetes Synaptic.
Al instalar vsftpd en el sistema se crean los siguientes archivos y directorios en el sistema:
/etc/init.d/vsftpd: fichero que inicia el servidor ftp.
/usr/bin/vsftpd: archivo ejectable.
/etc/vsftpd.conf: es el fichero de configuración del servidor.
/etc/ftpusers: fichero que contiene una lista de usuarios que no se podrán conectar al servidor.



Configuración


El fichero de configuración del servidor se llama vsftpd.conf y se encuentra en el directorio /etc. Las directivas más importantes de este fichero son las siguientes:

anonymous_enable
Si el valor de esta directiva es YES cualquier usuario se puede conectar al servidor dando el nombre de usuario anonymous o ftp. Por razones de seguridad se debe poner NO (anonymous_enable=NO)

local_enable
Esta línea indica que si se permite o no el acceso de usuarios locales a sus respectivas carpetas privadas. Si se permite el acceso habría que poner local_enable=YES (local_enable=NO en caso contrario).

chroot_local_user
Permite enjaular a los usuarios dentro de su propio directorio personal. Si en el fichero de configuración aparece chroot_local_user=NO, entonces el usuario tiene acceso a todo el sistema de archivos, en función de los permisos asignados. Cuando un usuario local se conecta y en el fichero de configuración aparece chroot_local_user=YES, entonces enjaulamos a los usuarios dentro de su propio directorio personal, sin posibilidad de acceder a todo el sistema de ficheros. Se mejora por tanto la seguridad.

write_enable
Con esta directiva se puede permitir o denegar la subida de ficheros al servidor FTP. Si se permite que los usuarios suban archivos al servidor FTP habría que poner write_enable=YES.

local_umask
Se pueden establecer los permisos con los que quedará el archivo al subirlo al servidor FTP. local_umask=022 indicará que los permisos de los archivos serán 644, es decir, lectura y escritura para el propietario del fichero, y sólo lectura para el grupo y los demás.

anon_upload_enable
Esta directiva indica si los usuarios anónimos pueden cargar archivos en el servidor. anon_upload_enable=YES permite que los usuarios anónimos puedan subir ficheros.

anon_mkdir_write_enable
Si esta directiva tiene el valor YES se permitirá la creación de directorios en el servidor.

ftpd_banner
Con esta directiva se puede mostrar un mensaje de bienvenida cuando un usuario se conecte al servidor FTP. ftpd_banner=?Bienvenido a mi servidor FTP?.

anon_max_rate
Se utiliza para limitar la tasa de transferencia a usuarios anónimos. En el siguiente ejemplo se limita la tasa de transferencia a los usuarios anónimos a 10Kb/s:
anon_max_rate=1024

local_max_rate
Se utiliza para limitar la tasa de transferencia en bytes por segundo a los usuarios locales del servidor. En el siguiente ejemplo se limita la tasa de transferencia a 10Kb/s:
local_max_rate=1024

max_clients
Indica el número máximo de cliente que podrán conectarse simultáneamente al servidor. En el siguiente ejemplo son 5: max_clients=5

Hay que tener en cuenta que cada vez que se haga un cambio en el fichero de configuración de vsftpd se debe reiniciar el servidor con la siguiente orden: # sudo /etc/init.d/vsftpd restart
Otras opciones disponibles son stop (parar), reload (recarga), start (inicio).
Para conectarnos al servidor podemos utilizar un programa cliente como gFTP. Se puede instalar con el gestor de paquetes Synaptic o escribiendo la siguiente orden en el terminal:
# sudo apt-get install gftp