Category Archives: Apache

Instalación de Ubuntu Server

Voy a explicar cómo instalar un sistema operativo, que a mí, personalmente me gusta bastante. Ideal para instalarlo en algún PC algo antiguo que tengamos en casa, para usarlo de servidor FTP o HTTP por ejemplo. Me refiero a Ubuntu Server. Este sistema es una versión similar a la Desktop que todos conocemos pero sin interfaz gráfica. El hecho de que carezca de interfaz gráfica implica un menor consumo de recursos, y por lo tanto, mayor rendimiento. A la hora de administrar nuestro servidor, podremos hacerlo desde una consola de comandos similar a la de cualquier Linux/Debian.

A mí me gusta más administrar el servidor mediante una conexión telnet desde otro PC. Ya explicaré en otro tutorial cómo se hace esto.

Como he comentado antes, Ubuntu Server está basado en Debian, y por lo tanto podremos hacer uso de los repositorios de Ubuntu para instalar software así como también instalar paquetes .deb, y por supuesto, compilar otro software.

Hasta ahora, la versión más actualizada que hay es la 13.04, y es la que voy a usar para este tutorial. Aún así, cabe destacar que llevo varias versiones instaladas de Ubuntu Server, y la instalación es muy parecida, por lo que dudo que pueda cambiar mucho de aquí a un futuro próximo.

Requisitos mínimos

Procesador: 300 Mhz
RAM: 128 MB
Disco duro: 1 GB
Tarjeta de red
Tarjeta gráfica con resolución de 640×480
Unidad de CD

Como podemos ver, los requisitos son irrisorios. En cualquier máquina, podremos hacer funcionar Ubuntu Server. La tarjeta de red no es indispensable, pero ya que vamos a instalar un servidor, por lo menos que tenga conexión aunque sea a una red local LAN. Yo voy a instalarlo bajo VirtualBox. Comencemos pues.

Metemos el CD ( 🙂 ) y si tenemos preparado el arranque automático desde CD-ROM en BIOS, veremos esta pantalla:

1

En caso de no tener el arranque automático, bastaría con entrar en BIOS y cambiar la secuencia de arranque para que inicie desde la unidad de CD. Bueno, elegimos el idioma que queramos y pulsamos intro. Ahora, nos dará una serie de opciones:

2Por defecto nos viene marcada la opción de Instalar Ubuntu Server. Esta será la opción que elegiremos pulsando intro. Las demás opciones son para realizar una instalación diferente a la estándar, comprobar errores en el disco de instalación o en la memoria RAM, continuar con el arranque normal de nuestra máquina o recuperar otra instalación anterior de Ubuntu Server. Una vez elegida la primera opción, veremos:

3En esta ventana elegimos nuestra ubicación y pulsamos intro. En mi caso España.

4Aquí nos preguntará si queremos detectar nuestro tipo de teclado, le decimos que no porque lo seleccionaremos de forma manual en la ventana siguiente.

5Seleccionamos el país de nuestro teclado, generalmente es también nuestro país.

6Una vez seleccionado el país de nuestro teclado, elegiremos una de sus variantes en el caso de haberlas. Yo he elegido el teclado estándar en español.

7Si tenemos nuestra máquina conectada a la red, cosa que es muy probable, el sistema comenzará a descargar unos paquetes actualizados. Si nuestro equipo no está conectado a internet, el instalador de Ubuntu Server omitirá ese paso.

8Unos minutos después…

9Aquí nos pedirá un nombre que identificará a nuestro servidor en la red. Yo le he dado el nombre de server1, lo he hecho pensando en futuros tutoriales sobre balanceo de carga o almacenamiento redundante en MySQL. Le podéis dar el nombre que queráis, pero recomiendo evitar caracteres extraños en el nombre, tales como %&$ por ejemplo.

10Aquí ponemos nuestro nombre de usuario, yo he elegido administrador. Este no es el nombre para iniciar sesión, así que podemos poner nuestro nombre completo si nos apetece.

