Transcript
Page 1: Servidores en Debian linux

Universidad Tecnológica de laMixteca

Redes de computadoras

Servidores Debian

Castro Guerrero J. Luis, Rivera Lorenzo, Somera Reyes NancyG.

6o Ingeniería en Computación

Acatlima - 10 de junio de 2016

Page 2: Servidores en Debian linux

Índice1. Servidor http (Apache) 3

1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2. Instalación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.3. Espacio web para usuarios . . . . . . . . . . . . . . . . . . . . 31.4. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2. Servidor DNS (bind) 52.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2. Instalación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3. Configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.4. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3. Servidor FTP (vsftpd) 113.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2. Instalación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.3. Configuración de vsftpd . . . . . . . . . . . . . . . . . . . . . 123.4. Crear grupo de usuario para FTP . . . . . . . . . . . . . . . . 123.5. Creación de usuarios . . . . . . . . . . . . . . . . . . . . . . . 133.6. Enjaular al usuario . . . . . . . . . . . . . . . . . . . . . . . . 133.7. Pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2

Page 3: Servidores en Debian linux

Resumen

En las siguientes páginas se expresa la forma en cómo se levantaronlos servicios más básicos de una intranet, entre los cuales se puedeencontrar los servidores DNS, FTP, correo eléctronico y un servidorWEB. Así como también se muestran los archivos de configuraciónque se tuvieron que modificar y las pruebas de los servicios.

1. Servidor http (Apache)

1.1. IntroducciónEl servidor HTTP Apache es un servidor web HTTP de código abierto,

para plataformas Unix, Microsoft Windows, Macintosh, que implementa elprotocolo HTTP y la noción de sitio virtual. Cuando comenzó su desarrolloen 1995 se basó inicialmente en el código del popular NCSA HTTPD 1.3,pero más tarde fue reescrito por completo.

El servidor Apache es desarrollado y mantenido por una comunidad deusuarios bajo la supervisión de la Apache Software Foundation dentro delproyecto HTTP Server (httpd).

1.2. InstalaciónPara la instalación solamente se tiene que escribir la siguiente linea en

una terminal, para poder descargarlo desde los repositorios de la distro:sudo apt -get install apache2

1.3. Espacio web para usuariosCada usuario dispone de un espacio web que se almacena en la carpeta

public_html dentro de su carpeta home. Si la carpeta public_html no existe,el propio usuario la puede crear y almacenar en ella su sitio web. La carpetapublic_html deberá tener permisos 755 para que el “grupo” y el “resto” deusuarios tengan acceso de lectura y así se puedan visualizar las páginas. Siqueremos que la carpeta public_html se genere de forma automática al darde alta al usuario, se puede crear en /etc/skel.

Para que apache procese los espacios web de los usuarios, es necesarioactivar el módulo userdir mediante los siguientes comandos:

3

Page 4: Servidores en Debian linux

sudo a2enmod userdirsudo service apache2 restart

1.4. PruebasCon esto ya tenemos instalado Apache en nuestra máquina. Para compro-

bar que está funcionando correctamente, tenemos que acceder a la IP localde nuestro servidor desde el nuestro navegador web o también ingresar lapalabra localhost.

Si la instalación se realizó de manera exitosa, el navegador debe de mos-trar una imagen como la siguiente:

Figura 1: Servidor Apache funcionando.

Los archivos del servidor web se almacenan en /var/www/html donde seencuentra el archivo “index.html” que se muestra por defecto. Dicho archivodebe ser sustituido por tu index.html.

Para acceder vía web a la página de un usuario, desde un navegadordebemos acceder de la siguiente forma: http://ip-del-servidor/~usuario/

En la siguiente imagen se muestra la página del usuario Nancy.

4

Page 5: Servidores en Debian linux

Figura 2: Espacio web del usuario Nancy.

2. Servidor DNS (bind)

2.1. IntroducciónEl servidors DNS (Sistema de Nombres de Dominio) asocia información

variada con nombres de dominios asignado a cada uno de los participantes. Sufunción más importante es “traducir” nombres inteligibles para las personasen identificadores binarios asociados con los equipos conectados a la red, estocon el propósito de poder localizar y direccionar estos equipos mundialmente.

La asignación de nombres a direcciones IP es ciertamente la función másconocida de los protocolos DNS. Por ejemplo, si la dirección IP del sitio Goo-gle es 216.58.210.163, la mayoría de la gente llega a este equipo especificandowww.google.com y no la dirección IP. Además de ser más fácil de recordar,el nombre es más fiable. La dirección numérica podría cambiar por muchasrazones, sin que tenga que cambiar el nombre tan solo la IP del sitio web.

