Ser Vidor Debian 5

53
 Manual de Instalación de un servidor Debian Lenny Seguridad en Redes Instituto Tecnológico Superior de Xalapa  Ingeniero Francisco Javier Torres Vera Francisco Fernando Gil Villalobos Liliana Leslie Vergara Ramírez Jorge Manuel Ortiz Bonilla 

Transcript of Ser Vidor Debian 5

Manual de Instalacin de un servidor Debian Lenny

Seguridad en RedesInstituto Tecnolgico Superior de Xalapa

Ingeniero Francisco Javier Torres Vera

Francisco Fernando Gil Villalobos Liliana Leslie Vergara Ramrez Jorge Manuel Ortiz Bonilla

Instalacin del Sistema BaseVamos a partir desde cero, as que primero hay que instalar el sistema base de Debian Lenny. Una vez descargada la imagen de Debian Lenny, creado el disco de instalacin, y despus de haber arrancado el ordenador desde la unidad CD, obtendremos una pantalla como la imagen. 1. 2. 3. 4. 5. 6. 7. 8. 9. Seleccionar la opcin Install. Elegir nuestro idioma. Elegir nuestro pas. Elegir la distribucin del teclado (Latinoamericano). Introducir el nombre de la mquina. Introducir el nombre de dominio (ej. Network.net). Elegir la configuracin del reloj. Elegir particionado Manual. Colocarse sobre el disco duro donde se desea instalar el SO, y pulsar ENTER, como se muestra en la imagen.

Nunc cursus magna quis

Para completar exitosamente el tutorial te sugerimos que utilices la misma distribucin de deban. La puede descargar del sitio oficial o utilizando el siguiente link:http://www.megaupload.com/?d=IMV1 E5KV

La instalacin del sistema base, en este tutorial, se ha realizado sin conexin a internet.

10. Crear la tabla de particiones segn nuestro inters y posteriormente Finalizar el particionado y escribir los cambios en el disco. Ver ejemplo en la siguiente imagen. Para mayor informacin de cmo crear una particin, puede consultar el Apndice A.

11. Definir la contrasea del sper usuario (root). 12. Escribir el nombre completo del usuario, el nombre para la cuenta y la contrasea. 13. A continuacin se procede a seleccionar la rplica de Debian, que es bsicamente el servidor de descargas. Recordemos que estamos realizando la instalacin sin conexin a internet por lo que decidiremos continuar sin una rplica, para hacer esto primero seleccionamos el pas, luego cualquier rplica y esperamos que Lenny trate de hacer conexin con el servidor. Despus de unos segundo aparecer un mensaje de error diciendo que no se pudo conectar con el servidor de la rplica, entonces elegimos la opcin Retroceder y confirmamos que deseamos continuar sin rplica. Posteriormente definiremos manualmente la lista de repositorios. 14. Selecciona la instalacin del sistema estndar. 15. Confirmar la instalacin de GRUB.

Ha finalizado la instalacin del Sistema Base!El sistema que hemos instalado no tiene interfaz grfica. Todo lo vamos a trabajar en lnea de comandos.

Apache 2Antes de comenzar a descargar paquetes, debemos actualizar nuestra lista de repositorios con el comando: # apt-get updateNota: El # representa al que aparece en tu usuario (root:#)

Si aun no configura su interfaz de red puede consultar el Apndice B. En caso de que su lista de repositorios no est configurada puede consultar el Apndice C. Para instalar apache utilizaremos los paquetes: Apache2: Meta paquete del servidor Apache. apache2.2-common: Archivos comunes de Apache. apache2-utils: Herramientas para los servidores web.apache2-mpm-prefork: Servidor Apache, modelo tradicional sin hilos. Lo instalamos para mantener compatibilidad con programas web que no soportan multi-hilos.

El servidor HTTP Apache es un servidor web HTTP de cdigo abierto para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.11 y la nocin de sitio virtual. Cuando comenz su desarrollo en 1995 se bas inicialmente en cdigo del popular NCSA HTTPd 1.3, pero ms tarde fue reescrito por completo. El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation. Apache presenta entre otras caractersticas altamente configurables, bases de datos de autenticacin y negociado de contenido, pero fue criticado por la falta de una interfaz grfica que ayude en su configuracin.

ssl-cert: Envoltura para OpenSSL, lo que nos permitir habilitar los certificados digitales y utilizar el puerto https.Explicado lo anterior procedemos a la instalacin:

# apt-get install apache2 apache2.2-common apache2-utils ssl-cert apache2-mpm-prefork Despus de esto podemos revisar que apache est corriendo. Utilizaremos el navegador en consola links2. Una vez instalado, lo utilizaremos para revisar nuestro localhost (127.0.0.1) y confirmar que el servidor apache esta corriendo. A continuacin veremos el mensaje apache est trabajando. It Works!

# apt-get install links2 # links2 127.0.0.1

indicando que

Nota: Para salir de Link2 preciona Ctrl+C o utiliza la barra de men del navegador (presiona Esc para mostrarla),

Apache Seguro# apt-get install openssl

Una vez instalado Open SSL comenzaremos el proceso para generar nuestro certificado digital. 1. Habilitar el mdulo ssl# a2enmod ssl

