Configuración de red en Ubuntu 12.04 Desktop

Ubuntu Desktop es quizás la distribución de Linux más popular actualmente. Por este motivo, suele ser la elegida para trabajar con ella en clase. Hay un aspecto, sin embargo que suele traer de cabeza muchas veces a los alumnos, la configuración de red.

En los sistemas sin entorno gráfico, la configuración de red se realiza editando el archivo /etc/network/interfaces, como podemos ver en la siguiente imagen:

netubu00Sin embargo, en la versión Desktop, disponemos de una herramienta gráfica el Network Manager que permite realizar estas configuraciones desde el escritorio.

netubu01De hecho, si abrimos el archivo /etc/network/interfaces, veremos que no tiene definida más que la interfície de localhost.

netubu02El problema radica cuando el usuario toca  la configuración por un método y otro, con la idea, en este caso equivocada, que el Network Manager modifica el archivo de interfaces. Como resultado, suelen tener problemas por no saber qué configuración están usando en cada momento.

Es importante tener en cuenta que se trata de dos gestores independientes, que competirán por el mismo recurso, en este caso la tarjeta de red. Para evitar este problema, editaremos la configuración del Network Manager (/etc/NetworkManager/NetworkManager.conf). Si abrimos el archivo vemos la siguiente configuración:

netubu06Por defecto, vemos que ifupdown está con la configuración managed false, con esta configuración los dos métodos compiten por la misma configuración. Vamos a cambiar el false por true.

netubu04Y reiniciaremos la máquina.

Si vamos ahora a la configuración de red desde el escritorio, vemos que aparece activada una conexión denominada ifupdown que corresponde a la configuración por el archivo. También nos aparece la conexión inicial, que en este caso será gestionada por el NetworkManager.

netubu09De esta manera, por defecto, se utiliza la configuración ifupdown, pero podemos en cualquier momento, cambiar y usar la configuración Wired connection 1 que gestiona el configurador gráfico.

Si clicamos en editar configuraciones, vemos que desde el NetworkManager no nos permite editar la configuración ifupdown.

netubu10Saludos y hasta el próximo post.

Configuración servidor Web en Linux i II

Continuando la configuración que comenzamos en el post anterior, vamos a detallar cómo crear un servidor web de páginas segura, utilizando el protocolo TLS/SSL. Si hasta no hace mucho, el protocolo http se empleaba básicamente en operaciones de comercio o banca electrónica, en la actualidad se ha ido extendiendo a todas aquellas páginas donde el usuario deba realizar alguna autenticación, con el objeto de garantizar la seguridad de este proceso ya que herramientas como Firesheep habían puesto de manifiesto lo sencillo que era el robo de credenciales.

El primer paso que tenemos que realizar es habilitar el protocolo https en Apache para ello y con privilegios elevados ejecutaremos desde un terminal el comando:

a2enmod ssl

El siguiente paso, será similar al realizado en el post anterior, dentro de la carpeta /etc/apache2/sites-avalaible, copiaremos el archivo default-ssl a otro archivo con el nombre que sirva para describir el site que queremos configurar, por ejemplo en nuestro caso:

lamp07Si editamos el archivo, veremos que por defecto utiliza un certificado autofirmado por el equipo (el famoso snake-oil). Evidentemente, cuando queramos utilizar un certificado propio para nuestro dominio, bien autofirmado o proviniente de una entidad de certificación externa, lo que deberemos es modificar estas líneas del archivo para apuntar a lo que corresponda.

lamp09Además, deberemos modificar al principio del archivo la información correspondiente al dominio, el alias y la ruta donde se encuentre el site, para adecuarlo a nuestro caso (de manara idéntica a como ya se hizo anteriormente). Una vez que tengamos todo correctamente, configurado, guardamos el archivo y lo habilitamos:

a2ensite waytoit-ssl

service apache2 restart

Por último, tenemos que editar el archivo /etc/apache2/ports.conf porque si bien ya tiene habilitada la escucha por el puerto 443, tenemos que añadir que funcionen los virtual host sobre ese puerto, añadiendo la línea NameVirtualHost *:443.

lamp08Aquí podemos comprobar el funcionamiento de la página.

lamp10Evidentemente, el  navegador del cliente nos dará una alerta al ser un certificado no firmado por ninguna entidad de certificación y ni siquiera ligado al dominio que hemos creado. Si queremos crear para nuestra organización un dominio interno, podemos crear un certificado propio o incluso hacer que el servidor se comporte como una entidad certificadora, por si queremos crear certificados para otras máquina de la organización o incluso para los clientes. En este post se explica de una forma muy clara la realización de este proceso.