2.2. InstalaciónLo primero que tenemos que hacer para configurar un servidor DNS es

instalarlo desde los repositorios poniendo en consola:sudo apt -get install bind9 bind9 -doc dnsutils

5

Page 6: Servidores en Debian linux

2.3. ConfiguraciónPara la parte de la configuración se modificarán los archivos siguientes,

que se encuentran en el directorio etc:

named.conf.local

resolv.conf

hosts

A continuación nos vamos al directorio etc para editar los archivos de confi-guración necesarios:cd /etc

Es recomendable acceder a este directorio como root (sudo su) para no tenerproblemas de permisos denegados cuando copiemos ficheros o modifiquemoslos ya existentes.

Una vez que estamos en este directorio, basta con editar el archivo na-med.conf.local

Nuestro servidor DNS maestro para nuestro dominio “www.peluchin.com”será capaz de resolver peticiones internas de nombres de este dominio, tan-to de forma directa como de forma inversa, es decir, si recibe una consultaacerca de quién es nancy.peluchin.com deberá devolver su IP, pongamos porejemplo 192.168.1.84. Si la consulta es una consulta DNS inversa acerca dequién es 192.168.1.84, deberá responder nancy.peluchin.com. Por ello debere-mos añadir en el archivo /bind/named.conf.local la especificación de maestropara el dominio y para la resolución inversa, por ejemplo://// Do any local configuration here//

// Consider adding the 1918 zones here , if they are not used in your// organization// include "/ etc/bind/zones. rfc1918 ";

zone " peluchin .com" {type master ;file "/ etc/bind/zones/db. peluchin .com ";

};

zone "1.168.192. in -addr.arpa" {type master ;file "/ etc/bind/zones/rev .1.168.192. in -addr.arpa ";

};

6

Page 7: Servidores en Debian linux

Evidentemente será necesario crear los archivos db.peluchin.om y rev.1.168.192.in-addr.arpa que especificarán la asociación entre nombres y direcciones IP denuestra red en un sentido y en otro respectivamente.

Creamos la carpeta zones:mkdir zones

Hacemos los archivos de resolución directa e inversa desde los archivos db.localy db.127 como sigue e ingresamos en la carpeta zones:cp db.local zones/db. peluchin .comcp db .127 zones/rev .1.168.192. in -addr.arpacd zones

El archivo db.peluchin.com será para la resolución directa, en tanto que elotro para la resolución inversa.

Abrimos ambos archivos con nuestro editor favorito e ingresamos los datospara cada uno. Para la resolución directa se tiene el archivo final:;; BIND data file for local loopback interface;$TTL 604800@ IN SOA peluchin .com. root. peluchin .com. (

2 ; Serial604800 ; Refresh

86400 ; Retry2419200 ; Expire

604800 ) ; Negative Cache TTL;@ IN NS dns. peluchin .com.@ IN A 192.168.1.79

www IN A 192.168.1.79dns IN A 192.168.1.79

nancy IN A 192.168.1.84lorenzo IN A 192.168.1.83jlcastrogro IN A 192.168.1.74

jl IN CNAME jlcastrogrolore IN CNAME lorenzonanz IN CNAME nancy

Las primeras líneas son unos parámetros relacionados con la actualizacióndel DNS (número de serie y periodos de actuación). Las dos siguientes líneasindican quién es el servidor primario (NS = Name Server). Las siguenteslíneas especifican las IPs de los distintos hosts del dominio (A = Address).También se crean alias con CNAME (CNAME = Canonical Name).

Si olvidamos algún punto y coma, dará errores y no funcionará correcta-mente. Para revisar los archivos disponemos de los comandos named-checkconfy named-checkzone que analizan que esté correcta la sintaxis de los mismos.

7

Page 8: Servidores en Debian linux

Para poder realizar consultas inversas (de IP a nombre) será necesariocrear el siguiente archivo:;; BIND reverse data file for local loopback interface;$TTL 604800@ IN SOA peluchin .com. root. peluchin .com. (

1 ; Serial604800 ; Refresh

86400 ; Retry2419200 ; Expire

604800 ) ; Negative Cache TTL;@ IN NS dns. peluchin .com.

84 IN PTR nancy. peluchin .com.83 IN PTR lorenzo . peluchin .com.74 IN PTR jlcastrogro . peluchin .com.

