Documentos de Académico
Documentos de Profesional
Documentos de Cultura
POR
RICARDO ANDRES CANO
CODIGO
20111
ADMISNSTRACION DE REDES
PROFESOR
CAMILO ZAPATA
CENTRO DE SERVICIOS Y GESTION EMPRESARIAL
SERVICIO NACIONAL DE APRENDIZAJE SENA
MEDELLIN
2010
PROBLEMA PLANTEADO
La empresa ITSENA ofrece servicios de Hosting para el alojamiento de aplicaciones WEB.
En días recientes la empresa adquirió un nuevo servidor bajo Linux con el objetivo de
configurar los siguientes sitios WEB para sus clientes:
Cliente 1:
Dos sitios web, www.galileo.lab y sec.galileo.lab. Estos sitios Web deben estar alojados en la
misma dirección IP. El sitio www.galileo.lab será de acceso publico, mientras que el sitio
sec.galileo.lab solo deberá estar disponible para una lista de usuarios con contraseñas que el
cliente dispondrá.
Cliente 2:
Dos sitios web, www.voyager.star y conf.voyager.star. El primer sitio (www.voyager.star) será
usado para fines de divulgación, por lo tanto será de acceso público, mientras que el segundo
sitio (conf.voyager.star) solo deberá estar disponible desde las direcciones IP especificadas
por el cliente. El cliente requiere que los sitios esten alojados en dos direcciones IP distintas,
y sobra especificar que estas direcciones deben ser diferentes a cualquier Dirección IP
empleada con cualquier otro cliente.
La empresa ITSENA ofrece a sus clientes la posibilidad de actualizar sus sitios web a través
de FTP, al cual pueden acceder solo después de autenticarse con una credencial
administrativa.
La Administración Remota del Servidor, por parte de ITSENA, deberá contar con una
conexión segura a través de SSH. El login remoto solo será permitido a un usuario específico
sin privilegios, y solo desde este usuario se puede tomar control administrativo del sistema.
SOLUCION DEL PROBLEMA PLANTEADO
La solución del problema planteado requiere que el servidor, tenga un sistema operativo
Linux por lo cual se utilizara la distribución 9.04 del Ubuntu. Por esto para la instalación de
los servicios se requerirá de la actualización de los repositorios como primer paso seguido de
la descarga de los paquetes específicos que son necesarios para la puesta en marcha de los
servicios.
Para cada uno de los servicios requeridos, se cuenta con diferentes paquetes así:
FTP se utilizara el paquete vsftpd
WEB se utilizara el paquete apache2
DNS se utilizara el paquete bind9
SSH se utilizara el paquete ssh
NOTA además se descargara un motor de bases de datos y un modulo para combinarla con el
ftp para ingresar la lista de usuarios del cliente. Este paquete se llama mysqlserver
INSTALACION DEL FTP:
Para la instalación del ftp debemos de ingresar en una terminal de nuestro sistema operativo,
allí ingresaremos el siguiente comando con el fin de actualizar los repositorios de nuestra
maquina.
Aptget update con este comando se actualizatar los repositorios
1. luego de haber actualizado la maquina pasamos a descargar el paquete del ftp este paquete
es el vsftpd mediante el comando aptget install vsftpd mysqlserver libpammysql los dos
paquetes adicionales son necesarios para la creación de la base de datos con los usuarios en
nuestro caso se realizara así.
2. procedemos a ingresar en el motor de base de datos mediante el siguiente comando
Mysql –u root –p
3. cuando ingresamos en el programa. Todo esto desde la terminal, procedemos a ingresar en
la base de datos por defecto que posee el mysqlserver esta esta bautizada como mysql.
Mediante el siguiente comando ingresaremos
Use mysql;
4. procedemos a ingresar un usuario para en una tabla de usuarios de esta base de datos.
Utilizamos la siguiente línea de comandos.
Insert into user (host, user, password) values (‘localhost’,‘racano’,password(’123’));
5. ingresaremos en la tabla db un base de datos que nosotros crearemos mas adelante en este
tutorial. Ingresamos la siguiente línea:
Insert into db (host, db, user, select_priv) values (‘localhost’,’ftp’,’racano’,’Y’);
6. luego actualizaremos los privilegios para el usuario que se acaba de crear asi:
Flush privileges;
7. creamos la base de datos que se menciono en la tabla.
Create database ftp;
8. creamos una tabla en a cual incluiremos dos columnas para los usuarios el nombre del
usuario y su contraseña.
Create table `usuarios` (
> `usuario` varchar(30) not null default,
> `password` varchar(50) no null default
>);
useradd home /home/racano gid nogroup m shell /bin/false racano
10. después pasamos a modificar el archivo de configuración vsftpd.conf
Nano /etc/vsftpd.conf
11. en este archivo tendremos que eliminar la información que se encuentra por defecto o
también se puede comentar con un numeral antes d cada párrafo, para proceder y agregar la
siguiente lista de instrucciones en este archivo.
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
nopriv_user=racano (el nombre que le dimos al crear nuestro usuario)
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
guest_enable=YES
guest_username=racano
local_root=/home/racano/$USER (el nombre de la ruta )
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd_user_conf
12. pasamos a modificar el archivo de configuración del libpammysql con un editor de texto.
Nano /etc/pam.d/vsftpd
En este archivo ingresaremos las siguientes líneas: como se observa en la imagen.
auth required /lib/security/pam_mysql.so user=racano
passwd=PASSWORDQUEPUSISTE host=localhost db=vsftpd table=usuarios
usercolumn=usuario passwdcolumn=password crypt=2
account required /lib/security/pam_mysql.so user=racano
passwd=PASSWORDQUEPUSISTE host=localhost db=vsftpd table=usuarios
usercolumn=usuario passwdcolumn=password crypt=2
13. ingresamos de Nuevo a la base de datos y modificaremos la table de la base de datos que
se había creado en pasos anteriores para esto nos ubicamos en la base de datos y ingresamos
los siguientes datos para ingresar un nuevo usuario.
insert into usuarios (usuario, password) values ( 'felipe',password('123'));
14. procedemos a crear el directorio para el usuario es decir el sitio que se le designara para
su ftp por medio del siguiente comando.
mkdir /home/racano/Felipe
además de esto le pondremos los permisos al directorio que se acaba de crear. Mediante la
siguiente instrucción:
chown racano:nogroup Felipe con esta instrucion cabíamos el dueño del directorio.
15. por ultimo reiniciamos el servicio:
Service vsftpd restart
Con esto ya podremos iniciar nuestro sitio web en orden.
INSTALACION SERVICIO WEB CON HOSTING.
Para iniciar nuestros sitios WEB requerimos istalar el paquete del servidor WEB este se llama
apache2, esta intalacion se lleva por medio del siguiente comando desde una terminal de
nuestro sistema.
Aptget install apache2
Luego procedemos a configurar los siguientes ficheros primero creamos el directorio de
nuestro sitio web por medio de el siguiente comando:
Mkdir /home/cano/usuario1/privada/sec.galileo.lab
Mkdir /home/cano/usuario1/publica/www.galileo.lab
Mkdir /home/cano/usuario2/privada/conf.galileo.star
Mkdir /home/cano/usuario2/publica/www.galileo.star
NOTA: en estos directorios ingresaremos las paginas web de los diferentes sitios web.
Pasamos a configurar el archivo de configuración hosts que se encuentra en la ruta /etc/hosts
y procedemos por medio del comando :
Nano /etc/hosts
Después de haber modificado el archivo host procedemos a ingresar a la ruta de los sitios web
que se encuentra en /etc/apache2/sitesavalibles/ para ingresar allí necesitaremos el
comando cd una vez estemos allí procedemos a copiar el archivo por default de los sitios web
por los nuevos asi:
Cp default sec.galileo.lab
Cp default www.galileo.lab
Cp default www.voyager.star
Cp default conf.voyager.star
Y modificaremos cada uno de los sitios de la siguiente manera por medio del comando nano
que es el editor de texto por consola.
Nano sec.galileo.lab y observamos el archivo y modificamos la líneas que se encuentran en
color
la línea ServerName se debe de agregar y es el nombre del sitio web.
La línea DocomentRoot especificamos la ruta del nuevo sitio web es decir donde se encuentra
alojada la pagina.
AllowOverride nos sirve para decirle al servicio que abera solo a los usuarios que se ingresen
en el archivo htaccess por ultimo tenemos la directiva DirectoryIndex en la cual se especifica
el nombre del archivo que contiene la pagina de inicio del sitio web. Grabamos el archivo y
salimos de el por medio de los comando ctrl o y ctrl x
Por ultimo nos queda reiniciar el servicio y subir los sitios web para ello ingresamos las
siguientes líneas a2ensite sec.galileo.lab con esta directiva activaremos el sitio web y
ingresamos service apache2 restart para reiniciar el servicio web en nuestro servidor. Se nos
debe presentar asi:
INSTALACION SERVIDOR DNS
Para la instalación y configuración del servidor DNS instalaremos el paquete bind9 por
medio del comando
Aptget install bind9
Una vez instalado se deberá procederá proceder a configurar los ficheros de este que se
encuentran en /etc/bind/name.conf ingresamos por el editor de texto nano y lo modificamos
de manera que nos quede como se muestra en la imagen:
Modificamos los archivos de las diferentes zonas en nuestro caso tenemos 2 Zonas directas y
dos directas primero copiamos las zonas por defecto que posee el bind9 por medio del
comando
cp db.local db.directa
cp db.127 db.inversa
En la imagen observamos las líneas que tenemos y las comparamos con las de nuestro
archivo.
Tambien tendremos que modificar nuestra zona inversa con el mismo comando nano
/etc/bind/db.inversa y colocamos solo los PTR de los determinados sitios del dominio en
cuestión.
Procedemos como siguiente paso a la configuración en la cual modificaremos el fichero de
donde se especifica la dirección de el servidor DNS al cual recurrirá la maquina para resolver
sus consutas ingresamos por medio del comando nano /etc/resolv.conf
Le decimos search para denominarle los dominios que la maquina deberá buscar en nuetro
caso galileo.lab y voyager.star y las direcciones de determinados dominios.
Por último procedemos a reiniciar nuestro servicio con el comando aptget bind9 restart
como se observa en la imagen se detiene el servicio y seguido se inicia de nuevo y se procede
a probar nuestras zonas. Por medio del comando nslookup
INSTALACION SSH
Para la autenticación se requería que para las conexiones remotas al servidor se utilizara ssh
para esta configuración será necesario la instalación del paquete ssh y lo instalaremos normal
desde una terminal de nuestro sistema por medio del comando:
Aptget install ssh
La configuración de este servicio es muy básica por lo cual solo tendremos que configurar un
solo fichero, este se encuentra en /etc/ssh/sshd_conf
En este fichero procedemos a modificar las siguientes líneas como se observa en las
siguientes imágenes:
En la línea comentada permiRootLogin yes esta sirve para permitir la conexión del usuario
root por medio de ssh.
La línea PasswordAutentication yes para permitir la autenticación de password es decir
usuarios
La línea AllowUsers en esta línea ingresamos los usuarios a los cuales les permitiremos la
conexión por ssh.
AUTENTICACIÓN DE USUARIOS
Para la autenticación de usuarios procedemos a crear un fichero que nos permitirá proteger
ficheros dentro de el directorio especifico en el cual lo situemos, lo ubicamos en el mismo
lugar donde esta la pagina de inicio del sitio web en nuestro caso
/home/cano/usuario1/sec.galileo.lab el archivo o fichero se llamara .htaccess y en el
ingresamos las siguientes líneas:
La primera línea es la línea del mensaje que se mostrara en el momento de pedir
autenticación
La línea AuthType Basic este es el tipo de autenticación que se dispondrá
AuthUserFile /etc/apache2/passwd en esta línea se ingresa el fichero en el cual estarán los
usuarios y las contraseñas para autenticar.
Requiere validuser esta línea sirve para decirle al archivo que verifique en la lista de
usuarios.
Procedemos a ubicarnos en el sitio que especificamos para la ubicación de la lista de usuarios
con permisos en nuestro caso en /etc/apache2/ y lo creamos con el comando nano passwd y
dejamos el fichero en blanco
Para ingresar usuarios a este fichero procedemos a ingresar el siguiente comando
.htpassw passwd racano
Verificamos que el archivo si se este modificado es decir que volvemos a ingresar al fichero
passwd y observamos que se encuentre similar al que observamos en la imagen.
Donde observamos el usuario y la contraseña sencriptada.
Tambien debemos modificar el archivo de configuración del hosting virtual por medio del
comando nano /etc/apache2/sitesavalibles/sec.galileo.lab
Y ingresamos la línea AuthConfig seguido de la línea Override y reiniciamos el servicio
apache con el comando service apache2 restart
AUTENTICACION POR DIRECCIÓN IP
la denegacion de ingreso a un sitio web por Direccion IP se realiza desde el archivo de
configuracion del hosting virtual en este modificaremos las lineas que de refieren al acceso
del documento, es decir como es el orden de ingreso como se observa en la imagen anterior
Order deny,allow esta linea se modifica para denegar a todos y permitir a los que se le
especifica en la lineas siguientes.
Deny from all se utiliza para denegar a todos los usuarios.
Allow from 192,168,20,10 esta linea nos permite ingresar la direccion IP de el pc que se le
permitira el ingreso al sistema.
C