Taller de Servicios en Red Con Linux
Taller de Servicios en Red Con Linux
Taller de Servicios en Red Con Linux
1. ___________________________________________________________________________________
2. ___________________________________________________________________________________
INTRODUCCIÓN
En la actualidad existen muchos sistemas operativos con los cuales se puede implementar servicios de red (Web, email,
DHCP, FTP, etc.), tales como: Windows Server, Linux, FreeBSD, Mac OS Server, OpenBSD, Unix, entre otros. Sin embargo,
uno de los más utilizados es Linux, en sus diferentes distribuciones, debido a su facilidad para conseguirlo, su gratuidad
(en la mayoría de los casos) y la gran comunidad de adeptos a este sistema que hay a nivel mundial que han logrado
crear un sistema robusto y confiable para proveer cualquier tipo de solución tecnológica.
En este taller conoceremos más profundamente una de las distribuciones de Linux más utilizada, CentOS (Community
Enterprise Operating System) en su versión 6 y aprenderemos a implementar algunos de los servicios de red más
comunes y útiles a la hora de brindar soluciones para las empresas que los requieran.
OBJETIVO GENERAL
Profundizar en el conocimiento técnico del sistema operativo Linux, realizando prácticas sobre un sistema Linux
virtualizado donde se aprenderá su manipulación básica y la implementación de algunos de los servicios de red más
comunes y útiles para las empresas.
OBJETIVOS ESPECÍFICOS
# TAREA
Conocer las generalidades del sistema operativo Linux para poder efectuar operaciones básicas sobre el
1 sistema como edición de archivos, creación de directorios, instalación de paquetes de software, entre
otras.
2 Entender la estructura y funcionamiento básicos del Firewall del sistema operativo Linux.
3 Configurar el servicio DNS para la resolución de nombres de dominio.
Configurar el servicio Web con soporte para el lenguaje de programación PHP, incluyendo soporte para
4
bases de datos MySQL (conjunto conocido como Servidor LAMP) y el Servicio FTP
5 Configurar el servicio de correo electrónico (Email Server) básico
Configurar un servidor para Web/Email Hosting con todos los elementos de seguridad y administración
6
requeridos para poner en producción por cualquier empresa.
METODOLOGÍA
Se conformarán parejas de trabajo, cada una de las cuales compartirá un equipo para la realización de los ejercicios
prácticos. Pueden usar su propio equipo portatil o uno de los equipos dispuestos en el aula. La guía de trabajo se deberá
llenar de forma digital y al finalizar los ejercicios esta deberá ser enviada vía email a
[email protected] para recibir retroalimentación sobre la misma. En un lapso de 1 semana, por el
mismo medio se enviará la retroalimentación.
Instalar en su equipo de trabajo el software Oracle Virtualbox con el Oracle Virtualbox Extension Pack (en caso de no
tenerlo instalado previamente).
2. INSTALACIÓN DEL SISTEMA OPERATIVO LINUX CENTOS 6.7 EN UNA VM CREADA EN VIRTUALBOX
Crear una nueva máquina virtual en Virtualbox con las siguientes características:
o Tipo: Linux Redhat o CentOS 6.x
o Memoria RAM: 512 Mb
o Disco duro: 10 Gb
o CD-ROM: Buscar la imagen ISO de CentOS
o Tipo de Red: Adaptador puente
Instalar el sistema operativo Linux CentOS. Usar como clave para el usuario root: “virtualbox4321”
Ejecutar el instalador del software PuTTY (un cliente Telnet/SSH) el cual necesitarán para acceder remotamente a su
máquina virtual y ejecutar los comandos necesarios durante la configuración en las diferentes prácticas.
Seleccione la máquina virtual y de clic en el botón iniciar. Esto lanzará una nueva ventana donde se mostrará el
proceso de arranque del sistema operativo, tal como si fuera el monitor de un nuevo equipo. Al finalizar, el sistema
Linux quedará pidiendo el nombre de usuario y clave para ingresar.
El nombre de usuario para ingresar al sistema es “root” y la clave asignada es: “virtualbox4321”.
Esta máquina virtual es una instalación mínima del sistema operativo, lo cual indica que no tienen ningún paquete
de software adicional instalado, más que lo necesario para arrancar el sistema y ejecutar comandos básicos de
Linux.
El direccionamiento IP a utilizar por cada grupo será determinado por el número de grupo asignado al iniciar el
taller, al igual que el nombre de host a utilizar, según la siguiente tabla:
Durante las prácticas, encontrarán los siguientes indicadores que deberán reemplazar con su correspondiente
información según la tabla anterior:
El objetivo de esta práctica es aprender algunas tareas administrativas básicas sobre sistemas Linux, así como a ejecutar
algunos comandos, edición de archivos y demás pasos de carácter general al sistema. Concretamente se realizarán las
siguientes tareas:
Al ejecutar estas tareas, aprenderán paralelamente los comandos necesarios para llevar a cabo edición de archivos,
cambiarse de directorio, entre otros.
1. Ingresar al sistema Linux con el usuario root y la clave asignada desde la ventana abierta por el sistema
Virtualbox.
ifconfig
Este comando le arrojará el nombre asignado a la tarjeta de red de la máquina virtual. Normalmente será un
nombre del tipo “ethX” siendo X un número desde 0 en adelante.
Ejecutar ahora el comando ifconfig sin parámetros. ¿Cuántas interfaces de red se muestran en el
resultado? ________
4. Desde su PC, hacer ping a la dirección previamente asignada a su máquina virtual. ¿Cuál es el resultado
obtenido? (Pegar un screenshot aquí):
5. Desde la máquina virtual hacer ping a la dirección “www.google.com”. ¿Cuál es el resultado obtenido? (Pegar un
screenshot aquí). Explicar el porqué del resultado obtenido.
7. Desde la máquina virtual hacer un ping nuevamente a la dirección “www.google.com”. (Pegar un screenshot
aquí). ¿Cambió el resultado con respecto al ping anterior? SI _____ NO _____ ¿Por qué? _________________
8. Si el resultado del comando anterior fue negativo (la dirección no responde), ¿Cuál cree que es la causa posible?
____________________________________________________________________________________
10. Nuevamente hacer un ping a la dirección “www.google.com”. (Pegar un screenshot aquí). ¿Cuál es el resultado
obtenido? Explicar el resultado y el porqué de la diferencia con los resultados anteriores, si las hay.
reboot
12. Iniciar sesión nuevamente en su máquina virtual y hacer ping a la dirección “www.google.com”. ¿Cuál es el
resultado obtenido? (Pegar un screenshot aquí.) Explicar el porqué del resultado.
cd /etc/sysconfig/network-scripts
rm –f ifcfg-eth*
touch ifcfg-ethX
Reemplazar la X en DEVICE con el número según el nombre de interfaz obtenido para su sistema. Reemplazar los
parámetros de red según los datos en la tabla que correspondan a su grupo.
cd /etc/sysconfig
rm –f network
touch network
16. Reiniciar la máquina virtual. Al iniciar la máquina, iniciar sesión y hacer un ping a “www.google.com”. ¿El
resultado del ping es positivo? SI ______ NO ______ ¿Por qué?
yum –y install wget ftp telnet nano vim gcc-c++ make autoconf perl
El objetivo de esta práctica es aprender el funcionamiento y configuración básica del firewall de Linux, mediante el
comando iptables. Específicamente se llevarán a cabo las siguientes actividades:
Verificar la configuración que tiene la máquina por defecto, activación y desactivación del firewall
Diferenciar entre las dos políticas de firewall más utilizadas
Apertura y cierre de puertos en la máquina y pruebas de conectividad
Configuración del firewall mediante un archivo de configuración permanente
iptables -L
¿Cuál fue el resultado de dicho comando? Del resultado obtenido, ¿se puede determinar si el firewall de Linux se
encuentra activado o desactivado?
6. Bloquee el puerto del servicio SSH de su sistema. ¿Qué comando debe usar para lograr este objetivo?
7. Abra el programa PuTTY que encuentra en el material digital entregado. En el campo Host name teclee la
dirección IP de su máquina virtual y de clic en el botón Open. Explique el resultado obtenido.
8. Reinicie el servicio del firewall. Verifique si el puerto SSH sigue bloqueado o si está abierto nuevamente.
Explique el porqué del resultado.
9. Abrir el archivo /etc/sysconfig/iptables y desde el mismo bloquee el puerto del servicio SSH de su
sistema. ¿Qué más debe hacer para que este cambio surta efecto?
10. Reinicie su máquina virtual. ¿Puede conectarse a su máquina utilizando el programa PuTTY? Explique el porqué
del resultado.
El objetivo de esta práctica es aprender como configurar el servicio de DNS para dos usos diferentes: Como proxy DNS
para una red LAN o como servidor DNS autoritativo para determinadas zonas (dominios) de Internet/Intranet.
Un servidor DNS es autoritativo para un dominio/zona cuando en él están configurados los parámetros
correspondientes a dicho dominio.
1. Instalar los paquetes de software “bind” y “bind-utils” mediante el comando de instalación apropiado. Al
instalar estos paquetes estamos instalando el servidor y el cliente DNS en la máquina virtual. Estos paquetes
vienen con todos los archivos de configuración predeterminados necesarios para operar un servidor DNS. Solo
hace falta hacer modificaciones sobre los archivos para empezar a personalizar el servidor.
2. Abrir el archivo de configuración “/etc/named.conf”. Debemos hacer las siguientes modificaciones para
que nuestro servidor funcione como un servidor proxy DNS (DNS Forwarder).
bindkeys-file "/etc/named.iscdlv.key";
¿Por qué debemos comentar la línea anterior? ¿Cómo se hace para comentarla?
3. Cerrar el archivo de configuración, iniciar el servicio “named” y configurarlo para que inicie automáticamente
con la máquina virtual.
4. Abrir el puerto correspondiente al servicio de DNS en el firewall de Linux y reiniciar el servicio para aplicar los
cambios. ¿Qué puerto/protocolo debe abrir en el firewall? _____________
5. Configurar su máquina real para utilizar como servidor DNS primario la dirección <ipaddress>
correspondiente a su servidor DNS. No configurar ningún DNS secundario en su máquina.
6. Navegar en internet. Si puede hacerlo significa que su configuración está correcta. Si no lo puede hacer, deberá
verificar la configuración para determinar que hace falta para que el servidor DNS funcione como se espera.
7. Procederemos a realizar los cambios necesarios para que el servidor DNS funcione como servidor autoritativo
para el dominio de ejemplo de nuestro taller: “unisinu.com”
zone "unisinu.com" IN {
type master;
file "unisinu.com.fwd";
allow-update { none; };
};
Mediante estas líneas estamos indicando la creación de una nueva zona autoritativa en nuestro servidor, su tipo
y el archivo donde se configurarán los registros DNS para dicha zona. Guardar el archivo y salir.
10. Crear el archivo “/var/named/unisinu.com.fwd” e ingresar las siguientes líneas en el:
$TTL 1D
@ IN SOA dns1.unisinu.com. root.dns1.unisinu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimu m
IN NS dns1.unisinu.com.
IN MX 10 mail.unisinu.com.
IN A <ipaddress>
dns1 IN A <ipaddress>
mail IN A <ipaddress>
www IN A <ipaddress>
ftp IN A <ipaddress>
Estas líneas son las que definen los registros DNS para la zona/dominio de ejemplo.
¿Qué significado tienen o en que afectan los parámetros serial, refresh, retry, expire y mínimum en la
configuración de la zona?
11. Guardar el archivo. Cambiar el grupo propietario del archivo mediante el siguiente comando:
Este cambio es necesario debido a que el servicio named se ejecuta bajo el usuario/grupo “named” por lo que
este usuario/grupo debe contar con los permisos de lectura necesarios para poder leer la información de los
archivos.
12. Reiniciar el servicio de DNS y hacer un ping desde su máquina real hacia la dirección “dns1.unisinu.com”.
¿Cuál es el resultado del ping?
13. Cambiar el archivo “/etc/resolv.conf” para que quede solo con la siguiente configuración:
search unisinu.com
nameserver 127.0.0.1
14. Se deja como investigación para el estudiante la configuración de una zona reversa para asociar direcciones IP a
nombres (lo contrario a las zonas directas configuradas durante la práctica).
PRÁCTICA 4: CONFIGURACIÓN DEL STACK LAMP (SERVIDOR WEB APACHE CON PHP Y MYSQL BAJO LINUX)
El objetivo de esta práctica es la configuración de un servidor Web básico, que cuente con soporte para el lenguaje de
programación PHP y acceso a bases de datos relacionales MySQL.
1. Ejecutar el siguiente comando para instalar los paquetes de software necesarios para ejecutar un servidor
LAMP:
Este comando instalará paquetes adicionales para suplir dependencias de los paquetes principales.
2. Iniciar el servicio “httpd” y configurarlo para que inicie automáticamente con el sistema.
3. Abra el puerto correspondiente al servicio web en el firewall de Linux y aplique los cambios.
4. Compruebe que el servidor Web está funcionando, ingresando desde su navegador a la dirección IP del servidor.
Describa que página abrió al ingresar:
5. No cierre la ventana del navegador que abrió en el paso anterior. En la máquina virtual, crear el siguiente
archivo: “/var/www/html/index.php”. Ingresar las siguientes líneas en el mismo:
<?php
phpinfo();
?>
6. Regresar nuevamente a su navegador y recargar la página (tecleando F5). Describa que página abrió al hacer
esta acción:
7. Analice el contenido de la página de resultado que salió al recargar su navegador. Extraiga de este archivo la
siguiente información:
8. Iniciar el servicio MySQL (“mysqld”) mediante el comando apropiado y configurarlo para que inicie
automáticamente con el sistema.
9. Ejecutar el siguiente comando:
mysql_secure_installation
Mediante la ejecución de este comando se configurará de manera adecuada la instancia del servidor de bases de
datos MySQL, respondiendo a las siguientes preguntas que el comando nos plantea:
Enter current password for root (enter for none): <-- Teclear enter dado que aún no
se ha fijado clave
Set root password? [Y/n] <-- Responder Y, para configurar una clave para el administrador de
MySQL
New password: <-- Digite la clave que desee para su servidor de BD
Re-enter new password: <-- Confirme la clave anteriormente escrita
Remove anonymous users? [Y/n] <-- Responder Y, para eliminar usuarios anónimos que están
configurados por defecto
Disallow root login remotely? [Y/n] <-- Responder Y, para deshabilitar la opción de ingreso
remoto al sistema mysql con el usuario root.
Remove test database and access to it? [Y/n] Responder Y, para eliminar cualquier
base de datos de prueba que haya creado la instalación del sistema por defecto.
Reload privilege tables now? [Y/n] <-- Responder Y, para recargar los privilegios de acceso
luego de los cambios realizados.
10. En este momento ya se encuentra listo para operar un servidor Web básico, con soporte PHP y MySQL. Queda
de parte del estudiante profundizar en el uso del lenguaje PHP y su interacción con el motor de bases de datos
MySQL para la creación de sitios web dinámicos que puedan almacenar información en una BD.
11. El paso siguiente es la instalación y configuración de un servidor FTP con el cual podamos subir y bajar
información hacia y desde nuestro servidor. Los sistemas CentOS tienen disponible por defecto el paquete
“vsftpd” como servidor FTP por lo que instalaremos este paquete mediante el comando correspondiente.
pasv_enable=YES
pasv_max_port=65535
pasv_min_port=60000
port_enable=YES
13. Iniciar el servicio “vsftpd” y configurarlo para que inicie automáticamente con el sistema.
14. Abrir los puertos necesarios en el firewall de Linux para dar acceso al servicio FTP y que este funcione de manera
correcta. ¿Qué puertos se debe abrir en el firewall? ___________________________________
15. Instale en su máquina real el software Filezilla-Client que encontrará entre los programas que se les dieron en el
material al inicio del taller. Este programa es un cliente FTP muy popular.
16. Use Filezilla para ingresar por FTP a su servidor. ¿Qué parámetros necesita para hacerlo?
17. Crear un nuevo usuario en su máquina virtual, mediante los siguientes comandos:
groupadd <username>
useradd -g <username> -G users -d /home/<username> -s /bin/bash -c "<Su nombre completo>"
<username>
passwd <username>
El último comando le solicitará la clave de acceso para este nuevo usuario. Deberá digitarla dos veces, tal como
indican las instrucciones del comando.
19. Subir algún archivo desde su PC hasta el servidor FTP. En la consola de su máquina virtual, diríjase al directorio
“/home/<username>” y ejecute el comando “ls –l”. ¿Cuál es el resultado obtenido?
El objetivo de esta práctica es la instalación de los diferentes elementos que conforman un sistema de correo
electrónico:
MTA: Mail Tranport Agent – Paquete de software “postfix”. Se encargará de enviar y entregar los correos
electrónicos mediante el protocolo SMTP o mediante entrega local.
MDA: Mail Delivery Agent – Se utilizará la funcionalidad de MDA incorporada en Postfix.
MUA: Mail User Agent – Es el cliente de correo con el que revisamos o enviamos emails. Para la práctica se
instalará un cliente local con acceso web (Webmail) llamado Squirrelmail.
Protocolos de entrega a los usuarios: mediante el paquete de software “dovecot” se proveerá soporte para los
protocolos POP3 e IMAP.
1. Instalaremos los siguientes paquetes de software en nuestra máquina virtual: postfix, dovecot,
cyrus-sasl, cyrus-sasl-plain
2. Editar el archivo de configuración base, ”main.cf” que se entrega en los recursos del taller y ajustar según los
parámetros de su máquina virtual (nombre, direccionamiento ip, etc).
5. Iniciar los servicios “postfix” y “saslauthd” y configurarlos para que inicien automáticamente con el
sistema.
unix_listener auth-userdb {
#mode = 0600
user = postfix
group = postfix
}
10. Iniciar el servicio “dovecot” y configurarlo para que inicie automáticamente con el sistema.
11. Subir al servidor mediante FTP el archivo correspondiente al programa Squirrelmail entregado en los recursos
del taller.
12. Desde la máquina virtual, dirigirse al directorio “/var/www/html” y descomprimir el archivo subido
anteriormente mediante el siguiente comando:
Este comando creará un directorio llamado “squirrelmail-webmail-1.4.22. Cambiar el nombre de este directorio
por el de “webmail”. ¿Qué comando debe utilizar para lograr este cambio? ______________________________
13. Crear los directorios auxiliares “data” y “attach”, necesarios para la instalación del sistema Squirrelmail:
mkdir –p /var/local/squirrelmail/{data,attach}
cd /var/local/squirrelmail
chown –R apache.root attach
chmod –R 760 attach
chown –R apache.root data
chmod –R 755 data
16. Seleccionar ahora la opción 2 para la configuración del tipo de servidor. Configurar según se muestra a
continuación:
17. Seleccionar la opción “A” para desplegar las opciones del servidor IMAP. Configurar según la siguiente imagen:
18. Al terminar de configurar las opciones, regresar al menú principal con la opción “R”. Desde el menú principal
escoger la opción “S” para Guardar la configuración realizada y luego la opción “Q” para salir del programa de
configuración.
19. Ingresar desde su navegador a la dirección http://<ipaddress>/webmail/. Al ingresar deberá poder visualizar la
página de inicio de sesión de Squirrelmail. Ingresar al sistema con el usuario y contraseña creados en la práctica
anterior. Deberá poder visualizar la interfaz webmail y trabajar sobre ella para enviar o recibir correos
electrónicos.
20. Haga una prueba de correo enviándose un email a su dirección personal (preferiblemente de gmail) y este
deberá llegar (revisar la carpeta spam de su correo porque muy probablemente el email sea clasificado como
spam). Debido a la limitante de que este es un servidor privado y se está trabajando con un dominio inexistente
en Internet, no va a ser posible recibir emails desde Internet. Las pruebas de recepción se podrán hacer entre
usuarios del propio sistema.
¿Si el email llegó a la carpeta Spam de su servicio, por qué cree Ud. que el email fue clasificado como Spam?
21. Cree otro usuario en su máquina virtual y asígnele su clave de acceso y envíe y reciba correo entre ambos
usuarios. Indique si los correos llegan a su destino o no, y porqué.
22. Se deja a cargo del estudiante profundizar el tema configurando un cliente de correo externo como Microsoft
Outlook para recibir y enviar correos utilizando el servidor previamente configurado.
23. ¿Qué puertos/protocolos se deben abrir en el firewall del sistema para permitir las conexiones remotas desde
un cliente como Outlook?