Proyecto Final SXI

26
I.E.S JAUME II EL JUST Especialidad Administración de Sistemas en Red Curso 2ª ASIX ASIGNATURA SERVICIOS DE RED E INTERNET Autor: NÉSTOR PASTOR PIERA Tavernes de la Valladigna 9 de Marzo de 2013

Transcript of Proyecto Final SXI

Page 1: Proyecto Final SXI

I.E.S JAUME II EL JUST

Especialidad

Administración de Sistemas en Red

Curso

2ª ASIX

ASIGNATURA

SERVICIOS DE RED E INTERNET

Autor: NÉSTOR PASTOR PIERA Tavernes de la Valladigna 9 de Marzo de 2013

Page 2: Proyecto Final SXI

INDICE

Introducción …................................................................................................................................... 3

Instalación Ubuntu 10.04 …............................................................................................................... 4

Servidor DNS Bind9 …...................................................................................................................... 9

Servidor WEB Apache ….................................................................................................................. 13

Servidor DHCP …............................................................................................................................. 18

Servidor SSH …................................................................................................................................ 19

Servidor FTP …................................................................................................................................. 21

2 de 26

Page 3: Proyecto Final SXI

INTRODUCCIÓN

Para el desarrollo del proyecto he elegido la distribución Ubuntu 10.04 virtualizada mediante Vmware. Me he decantado por esta distribución por ser la misma que he empleado en las demás prácticas. El primer paso es difinir el hardware a virtualizar.

Una vez definido el hardware instalaremos Ubuntu 10.04 en nuestra máquina virtual e iremos instalando y configurando un servidor dns, un servidor web con diferentes sitios, un servidor dhcp, un servidor ssh y un servidor ftp.

3 de 26

Page 4: Proyecto Final SXI

UBUNTU 10.04

Una vez que hemos definido el hardware a virtualizar iniciamos la instalación del sistema operativo.Para ello asignamos al lector de dvd virtual un soporte externo donde elegimos la iso del SO que deseamos instalar e iniciamos la máquina.

Iniciamos la máquina virtual desde la iso y lo primero que nos pregunta es si queremos ejecutarla en modo live o instalarla.

4 de 26

Page 5: Proyecto Final SXI

La instalación es muy sencilla, únicamente hay que leer con detenimiento y elegir las opciones deseadas.

Elección de la distribución del teclado; por defecto nos sugiere el estándar de España.La zona horaria, que en mi caso es España(Madrid).

5 de 26

Page 6: Proyecto Final SXI

El nombre del equipo, del usuario y la contraseña. Podemos elegir entre iniciar sesión con o sin autenticación.

Llegados a este punto hay que decidir si instalamos el SO directamente o creamos particiones en el disco duro para gestionar mejor el sistema.

6 de 26

Page 7: Proyecto Final SXI

En este caso he creado particiones en función de las necesidades observadas:

Puntos de montaje:/ o raíz: Es la raíz del árbol de directorios, desde donde se ramifica todo el sistema operativo. /home: Corresponde a la partición de datos de usuarios. Es donde se colocan las carpetas para cada usuario con los perfiles de cada cuenta. En este caso puesto que vamos a instalar un servidor ftp con usuarios de sistema enjaulados, es lógico tratar el home como la partición que almacenará todos los datos subidos por el servidor ftp, así que además de ser una partición independiente deberá ocupar casi la mitad de la capacidad disponible.

/var: Corresponde a la partición de datos de servicios. En esta partición se encuentran todos los datos relacionados con el servidor Apache que instalaremos más tarde, tales como documentos web, imágenes, archivos temporales del servidor web, backups, etc... Esta partición también necesitará mucho espacio por lo general, aunque dependerá de cada caso, le asignamos casi la mitad de la capacidad total de almacenamiento.

swap: Espacio físico para la memoria virtual del sistema. Debe asignarse el doble del tamaño del RAM físico. Esta será siempre la última partición del disco duro. No se asigna punto de montaje.