11Aquí sí escribimos el nombre que usaremos para iniciar sesión en nuestro equipo. Yo he elegido el mismo, pero puede ser otro cualquiera.

12Y aquí una contraseña para el usuario, nos la pedirá de nuevo para confirmarla. Yo he usado también, la palabra administrador. Aquí si es recomendable usar caracteres extraños, mezclado con mayúsculas, minúsculas y números.

13Ahora nos preguntará si deseamos cifrar la carpeta personal de nuestro usuario, para mayor seguridad podemos elegir sí. Os dejo a vuestra elección.

14Aquí nos preguntará (no sé por qué lo hace en inglés) sobre la zona horaria en la que nos encontramos. Nos ofrecerá una, en caso de que sea correcta, le decimos que sí, si no lo es, le damos a no y la seleccionamos en la siguiente ventana.

15En mi caso selecciono Madrid, que es la zona horaria correspondiente a mi país.

16Ahora el instalador empezará a detectar el hardware del equipo, este proceso suele ser rápido, apenas unos segundos.

17Aquí llegamos a la parte más interesante de la instalación. El particionado del disco duro. El instalador nos ofrece varias opciones. A mí personalmante me gusta más hacer el particionado manual, de forma que yo elijo el tamaño de las particiones y los puntos de montaje. Voy a explicar cómo se haría de forma manual. Seleccionamos esa opción.

18Nos situamos sobre nuestro disco. En mi caso, he creado en VirtualBox un disco de 8,6 GB y pulsamos intro para particionar todo el disco.

19Ahora el instalador nos preguntará si deseamos crear una nueva tabla de particiones. Le decimos que sí y continuamos.

20Una vez creada la tabla de particiones en el disco, nos situamos sobre el espacio libre y pulsamos intro para comenzar el particionado.

21Elegimos Crear una partición nueva.

22Aquí seleccionamos el tamaño. La partición que voy a crear será sólo para la carpeta personal de los usuarios del sistema, en este caso, administrador.

23Aquí, seleccionamos primaria. Cabe destacar, que un disco duro sólo puede albergar 4 particiones primarias. De forma que si vamos a tener más de 4 particiones en nuestro sistema, tendremos que crear 3 particiones primarias, y a partir de ahí, crearlas de tipo lógico. El número de particiones lógicas que podemos tener, es el que queramos. Las particiones lógicas se crean dentro de un tipo de partición primaria especial, llamada partición extendida.

24Podemos seleccionar dónde queremos ubicar la partición a nivel físico. Esto realmente no suele afectar mucho al rendimiento a no ser que tengamos muchísimas particiones.

25Esta ventana es muy importante, ya que desde aquí será desde dónde configuremos todo lo referente a la partición. El instalador por defecto, nos ofrece como sistema de archivos, el sistema Ext4. Este sistema es la versión 4 del sistema de archivos extendido de Linux. Este sistema es la versión más actualizada del mismo, muy robusto y potente. Dedicaré un futuro artículo a la historia de Ext. Si nos situamos sobre el sistema de archivos y pulsamos intro, podremos ver los tipos de sistemas de archivos que nos ofrece el instalador.

26Aquí podemos ver los diferentes tipos de sistemas de archivos de los que disponemos. Tenemos varias versiones de Ext, dependiendo del kernel de nuestro sistema operativo, soportará un sistema Ext u otro. La versión del kernel que trae Ubuntu Server 13.04 soporta perfectamente Ext4. Yo voy a usar ese sistema. Pulsamos intro y volvemos a la ventana anterior.

25Vamos a cambiar el punto de montaje, de forma que en esta partición de 2 GB, sólo se almacenen los datos de los usuarios del sistema.

27Tenemos varios puntos de montaje definidos por defecto. Como por ejemplo /home, que es el que vamos a usar en este caso. En otro caso, usaremos el que más nos convenga o incluso introduciremos un punto de montaje manual para cualquier directorio del sistema que nos interese.

28Las demás opciones las dejamos tal y como están. Nos situamos en Se ha terminado de definir la partición y pulsamos intro.