79 IN PTR dns. peluchin .com.79 IN PTR www. peluchin .com.79 IN PTR peluchin .com.

Para el caso del archivo resolv.conf se tiene que ingresar el dominio antescreado y la dirección del servidor DNS, el archivo puede quedar de la siguienteforma:# Generated by NetworkManagersearch peluchin .com lannameserver 127.0.0.1nameserver 192.168.1.254

Por último, para el archivo hosts ingresamos los datos del host en la cualestamos montando el servidor DNS.

El archivo puede quedar de la siguiente forma:127.0.0.1 localhost127.0.1.1 peluchin .com peluchin

# The following lines are desirable for IPv6 capable hosts::1 localhost ip6 - localhost ip6 - loopbackff02 ::1 ip6 - allnodesff02 ::2 ip6 - allrouters

2.4. PruebasPara el caso de las pruebas de nuestro servidor DNS primero lo haremos

desde un navegador, pero antes debemos configurar nuestro cliente. Esto lopodemos realizar de manera gráfica o modificando el archivo resolv.conf.

8

Page 9: Servidores en Debian linux

Para este caso lo haremos de manera gráfica, en la siguiente imagen sepuede ver cómo configuramos nuestro cliente.

Figura 3: Configuración del cliente.

Se elije una configuración manual y se ingresa los datos, la dirección parael dispositivo, una máscara de subred y la puerta de enlace. La puerta deenlace la podemos obtener con el comando ip route.

Por último se pone la direción de nuestro servidor DNS y se guardan loscambios.

Ya que está configurado nuestro cliente, lo primero que haremos es desdeun navegador ingresar al dominio que creamos, en este caso www.peluchin.com.

Si el servidor DNS está funcionando debe desplegar la misma informaciónque desplegó cuando se instaló el servidor Apache.

9

Page 10: Servidores en Debian linux

Figura 4: Prueba de dominio con página principal de Apache.

Ahora haremos la prueba desde una terminal. Con la herramienta pingharemos solicitudes a nuestro servidor y de manera inversa, haremos pingdesde nuestro servidor hacia la maquina cliente.

Figura 5: Resolución directa, ping a servidor e inversamente.

10

Page 11: Servidores en Debian linux

Para poder probar nuestra resolución inversa, desde nuestro cliente pre-guntaremos quien tiene la dirección IP 192.168.1.74 y él nos debe responder.La información que muestra puede ser como sigue:

Figura 6: Resolución inversa, entre clientes.

3. Servidor FTP (vsftpd)

3.1. IntroducciónFTP (File Transfer Protocol), es un protocolo de transferencia de archivos

cliente/servidor que permite a los usuarios transferir archivos entre ordena-dores en una red . La impementación de FTP tiene sus origenes en 1971,cuando se desarrolló un sistema de transferencia de archivos entre equiposdel instituto Tecnológico de Massachusetts.

3.2. InstalaciónUtilizaremos vsftpd, es un servidor FTP para sistemas Unix, incluyendo

Linux. Para la instalación de vsftp (Very Secure FTP Daemon), solamentese tiene que escribir la siguiente linea en una terminal:sudo apt -get install vsftpd

11

Page 12: Servidores en Debian linux

3.3. Configuración de vsftpdEs importante mencionar que en este caso consideramos que se tiene ya

instalado un servidor DNS. La configuración se hará en el archivo vsftpd.conf,que esta ubicado en /etc/vsftpd. Accedemos al archivo con permisos de superusuario, esto con el objetivo de que la configuración que haremos se guarde,ya que en caso de no acceder como super usuario, el sistema no permitiráque modifiquemos el archivo.sudo gedit /etc/ vsftpd .conf

En la anterior linea se indica que queremos abrir el archivo vsftpd.conf quese encuentra en la ruta /etc con el editor gedit. Se puede usar gedit siemprey cuando este instalado, aunque también se puede usar cualquier otro editor.

Los parámetros que modificaremos ya aparecen en el archivo, solo ne-cesitamos quitar el caractér “#” para indicar que la linea escrita no es uncomentario:# iniciar el servidor vsftpd al inicio del sistemalisten =YES#No permitimos que usuarios anonimos puedan conectarse a nuestro servidor .#Es por seguridadanonymous_enable =NO#Para poder conectarse con los usuarios locales del servidor .local_enable =YES#Para que los usuarios puedan tambien escribir y no solo descargar archivos .write_enable =YES#Esta mascara lo que hace es que cada vez que subas un archivo ,#sus permisos sean 755.local_umask =022# Podemos restringir a los usuarios a su propio /home y no tener# acceso a todos los archivos y carpetas .chroot_local_user =YES#Sirve para que los usuarios locales puedan navegar por todo el#arbol de directorios el servidor .chroot_list_enable =YES# Indicamos el fichero donde estan listados los usuarios que# pueden navegar por todo el arbol de diretorios del servidorchroot_list_file =/ etc/ vsftpd . chroot_list