Es importante particionar el disco duro por varios motivos. Imaginemos que por un error de administración permitimos que los usuarios ftp ejecuten transacciones sin límite de subida. Podríamos ocupar todo el espacio disponible, saturar los servicios activos e incluso el sistema, comprometiendo su disponibilidad. Los clientes que dependen de este equipo para resolver dominios no podrían navegar, los usuarios de ftp no serían capaces de descargar o subir datos, las páginas web alojadas en esta máquina no estarían disponibles y el servidor dhcp no asignaría ips. Un caos total.

7 de 26

Page 8: Proyecto Final SXI

Una vez definido el particionado puede empezar la instalación.

La instalación termina y ya podemos iniciar sesión.

Antes de empezar a instalar los diferentes servicios hay que modificar dos archivos:/etc/resolv.conf /etc/network/interfaces

8 de 26

Page 9: Proyecto Final SXI

Editamos el archivo /etc/network/interfaces y asignamos las ip estática, máscara de red y puerta de enlace. En este caso he definido dos interfaces de red sobre una misma tarjeta (eth0 y eth0:1). En /etc/resolv.conf definimos el dominio de búsqueda “NPprojecte.es” y una ip para el reenvío en caso de no resolver una petición dns.Para evitar que el archivo /etc/resolv.conf sea reescrito por el network-manager hay que parar este servicio: sudo /etc/init.d/network-manager stop Es importante reiniciar los servicios cada vez que cambiamos su configuración, este caso el servicio de red: sudo /etc/init.d/networkin restartHecho esto, podemos empezar a instalar y configurar los diferentes servicios que prestará la máquina.

SERVIDOR DNS BIND9

Con un ping a www.google.es comprobamos que tenemos conexión a internet, la configuración es correcta. Descargamos el paquete bind9 y algunos otros paquetes adicionales de los cuales nos avisa el gestor dpkg.

9 de 26

Page 10: Proyecto Final SXI

Una vez instalado debemos crear los archivos que bind9 utiliza para resolver dominios e ips.

El archivo /etc/bind/directa.db servirá para las resoluciones directas y en él incluimos todos los dominios a resolver con sus respectivas ips. He definido el servidor dns “ns1.NPprojecte.es”, el servidor web con dos dominios “www” y “virtual” con la misma ip ya que montaremos dos VH basados en nombre, y tres clientes.

En el archivo /etc/bind/inversa.rev servirá para resolver de manera inversa, con la ip resolver el dominio, y en el asociamos la ips con los nombres de dominio de las máquinas.

10 de 26

Page 11: Proyecto Final SXI

También hay que modificar el archivo /etc/bind/named.conf.options, en este archivo ponemos la directiva forwarders para permitir el reenvío en caso de no poder resolver.

Reiniciamos el servicio: sudo /etc/init.d/bind9 restart

Con la herramienta nslookup podemos comprobar que el servidor dns resuelve de forma directa.

11 de 26

Page 12: Proyecto Final SXI

Y de forma inversa.

Puesto que el servidor dns resuelve correctamente sólo nos queda comprobar que el reenvío también se haga correctamente.

Y efectivamente tras hacer ping tanto a www.NPprojecte.es como a www.google.es comprobamos que se los nombres de dominio son resueltos.

12 de 26

Page 13: Proyecto Final SXI

SERVIDOR WEB APACHE2

Instalamos los paquetes necesarios.

El archivo principal de configuración es /etc/apache2/apache2.conf aunque para este proyecto no necesitamos modificarlo.

Como vemos el servidor ya responde por el puerto configurado por defecto (80). Ahora vamos a crear y configurar los virtual host según nuestras necesidades.Modificamos el virtual host “default” para que se atiendan las peticiones por el puerto 85, para esto hay que modificar la directiva “Listen <puerto>”, que se encuentra por defecto en el archivo /etc/apache/ports.conf; por comodidad yo lo que hago es comentar esta directiva en este archivo y colocarla en el archivo /etc/apache/sites-avaliable/default. Además hay que añadir autenticación para varios usuarios, pero ojo que no son de sistema, sino únicamente para apache. Algunas funcionalidades de Apache no vienen compiladas por defecto y hay que cargarlas para poder utilizarlas, se conocen como módulos. En la carpeta /etc/apache/mods-avaliable tenemos un montón de ellos. Puesto que para la autenticación he optado por el método digest, tengo que cargar el módulo correspondiente.