Open SSLOpenSSL es un proyecto de software desarrollado por los miembros de la comunidad Open Source para libre descarga y est basado en SSLeay, desarrollado por Eric Young y Tim Hudson. Consiste en un robusto paquete de herramientas de administracin y libreras relacionadas con la criptografa, que suministran funciones criptogrficas a otros paquetes como OpenSSH y navegadores web (para acceso seguro a sitios HTTPS). Estas herramientas ayudan al sistema a implementar el Secure Sockets Layer (SSL), as como otros protocolos relacionados con la seguridad, como el Transport Layer Security (TLS). Este paquete de software es importante para cualquiera que est planeando usar cierto nivel de seguridad en su mquina con un sistema operativo libre basado en GNU/Linux. OpenSSL tambin permite crear certificados digitales que pueden aplicarse a un servidor, por ejemplo Apache.

2. Crear un certificado digital para el cifrado de la informacin.# openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem

3. Despus de ingresar el comando se nos solicitaran algunos datos. Solo hay que llenar los de nuestro agrado.

NameVirtualHost *:80 Listen 80 #La siguiente es la lnea agregada Listen 443

4. Ahora hay que editar el archivo ports.conf y agregar la lnea Listen 443 para que escuche peticiones por ese puerto.# pico /etc/apache2/ports.conf

El archivo debe quedar similar al mostrado a la izquierda.

5. Tambin debemos editamos el fichero /etc/apache2/sites-available/default agregaremos un nuevo virtualhost (copiamos todo desde la etiqueta hasta ) pero ahora lo cambiaremos el 80 por 443 para el https y dentro agregamos las lneas: SSLEngine on SSLCertificateFile /etc/apache2/apache.pem Quedando: ServerAdmin webmaster@localhost DocumentRoot /var/www/ Redirect permanent / https://127.0.0.1 #SE HA OMITIDO LO DE ABAJO #... ServerAdmin webmaster@localhost SSLEngine on #LINEA AGREGADA SSLCertificateFile /etc/apache2/apache.pem #LINEA AGREGADA #SE HA OMITIDO LO DE ABAJO #...

Activar ssl Ruta del certificado

#LINEA AGREGADA

6. Ahora debemos reiniciar el servidor Apache.

# /etc/init.d/apache2 restart

7. Probar que apache escuche la peticin por el http y https.# links2 http://127.0.0.1 # links2 https://127.0.0.1

En ambos casos debemos obtener el mensaje it Works!

Podemos entrar al servidor seguro que acabamos de configurar desde una computadora que este en la red del servidor y comprobar su correcto funcionamiento.

PHP 5Para instalar Php5 necesitamos los paquetes: Php5 : Lenguaje de script incorporado en HTML, en el lado del servidor (metapaquete). Libapache2-mod-php5: Mdulo PHP para apache. Php5-common: Archivos comunes

#apt-get install php5 libapache2-mod-php5php5-common

Los archivos de configuracin de apache estn ubicados en: /etc/apache2/apache2.conf y la carpeta web por defecto esta en /var/www Para que PHP tome efecto debemos reiniciar el servidor Apache.

#/etc/init.d/apache2 restartPara comprobar que el servidor web esta funcionando podemos irnos a nuestro navegador web y escribimos http://localhost/ y aparecer una pagina de bienvenida de Apache. Si quieres ver si PHP se instal correctamente hay un comando de php que te da toda la informacin necesaria, para esto tenemos que crear un archivo:

#pico /var/www/test.phpDentro del archivo escribe y gurdalo. Luego abre tu navegador web y escribe la direccin http://localhost/test.php debera aparecer una pantalla con toda la configuracin de PHP.

PHP es un lenguaje de programacin interpretado, diseado originalmente para la creacin de pginas web dinmicas. Es usado principalmente en interpretacin del lado del servidor (serverside scripting) pero actualmente puede ser utilizado desde una interfaz de lnea de comandos o en la creacin de otros tipos de programas incluyendo aplicaciones con interfaz grfica usando las bibliotecas Qt o GTK+.

Revisado el servicio de PHP desde otro computador.

Revisar el Apndice E para ver como hacer una aplicacin en PHP con sesiones

MySQLPara instalar MySQL necesitamos: Mysql-server: Servidor de la Base de Datos MySQL. Mysql-client: Cliente de la Base de Datos MySQL. Php5-mysql: Mdulo de MySQL para php5.

#apt-get install mysql-servermysql-client php5-mysql

MySQL es un sistema de gestin de base de datos relacional, multihilo y multiusuario con ms de seis millones de instalaciones. MySQL AB desde enero de 2008 una subsidiaria de Sun Microsystems y sta a su vez de Oracle Corporation desde abril de 2009 desarrolla MySQL como software libre en un esquema de licenciamiento dual.

Durante la instalacin se nos solicitar la contrasea para el usuario root de mysql. Una vez instalado MySQL, podemos entrar utilizando el comando:

# mysql h127.0.0.1 uroot -pDonde h es la direccin de host donde se encuentran las Bases de Datos (se puede omitir si la Base de Datos se encuentra en el mismo equipo), -u es el nombre de usuario con el que queremos entrar y -p indica que la cuenta utiliza contrasea. Al presionar enter se nos solicitar dicha contrasea.

WebminPara instalar Webmin necesitamos descargar el paquete de instalacin para Debian. Dicho paquete lo podemos descargar del sitio oficial de Webmin, ya sea desde nuestro servidor o desde otra computadora y copiarlo al servidor. Suponiendo que queremos realizar la descarga desde nuetro servidor, entonces necesitamos: 1. Conocer el link de descarga para el paquete. Para esto entramos a www.webmin.com a la seccin de Descargas y copiamos el link del paquete para deban. Si utilizamos links2 seguir los pasos:

Webmin es una interfaz basada en web para administracin de sistemas para Unix Webmin elimina la necesidad de editar manualmente los archivos de configuracin de linux como /etc/passwd, y le permite administrar un sistema de la consola o de forma remota.