3.4. Crear grupo de usuario para FTPPara crear un grupo, necesitamos escribir la siguiente linea en la termnal.

sudo groupadd ftp

Creamos una shell fantasma para que los usuarios no puedan entrar a laconsola del servidor:sudo mkdir/bin/ftp

12

Page 13: Servidores en Debian linux

Accedemos al archivo shellssudo nano /etc/ shells

Agregamos la shell fantasma para el grupo creado./bin/ftp

3.5. Creación de usuariosDebemos crear la carpeta del usuario en el servidor, será donde tendrá

acceso vía FTP. Debemos realizaar los siguientes pasos por cada usuario quese desee crear. Escribimos las siguiqntes lineas en una terminal.sudo mkdir /home/ftp/ usuario1chmod -R 755 /home/ftp/ usuario1

Creamos el usuario que pertenece al grpo FTPsudo useradd -g ftp -d /home/ftp/ usuario1 -c " Usuario1 FTP" usuario1

Lo que se especifica en la linea anterior es:

-g ftp: El usuario pertenece al grupo ftp

-d /home/ftp/usuario1: El directorio principal del usuario es /home/ft-p/usuario1

-c “Usuario1 FTP”: El nombre completo del usuario.

usuario1: La última palabra será el nombre del usuario

Creamos la contraseña para usuario1:sudo passwd usuario1

3.6. Enjaular al usuarioEste paso es muy importante, ya que con el enjaulamiento, el usuario no

podrá escalar en la jerarquía del directorio y solamente se mantendrá en sudirectorio. Buscamos el usuario recien creado en el archivo passwd:nano /etc/ passwd

Copiamos la línea en donde esta el nombre del usuario que acabamos decrear:usuario :x :1003:1001: Usuario1 ftp :/ home/ftp/ usuario1 :/ bin/ftp

13

Page 14: Servidores en Debian linux

Luego la pegamos en la última línea del siguiente archivo:sudo nano /tc/ vsftpd . chroot_list

También en el archivo anterior agregamos el nombre del usuario, en este casousuario1. El archivo vsftpd.chroot_list queda de la siguiente forma:usuario1usuario1 :x :1008:125: usuario1 ftp :/ home/ftp/ usuario1 :

Una vez realizados todos los cambios reiniciamos el servicio de vsftpd, existendos formas de reiniciar:/etc/init.d/ vsftpd restart

service vsftpd restart

3.7. PruebasUn primer paso para probar nuestro servidor ftp es ejecutar en una consola

la siguiente línea:ftp www. peluchin .com

Peluchin.com en nuestro caso es el nombre de nuestro dominio. Una vezejecutada la linea anterior, nos pediá un usuario y contraseña para accederal servicio ftp

Figura 7: Servicio FTP

14

Page 15: Servidores en Debian linux

Podemos ver los archivos y directorios que tenemos hasta el momentoescribiendo ls:

Figura 8: Archivos y Directorios de usuario1

También se puede usar el servidor de FTP con filezilla. Para eso necesi-tamos configurar una nueva conexión, como se muestra a continuación:

Figura 9: Configuración de Filezilla

Una vez que nos conecta de forma éxitosa, nos muestra el directorio del

15

Page 16: Servidores en Debian linux

usuario (parte derecha) y los archivos y directorios que podemos subir.

Figura 10: Archivos y directorios de usuario1 en FileZilla

Para poder compartir algún archivo, lo seleccionamos y con clic derechonos mostrará un menú en donde eligiremos “subir”, esto con el objetivo de queel archivo se transfiera a la carpeta de usuario1. En este ejemplo subiremosuna imagen llamada “1.png”

Figura 11: Compartir archivos

16

Page 17: Servidores en Debian linux

Ahora veremos que esa imagen aparecerá en la cuenta de usuario1.

Figura 12: Transferencia del archivo

Es importante saber también que la transferencia de archivos se puederealizar también desde consola con comandos como: put, get,ls, etc.

Referencias[1] Servidor Debian en https://servidordebian.org/es.

17