13 de 26

Page 14: Proyecto Final SXI

Este método aporta un cifrado en el proceso de autenticación, también podría haber utilizado basic que está disponible por defecto. Creamos el directorio /etc/apache/passwd/, en este directorio vamos a crear un archivo oculto con una lista de usuarios que podrán acceder a nuestro sitio default. El comando para crear la lista de usuarios por el método digest es “htdigest”.

El archivo ya está creado, ahora añado las directivas al archivo default.

He añadido el puerto, la dirección ip, nombre de dominio, un alias, la raiz del sitio y las directivas de autenticación. Si la lista de usuarios se limitara a un sólo usuario modificaríamos la directiva Require valid-user a Require <nombre_usuario>.

Después de reiniciar Apache accedemos desde el navegador a nuestro sitio web por el puerto 85 y nos debe pedir autenticación.

14 de 26

Page 15: Proyecto Final SXI

Ahora vamos a crear otro VH basado en nombre, este sitio tendrá otra raíz con su página por defecto y dos carpetas personales para dos usuarios con sus páginas correspondientes.El hecho de que sea un VH basado en nombre quiere decir que no cambiamos la ip y el puerto sino el nombre de dominio del sitio. Además crearemos varios usuarios de sistema para que tengan su propio contenido web en su carpeta personal. /home/<nombre_usuario>/www

Creamos los documentos html que van a ser mostrados por defecto para cada usuario.

Y lo mismo para el usuario Cliente2NP.

Ahora creamos el nuevo VH, podríamos ponerlo en el archivo default pero yo prefiero crear otro archivo que llamaré virtual.

15 de 26

Page 16: Proyecto Final SXI

Le asignamos la raíz “Document Root” al VH, misma ip y puerto que al VH default y modificamos el nombre de dominio. Además incluyo dos alias a los usuarios cliente1P y cliente2P para evitar poner “~” en la url. www.NPprojecte.es:85/~cliente1NP Recordemos que tenemos que cargar el VH con el comando a2ensite. Este VH nos gestiona tres sitios web./var/www/virtual/<sitio_default>/ home/cliente1NP/www/<sitio_cliente1>/home/cliente2NP/www/<sitio_cliente2>

Para gestionar los usuarios activamos el módulo userdir.

Y modificamos su archivo de configuración /etc/apache/mods-avaliable/userdir.conf

Userdir utiliza como raíz por defecto public_html así que debemos indicarle la que se ajuste a nuestras necesidades, en este caso “Userdir www”. Ahora podemos alojar diferentes webs para diferentes usuarios en sus carpetas www y para acceder a estos sitios utilizaremos la dirección “virtual.NPprojecte.es:85/cliente1NP” o “virtual.NPprojecte.es:85/cliente2NP”.

16 de 26

Page 17: Proyecto Final SXI

Por último creamos un VH seguro también basado en nombre, el cual utiliza el puerto 443 para transferencias seguras.

De nuevo la misma ip, puerto 443 seguro, nombre de dominio sobre el que activamos el protocolo seguro y raíz que en este caso es /var/www/secreta.El protocolo seguro ssl utiliza certificados y pares de claves para su funcionamiento, en este caso yo he dejado los que hay por defecto pero podríamos personalizarlo creando nuestros propios certificados y claves mediante la herramienta openssl.

No hace falta poner el puerto 443 ya que queda implícito por el uso del protocolo https. Aceptamos y accedemos a la web.

17 de 26

Page 18: Proyecto Final SXI

SERVIDOR DHCP

Instalamos el servidor.

Una vez instalado se intenta arrancar el servicio automáticamente pero como es normal no arranca. Para poder iniciarlo hay que configurarlo correctamente.

Estas son las directivas que he modificado.

18 de 26

Page 19: Proyecto Final SXI

Dominio al que pertenece la máquina e IP del servidor de dominios.