# links2 webmin.comNos dirigimos a la etiqueta Downloads y copiamos el link de descarga de: Debian package suitable for Debian,

Ubuntu or other derived Linux.2. Regresamos a la consola y escribimos el comando wget junto con la direccin que copiamos. Tambin podemos descargar el paquete desde el navegador links. 3. Una vez descargado procedemos a instalar el paquete: 4. Si nos marca algn error por las dependencias, entonces ejecutamos: Y con eso se instalarn las dependencias y se continuara con la instalacin de Webmin que qued pendiente. Una vez instalado Webmin, podemos corroborarlo utilizando nuestro navegador: Utilizamos el puerto 10000 porque sobre ese puerto escucha Webmin. Si todo va bien obtendremos una pantalla como la siguiente. Para entrar utilizamos nuestro usuario root y la misma contrasea con la que iniciamos sesin en Debian. Debian.

# wget http://prdownloads.sourceforge.net/ webadmin/webmin_1.540_all.deb

# dpkg i webmin_1.540_all.deb

# apt-get f install

# linsk2 https://127.0.0.1:10000

IPTablesPara configurar nuestras reglas de iptables tenemos que editar el archivo iptables.rules.up:

# pico /etc/iptables.rules.upUna regla bsica de iptables esta conformada por los siguiente elementos: A Tabla p tcp dport 80 j ACCION

Qu es un firewall?Un firewall es un dispositivo que filtra el trfico entre redes, como mnimo dos. El firewall puede ser un dispositivo fsico o un software sobre un sistema operativo. En general debemos verlo como una caja con DOS o mas interfaces de red en la que se establecen una reglas de filtrado con las que se decide si una conexin determinada puede establecerse o no. Incluso puede ir ms all y realizar modificaciones sobre las comunicaciones, como el NAT. Los firewalls se pueden usar en cualquier red. Es habitual tenerlos como proteccin de internet en las empresas, aunque ah tambin suelen tener una doble funcin: controlar los accesos externos hacia dentro y tambin los internos hacia el exterior.

-A : Colocar la regla al principio -p : Protocolo de comunicacin empleado por el servicio que trabaja en cierto puerto. --dport : puerto donde trabaja dicho servicio. -j : Accin a tomar. Ejemplo: # El puerto 80 de www debe estar abierto, es un servidor web. A INPUT p tcp dport 80 j ACCEPT Basados en el ejmeplo anterior, ingresamos las reglas necesarias para nuestro servidor. Despus de definir nuestras reglas, debemos editar el archivo de las interfaces de red para especificar que el firewall se active al encender el servidor.

# pico /etc/network/interfacesAgregamos la siguiente lnea despus de la declaracin de la interfaz de red que utilizamos.

post-up iptables-restore < /etc/iptables.up.rules

Consultar el Apndice D para ver los puertos mas utilizados.

Secure SHell SSH

Con SSH podemos entrar de forma remota nuestro servidor, es decir, podemos manipular nuestro servidor desde la consola de un cliente. Para lograr lo anterior basta con instalar en el servidor SSH. # apt-get install ssh Y en el cliente desde donde queremos entrar: # apt-get install openssh-clientSSH (Secure de SHell, un en espaol: y del intrprete de rdenes segura) es el nombre protocolo programa que lo implementa, y sirve para acceder a mquinas remotas a travs de una red. Permite manejar por completo la computadora mediante un intrprete de comandos..

A esta altura, podemos entrar al servidor desde el cliente solo con poner: # ssh usuarioRemoto@hostRemoto Ejemplo:

Solo nos pide la contrasea del usuario remoto.

Para mejorar la seguridad del sistema, puede exigir el uso de la autenticacin basado en claves mediante la desactivacin de la autenticacin de contrasea estndar. Para lograrlo hacemos lo siguiente: 1. Para generar un par de claves RSA, escriba lo siguiente en el intrprete de comandos del cliente:

# ssh-keygen -t rsa

2. Pulse Aceptar para confirmar la ubicacin por defecto (es decir, ~ / .ssh / id_rsa) para la clave recin creada. 3. Escriba una contrasea y confrmela introducindola de nuevo cuando se le pida hacerlo. Por razones de seguridad, evitar el uso de la misma contrasea que utiliza para conectarse a su cuenta. Despus de esto, se le presentar con un mensaje similar a este:

4. Cambiar los permisos del directorio ~/.ssh/ # chmod 755 ~/.ssh

5. Enviar la llave al host remoto (la mquina a la que nos queremos conectar). Lo podemos hacer copiando el archivo con una usb, o envindolo con SCP, que es un medio de transferencia segura de archivos entre un host local y otro remoto o entre dos hosts remotos, usando el protocolo Secure Shell.# scp -p id_rsa.pub remoteuser@remotehost:

Ejemplo:

6. Copiar el contenido de ~/.ssh/id_rsa.pub en el directorio ~/.ssh/authorized_keys en la mquina a la que desea conectarse, aadiendo a su fin si el archivo ya existe. Estando en el servidor (host remoto), ya sea de forma fsica o a travs de SSH ejecutamos: # mkdir ~/.ssh # chmod 700 ~/.ssh # cat id_rsa.pub >> ~/.ssh/authorized_keys # chmod 600 ~/.ssh/authorized_keys

Tomar en cuenta que nos encontramos en el directorio donde copiamos el archivo id_rsa.pub Ejemplo:

7. Editar el archivo de configuracin /etc/ssh/sshd_config para cambiar la opcin PasswordAuthentication: PasswordAuthentication no

Solo reiniciamos el servicio ssh.

#/etc/init.d/ssh restart