29Ahora nos mostrará el estado del proceso de particionado. El espacio libre pasa a ser ahora de 6,6 GB. Vamos a crear dos particiones más una de 6 GB y otra de 600 MB. La partición de 6 GB la usaremos para el sistema operativo, así que usaremos como sistema de archivos el Ext4, como punto de montaje, seleccionaremos /, que es para el sistema de ficheros raíz y también pondremos la opción de marca de arranque en activado. Para la otra partición, la de 600 MB, lo único que seleccionaremos es el sistema de archivos de área de intercambio. Esta partición se usará para hacer swapping. Este método consiste en alternar parte de la memoria RAM con el disco duro, eso se hará en esta partición, también llamada partición swap.

30Una vez creadas las 3 particiones, debemos verlo más o menos como en la imagen.

30Nos situamos en Finalizar el particionado y escribir los cambios en el disco y pulsamos intro. 31Nos pedirá una confirmación para finalizar el particionado, si estamos conformes con lo que hemos hecho, pulsamos sí para escribir los datos en la tabla de particiones. En caso de que queramos modificar algo, le damos a no y volvemos hacia atrás.

32Aquí vemos como comienza a particionar el disco.

33Una vez finalizado el particionado, el instalador comenzará a copiar archivos al disco duro. Este proceso puede durar varios minutos.

34La instalación continúa preparando el kernel para la instalación.

35Aquí nos preguntará si la red a la que estamos conectados tiene algún proxy, de ser así introducimos los datos referentes a este de la misma forma que nos muestra el instalador: http://usuario:contraseña@servidor:puerto. Si no disponemos de proxy, como por ejemplo es mi caso, pues pulsamos tabulador para marcar la opción Continuar y pulsamos intro para continuar con el proceso de instalación.

36Si estamos conectado a internet, el instalador descargará una serie de paquetes necesarios, si no lo estamos, este proceso se omitirá.

37El instalador nos preguntará qué tipo de política de actualización queremos para nuestra máquina. Elegimos la que más nos convenga. A mí personalmente me gusta ejecutar las actualizaciones de forma manual, por lo que voy a elegir la primera opción.

38Aquí nos dará la opción de instalar al mismo tiempo que el sistema operativo, algún que otro servicio. Yo quiero una instalación limpia, por lo que no elijo ningún servicio. Si queremos seleccionar algún servicio a instalar, lo seleccionamos y pulsamos espacio para marcarlo, después pulsamos tabulador para situarnos sobre Continuar y pulsamos intro para continuar.

39El instalador terminará de copiar ficheros y configurar el sistema. Esto puede tardar varios minutos.

40Antes de finalizar la instalación, el sistema nos preguntará si deseamos instalar el cargador de arranque GRUB. Este cargador nos permitirá elegir entre distintos sistemas operativos que tengamos instalados en nuestro equipo, así como arrancar Ubuntu Server con otra versión de kernel diferente. Elegimos sí, y finalizamos la instalación.

41Por último, extraemos el CD de nuestro equipo, y elegimos Continuar para reiniciar nuestra máquina.

42Una vez reiniciada nuestra máquina, el sistema operativo nos pedirá un usuario y una contraseña. Iniciamos sesión con el usuario que hemos definido durante la instalación.

43Una vez con la sesión iniciada, tendremos el control del sistema. Obviamente, no con permisos de administración por defecto, para administrar y hacer cambios importantes en el sistema hay que hacer uso del comando sudo. Si nos fijamos, dice que hay 16 actualizaciones disponibles, de las cuales, 12 de ellas son de seguridad. Para actualizar basta con ejecutar:

sudo apt-get update && sudo apt-get upgrade

Con esto, tendremos un Ubuntu Server 13.04 en una instalación limpia y actualizada. Este sistema operativo es bastante usado para servicios de internet tales como FTP, HTTP o proxy-caché. Es una alternativa bastante buena (yo diría que mejor) a los sistemas de pago como por ejemplo Windows Server. Incluso lo podemos usar a nivel empresarial con la variante de Active Directory para Linux, LDAP.

Configurar SSL en Apache

Introducción