Rangos de Ip's que podrá asignar a los clientes, red a la que pertenecen y puerta de enlace.

Reserva de ip, la cual va asociada a una dirección mac en concreto.

SERVIDOR SSH

El paquete openssh-server viene instalado por defecto en Debian, así que podemos pasar a su configuración directamente. Editamos el archivo /etc/ssh/sshd_config

No permitimos loguearse al usuario root y establecemos en 5 segundos el máximo tiempo permitido para autenticarse.

19 de 26

Page 20: Proyecto Final SXI

Podemos activar el mensaje de bienvenida o incluso personalizarlo. Ahora creamos el par de claves.

Creo un par de claves pub/priv con el tipo de cifrado “dsa” En este caso cuando pide la frase de paso la dejo en blanco, así cuando utilicemos la clave pública no nos pedirá la frase de paso.

Ya tenemos la clave pub en nuestro directorio local. “/home/proyecto/.ssh/id_dsa.pub”

La copiamos a la carpeta ./ssh del directorio local del usuario proyecto en la máquina remota a la que queremos conectarnos sin introducir el password. Nos pide autenticación.

20 de 26

Page 21: Proyecto Final SXI

Introducimos la clave pública en un archivo de claves autorizadas, para permitir la conexión sin autenticación.

Finalmente establecemos una conexión ssh con el usuario “proyecto” al host 192.168.221.150 sin autenticarnos mediante password.

SERVIDOR FTP

Instalamos el paquete vsftpd.

21 de 26

Page 22: Proyecto Final SXI

Puesto que queremos poder realizar conexiones seguras al servidor ftp, vamos a crear un par de claves y un certificado.

Mediante la herramienta openssl le indicamos que queremos crear un certificado con una validez de 365 días firmado con una clave del tipo rsa de 1024 bits. La clave privada se guardará en el archivo /etc/ssl/private/ftp.key y el certificado en el archivo /etc/ssl/private/ftp.crt

Editamos el archivo de configuración “/etc/vsftpd.conf” y modificamos algunas directivas según nuestras necesidades.

Permitimos a los usuario anónimos conectarse y ejecutar acciones que conlleven escritura. Además permitimos también loguearse a los usuarios del sistema.

22 de 26

Page 23: Proyecto Final SXI

Permitimos a los usuarios anónimos subir archivos y crear directorios, lógicamente debemos crear un directorio con permisos de escritura para el usuario “ftp” en la raíz del servidor en Debian “/srv/ftp”.

Habilitamos el enjaulado para los usuarios del sistema de manera que no podrán salir de su carpeta personal y creamos una lista con los usuarios que si pueden salir de su carpeta personal “/home/<usuario>”. Debemos crear el archivo /etc/vsftpd.chroot_list donde ponemos la lista. Hay que tener en cuenta que los permisos de los usuarios que accedan por ftp serán los mismos que tengan sus respectivos usuarios de sistema. Con estas directivas existen varias combinaciones. Por ejemplo si le asignamos un No a la directiva chroot_local_user la lista sería de usuarios enjaulados. En este caso la lista es de usuario no enjaulados.

Por último añadimos las directivas para las conexiones seguras por el método “explícito” e “implícito”.

Si queremos conectarnos mediante ftpes (explícito) debemos comentar las directivas “implicit_ssl=YES” y “listen_port=990”.

Reiniciamos el servicio y probamos con un cliente ftp como por ejemplo el Filezilla.

23 de 26

Page 24: Proyecto Final SXI

Conexión ftps (implícita).

Conexión ftpes (explícita).

Además deberemos poder conectarnos con un ftp implícito, con el usuario apellido, i contraseña12345.Para ello creo el usuario alumno.

24 de 26

Page 25: Proyecto Final SXI

Modifico el archivo /etc/vsftpd.conf para permitir conexiones implicitas.

Reinicio el servicio y pruebo este tipo de conexión.

Los usuario anónimos también pueden acceder de firma directa o explícita, pero nunca de forma implícita.

25 de 26

Page 26: Proyecto Final SXI

26 de 26