Con esto solo pueden entrar de forma remota la servidor aquellos cliente que han generado una llave y sta ha sido copiada al servidor en el archivo authorized_keys.

Bind9 DNSLa asignacin de nombres a direcciones IP es ciertamente la funcin ms conocida de los protocolos DNS. Por ejemplo, si la direccin IP del sitio FTP de prox.mx es 200.64.128.4, la mayora de la gente llega a este equipo especificando ftp.prox.mx y no la direccin IP. Adems de ser ms fcil de recordar, el nombre es ms fiable. La direccin numrica podra cambiar por muchas razones, sin que tenga que cambiar el nombre. Instalaremos Bind9 en nuestro servidor, para esto utilizamos lo siguiente comandos: # apt-get install bind9 Editamos el archivo named.conf.local para aadir la zona de nuestro dominio # pico /etc/bind/named.conf.local//Archivo de configuracin named.conf.local

BIND (Berkeley Internet Name Domain, anteriormente : Berkeley Internet Name Daemon) es el servidor de DNS ms comnmente usado en Internet, especialmente en sistemas Unix, en los cuales es un Estndar de facto. Es patrocinado por la Internet Systems Consortium.

zone "redes4.com"{ type master; file "/etc/bind/db.redes4.com"; }; zone "0.168.192.in-addr.arpa"{ type master; file "/etc/bind/db.127"; };

En nuestro caso, el dominio que vamos a configurar es: redes4.com, as que donde lea redes4.com, deber cambiarlo por su dominio.

Estando en /etc/bind creamos el archivo de configuracin db.redes4.com a partir del db.local # cp db.local db.redes4.com Debemos cambiar la palabra localhost por nuestro dominio, redes4.com, y tambin vamos a cambiar la IP 127.0.0.1 por la que queramos asignar al dominio (la IP de nuestro servidor).

//Archivo de configuracin db.redes4.com

; ; ARCHIVO BIND PARA REDES4.COM ; $TTL 604800 @ IN SOA redes4.com. root.redes4.com. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS redes4.com. redes4.com. IN A 192.168.1.79 correo IN MX 0 192.168.1.79

Ahora reiniciamos el servicio de bind9 # /etc/init.d/bind9 restart Obtendremos: Stopping domain name service...: bind9 waiting for pid 2323 to die. Starting domain name service...: bind9.

Por ltimo debes configurar el archivo resolv.conf ubicado en /etc, para indicarle la direccin donde va a resolver nuestro dominio. Dicha direccin es la ip de nuestro mismo servidor. #pico /etc/resolv.conf

search redes4.com nameserver 192.168.1.79 domain gateway.2wire.net search gateway.2wire.net nameserver 192.168.1.254

Las primeras dos lneas son las que hemos agregado en nuestro caso. La primera indica el dominio que se va a buscar, y la segundo indica el nombre del servidor en donde se va a buscar. Dicho nombre es la direccin ip de nuestro servidor. Las ultimas 3 lineas ya estaban en el archivo, y son las que fueron asignadas para tener internet. Indican el dominio de mi modem y su direccin ip.

Comprobando el domino.

Para probar que nuestro dominio funcione correctamente podemos utilizar lo siguientes comandos. Antes haber instalado dns-utils.#host redes4.com redes4.com has address 192.168.1.79 #ping redes4.com PING redes4.com (192.168.1.79) 56(84) bytes of data. 64 bytes from 192.168.1.79: icmp_seq=1 ttl=64 time=0.043 ms 64 bytes from 192.168.1.79: icmp_seq=2 ttl=64 time=0.062 ms #dig www.debian.org ; DiG 9.6-ESV-R1 www.debian.org ;; global options: +cmd ;; Got answer: ;; ->>HEADER /proc/sys/net/ipv4/ip_forward

Nota: Solo se agreg la lnea en amarillo. Por ltimo solo queda reiniciar el demonio de dhcp y conectar un cliente a nuestra interfaz eth1 para comprobar que automticamente se le asigna una ip dentro del rango establecido en range dentro de la declaracin de la subred, en el archivo dhcpd.conf. En nuestro caso el rango es de 192.168.2.100/24 a 192.168.2.150/24

Squid 3

Primero hay que instalar Squid 3:

#apt-get install squid3 Squid es un popular programa de software libre que implementa un servidor proxy y un dominio para cach de pginas web, publicado bajo licencia GPL. Tiene una amplia variedad de utilidades, desde acelerar un servidor web, guardando en cach peticiones repetidas a DNS y otras bsquedas para un grupo de gente que comparte recursos de la red, hasta cach de web, adems de aadir seguridad filtrando el trfico. Est especialmente diseado para ejecutarse bajo entornos tipo Unix. Squid ha sido desarrollado durante muchos aos y se le considera muy completo y robusto. Aunque orientado a principalmente a HTTP y FTP es compatible con otros protocolos como Internet Gopher. Implementa varias modalidades de cifrado como TLS, SSL, y HTTPS.

Una vez instalado debemos abrir el archivo de configuracin squid.comf para especificar nuestras modificaciones. La primer modificacin es especificar una lista de control de acceso llamada localnet, que representa nuestra red local, y asignarle el rango de direcciones IP que pertenecen a localnet.#Nuestra acl localnet con el rango de direcciones acl localnet src 192.168.2.100192.168.2.150/255.255.255.0

Posteriormente debemos de asignarle los permisos de acceso a nuestra lista de control de acceso, para que tenga salida a internet.# Permisos de Acceso a nuestra red http_access allow localnet