Por otro lado, si nuestro servidor va a ser visible desde Internet, será necesario utilizar un certificado firmado por una entidad de certificación: Symantec (anteriormente Verisign), Comodo o cualquiera del resto de empresas o instituciones que realizan esta labor. En este caso, necesitaremos en primer lugar hacer la petición desde el servidor, generando un archivo que enviaremos a la entidad. Comodo, ofrece la posibilidad de obtener un certificado de prueba gratuito durante 90 días.  En la propia página se dispone de una guía donde explica paso a paso los procedimientos a seguir.

Configuración servidor Web en Linux I

El servidor de páginas web por excelencia es Apache, sobretodo su implementación sobre una máquina Linux. En este post vamos a ver algunas configuraciones básicas, mientras que en posts posteriores iremos añadiendo prestaciones a dicho servidor.

Nos basaremos en una máquina Ubuntu 12.04 Server. Podemos instalar únicamente el servidor Apache (apt-get install apache2) o instalar todo el servicio LAMP (Apache, MySQL y PHP) para disponer de un servidor que nos permitirá utilizar php y bases de datos.

Para instalar LAMP la forma más sencilla es:

# tasksel

Cuando aparece el menú de selección de programas, marcamos el LAMP server:

lamp01A continuación el sistema comenzará a bajar los paquetes necesarios. Nos aparecerá una pantalla donde se nos pedirá introducir un password para el usuario root en el gestor de BD MySQL:

lamp02

 Nos pedirá confirmación de dicho password y finalizará la instalación del resto de paquetes. Podemos comprobar que el servicio funciona correctamente, poniendo la IP del servidor en el navegador de un equipo cliente.

lamp03Una de las características que deseamos en un servidor web, es la posibilidad de alojar diferentes sites. Es lo que llamamos virtualhost y ahora con Apache es extremadamente sencillo de gestionar. En la carpeta /etc/apache2/sites-avalaible tendremos los archivos de configuración de los diversos hosts que deseemos crear.

Por otro lado y aunque podemos en principio utilizar cualquier ubicación, crearemos las carpetas correspondientes a cada dominio en /var/www. Por ejemplo si queremos crear dos dominios, haremos:

# mkdir /var/www/domini1

# mkdir /var/www/domini2

Dentro de cada una de las carpetas, crearemos la estructura del site desado, con al menos un archivo index.html.

Ahora, vamos a crear el archivo de configuración para cada dominio, para ello iremos a la ruta /etc/apache2/sites-available y copiaremos el archivo default para crear dos archivos (uno para cada site):

# cp default domini1

# cp default domini2

Editaremos los archivos domini1 y domini2 para configurar el site, indicando el nombre del dominio (ServerName), los alias que aceptará (ServerAlias), la ruta principal del dominio y la IP y puerto por el que aceptará las peticiones. En este caso, escuchará por todas las IP y aceptará peticiones por el puerto 80.

lamp04Ahora aplicaremos los cambios, para ello ejecutaremos el comando a2ensite nombre_archivo, que comprueba el archivo de configuración y si es correcto lo copia en la carpeta /etc/apache2/sites-enabled, donde se encuentran los archivos habilitados y en funcionamiento. Por último, recargaremos el servicio para actualizar los cambios:

# a2ensite domini1.local

#a2ensite domini2.local

# service apache2 reload

Óbviamente, si queremos que los clientes puedan acceder a estos sites, debemos dar de alta los dominios y los correspondientes registros en los DNS, o para hacer pruebas, editar el archivo de hosts de los clientes (Linux o Windows).

Si queremos que un determinado site utilice un puerto diferente al 80, debemos realizar dos acciones: en primer lugar, en el archivo de configuración del site, pondremos el puerto deseado, por ejemplo el 8080, en lugar del puerto 80.

lamp05En segundo lugar, debemos decirle al servicio de Apache que también debe escuchar por el puerto 8080, para ello, editaremos el archivo /etc/apache2/ports.conf y añadir las líneas:

Listen 8080

Name VirtualHost *:8080

En la primera le decimos que debe escuchar por el puerto 8080. La segunda sirve para decirle que el sistema de virtualhost también funcione para ese puerto.

Una vez realizadas estas acciones, debemos habilitar el site (comando a2ensite) si es la primera vez que se crea el site. Caso que modifiquemos un site ya creado, basta con editar el archivo de sites-enabled en lugar del de sites-available y a continuación recargar el servicio de apache.

lamp06

En próximos post veremos el tema de las páginas seguras en nuestro servidor.