Hola a los muy pocos que leen, en este tutorial vamos a aprender a configurar nuestro servidor Apache para que soporte SSL.

Vamos a configurar Apache bajo Ubuntu, aunque ya sabéis, podéis usar cualquier otra distro GNU/Linux. De paso digo que en este tutorial no voy a explicar cómo instalar Apache ni cómo crear host virtuales basados en nombre. Si queréis saber cómo se hace echadle un ojo a mi otro tutorial.

¿Qué es SSL?

SSL (Secure Socket Layer) es un protocolo criptográfico que proporciona una comunicación segura en internet. El protocolo SSL intercambia registros y cada registro puede ser comprimido, cifrado y empaquetado, se ejecuta en una capa entre los protocolos HTTP, SMTP, NNTP y sobre el protocolo de transporte TCP.

Comenzó a usarse en 1996 por Netscape y actualmente es aprobado por la mayoría de entidades financieras para el comercio por internet.

Habilitando el módulo SSL y creando el certificado

Para habilitar el módulo SSL, tecleamos en un terminal lo siguiente:

sudo a2enmod ssl

Y después habilitamos este módulo también:

sudo a2enmod rewrite

Una vez habilitados los módulos anteriormente mencionados, reiniciamos Apache:

sudo apache2ctl restart

Bien, ahora pasamos a la creación del certificado SSL. Antes de empezar, necesitamos instalar unos paquetes necesarios, en un terminal tecleamos lo siguiente:

sudo aptitude install openssl openssl-blacklist openssl-blacklist-extra

Una vez instalado el paquete, en el terminal tecleamos lo siguiente para crear el certificado SSL:

sudo openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem

Ahora nos hará una serie de preguntas, las respondemos y ya tendremos nuestro certificado creado.

Configurando SSL

Ya tenemos el certificado creado e instalado en /etc/apache2/apache.pem. Ahora vamos a modificar el fichero /etc/apache2/sites-available/websegura. Nos vamos a un terminal y escribimos:

sudo gedit /etc/apache2/sites-available/websegura

Una vez con el archivo abierto, lo dejamos de esta forma:

<VirtualHost *:443>
    ServerName www.websegura.com
    LogLevel warn
    ErrorLog /var/log/apache2/www.websegura.com.error.log
    CustomLog /var/log/apache2/www.websegura.com.access.log combined

    DocumentRoot /var/www/www.websegura.com

    <Directory /var/www/www.websegura.com>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    SSLEngine On
    SSLCertificateFile    /etc/apache2/apache.pem
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
</VirtualHost>

Vamos ahora configurar Apache para que escuche también por el puerto 443. En un terminal tecleamos:

sudo gedit /etc/apache2/ports.conf

Borramos todo el contenido del archivo, y lo dejamos de la siguiente forma:

NameVirtualHost *:80
Listen 80
NameVirtualHost *:443
Listen 443

Ahora toca modificar el archivo /etc/apache2/sites-available/default. En un terminal escribimos:

sudo gedit /etc/apache2/sites-available/default

Y ahora comenzamos a introducir estos fragmentos de código al archivo, en las zonas especificadas.

Al principio:


NameVirtualHost   *:80
NameVirtualHost   *:443

Después de DocumentRoot  /var/www:

DocumentRoot /var/www
RewriteEngine On
RewriteLog /var/log/apache2/https_rewrite.log
RewriteLogLevel 1
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R]

<Directory />

Al final del fichero:

</VirtualHost>
<VirtualHost *:443>
    DocumentRoot /var/www/websegura
    ErrorLog /var/log/apache2/error.log
    SSLEngine on
    SSLCertificateFile /etc/apache2/apache.pem
</VirtualHost>

NOTA: No olvides modificar el fichero /etc/hosts. En el tutorial Apache: Configuración de hosts basados en nombres explico qué hay que hacer.

Ahora sólo queda reiniciar Apache para que la configuración se aplique. Desde el terminal:

sudo apache2ctl restart

Verificando el funcionamiento