Ahora solo falta guardar la configuracin y reiniciar el demonio de squid. Para probarlo debemos conectar un cliente a nuestra interfaz de red Local del Servidor (eth1 en nuestro caso). Una vez que el cliente tenga asignada la direccin IP, podemos comprobar nuestro servicio a internet proporcionado por el Servidor. Obviamente el servidor debe estar conectado al modem de Internet, en su interfaz et0.

Ejemplo del archivo de configuracin de Squid:

#Listas de Control de Acceso acl manager proto cache_object acl localhost src 127.0.0.1/32 acl to_localhost dst 127.0.0.0/8 acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT #Nuestra acl localnet con el rango de direcciones acl localnet src 192.168.2.100-192.168.2.150/255.255.255.0 # Permisos de Acceso a nuestra red http_access allow localnet #Recommended minimum configuration: http_access allow manager localhost # Deny requests to unknown ports http_access deny manager # Deny CONNECT to other than SSL ports http_access deny !Safe_ports http_access deny CONNECT !SSL_ports # And finally deny all other access to this proxy http_access allow localhost http_access deny all icp_access deny all htcp_access deny all # Squid normally listens to port 3128 http_port 3128 transparent hierarchy_stoplist cgi-bin ? access_log /var/log/squid3/access.log squid # -------------- OPTIONS FOR TUNING THE CACHE -----------------------refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern (cgi-bin|\?) 0 0% 0 refresh_pattern . 0 20% 4320 # -------------- ICP OPTIONS -----------------------icp_port 3130 # -------------- MISCELLANEOUS ---------------------# Leave coredumps in the first cache dir coredump_dir /var/spool/squid3

Wireshark Analizador de TrficoWireshark es un analizador de trfico de red multiplataforma. Un analizador de paquetes de red intenta capturar paquetes de red y mostrarlos en tanto detalle como sea posible. Se puede pensar en un analizador como un instrumento de medicin utilizado para examinar lo que est sucediendo dentro del cable de red, similar a como un electricista utiliza un voltmetro para examinar un cable de electricidad (pero a nivel superior, por supuesto). En el pasado tales herramientas eran muy costosas o propietarias, o ambas cosas al mismo tiempo, WireShark pero con la llegada de wireshark todo cambi. Wireshark es uno de los mejores analizadores de paquetes de red de software libre, disponible hoy en dia. Existen dos grandes vertientes del uso de wireshark, una es la lnea de comando, y otra es en entornos grficos. Para instalar Wireshark para terminal:

#apt-get install tshark wireshark-common

Para instalar Wireshark grfico:

#apt-get install wireshark wireshark-common Ejemplo de uso de tShark.

#tshark i eth0 c 10

La opcin i sirve para especificar la interfaz por la cual se van a capturar

los paquetes. La opcin c especifica el nmero de paquetes que queremos capturar Podemos ignorar esta opcin y no habr limite de paquetes, as que usaremos Ctrl+c para detenerlo.

SAMBALa 'suite' completa de samba se compone de varios paquetes. Destacamos los ms importantes:

samba - Servidor de archivos e impresoras tipo LanManager para Unix. samba-common - Archivos comunes de samba utilizados para clientes y servidores. smbclient - Cliente simple tipo LanManager para Unix. swat - Herramienta de administracin de Samba via web samba-doc - Documentacin de Samba. smbfs - Comandos para montar y desmontar unidades de red samba

Despus debemos ubicar el archivo de configuracin #apt-get install samba samba-common smbclient samba-doc smbfs de samba, ya que ah vamos a realizar nuestras modificaciones. El archivo se encuentra en /etc/samba/smb.conf Ejemplo del archivo de configuracin.

Samba son un conjunto de aplicaciones libres para Linux que implementan el protocolo de comunicacin SMB utilizado por los sistemas operativos Microsoft Windows para compartir carpetas e impresoras. Gracias a samba, en una red podemos tener PCs con Windows y PCs con Linux de forma que puedan intercambiar informacin en carpetas compartidas de la misma forma que se hara si todos los PCs fueran Windows.

[global] // Seccin global, parmetros generales security = user // Seguridad por usuarios workgroup = Aula5 // Grupo de trabajo 'Aula5' encrypt passwords = yes // Las contraseas se debern enviar encriptadas wins support = yes // Samba ser servidor wins log level = 1 max log size = 1000 read only = no // Por defecto, lectura y escritura load printers = yes // Se comparten tambin las impresoras [homes] // Seccin homes, carpetas home de usuarios comment = Carpetas home // Comentario browsable = no // No explorables create mask = 0700 // Mscara de creacin de archivos (rxw------) directory mask = 0700 // Mscara de creacin de carpetas [printers] // Seccin printers, impresoras path = /var/tmp printable = yes min print space = 2000

Seccin [global]En la seccin [global] se configuran los parmetros generales (globales) que determinarn el modo de comportamiento general del servidor samba. Todos los parmetros que se omitan tomarn el valor predefinido por defecto. Existen unos 300 parmetros que se pueden configurar en sta seccin. A continuacin exponemos los parmetros ms significativos y ejemplo de valor:

hosts allow = 192. 127. o Permite especificar desde qu direcciones IPs se podr acceder al servicio. Ej.: Si ponemos 192.168. significa todas las que empiecen por 192.168. o Se pueden poner IPs concretas hosts deny = 10. o Igual que hosts allow pero para especificar los rangos no permitidos security = share o Permite determinar el modo de comparticin de recursos de samba. Hay cinco opciones posibles: share, user, domain, server y ads. o 'Share' significa compartir los recursos con contrasea (como W95, 98,...). o 'User' gestiona los permisos por usuario (como W2000 y WXP). o 'Domain' gestiona los permisos por dominio. o 'Server' indica que los permisos son gestionados por otro servidor. o 'Ads' hace que samba se comporte como un miembro de un dominio Active Directory y por lo tanto requiere un servidor W2000 Server o W2003 Server. o Samba no puede actuar como controlador de dominio de Active Directory, es decir, no puede sustituir a Windows 2000 Server, pero s puede actuar como controlador de dominio de Windows NT. domain logons = yes o Para que samba sea autentificador del dominio. En este caso, habr que poner 'security = user' porque no tiene sentido que el samba sea servidor de dominio y que comparta los recursos con contrasea. domain master = yes o Para que samba sea controlador de dominio. Lo lgico es que domain logons est a 'yes' encrypt passwords = yes o Hace que samba solo reconozca passwords encriptados. Las primeras versiones de W95 enviaban las contraseas en texto plano pero tanto las ltimas versiones de Windows 95 como W98, 2000 y XP las encriptan. Se puede impedir que W98 las encripte cambiando un valor del registro (ver encription.txt en samba) pero lo recomendable es que se enven encriptadas para impedir que otros usuarios puedan descubrirlas capturando paquetes de datos (sniffing). Los password encriptados de samba se guardan en otro archivo: smb passwd file = /etc/smbpasswd o Archivo que guarda las contraseas encriptadas de acceso a samba. Para que un usuario pueda acceder a samba debe existir en el sistema pero no tiene por qu coincidir la contrasea de un usuario en el sistema linux con la de samba aunque es aconsejable. logon script = INICIO.BAT o Indica el script que ejecutarn los clientes windows al loguearse password server = 192.168.0.10 o Indica qu servidor autentificar a los usuarios wins server = 192.168.0.10 o Indica quin es el servidor de nombres wins

wins support = yes o Hace que nuestro samba sea servidor wins load printers = yes o Para que automticamente comparta todas las impresoras del sistema

Seccin [homes]En sta seccin se configuran los parmetros para compartir la carpeta home (carpeta donde se almacena el perfil y todos los documentos) de cada usuario. Esta seccin es opcional. Si no existe, no se compartirn las carpetas home de cada usuario. Se utiliza cuando se desean crear perfiles mviles de forma que cuando se identifique el usuario en cualquiera de los PCs de la red, se mapee de forma automtica su perfil.

Seccin [printers]En sta seccin se configuran los parmetros para compartir las impresoras o colas de impresin disponibles en el servidor.

Seccin para Carpetas CompartidasCada vez que se comparte una carpeta, hay que crear una seccin denominada como se desee ya que dicho nombre ser el nombre del recurso compartido. Parmetros destacables:

browseable = yes o Indica si el recurso compartido ser visible cuando se escanea la red, por ejemplo haciendo clic en 'Mis sitios de red' en Windows create mask = 0770 o Establece la mscara de creacin de archivos, igual con directory mask para la creacin de carpetas guest ok = yes o Indica que cualquier usuario sin contrasea tiene permiso de acceso valid users = pepe, juan o Indica qu usuarios pueden acceder al recurso

Configurar nuestro ServidorDespus de haber instalado samba, procedemos a crear un usuario samba, utilizando un usuario Unix existente. Para crear un usuario Unix usar: # useradd server. Para crear el usuario samba: # smbpasswd -a server Otras opciones de smbpasswd: - x Eliminar usuario de samba - d Deshabilitar usuario - e Deshabilitar usuario - n Usuario sin password - m Cuenta de mquina

Creacin de Carpetas CompartidasYa con el usuario creado solamente nos falta configurar samba. Podemos utilizar las configuraciones por default que trae samba. Solo debemos agregar al final del archivo todas las carpetas que queremos compartir. Ejemplo:[Equipo4] path = /home/Equipo4 available = yes browsable = yes public = yes writable = yes guest ok = yes //Carpeta a compartir //Direccin de la carpeta a compartir //Disponible //Navegable //Publica //Se puede Escribir //Se permiten invitados

Visualizacin en Mac OSXPara conectarnos al servidor samba y navegar en la carpeta compartida que acabamos de crear, utilizando una Mac con OSX haremos lo siguiente: 1. Abrir Finder 2. Ir al Men /Ir/Conectarse al Servidor (cmd+K) 3. Especificar la direccin ip del servidor al que nos vamos a conectar.

4. Nos va a pedir un usuario samba y contrasea

5. Seleccionar la Carpeta

Visualizacin en Windows 71. Abrir el Explorador y colocar en la barra de direcciones la IP del servidor.

2. Escribir el usuario samba y su contrasea.

3. Seleccionar la carpeta deseada.

OpenVPN1.

Instalar "openvpn": #apt-get install openvpn liblzo1

2.

Cambiarnos al directorio predeterminado para los certificados de easy-rsa.

OpenVPN es una solucin de conectividad basada en software: SSL (Secure Sockets Layer) VPN Virtual Private Network (red virtual privada), OpenVPN ofrece conectividad punto-a-punto con validacin jerrquica de usuarios y host conectados remotamente, resulta una muy buena opcin en tecnologas WiFi (redes inalmbricas EEI 802.11) y soporta una amplia configuracin, entre ellasbalanceo de cargas. Est publicado bajo la licencia GPL, de software libre.

# cd / usr/share/doc/openvpn/examples/easy-rsa/2.0 /

3.

Ahora vamos a crear el certificado de CA #. . / Vars #. / clean-all #. / Build-ca

4.

A continuacin, vamos a crear el certificado de servidor #./build-key-server server

5.

A continuacin, vamos a crear el certificado para el cliente

#./build-key client6.

Vamos a construir Diffie Hellman

#./build-dh Cambiarse al directorio donde se han creado las llaves

7.

# cd keys

8.

Ahora tenemos las claves y certificados. As que les enviamos a nuestros clientes que quieren conectarse servidor OpenVPN. Slo asegrese de que:

ca.key-> solo, debe estar en CA Server client.crt-> solo, debe estar en cliente client.key-> solo, debe estar en cliente server.crt-> solo, debe estar en servidor OpenVPN server.key-> solo, debe estar en servidor OpenVPN ca.crt-> debe estar en CA Server y todos los clientes.9.

Despus de transferir los archivos anteriores con seguridad, debe modificar el archivo de configuracin principal del servidor OpenVPN, que es "server.conf".

#pico /etc/openvpn/server.conf

puerto 1194 udp proto dev tun ca / usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/ca.crt cert / usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/server.crt key / dh usr/share/doc/openvpn/examples/easyrsa/2.0/keys/server.key dh /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/dh1024.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "route 192.168.1.0 255.255.255.0" push "redirect-gateway def1" push "dhcp-option DNS 192.168.1.1" client-to-client keepalive 10 120 comp-lzo persist-clave persist-tun status openvpn-status.log log /var/log/openvpn.log log-append /var/log/openvpn.log verb 3

10.

Reiniciar el servidor.

RAIDLa manera ms sencilla y eficaz de instalar RAID1 es durante la instalacin del Sistema Operativo. Lo haremos en el particionado: Un RAID (Redundant Array of Inexpensive Disks) por software es una forma barata de obtener discos duros grandes, rpidos y seguros. Existen varios niveles de implementacin. El RAID1 (mirror o espejo) consiste en dos discos que contienen exactamente lo mismo, un sistema que nos proporciona tolerancia a fallos de disco duro. Aunque falle un disco:

1. Instalar dos discos duros en nuestro servidor, colocando uno como maestro y otro como esclavo.

2. Durante la instalacin de Debian Lenny, al llegar a la deteccin de Discos Duros, podremos ver los dos discos duros en la lista. Debemos particionar ambos discos 1. 1. No perderemos datos, ya que con el mismo esquema, marcando todas las tenemos redundancia. particiones como volumen fsico para RAID. 2. El sistema seguir funcionando. Esto se hace al momento de definir la2. Mientras sobreviva un disco el sistema no particin, en la opcin Utilizar como. se cae. 3.

3. El sistema podr bootear, ya que arranca desde el RAID y desde cualquiera de los discos.

3. Seleccionamos Configurar RAID software (antes de pasar a configurar el RAID el instalador particionar los discos):

4. Tenemos que crear un dispositivo RAID para cada particin, incluyendo la swap (incluimos la swap para intentar evitar un cuelgue si falla un disco):

5. Seleccionamos el tipo de RAID, RAID1:

6. Le decimos que estar formado por 2 particiones:

7. Sin discos de reserva:

8. Seleccionamos la pareja de particiones correspondientes:

9. Y repetimos este proceso con todas las particiones. Una vez definidos todos los dispositivos RAID:

10. Les asignamos punto de montaje y formato:

11. Comprobamos que todo est correcto:

12. Grabamos los cambios y listo:

13. El gestor de arranque GRUB lo instalaremos en el MBR. 14. Veremos los RAIDs como si fuesen particiones normales:

# df S.archivos Mount /dev/md0 /dev/md2 /home /dev/md3 /usr /dev/md4 /var /dev/md5 /tmp 1K-blocks 2885664 2885664 1829037 918229 1309703 Used 121800 32872 887074 47973 8245 Available Use% 2617280 2706208 844376 821264 1231583 5% 2% 52% 6% 1% /

15. Para consultar el estado de los RAID ejecutaremos:

# cat /proc/mdstat Personalities : [raid1] md1 : active raid1 hda5[0] hdd5[1] 289024 blocks [2/2] [UU] md2 : active raid1 hda6[0] hdd6[1] 2931712 blocks [2/2] [UU] md3 : active raid1 hda7[0] hdd7[1] 1951744 blocks [2/2] [UU] md4 : active raid1 hda8[0] hdd8[1] 979840 blocks [2/2] [UU] md5 : active raid1 hda9[0] hdd9[1] 1397504 blocks [2/2] [UU] md0 : active raid1 hda1[0] hdd1[1] 2931712 blocks [2/2] [UU] unused devices: none

Todava no hemos terminado, nos falta configurar el sistema para que sea capaz de bootear desde ambos discos. Si simulamos un fallo del segundo disco desconectndolo (con el ordenador apagado), comprobaremos que la mquina arranca. Pero si desconectamos el primer disco veremos que no arranca, porque en el MBR del segundo disco no hay nada. Por tanto, para que la mquina pueda bootear desde cualquiera de los discos tenemos que instalar GRUB tambin en el MBR del segundo disco. Para ello:

# grub grub> device (hd0) /dev/hdd grub> root (hd0,0) grub> setup (hd0) grub> quit

Por ltimo, veamos cmo actuar cuando un disco del RAID falle (no lo dudes, tarde o temprano fallar). Utilizaremos las herramientas mdadm (multiple device administer, paquete mdadm), que han reemplazado a las clsicas raidtools. 1. Detectaremos que un disco RAID ha fallado mirando en /proc/mdstat:# cat /proc/mdstat md3 : active raid1 hda7[0] 1951744 blocks [2/1] [U_]