Para comprobar que todo el proceso está correcto, debemos abrir el navegador y visitar www.websegura.com, si todo está correcto, veremos algo así:

Ahora debemos dar la excepción de seguridad al navegador, para poder acceder al sitio web. Pulsamos en Entiendo los riesgos.

Ahora hacemos click en Añadir excepción.

Se nos abre una ventana nueva, esta vez pulsamos en Confirmar excepción de seguridad.

Una vez hecho eso, sorpresa. Nuestra web con SSL.

Un candado en la esquina inferior derecha, nos proporciona información acerca la entidad que ha firmado el certificado, en este caso, nosotros mismos.

Bibliografía

Autenticación en servidor Apache

Introducción

Hoy vamos a aprender a establecer un nivel de seguridad en nuestro servidor Apache, corriendo bajo Ubuntu, aunque como siempre digo podemos usar cualquier distribución para seguir el tutorial. Constará de una autenticación mediante un usuario y contraseña. Para este tutorial voy a crear un nuevo Host basado en IP. Dicho esto, vamos a ello.

Creando el nuevo Host

Como ya he comentado antes, voy a crear un nuevo Host basado en IP, para ello abrimos el terminal y tecleamos lo siguiente:

sudo mkdir /var/www/passwordhost

Una vez creado el directorio que alojará el nuevo Host, vamos a crear el index.html, por lo que tecleamos en el terminal:

sudo gedit /var/www/passwordhost/index.html

Una vez con gedit abierto, escribimos un código HTML básico, como el siguiente:

<html>
     <head>
          <title>Ejemplo de host con password</title>
     </head>
     <body bgcolor="#008080">
          <h1>Ejemplo de host con seguridad básica</h1>
     </body>
</html>

Genial, ya tenemos creado el Host con su index. Como lo estamos haciendo mediante IP, ahora debemos crear una interfaz virtual. Si mal no recuerdo, nuestra interfaz se llamaba eth2, para comprobarlo tecleamos en el terminal:

ifconfig

Ahora ya sabemos que estaba en lo cierto, nuestra interfaz se llama eth2 (en amarillo ), eth2:1 y eth2:2 (en azul) son las interfaces virtuales que creamos en el anterior tutorial, dicho esto, vamos a crear la interfaz nueva a partir de eth2, nos vamos al terminal y escribimos:

sudo ifconfig eth2:3 172.16.100.30 netmask 255.255.0.0

En la imagen he marcado en rojo la nueva intrfaz, eth2:3.

Ahora vamos a crear el archivo propio del Host dentro del directorio de configuración de Apache. Nos vamos a un terminal y escribimos:

sudo gedit /etc/apache2/sites-available/passwordhost

Y dentro de este archivo escribimos lo siguiente:

<VirtualHost 172.16.100.30>
     ServerName www.passwordhost.com
     DocumentRoot /var/www/passwordhost
</VirtualHost>

Una vez creado el Host, con su archivo de configuración y demás, vamos a darlo de alta, para ello tecleamos en el terminal:

sudo a2ensite passwordhost

Estableciendo los niveles de seguridad

Una vez con el Host creado, vamos a establecer un nivel de seguridad básico para la página web. Antes de nada debemos crear el directorio que alojará la información referente a los usuarios y sus contraseñas. Vamos a crear tres usuarios y dos grupos, cada uno en su respectivo grupo. Los usuarios y grupos serán:

  • policia, del grupo buenos.
  • testigo, del grupo buenos.
  • ladron, del grupo malos.

A ser posible, para prevenir posibles problemas de compatibilidad, evitaremos poner tildes y carácteres raros (ñ, %, &…) en el nombre del usuario.

Pasemos ahora a crear dicho directorio, en el terminal tecleamos:

sudo mkdir /var/password

Estupendo, una vez creado el directorio vamos a crear el primer usuario, volvemos al terminal y tecleamos:

sudo htpasswd -c /var/password/.pass_user policia

Ya tenemos creado el primer usuario, policia. Ahora crearemos los siguientes usuarios.

NOTA: Una vez tenemos creado el primer usuario, para los usuarios que creemos posteriormente no debemos poner el -c en la consola, ya que le indicaríamos al comando htpasswd que volvemos a crear el primer usuario, y machacará la entrada del usuario policia.

Ahora que sabemos lo anterior, volvemos a la consola y creamos los demás usuarios:

  • Usuario testigo:
sudo htpasswd /var/password/.pass_user testigo
  • Usuario ladron:
sudo htpasswd /var/password/.pass_user ladron

Ahora ya tenemos creados los tres usuarios a los que daremos (o no) permiso permiso para visualizar el contenido de nuestro sitio web.

Pasemos ahora a crear los dos grupos, buenos y malos. Para crear un grupo nos vamos al terminal y tecleamos lo siguiente:

sudo gedit /var/password/.pass_group

Una vez con el archivo abierto, escribimos lo siguiente:

Guardamos el archivo y listo. Ahora volvemos al terminal, y tecleamos lo siguiente para crear el próximo archivo en el que configuraremos qué grupos y usuarios tienen acceso al Host passwordhost.

sudo gedit /var/www/passwordhost/.htaccess

Una vez con gedit, rellenamos el archivo con lo siguiente:

AuthType         Basic
AuthName         "Acceso a mi host"
AuthUserFile     /var/www/password/.pass_user
AuthGroupFile    /var/www/password/.pass_group
require group    buenos

Pulsamos en guardar, y vamos ahora a editar el último archivo. Volvemos al terminal y tecleamos:

sudo gedit /etc/apache2/sites-available/default

Nos vamos hacia el final del archivo, después de que cierre la última etiqueta <Directory>, escribimos lo mismo que en la imagen:

<Directory /var/www/passwoardhost>
     AllowOverride    AuthConfig
     Order    allow,deny
     Allow    from all
</Directory>

Una vez añadido eso al archivo default, ya sólo queda reiniciar apache, volvemos al terminal y tecleamos:

sudo apache2ctl restart

Verificando el funcionamiento

Ahora ya tenemos nuestro Host protegido, y hemos establecido los permisos para los usuarios que hemos querido, ahora sólo queda comprobar que todo funciona como debe.

Abrimos Firefox (o nuestro navegador habitual), y visitamos la siguiente dirección:

  • 172.16.100.30

Si  todo marcha bien, esto será lo que veamos:

Ahora introducimos cualquier usuario de los que tengan permiso, por ejemplo, policia.

  • En Nombre de Usuario: policia
  • En Contraseña: soypoli

Esos son los datos que yo use para crear el usuario, como es obvio, vosotros debéis introducir los que usasteis.

El usuario policia, al estar definido en el grupo buenos (único grupo autorizado para entrar al Host) pues ha podido entrar sin problemas.

Lo mismo debe de ocurrir con el usuario testigo, sin embargo, al usuario ladron no le permitirá entrar ya que no se encuentra en el grupo buenos, y por lo tanto no está autorizado.

Si el nombre de usuario que introducimos es erróneo o no está autorizado, al pulsar en Aceptar, nos volverá a salir la misma ventana de logeo, sin embargo, al pulsar en Cancelar, obtendremos el siguiente mensaje de error:

Eso significa que nuestro Host está correctamente protegido.

Bibliografía

  • Apuntes de clase.

Apache: Configuración de Hosts basados en IP

Introducción

En este tutorial, vamos a aprender a crear hosts virtuales basados en IP usando Apache bajo Ubuntu. Aunque podemos usar cualquier otra distribución para esto.

Creando los hosts virtuales basados en IP

Creando las interfaces virtuales de red necesarias

Antes de nada, vamos a crear dos interfaces virtuales de red, una para cada web, para ello vamos a usar el comando ifconfig. En primer lugar necesitamos saber el nombre real de nuestra interfaz de red, abrimos un terminal y tecleamos lo siguiente:

$ ifconfig

1

He señalado en rojo el nombre mi interfaz, aunque podemos tenerla con diversos nombres, eth0, eth1, wlan0…

Ahora para crear la interfaz nueva, tecleamos lo siguiente en un terminal:

$ sudo ifconfig eth2:1 172.16.100.10 netmask 255.255.0.0

2

Una vez creada la interfaz número uno, pasaremos a crear la número dos:

$ sudo ifconfig eth2:2 172.16.100.20 netmask 255.255.0.0

3

En la imagen podemos ver nuestras dos interfaces nuevas, ahora forman parte del resultado del comando ifconfig.

Creando los hosts y asignándolos a las interfaces

Voy a usar los hosts virtuales que creé en el tutorial Apache: Configuración de hosts virtuales basados en nombre. Podéis entrar en él y seguirlo para ver como se crean los hosts basados en nombre. En mi caso (y en el vuestro si habéis seguido previamente el tutorial anteriormente mencionado) escribo en el terminal:

$ sudo gedit /etc/apache2/sites-available/pagina1

5656

Ahora para asignar la página 1 a la primera interfaz que creamos (eth2:1) modificamos el archivo de forma que quede así:

<VirtualHost 172.16.100.10>
     ServerName www.pagina1.com
     DocumentRoot /var/www/pagina1
</VirtualHost>

4

Una vez modificado el archivo de la página 1, modificamos ahora el de la página 2, asignándole la IP de la segunda interfaz que creamos (eth2:2). Tecleamos en el terminal:

$ sudo gedit /etc/apache2/sites-available/pagina2
<VirtualHost 172.16.100.20>
     ServerName www.pagina2.com
     DocumentRoot /var/www/pagina2
</VirtualHost>

Modificando el archivo /etc/apache2/sites-available/default

En el anterior tutorial, modificamos el archivo /etc/apache2/sites-available/default para añadir una línea al principio, ahora debemos borrar esa línea. En el terminal tecleamos:

$ sudo gedit /etc/apache2/sites-available/default

hbdshbdf

Borramos la línea marcada y guardamos los cambios.

Reiniciando Apache y verificando el funcionamiento

Ya sólo nos queda reiniciar el servidor de Apache y comprobar que todo funciona, para reiniciar el servicio tecleamos en un terminal:

$ sudo apache2ctl restart

Nota: En el tutorial Apache: Configuración de hosts virtuales basados en nombre explico las diferentes formas de reiniciar Apache.

Vamos ahora a comprobar que las dos webs funcionan, abrimos un navegador (Mozilla Firefox por ejemplo) y entramos en:

  • 172.16.100.10
  • 172.16.100.20

basadosIP_1

basadosIP_2

Bibliografía

  • Apuntes de clase.

Apache: Configuración de hosts basados en nombres

Introducción

En este tutorial vamos a aprender a instalar y configurar un servidor Apache corriendo bajo Ubuntu, aunque podemos usar cualquier distribución de Linux para seguir este turorial.

¿Qué es Apache?

El servidor Apache es un servidor web HTTP con licencia GNU disponible para varias plataformas como por ejemplo Windows, Linux o MacOS. El objetivo del proyecto Apache es proporcionar un servidor seguro, eficiente y extensible. Actualmente, Apache es el servidor web más usado en internet. Según Netcraft, Apache está instalado casi en un 48% de todos los sitios webs.

Instalación

Para instalar Apache en nuestra máquina, tecleamos lo siguiente en un terminal:

$ sudo aptitude install apache2

1

Una vez instalado Apache, podemos iniciarlo con:

$ sudo apache2ctl start

Creando Host Virtuales por nombre

En primer lugar vamos a definir el nombre de los hosts virtuales que vamos a usar:

  • www.pagina1.com
  • www.pagina2.com

Ahora vamos a crear los hosts virtuales con los que Apache va a trabajar. Creamos los archivos de configuración referentes a los host virtuales.

$ sudo gedit /etc/apache2/sites-available/pagina1

2

Y dentro de este archivo, escribimos lo siguiente:

<VirtualHost 172.16.2.37>
   ServerName www.pagina1.com
   DocumentRoot /var/www/pagina1
</VirtualHost>

4

Yo he usado mi IP, como es obvio, en vuestro caso debéis usar la vuestra. Doy por hecho que sabéis cual es vuestra IP. Ahora creamos el segundo archivo, referente a la segunda página:

$ sudo gedit /etc/apache2/sites-available/pagina2
<VirtualHost 172.16.2.37>
   ServerName www.pagina2.com
   DocumentRoot /var/www/pagina2
</VirtualHost>

Ahora debemos crear los directorios que hemos indicado en la directiva ServerRoot:

  • /var/www/pagina1
  • /var/www/pagina2

Escribimos en la consola:

$ sudo mkdir /var/www/pagina1
$ sudo mkdir /var/www/pagina2

6

Dentro de estos directorios van nuestras páginas webs, vamos a crear el index de cada una para comprobar más tarde que funcionan correctamente. Empecemos con el de la primera web, así que tecleamos en el terminal:

$ sudo gedit /var/www/pagina1/index.html

5

Ahora introducimos algún código html básico, como por ejemplo:

<html>
   <head>
      <title>Página1</tile>
   </head>
   <body bgcolor="#CCCCCC">
      <h1>Esta es la página1</h1>
   </body>
</html>
 

7

Guardamos los cambios y vamos ahora a editar la segunda página con un código en HTML similar. Repetimos la operación de antes:

$ sudo gedit /var/www/pagina2/index.html
<html>
   <head>
      <title>Página2</tile>
   </head>
   <body bgcolor="#CCCCCC">
      <h1>Esta es la página2</h1>
   </body>
</html>
 

Una vez creadas las páginas de prueba, vamos a habilitarlas, por lo que ahora tecleamos en un terminal:

$ sudo a2ensite pagina1

8

Hacemos lo mismo con la segunda página:

$ sudo a2ensite pagina2

Si todo ha ido bien, el terminal nos devolverá el siguiente mensaje:
9

Una vez habilitadas las dos páginas, vamos a editar el archivo default en la configuración de Apache, volvemos a la consola y tecleamos lo siguiente:

$ sudo gedit/etc/apache2/sites-available/default

11

Ahora sólo tenemos que incluir la siguiente línea en la primera línea del archivo default:

NameVirtualHost 172.16.2.37

12

Una vez hecho eso, ahora sólo queda guardar los cambios en el archivo y editar el último fichecho de todos. Pulsamos en guardar y volvemos a la consola para teclear:

$ sudo gedit /etc/hosts

13

En este archivo añadiremos nuestras dos páginas para ser nosotros mismos quienes resolvamos su dirección. Añadimos dos líneas con este contenido:

14

172.16.2.37 www.pagina1.com
172.16.2.37 www.pagina2.com

Una vez hecho eso, ya sólo queda reiniciar Apache, lo hacemos de la siguiente manera:

$ sudo apache2ctl restart

Esto hará que nuestro servicio de Apache se reinicie cortando todas las conexiones, si por el contrario queremos reiniciar el servidor sin cortar ninguna conexión, tecleamos lo siguiente:

$ sudo apache2ctl graceful

La ejecución del anterior comando permitirá que los usuarios que estén demandando información de nuestro servidor Apache mantengan su conexión, aunque los cambios realizados en éste no le serán efectivos en el instante, pero sí cuando establezcan de nuevo conexión.

10

Es muy posible que al reiniciar Apache, obtengamos el siguiente mensaje:

15

Para solucionarlo, nos vamos al terminal de nuevo y tecleamos lo siguiente:

$ sudo gedit /etc/apache2/apache2.conf

16

Una vez en el archivo, sólo nos queda añadir la siguiente línea al principio del archivo:

ServerName localhost

17

Guardamos los cambios y ahora podremos reiniciar con tranquilidad y sin problemas.

Verificando el funcionamiento

Para comprobar que nuestras páginas funcionan, sólo tenemos que abrir un navegador (Mozilla Firefox por ejemplo) y teclear la URL de dichas páginas.

Página 1

  • URL: www.pagina1.com

pg1

Página 2

  • URL: www.pagina1.com

pg2

Bibliografía

  • Apuntes de clase.