2. Apagaremos el ordenador, reemplazaremos el disco averiado y arrancaremos de nuevo. 3. Formatearemos el nuevo disco con fdisk, marcando las particiones como fd (Linux RAID autodetect). 4. El nuevo disco no se inserta automticamente en el RAID, ya que est marcado como errneo. Lo insertaremos ejecutando:

# mdadm /dev/md3 -a /dev/hdd7 mdadm: hot added /dev/hdd7

Y comenzar la reconstruccin del RAID. Lo comprobaremos con:

# cat /proc/mdstat md3 : active raid1 hda7[0] hdb7[1] 1951744 blocks [2/1] [U_] [====>.....] resync = 33.1% finish=34.3min speed=59895K/sec

Apndices

APNDICE A DEFINIR UNA PARTICIN.En ste ejemplo de particionado utilizamos un disco duro con 68.7 GB de espacio libre. Se emplea particionado Manual

1. Seleccionamos el disco duro donde vamos a escribir la la tabla de particiones. 2. Nos colocamos sobre la etiqueta que colocamos sobre la indica la que etiqueta cantidad de espacio libre, y indica la cantidad de espacio libre, y presionamos la tecla ENTER. presionamos la tecla ENTER. 3. Enseguida 3. Enseguida pregunta Debian como utilizar nos el como Debian el nos pregunta libre.

utilizar

espacio

Seleccionamos Crear una particin nueva.

espacio libre. Seleccionamos Crear una particin nueva.

4. Definimos el tamao que queremos 4. Definimos queremos particin. j 5. Seleccionar el tipo e particin. Ejemplo: m p de el tamao a que la 5. Seleccionar el tipo de particin. asignar a la particin. asignar

6. Seleccionamos ubicacin. 6. Colocar las particiones 7. Colocar principio. las preferentemente al principio.

la

particiones al

preferentemente

Definir las configuraciones de la particin, y finalizar utilizando la opcin se ha terminado de definir la particin.

APNDICE B LEVANTAR INTERFAZ DE REDEn ste ejemplo vamos a activar una red Ethernet con DHCP y con direccin esttica.

Para configurar la red tenemos que entrar al archivo de configuracin de las interfaces de red. El archivo se llama interfaces y lo encontramos en la ruta /etc/network. Para editarlo podemos utilizar el editor Pico, Nano, Vi o cualquier otro que tengamos instalado. En nuestro caso usaremos Pico y utilizaremos la siguiente lnea para entrar.

# pico /etc/network/interfaces

Una vez dentro del archivo veremos algo parecido a lo de la imagen.

Para activar la red Ethernet con dhcp debemos agregar las siguiente lneas despus de: # The primary network interface.

Para activar la red Ethernet con direccin esttica remplazar lo anterior por:

# The primary network interface auto eth0 iface eth0 inet static address 192.168.1.69 netmask 255.255.255.0 gateway 192.168.1.254

Salimos del archivo guardando los cambios y luego reiniciamos las interfaces.

APNDICE C LISTA DE REPOSITORIOS

La lista de repositorios la encontramos en un archivo llamado sources.list ubicado en la ruta /etc/apt Debemos abrir el archivo y editarlo para agregar los repositorios de donde queremos bajar nuestros paquetes. Comentamos la lnea del cdrom para que Debian no nos solicite el disco de instalacin para buscar os paquetes. El smbolo # significa que la lnea est comentada. Asumiendo que nuestro pas de ubicacin es Mxico, hemos agregado los siguiente repositorios:

# deb cdrom:[Debian GNU/Linux 5.0.5 _Lenny_ - Official i386 NETINST Binary-1 20100627-10:43]$ #deb cdrom:[Debian GNU/Linux 5.0.5 _Lenny_ - Official i386 NETINST Binary-1 20100627-10:43]/$ # Line commented out by installer because it failed to verify: deb http://security.debian.org/ lenny/updates main # Line commented out by installer because it failed to verify: #deb-src http://security.debian.org/ lenny/updates main # Line commented out by installer because it failed to verify: deb http://volatile.debian.org/debian-volatile lenny/volatile main # Line commented out by installer because it failed to verify: deb-src http://volatile.debian.org/debian-volatile lenny/volatile main #repositorios de DEBIAN agregados el sabado 12/03/011 =) deb http://mmc.geofisica.unam.mx/debian/ lenny main deb http://ftp.mx.debian.org/debian/ lenny main deb http://ftp.rediris.es/debian/ lenny main contrib non-free

Guardamos los cambios y salimos del archivo. Ahora procedemos a actualizar las listas.

# apt-get update

APNDICE D PUERTOS MAS UTILIZADOS

Puertos ms utilizados

Puertos ms utilizados

Puertos ms utilizados

Puertos ms utilizados

APNDICE E APLICACIN PHP

Vamos a realizar un pequeo programa para utilizar las variables de sesin. Utiizaremos un index.php que es donde daremos las bienvenida al usuario, y utilizando variables de sesin, sabremos si el usuario ya ha iniciado sesin o no. Si el usuario no ha iniciado sesin le mostraremos la opcin de Login, de lo contrario le mostraremos la opcin de logout.

La opcin de Login esta direccionada hacia el archivo login.php en donde se tiene un formulario para el inicio de sesin del usuraio.

Aplicacin PHP

Los datos ingresados por el usuario en el formulario, son enviado a travs de mtodo POST, al archivo validar.php, en donde se recupran de la url dichos valores y son utilizados para compararlos con los datos almacenados en la base de datos y verificar si el usuario y contrasea son correctos.

Aplicacin PHP

Una vez logueado el usuario puede regresar al index, y gracias a la variable de sesin, el index detecta que el usuario ya est logueado y le ofrece la opcin de logout para salir del programa y terminar la sesin: