Está en la página 1de 68

PRUEBA DE EVALUACION CONTINUA N 3

Administracin de Redes, servidores y seguridad.

JORGE ALBERTO AROCHA MUOZ

Trabajo presentado dentro de la asignacin ADMINISTRACIN AVANZADA DEL SISTEMA OPERATIVO GNU/LINUX

ALAN WARD KOECK TUTOR REMO SUPPI BOLDRITO TUTOR

UNIVERSIDAD OBERTA DE CALUNYA MAESTRIA EN SOFTWARE LIBRE 2009

1. Realizar la configuracin desde el inicio de la interfaz de red considerando el tipo de conexin hardware que se disponga (mdem, mdem/router ADSL, cable, LAN, etc) y los servicios que crea necesarios para un entorno de red. Para verificar este ejercicio se debern realizar unas pruebas mnimas de conectividad en la misma red y hacia Internet analizando la calidad de la conexin (por ejemplo contabilizando los paquetes perdidos). En la PEC se debern describir todos los pasos realizados para configurar el dispositivo y los servicios en los ficheros de configuracin sin utilizar herramientas automticas o grficas. Tener en cuenta de extremar las precauciones si es el nico ordenador que se dispone conectado a la red ya que si se configura en forma inadecuada no se podr disponer de ella para solicitar ayuda (a los foros de la UOC por ejemplo). En este caso particular no se aceptarn configuraciones automticas hechas por dhcp (de un router local por ejemplo). Para la correcta configuracin de la red en el sistema operativo GNU/Linux hay que realizar los siguiente: 1. Instalacin del dispositivo a nivel fsico y que el sistema operativo lo haya reconocido, es decir, disponga los controladores adecuados y los cargue correctamente. 2. Configurar el dispositivo a nivel IP de acuerdo a la red en la cual se encuentra, para lo cual se cuenta con varios comandos que permiten su manipulacin (por ejemplo ifconfig e ip), teniendo en cuenta que los cambios realizados de esta manera no son permanentes, si se desea hacerlos permanentes cada distribucin ofrece un mecanismo particular, por lo general por medio de archivos, para que con cada reinicio la mquina cargue la misma configuracin. 3. En este punto se dispondr de conectividad a nivel IP, es decir, se pueden hacer ping por ejemplo, es necesario terminar de configurar la red para usar los otros servicios por ejemplo el DNS, si en la red hay proxy etc. Nivel Fsico: Si el dispositivo de red estaba presente al momento de la instalacin del sistema operativo por lo general este los reconoce correctamente, existen casos especiales en que no lo hace y es necesario instalar manualmente los controladores , e incluso compilarlos. En este caso y teniendo en cuenta que el taller se est realizando en el mismo equipo que la PEC1 se retomar la configuracin de la tarjeta de red y la tarjeta wifi realizadas en ese taller debido a que el sistema operativo no los reconoci correctamente al momento de la instalacin y fue necesario configurar estos dispositivos en forma manual. Ver anexo A y anexo B. Configuracin de la interfaz de Red:

Antes de continuar con esta seccin, es pertinente mostrar el ambiente de trabajo en el cual se est desarrollando este tem.

Ilustracin 1: Ambiente en que se desarrolla este numeral del taller. El proveedor de servicio de internet (ISP) suministra una direccin IP dinmica al cable mdem y este a su vez asigna las del segmento de red 192.168.2.XXX, al cable mdem se le ha instalado un enrutador inalmbrico (Linksys WRTG54G2 V2) que me permite tener una lan de cuatro equipos y acceso inalmbrico, este tiene un servidor DHCP que asigna direcciones en el rango 192.168.1.1XX, en el porttil pc-caliope se est desarrollando este taller tiene Debian Lenny instalado y accede a la red por medio de la tarjeta de red inalmbrica, para cumplir con lo solicitado en el enunciado se va a configurar la tarjeta de red ethernet con la direccin IP 192.168.1.7 y se deshabilitar la interfaz inalmbrica para realizar el anlisis respectivo. Como ya se mencion el equipo tiene instalado Debian Lenny y para la configuracin manual de la tarjeta se debe modificar el archivo /etc/network/interfaces de la siguiente manera.
auto lo iface lo inet loopback auto eth0

iface eth0 inet static address 192.168.1.7 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1

Listado 1: Archivo /etc/network/interfaces Este archivo contiene la informacin que los comandos ifup e ifdown utilizan, en el se puede apreciar la configuracin de dos interfaces de red:

lo, la interfaz local. eth0, primera interfaz ethernet.

Este archivo est compuesto por ninguno o mas prrafos que comienzan con las palabras auto, mapping, iface y allow-, donde: auto Especifica que interfaces deben ser inicializadas cuando se usa el comando ifup -a, que es el comando usado al arrancar el sistema. Indica que la interfaz es inicializada por algn subsistema, por ejemplo allow-hotplug se usa para que la interfaz sea configurada cuando tenga el cable de red conectado. Es un mecanismo para decidir que configuracin utilizar para una interfaz fsica, se usa cuando hay que configurar la tarjeta dependiendo de algn evento o ambiente, por ejemplo, un porttil donde en la oficina necesita una configuracin y en el hogar otra. Ac es donde se configura realmente la interfaz, esta palabra va seguida del nombre de la interfaz ya sea lgico (dado en mapping) o la interfaz fsica que se va a configurar, en caso de no usar mapping. Este prrafo tiene este inicio: iface interfaz tipo_direccin mtodo Donde interfaz es el nombre de una interfaz ya sea lgico o fsico, tipo_direccin puede ser inet, ipx o inet6 y mtodo depende del tipo_direccin, que para el caso especfico de inet (ipv4) provee los mtodos: loopback, static, dhcp, etc. Analizando el Listado 1:
auto lo La interfaz lo ser iniciada cuando se use el comando ifup -a.

allow-

mapping

iface

iface lo inet loopback

La interfaz lo es de tipo inet (ipv4) y usar el mtodo loopback, estableciendo que es la interfaz de loopback. La interfaz eth0 (fsica en este caso porque no se est usando mapping) ser iniciada cuando se use el comando ifup -a. La interfaz eth0 tambin es inet (ipv4) y el mtodo usado para su configuracin es static, direccion IP fija podra ser dchp si en nuestra red se usa asignacin dinmica de direcciones. Estas lneas son propias del mtodo static y su significado es obvio, sirven para establecer la direccin, la mscara de red, la pasarela, la direccin de red y de broadcast.

auto eth0

iface eth0 inet static

address 192.168.1.7 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1

El archivo de configuracin /etc/network/interfaces tiene muchas mas opciones las cuales se encuentran bien documentadas con man o en http://www.debian.org/doc/manuals/debian-reference/ch-gateway.es.html, entre ellas vale la pena resaltar las opciones pre-up, up, pre-down y down, que sirven para ejecutar comandos antes de inicializar la interfaz (pre-up), una vez arriba (up), antes de bajar la interfaz (pre-dow) y una vez abajo(down). Bien, una vez modificado el archivo y con el fin de que se hagan efectivos los cambios de la nueva configuracin se debe ejecutar el comando:
pc-caliope:/home/caliope# invoke-rc.d networking restart

y para verificar los cambios:


pc-caliope:/home/caliope# ip a l 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:23:5a:a7:42:9d brd ff:ff:ff:ff:ff:ff inet 192.168.1.7/24 brd 192.168.1.255 scope global eth0 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:21:00:ef:14:36 brd ff:ff:ff:ff:ff:ff pc-caliope:/home/caliope# ip r l 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.7 default via 192.168.1.1 dev eth0

Como se puede observar la tarjeta eth0 tiene la direccin dada y esta arriba. Para verificar realmente la conectividad se hace ping al enrutador inalmbrico y a una direccin externa:
pc-caliope:/home/caliope# ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.00 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.729 ms 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.760 ms 64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.762 ms 64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=0.747 ms 64 bytes from 192.168.1.1: icmp_seq=6 ttl=64 time=0.728 ms 64 bytes from 192.168.1.1: icmp_seq=7 ttl=64 time=0.759 ms 64 bytes from 192.168.1.1: icmp_seq=8 ttl=64 time=0.783 ms 64 bytes from 192.168.1.1: icmp_seq=9 ttl=64 time=0.780 ms 64 bytes from 192.168.1.1: icmp_seq=10 ttl=64 time=0.727 ms ^C --- 192.168.1.1 ping statistics --10 packets transmitted, 10 received, 0% packet loss, time 9004ms rtt min/avg/max/mdev = 0.727/0.777/1.000/0.081 ms pc-caliope:/home/caliope# ping www.google.com PING www.l.google.com (74.125.45.99) 56(84) bytes of data. 64 bytes from yx-in-f99.1e100.net (74.125.45.99): icmp_seq=1 ttl=52 time=85.9 ms 64 bytes from yx-in-f99.1e100.net (74.125.45.99): icmp_seq=2 ttl=52 time=92.8 ms 64 bytes from yx-in-f99.1e100.net (74.125.45.99): icmp_seq=3 ttl=52 time=87.6 ms 64 bytes from yx-in-f99.1e100.net (74.125.45.99): icmp_seq=4 ttl=52 time=84.8 ms 64 bytes from yx-in-f99.1e100.net (74.125.45.99): icmp_seq=5 ttl=52 time=98.3 ms 64 bytes from yx-in-f99.1e100.net (74.125.45.99): icmp_seq=6 ttl=52 time=93.9 ms 64 bytes from yx-in-f99.1e100.net (74.125.45.99): icmp_seq=7 ttl=52 time=81.8 ms 64 bytes from yx-in-f99.1e100.net (74.125.45.99): icmp_seq=8 ttl=52 time=96.3 ms 64 bytes from yx-in-f99.1e100.net (74.125.45.99): icmp_seq=9 ttl=52 time=91.5 ms 64 bytes from yx-in-f99.1e100.net (74.125.45.99): icmp_seq=10 ttl=52 time=93.9 ms ^C --- www.l.google.com ping statistics --10 packets transmitted, 10 received, 0% packet loss, time 9035ms rtt min/avg/max/mdev = 81.829/90.723/98.313/5.115 ms

Concluyendo que no hay perdida de paquetes y que se tiene comunicacin tanto con la LAN como con internet, observando que es mas lenta la respuesta desde internet que la de la propia LAN como poda esperarse. Post-configuracin: Varios de estos ajustes durante la instalacin ya debieron ser realizados, sin embargo al cambiar la configuracin puede ser necesario verificarlos y ajustarlos, es as como a continuacin se presenta el tpico a configurar y de qu forma:
TOPICO A CONFIGURAR Nombre de la mquina Resolucin de nombres PROCEDIMIENTO Editar en /etc/hostname Editar en /etc/resolv.conf, Agregar directivas dns-nameservers y dns-search, en el archivo /etc/network/interfaces

TOPICO A CONFIGURAR Agregar rutas estticas Direcciones locales y conocidas

PROCEDIMIENTO Usar el comando /etc/network/interfaces. up en el archivo

La direccin localhost, la(s) interfaz que tenga configurada se pueden actualizar en el archivo /etc/hosts, tambin y las mquinas conocidas.

2. Configurar un servidor de DHCP y verificar que el mismo funciona adecuadamente asignando como mnimo los parmetros necesarios para la configuracin de una tarjeta de red. Para ello lo ms fcil es utilizar otra mquina como cliente (indistintamente del operativo que disponga) para probar que se asignan correctamente las direcciones. Prestar atencin en redes domsticas con router ADSL ya generalmente en la mayora de los casos llevan activo un servidor de dhcp y podra dar servicio antes que el servidor bajo estudio. En caso de no disponer dos mquinas para realizar las pruebas, utilizar los mtodos en el modo de prueba/depuracin . Primero hay que instalar el servidor, en este caso el taller se est desarrollando en un equipo con Debian Lenny, y el servidor a utilizar es el paquete dhcp3-server el cual podemos instalar en con cualquier manejador de paquetes, para este caso se eligi usar apt-get.
pc-caliope:/home/caliope# apt-get install dhcp3-server Leyendo lista de paquetes... Hecho Creando rbol de dependencias Leyendo la informacin de estado... Hecho Paquetes sugeridos: dhcp3-server-ldap Se instalarn los siguientes paquetes NUEVOS: dhcp3-server 0 actualizados, 1 se instalarn, 0 para eliminar y 0 no actualizados. Necesito descargar 333kB de archivos. Se utilizarn 782kB de espacio de disco adicional despus de esta operacin. AVISO: No se han podido autenticar los siguientes paquetes! dhcp3-server Instalar estos paquetes sin verificacin [s/N]? s Des:1 http://security.debian.org lenny/updates/main dhcp3-server 3.1.1-6+lenny3 [333kB] Descargados 333kB en 6s (51,8kB/s) Preconfigurando paquetes ... Seleccionando el paquete dhcp3-server previamente no seleccionado. (Leyendo la base de datos ... 142302 ficheros y directorios instalados actualmente.) Desempaquetando dhcp3-server (de .../dhcp3-server_3.1.1-6+lenny3_i386.deb) ... Procesando disparadores para man-db ... Configurando dhcp3-server (3.1.1-6+lenny3) ... Generating /etc/default/dhcp3-server... Starting DHCP server: dhcpd3check syslog for diagnostics. failed! failed! invoke-rc.d: initscript dhcp3-server, action "start" failed. pc-caliope:/home/caliope#

Como se observa en la salida del comando, este instal el servidor pero al

tratar de arrancarlo da error, esto se debe a que trata de arrancar con el archivo de configuracin que tiene por defecto. Para configurar correctamente el servicio de DHCP se debe editar el archivo /etc/dhcp3/dhcpd.conf as:
ddns-update-style none; option domain-name-servers 200.13.249.101, 200.13.224.254; default-lease-time 86400; max-lease-time 604800; authoritative; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.1 192.168.1.50; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.1; }

Listado2: Archivo /etc/dhcp3/dhcpd.conf Analizando el Listado 2:


ddns-update-style Le indica al servidor dhcp si debe y como actualizar las direcciones asignadas en un servidor de nombres de dominio. Como no se va a actualizar ningn DNS por ahora se configur none. El servidor DNS de la red. El tiempo por defecto de asignacin de la direccin en segundos. Por defecto se coloca un dia. Tiempo mximo de segundos. asignacin de la direccin en

option domain-name-servers default-lease-time max-lease-time authoritative

Si un cliente enva un requerimiento incorrecto el servidor lo obliga a que tome los parmetros del servidor, evitando posibles errores. La red en que se est trabajando, con su respectiva mscara. Rango de direcciones a asignar. Mscara de red que usarn los clientes. Direccin de broadcast que usarn los clientes. Pasarela que usarn los clientes.

subnet range option subnet-mask option broadcast-address option routers

Una vez realizados los cambios se puede comprobar el funcionamiento del servidor, con el comando ps se puede verificar si el procesos dhcpd3 se est ejecutando:
pc-caliope:/etc/dhcp3# ps -fea | grep dhcpd root 4634 1 0 21:32 ? 00:00:00 /usr/sbin/dhcpd3 -q

root

4685 4010 0 21:57 pts/1

00:00:00 grep dhcpd

y, con el comando netstat se puede observar si en efecto nuestro servidor est recibiendo peticiones de dhcp:
pc-caliope:/etc/dhcp3# netstat -uap | grep dhcp udp 0 0 *:bootps *:* 4634/dhcpd3

Finalmente, verificar si asigna la direccin a una mquina que lo solicite, para realizar esta prueba conecto el equipo con una mquina windows xp por medio de un cable cruzado.
pc-caliope:/etc/dhcp3# cat /var/lib/dhcp3/dhcpd.leases # The format of this file is documented in the dhcpd.leases(5) manual page. # This lease file was written by isc-dhcp-V3.1.1 lease 192.168.1.1 { starts 4 2009/12/10 03:34:14; ends 5 2009/12/11 03:34:14; cltt 4 2009/12/10 03:34:14; binding state active; next binding state free; hardware ethernet 00:06:4f:6d:16:55; uid "\001\000\006Om\026U"; client-hostname "fliarocha"; } pc-caliope:/etc/dhcp3# cat /var/log/syslog ... Dec 9 22:33:20 pc-caliope kernel: [11264.504073] r8101: eth0: link up Dec 9 22:33:24 pc-caliope dhcpd: DHCPREQUEST for 192.168.1.100 from 00:06:4f:6d:16:55 via eth0: unknown lease 192.168.1.100. Dec 9 22:33:27 pc-caliope dhcpd: DHCPREQUEST for 192.168.1.100 from 00:06:4f:6d:16:55 via eth0: unknown lease 192.168.1.100. Dec 9 22:33:36 pc-caliope dhcpd: DHCPREQUEST for 192.168.1.100 from 00:06:4f:6d:16:55 via eth0: unknown lease 192.168.1.100. Dec 9 22:34:03 pc-caliope dhcpd: DHCPDISCOVER from 00:06:4f:6d:16:55 via eth0 Dec 9 22:34:04 pc-caliope dhcpd: DHCPOFFER on 192.168.1.1 to 00:06:4f:6d:16:55 (fliarocha) via eth0 Dec 9 22:34:05 pc-caliope dhcpd: DHCPDISCOVER from 00:06:4f:6d:16:55 (fliarocha) via eth0 Dec 9 22:34:05 pc-caliope dhcpd: DHCPOFFER on 192.168.1.1 to 00:06:4f:6d:16:55 (fliarocha) via eth0 Dec 9 22:34:14 pc-caliope dhcpd: DHCPDISCOVER from 00:06:4f:6d:16:55 (fliarocha) via eth0 Dec 9 22:34:14 pc-caliope dhcpd: DHCPOFFER on 192.168.1.1 to 00:06:4f:6d:16:55 (fliarocha) via eth0 Dec 9 22:34:14 pc-caliope dhcpd: DHCPREQUEST for 192.168.1.1 (192.168.1.7) from 00:06:4f:6d:16:55 (fliarocha) via eth0 Dec 9 22:34:14 pc-caliope dhcpd: DHCPACK on 192.168.1.1 to 00:06:4f:6d:16:55 (fliarocha) via eth0 Dec 9 22:35:43 pc-caliope kernel: [11407.390194] r8101: eth0: link down ...

En el archivo /var/lib/dhcp3/dhcpd.leases el servidor va guardando que direcciones ha asignado, al revisar su contenido se ve que asign la direccin 192.168.1.1 a la interfaz con direccin fsica 00:06:4f:6d:16:55. Al revisar el archivo /var/log/syslog se puede encontrar informacin mas detallada, por ejemplo:

22:33:20 22:33:24

22:34:14

Conecto el cable de red y se registra el mensaje de link up. Recibe un requerimiento para usar la direccin 192.168.1.100 desde la mquina con direccin fsica 00:06:4f:6d:16:55, el responde que es una direccin que no conoce y como se us la sentencia authoritative en el archivo de configuracin no permite su uso. Finalmente despus que la mquina cliente haya desistido de usar la direccin que tena anteriormente el servidor le asigna la direccin 192.168.1.1 a la mquina fliarocha.

Aspecto de la prueba desde windows, primero la interfaz de red tena la direccin 192.168.1.100 asignada por el enrutador wireless de la ilustracin N1.

Ilustracin 2: Interfaz antes de desconectarla y conectarla al nuevo dhcp.

Ilustracin 3: Durante la soliccitud de direccin.

Ilustracin 4: Despus de asignada la direccin. Se puede observar la tom todos los datos de la nueva configuracin, pasarela, direccin de broadcast, mscara de red, etc. incluso, si se observa con detenimiento se cometi un error en la configuracin pues si la pasarela es la direccin 192.168.1.1 esta no se debe asignar a ninguna mquina, solucin: ajusta el parmetro range desde la 192.168.1.2 en adelante. El archivo de configuracin de dhcpd.conf tiene muchas opciones bien documentadas en man dhcpd.conf, una importante es poder asignar direcciones IP a los clientes con base en la direccin fsica, en el caso que nos ocupa se han agregado las siguientes lineas al archivo /etc/dhcp3/dhcpd.conf con el fin de asignarle especficamente la direccin 192.168.1.45.
host familiar { hardware ethernet 00:06:4f:6d:16:55;

fixed-address 192.168.1.45;

Se conecta nuevamente el cliente y estos son los resultados en el archivo de syslog y en el cliente:
Dec 9 23:16:46 pc-caliope kernel: [13876.917480] r8101: eth0: link up Dec 9 23:16:51 pc-caliope dhcpd: DHCPREQUEST for 192.168.1.100 from 00:06:4f:6d:16:55 via eth0: lease 192.168.1.100 unavailable. Dec 9 23:16:51 pc-caliope dhcpd: DHCPNAK on 192.168.1.100 to 00:06:4f:6d:16:55 via eth0 Dec 9 23:16:52 pc-caliope dhcpd: DHCPDISCOVER from 00:06:4f:6d:16:55 via eth0 Dec 9 23:16:52 pc-caliope dhcpd: DHCPOFFER on 192.168.1.45 to 00:06:4f:6d:16:55 via eth0 Dec 9 23:16:52 pc-caliope dhcpd: Dynamic and static leases present for 192.168.1.45. Dec 9 23:16:52 pc-caliope dhcpd: Remove host declaration familiar or remove 192.168.1.45 Dec 9 23:16:52 pc-caliope dhcpd: from the dynamic address pool for 192.168.1/24 Dec 9 23:16:52 pc-caliope dhcpd: DHCPREQUEST for 192.168.1.45 (192.168.1.7) from 00:06:4f:6d:16:55 via eth0 Dec 9 23:16:52 pc-caliope dhcpd: DHCPACK on 192.168.1.45 to 00:06:4f:6d:16:55 via eth0 Dec 9 23:17:01 pc-caliope /USR/SBIN/CRON[5504]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Dec 9 23:17:30 pc-caliope kernel: [13921.623282] r8101: eth0: link down

Ilustracin 5: Cliente windows con la direccin fija por su direccin fsica.

3. Configurar un servidor de ficheros NFS y un servidor NIS en la misma mquina que servir para que clientes remotos o locales se conecten solo a travs de NIS montando su directorio HOME por NFS. Para el servidor NFS se debe verificar su funcionamiento con restricciones de tipo de acceso (p.e. slo lectura), usuarios, mquinas clientes (esta prueba se puede realizar desde un cliente externo montando el directorio en cuestin o desde la misma mquina (no tiene ningn beneficio sino simplemente hacer la prueba). Para el sistema NIS las pruebas se pueden hacer configurando el cliente tanto en una mquina externa como en el mismo servidor (para probar cliente/servidor en la misma mquina deben crearse usuarios/grupos NIS -es decir que no estn dados de alta en el /etc/passwd ni en el /etc/group- y verificar su conexin a travs de un terminal -AltFi o CrtlAltFi-). Se deben incluir en este ejercicio todos los cambios realizados en todos los archivos de configuracin (incluido el del /etc/passwd, / etc/group). Este punto se puede dividir en:

NIS Instalacin y configuracin del servidor. Instalacin y configuracin en el cliente. Pruebas. NFS Instalacin y configuracin del servidor. Instalacin y configuracin en el cliente. Pruebas.

NIS Instalacin y configuracin del servidor Lo primero es verificar el archivo /etc/hosts, que el nombre del servidor no este apuntando a la direccin de loopback, incluimos las mquinas conocidas de la red.
127.0.0.1 192.168.1.101 192.168.1.100 localhost.localdomain caliope.arocha.com.co familiar.arocha.com.co localhost caliope familiar

Para instalar el servidor se usa apt-get:


caliope:/home/caliope# apt-get install nis Leyendo lista de paquetes... Hecho Creando rbol de dependencias Leyendo la informacin de estado... Hecho Se instalaron de forma automtica los siguientes paquetes y ya no son necesarios. libqt4-opengl libqt4-assistant libqt4-gui rsync pax Utilice apt-get autoremove para eliminarlos. Se instalarn los siguientes paquetes NUEVOS:

nis 0 actualizados, 1 se instalarn, 0 para eliminar y 0 no actualizados. Necesito descargar 204kB de archivos. Se utilizarn 668kB de espacio de disco adicional despus de esta operacin. Des:1 http://http.us.debian.org lenny/main nis 3.17-17 [204kB] Descargados 204kB en 2s (68,5kB/s) Preconfigurando paquetes ... Seleccionando el paquete nis previamente no seleccionado. (Leyendo la base de datos ... 160681 ficheros y directorios instalados actualmente.) Desempaquetando nis (de .../archives/nis_3.17-17_i386.deb) ... Procesando disparadores para man-db ... Configurando nis (3.17-17) ... Setting NIS domainname to: arocha.com.co. Starting NIS services: ypbindbinding to YP server......

Este paquete en Debian viene configurado por defecto para funcionar como cliente, as que para usarlo como servidor se deben realizar unos cambios: Nombre del dominio NIS, este dato fue preguntado durante la instalacin del paquete pero verificarlo:
caliope:/home/caliope# vi /etc/defaultdomain arocha.com.co

Se le indica a NIS que se comporte como servidor cambiando las siguientes lneas:
caliope:/home/caliope# vi /etc/default/nis ... NISSERVER=master ... NISCLIENT=false ...

Para agregar seguridad se limita el acceso a la red en que se est trabajando:


caliope:/home/caliope# vi /etc/ypserv.securenets 255.0.0.0 127.0.0.0 255.255.255.0 192.168.1.0

Se inicializa el servidor NIS con el comando:


caliope:/home/caliope# /usr/lib/yp/ypinit -m At this point, we have to construct a list of the hosts which will run NIS servers. caliope.arocha.com.co is in the list of NIS server hosts. Please continue to add the names for the other hosts, one per line. When you are done with the list, type a <control D>. next host to add: caliope.arocha.com.co next host to add: The current list of NIS servers looks like this: caliope.arocha.com.co Is this correct? [y/n: y] y We need a few minutes to build the databases...

Building /var/yp/arocha.com.co/ypservers... Running /var/yp/Makefile... make[1]: se ingresa al directorio `/var/yp/arocha.com.co' Updating passwd.byname... Updating passwd.byuid... Updating group.byname... Updating group.bygid... Updating hosts.byname... Updating hosts.byaddr... Updating rpc.byname... Updating rpc.bynumber... Updating services.byname... Updating services.byservicename... Updating netid.byname... Updating protocols.bynumber... Updating protocols.byname... Updating netgroup... Updating netgroup.byhost... Updating netgroup.byuser... Updating shadow.byname... make[1]: se sale del directorio `/var/yp/arocha.com.co' caliope.arocha.com.co has been set up as a NIS master server. Now you can run ypinit -s caliope.arocha.com.co on all slave server.

Se coloca el servidor NIS en:


caliope:/home/caliope# vi /etc/yp.conf ypserver caliope.arocha.com.co

Finalmente se reinicia el servidor y se hacen unas pruebas:


caliope:/home/caliope# invoke-rc.d nis restart Starting NIS services: ypserv yppasswdd ypxfrd ypbind. caliope:/home/caliope# ypwhich caliope.arocha.com.co caliope:/home/caliope# ypwhich -m passwd caliope.arocha.com.co caliope:/home/caliope# ypwhich -x Use "ethers" for map "ethers.byname" Use "aliases" for map "mail.aliases" Use "services" for map "services.byname" Use "protocols" for map "protocols.bynumber" Use "hosts" for map "hosts.byname" Use "networks" for map "networks.byaddr" Use "group" for map "group.byname" Use "passwd" for map "passwd.byname" caliope:/home/caliope# ypcat passwd nemesis:x:1002:1002:,,,,:/home/nemesis:/bin/bash euridice:x:1001:1001:,,,,:/home/euridice:/bin/bash caliope:x:1000:1000:Jorge Alberto Arocha Muoz,,,:/home/caliope:/bin/bash

NIS Instalacin y configuracin del cliente La configuracin en el cliente es mas sencilla, prcticamente instalar el paquete:
familiar:/home/caliope# apt-get install nis

Durante la instalacin se pregunta por el dominio NIS y se especifica arocha.com.co, el archivo /etc/default/nis no se altera y en /etc/yp.conf se coloca el nombre del servidor: caliope.arocha.com.co. Se agregan las siguientes lineas en los archivos que a continuacin se indican:
familiar:/home/caliope# vi /etc/passwd +:::::: familiar:/home/caliope# vi /etc/shadow +:::::::: familiar:/home/caliope# vi /etc/group +:::

En el archivo /etc/nsswitch.conf se debe verificar que exista la linea:


netgroup: nis

Se reinicia el servicio:
familiar:/home/caliope# invoke-rc.d nis restart

NIS Pruebas desde el cliente Se hacen las misma pruebas que se hicieron en el servidor y las respuestas son las mismas. La prueba final es habilitarse en la mquina cliente con un usuario que exista en el servidor y no en la mquina local, en este caso nemesis:
caliope@familiar:~$ su - nemesis Contrasea: Sin directorio, entrando con HOME=/ nemesis@familiar:/$

Y se observ que se poda entrar y el sistema advierte que no encuentra el directorio home del usuario, porque pues en la mquina no se encuetra /home/ nemesis como se especifica en el map de passwd de NIS. En cuanto a NFS retomo lo explicado en la PEC2, en servidor:
pc-caliope:~# apt-get install nfs-kernel-server pc-caliope:~# echo /home localhost(rw,no_root_squash) >> /etc/exports pc-caliope:~# cat /etc/exports # /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). # # Example for NFSv2 and NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Example for NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)

# /home *.arocha.com.co(rw,no_root_squash)

Tal como se puede observar en el listado anterior se est exportando el directorio /home a cualquier maquina del dominio arocha.com.co, en este home esta el directorio de los usuarios caliope, nmesis y eurdice. En el cliente solo es necesario instalar el paquete nfs-common y modificar el fstab para que monte por defecto la particin NFS:
root@familia:/home# root@familia:/home# /etc/fstab root@familia:/home# root@familia:/home# root@familia:/home# apt-get nfs-common echo caliope.arocha.com.co:/home mkdir /home/movil chmod ugo+x /home/movil mount /home/movil /home/movil nfs defaults 0 2 >>

Con esto ya est montado el directorio /home del servidor en el directorio /home/movil del cliente, ahora se cambiar el home del usuario nmesis para que sea /home/movil/nemesis:
caliope:~# vi /etc/passwd ... nemesis:x:1002:1002:,,,,:/home/movil/nemesis:/bin/bash ...

Pero es necesario actualizar la informacin de NIS, par lo cual se hace:


caliope:~# cd /var/yp/ caliope:/var/yp# make make[1]: se ingresa al directorio `/var/yp/arocha.com.co' Updating netid.byname... make[1]: se sale del directorio `/var/yp/arocha.com.co' caliope:/var/yp# ypcat passwd nemesis:x:1002:1002:,,,,:/home/movil/nemesis:/bin/bash euridice:x:1001:1001:,,,,:/home/euridice:/bin/bash caliope:x:1000:1000:Jorge Alberto Arocha Muoz,,,:/home/caliope:/bin/bash caliope:/var/yp#

Con esto realizado procedemos a probar nuevamente el usuario nemesis en el equipo familiar.arocha.com.co:
caliope@familiar:~$ su - nemesis Contrasea: nemesis@familiar:~$ pwd /home/movil/nemesis nemesis@familiar:~$ touch prueba nemesis@familiar:~$ cd .. nemesis@familiar:/home/movil$ pwd /home/movil nemesis@familiar:/home/movil$ ls caliope euridice nemesis nemesis@familiar:/home/movil$ cd caliope nemesis@familiar:/home/movil/caliope$ ls 11949856671936903385modem.svg.hi.png Maildir 1236267749763452241AX11_WLAN-router.svg.hi.png mbox

ACTAENTREGA.odt nuvo.txt ACTAENTREGA_r1.odt org_detel1.odg autosave.xmi org_detel1.png backup PDF bak.tac pec2_des.xmi bind pec2_ejemplo.xmi PEC2_Solucion_JCivera.pdf canal_coms.txt pec2_UML.png config-2.6.26-2-686 pec2.xmi config-2.6.31 postfix deps.awk ~prueba Desktop prueba.bak Diagrama1.dia prueba.txt Diagrama1.png pxelinux.0 dir qsort.awk eclipse r8101-1.013.00.tar.bz2 hcal radi1.txt hical radi1.txt~ highres%2C17.jpg raid1.txt impresoras.mawk recompilar.txt impresoras.mawk~ red_casa.dia install.pdf.es red_casa.dia~ interfaces red_casa.png linux-2.6_2.6.26-19lenny2.diff.gz runtime-EclipseApplication linux-2.6_2.6.26-19lenny2.dsc serv_mail.txt linux-2.6_2.6.26.orig.tar.gz uml linux-2.6.31.6.tar.bz2 webmin_1.500_all.deb listar.sh workspace listar.sh~ zimbra-0.jpg lsb-hardware4linux.info-collector-auto-0.10.0 zimbra3_540x411.bmp lsmodgenrico.txt zimbra_full.jpg maestria_semestreII zimbra_skin_sky.jpg Mail nemesis@familiar:/home/movil/caliope$ touch prueba touch: no se puede efectuar `touch' sobre prueba: Permiso denegado nemesis@familiar:/home/movil/caliope$

Como se demostr en la anterior salida, todo funciona de acuerdo a lo esperado, el usuario nemesis esta vez encontr su directorio home y adems funcionan los permisos entre usuarios y grupos del servidor NIS pues permite crear archivos en el home de nemesis y solo deja leer el contenido del subdirectorio del usuario caliope del servidor. Cada vez que se modifica alguno de los archivos mapeados es necesario reconstruir las tablas de NIS pasndose al directorio /var/yp y ejecutando el comando make, existen comandos para como son yppasswd, ypchfn, ypchsh para cambiar la informacin directamente en la base de datos NIS. 4. Servidores: a) Montar un servicio de mail configurando una MTA y que al mismo se pueda acceder por IMAP4 en forma segura. Hacer las pruebas de funcionamiento en modo local para la MTA y remoto para el IMAP4. El servicio deber tambin hacer control de correo de basura (Spam). Si bien se deja libertad de eleccin al estudiante en cuanto a los paquetes utilizar tener en cuenta

como esto puede afectar al entorno donde se est trabajando y se aconseja extremar las precauciones para evitar problemas con el proveedor de Internet o con el entorno. Incluir todos los ficheros de configuracin y las pruebas que demuestren que el servicio funciona en un entorno controlado y privado. El servidor de correo se instalar en una mquina virtual llamada pec3 del dominio arocha.com.co con direccin 10.0.2.15, como es una direccin dinmica es difcil que otros servidores de correo acepten correo de ella hay varias formas de hacerlo pero no es el tema de este taller, por lo tanto solo ser un servidor de correo a nivel de la intranet arocha.com.co, para cumplir con los objetivos propuestos se llevarn a cabo las siguientes tareas:

Instalacin de un dns para que resuelva localmente las peticiones y se encuentre el como el servidor de correo. Instalacin de Postfix y su configuracin. Instalacin de Courier-imap como servidor Imap. Instalacin de Squirrelmail para dar acceso al correo por medio de una interfaz web. Pruebas de funcionamiento. Instalacin de Spamassassin. Pruebas de funcionamiento del filtro de spam.

Instalacin del DNS Verificamos el nombre de la maquina:


pec3:/home/qwerty# vi /etc/hostname pec3 pec3:/home/qwerty# vi /etc/hosts 127.0.0.1 localhost 127.0.1.1 pec3.arocha.com.co

pec3

pec3:/home/qwerty# invoke-rc.d hostname.sh start pec3:/home/qwerty# hostname pec3 pec3:/home/qwerty# hostname -f pec3.arocha.com.co

En el archivo /etc/hostname se guarda el nombre de la mquina, el archivo /etc/hosts sirve para resolver nombres mediante files y all colocamos igualmente el nombre de nuestra mquina. El script hostname.sh se encarga al iniciar el sistema operativo de colocar el nombre, ac lo ejecutamos mediante el comando invoke-rc.d y comprobamos que est de acuerdo a lo configurado mediante el comando hostname.

El servidor de nombres de dominio que se ha seleccionado es BIND, por seguridad es mejor configurarlo para que trabaje como chroot en este caso y como es un ambiente de pruebas se dejar como viene por defecto, para instalarlo se utiliza apt-get:
pec3:/home/qwerty# apt-get install bind9 Leyendo lista de paquetes... Hecho Creando rbol de dependencias Leyendo la informacin de estado... Hecho Se instalarn los siguientes paquetes extras: bind9utils Paquetes sugeridos: bind9-doc resolvconf ufw Se instalarn los siguientes paquetes NUEVOS: bind9 bind9utils 0 actualizados, 2 se instalarn, 0 para eliminar y 0 no actualizados. Se necesita descargar 0B/335kB de archivos. Se utilizarn 1028kB de espacio de disco adicional despus de esta operacin. Desea continuar [S/n]? s Preconfigurando paquetes ... Seleccionando el paquete bind9utils previamente no seleccionado. (Leyendo la base de datos ... 160688 ficheros y directorios instalados actualmente.) Desempaquetando bind9utils (de .../bind9utils_1%3a9.5.1.dfsg.P3-1_i386.deb) ... Seleccionando el paquete bind9 previamente no seleccionado. Desempaquetando bind9 (de .../bind9_1%3a9.5.1.dfsg.P3-1_i386.deb) ... Procesando disparadores para man-db ... Configurando bind9utils (1:9.5.1.dfsg.P3-1) ... Configurando bind9 (1:9.5.1.dfsg.P3-1) ... wrote key file "/etc/bind/rndc.key" # Stopping domain name service...: bind9rndc: connection to remote host closed This may indicate that * the remote server is using an older version of the command protocol, * this host is not authorized to connect, * the clocks are not syncronized, or * the key is invalid. . Starting domain name service...: bind9.

Para configurarlo se deben modificar varios archivos, en el archivo /etc/bind/named.conf.options agregamos las siguientes lneas, cuidando que queden antes del corchete final:
pec3:/home/qwerty# vi /etc/bind/named.conf.options ... forwarders { 10.0.2.3; }; ...

Con esto se especifica un dns externo que nos permitir resolver los dominios que no sean de nuestro conocimiento. Para agregar las zonas de nuestro dominio arocha.com.co, se deben agregar dos zonas de resolucin y la de resolucin inversa, esto se hace en /etc/bind/

named.conf.local agregando las siguientes lineas:


pec3:/home/qwerty# vi /etc/bind/named.conf.local zone "arocha.com.co" { type master; file "/var/lib/bind/arocha.com.co.hosts"; }; zone "2.0.10.in-addr.arpa" { type master; file "/var/lib/bind/10.0.2.rev"; };

Con esto se le indica a bind que zonas va a resolver l y en que lugar se encuentra la informacin correspondiente, en este caso los archivos: /var/lib/bind/arocha.com.co.hosts y /var/lib/bind/10.0.2.rev, los cuales se han editado con los siguientes datos: Este es el archivo de la /var/lib/bind/arocha.com.co.hosts: zona directa (o de forwarding),

$ttl 38400 arocha.com.co. IN SOA pec3.arocha.com.co. admin.arocha.com.co ( 1260684512 10800 3600 604800 38400 ) arocha.com.co. IN NS pec3.arocha.com.co. pec3.arocha.com.co. IN A 10.0.2.15 arocha.com.co. IN MX 10 pec3.arocha.com.co.

Explicar este archivo no es del alcance de este taller, pero es importante ver la tres ltimas lneas: en la primera se indica que el servidor de nombres de arocha.com.co es la mqina pec3.arocha.com.co, que la direccin de pec3.arocha.com.co es 10.0.2.15 y que el servidor de correo de arocha.com.co es pec3.arocha.com.co. El archivo de resolucin inversa es /var/lib/bind/10.0.2.rev:
$ttl 38400 2.0.10.in-addr.arpa. IN SOA pec3.arocha.com.co. admin.arocha.com.co ( 1260684560 10800 3600 604800 38400 ) 2.0.10.in-addr.arpa. IN NS pec3.arocha.com.co. 15.2.0.10.in-addr.arpa. IN PTR pec3.arocha.com.co.

Se reinicia el servidor mediante el comando invoke-rc.d:


pec3:/home/qwerty# invoke-rc.d bind9 restart

Comprobamos su funcionamiento con el comando nslookup:


pec3:/home/qwerty# nslookup > server 10.0.2.15 Default server: 10.0.2.15 Address: 10.0.2.15#53 > pec3.arocha.com.co Server: 10.0.2.15 Address: 10.0.2.15#53 Name: pec3.arocha.com.co Address: 10.0.2.15 > set type=mx > arocha.com.co Server: 10.0.2.15 Address: 10.0.2.15#53 arocha.com.co mail exchanger = 10 pec3.arocha.com.co. > set type=any > arocha.com.co Server: 10.0.2.15 Address: 10.0.2.15#53 arocha.com.co origin = pec3.arocha.com.co mail addr = admin.arocha.com.co.arocha.com.co serial = 1260684512 refresh = 10800 retry = 3600 expire = 604800 minimum = 38400 arocha.com.co nameserver = pec3.arocha.com.co. arocha.com.co mail exchanger = 10 pec3.arocha.com.co.

Una vez verificado se actualiza el archivo /etc/resolv.conf para usar la mquina local como servidor de nombres:
pec3:/home/qwerty# vi /etc/resolv.conf domain arocha.com.co search arocha.com.co nameserver 10.0.2.15

Instalacin de Postfix y su configuracin Usando apt-get se procede a instalar postfix:


pec3:/home/qwerty# apt-get install postfix

Durante la instalacin pregunta el tipo de servidor selecciona Sitio Internet, se supone que es un servidor de correo con acceso a internet y por donde los usuarios de arocha.com.co enviarn sus correos. Para su configuracin postfix usa dos archivos: /etc/postfix/main.cf y /etc/postfix/master.cf. Editamos inicialmente /etc/postfix/main.cf:
pec3:/home/qwerty# vi /etc/postfix/main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yesyes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. myhostname = pec3.arocha.com.co alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = arocha.com.co, pec3.arocha.com.co, localhost.arocha.com.co, localhost #relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.0.2.0/24 inet_interfaces = all smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $mydomain broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination home_mailbox = Maildir/

Durante la instalacin Debian configura varios elementos dejando el archivo casi listo para funcionar, desinstala Exim4 que lo trae Debian por defecto para el manejo del correo y si se dejara no funcionaria nuestro postfix. Del archvio anterior son de comentar: smtpd_banner: Es el mensaje de texto que se despliga cuando se inicia la sesin, en este caso algo como: pec3.arocha.com.co ESMTP Postfix (Debian/ GNU), aconsejan a cambiarlo por seguridad. myorigin: El dominio de correo que usara, Debian lo guarda por defecto en este archivo, el cual si se revisa solo contiene arocha.com.co mydestination: Qu dominios de correo va a recibir.

relayhost: Como se comento anteriormente, se supone que este servidor debera entregar el los correos de los usuarios arocha.com.co hacia otros dominios, por lo tanto este parmetro no debera configurarse, pero como tiene una ip dinmica los servidores no aceptan su correo, existen formas de hacerlo mediante este parmetro pero no fueron desarrolladas en este taller. home_mailbox: Los correos sern guardados directamente en el directorio del usuario. Postfix es altamente configurable permitiendo realizar configuraciones muy detallas en aras de la seguridad, para mayor informacin se puede verificar http://www.postfix.org/postconf.5.html en los parmetros de este archivo. Instalacin de Courier-imap Se instala con la ayuda de apt-get:
pec3:/home/qwerty# apt-get install courier-imap Leyendo lista de paquetes... Hecho Creando rbol de dependencias Leyendo la informacin de estado... Hecho Se instalaron de forma automtica los siguientes paquetes y ya no son necesarios. libqt4-opengl libqt4-assistant libqt4-gui rsync pax Utilice apt-get autoremove para eliminarlos. Paquetes sugeridos: courier-doc courier-imap-ssl Se instalarn los siguientes paquetes NUEVOS: courier-imap 0 actualizados, 1 se instalarn, 0 para eliminar y 0 no actualizados. Se necesita descargar 0B/593kB de archivos. Se utilizarn 1516kB de espacio de disco adicional despus de esta operacin. Seleccionando el paquete courier-imap previamente no seleccionado. (Leyendo la base de datos ... 160652 ficheros y directorios instalados actualmente.) Desempaquetando courier-imap (de .../courier-imap_4.4.0-2_i386.deb) ... Procesando disparadores para man-db ... Configurando courier-imap (4.4.0-2) ... Starting Courier IMAP server: imapd.

Durante la instalacin pregunta que si instala la interfaz web para administracin, se contest que no. Al igual que el caso anterior la instalacin toma casi todos los parmetros de configuracin automticamente dejando casi a punto el servicio, en este caso solo se adicion a /etc/courier/authmodulelist lo siguiente:
pec3:/home/qwerty# vi /etc/courier/authmodulelist authdaemon

An as, el directorio de configuracin es /etc/courier y en el podemos encontrar el archivo imapd para configurar el servicio imap y el authdaemonrc para configurar la autenticacin. Es importante que MAILDIRPATH=Maildir en imapd es el mismo valor que homedir en main.cf. Instalacin de Squirrelmail Squirrelmail es una interfaz web para el correo electrnico, accesa al correo por medio de imap, su instalacin es bastante sencilla:
pec3:/home/qwerty# apt-get install squirrelmail Leyendo lista de paquetes... Hecho Creando rbol de dependencias Leyendo la informacin de estado... Hecho Se instalaron de forma automtica los siguientes paquetes y ya no son necesarios. libqt4-opengl libqt4-assistant libqt4-gui rsync pax Utilice apt-get autoremove para eliminarlos. Se instalarn los siguientes paquetes extras: squirrelmail-locales Paquetes sugeridos: squirrelmail-decode imapproxy php-pear php4-pear php5-ldap php4-ldap Se instalarn los siguientes paquetes NUEVOS: squirrelmail squirrelmail-locales 0 actualizados, 2 se instalarn, 0 para eliminar y 0 no actualizados. Se necesita descargar 0B/3113kB de archivos. Se utilizarn 12,6MB de espacio de disco adicional despus de esta operacin. Desea continuar [S/n]? Y Seleccionando el paquete squirrelmail previamente no seleccionado. (Leyendo la base de datos ... 159376 ficheros y directorios instalados actualmente.) Desempaquetando squirrelmail (de .../squirrelmail_2%3a1.4.15-4+lenny2_all.deb) ... Seleccionando el paquete squirrelmail-locales previamente no seleccionado. Desempaquetando squirrelmail-locales (de .../squirrelmail-locales_1.4.13-20071220-1_all.deb) ... Procesando disparadores para man-db ... Configurando squirrelmail (2:1.4.15-4+lenny2) ... Installing default squirrelmail config. Run /usr/sbin/squirrelmail-configure as root to configure/upgrade config. Configurando squirrelmail-locales (1.4.13-20071220-1) ...

La configuracin por defecto funciona sin problemas solo es necesarios copiar la configuracin que trae propuesta para apache y ubicar el directorio de squirrelmail en el DocumentRoot acuerdo nuestra distribucin:
pec3:/home/qwerty# ln -s /etc/squirrelmail/apache.conf /etc/apache2/conf.d/squirrelmail.conf pec3:/home/qwerty# ln -s /usr/share/squirrelmail /var/www/squirrelmail pec3:/home/qwerty# chgrp -R www-data /usr/share/squirrelmail/

Pruebas de funcionamiento Antes de continuar se configuran dos usuarios, aunque postfix permite usar usuarios virtuales, tal como se ha configurado el servicio es para usuarios reales del sistema, por lo tanto para agregar un usuario solo es necesario agregarlo normalmente y adems crear la carpeta Maildir as:

pec3:/home/qwerty# su usuario pec3:/home/qwerty# maildirmake.courier /home/usuario/Maildir

Inicialmente se verificar el servicio de correo haciendo un telnet al puerto 25, e incluso haciendo llegar un mensaje a un buzn:
pec3:/home/qwerty# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 pec3.arocha.com.co ESMTP Postfix (Debian/GNU) EHLO LOCALHOST 250-pec3.arocha.com.co 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN AUTH PLAIN Y2FsaW9wZTBjYWxpb3BlMGNhbGlvcGU= 535 5.7.8 Error: authentication failed: bad protocol / cancel Y2FsaW9wZWNhbGlvcGVjYWxpb3Bl 502 5.5.2 Error: command not recognized Y2FsaW9wZWNhbGlvcGVjYWxpb3Bl 502 5.5.2 Error: command not recognized AUTH PLAIN Y2FsaW9wZWNhbGlvcGVjYWxpb3Bl 535 5.7.8 Error: authentication failed: bad protocol / cancel MAIL FROM:<you@example.com> 250 2.1.0 Ok RCPT TO:<caliope@arocha.com.co> 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> SUBJECT: Prueba Pruebas desde aca. . 250 2.0.0 Ok: queued as 868B35276A QUIT 221 2.0.0 Bye Connection closed by foreign host. pec3:/home/qwerty#

Como se puede observar al final acepto el mensaje y lo encol, ahora hay que probar si llego o no, para lo que se puede usar squirrelmail.

Y para comprobar el funcionamiento de imapd, aunque squirrelmail lo hace, se configur evolution para tener acceso a esas carpetas:

Instalacin y configuracin de Spamassassin. Se requiere spamassassin y el cliente para comunicarse con l, spamc: es el cliente para comunicarse con spamd, la versin demonizada de SpamAssassin

(vase el paquete spamassassin). Est escrito en C para que funcione a la mxima velocidad y cargue lo mnimo. spamc es bastante til para integrar spamassassin en un MTA o en un archivo .procmailrc debido a su velocidad. 1 Para esto se utiliza el comando apt-get:
pec3:/home/qwerty# apt-get install spamassassin spamc

Se deben realizar algunos ajuste porque la instalacin por defecto de Debian corre spamassassin con el usurio root, lo que no es buena idea, por lo tanto se crea un usuario spamd, su directorio home y se cambia la configuracin por defecto de acuerdo al nuevo usuario:
pec3:/home/qwerty# groupadd -g 1500 spamd pec3:/home/qwerty# useradd -u 1500 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd pec3:/home/qwerty# mkdir /var/lib/spamassassin pec3:/home/qwerty# chown spamd:spamd /var/lib/spamassassin pec3:/home/qwerty# vi /etc/default/spamassassin ENABLED=1 SAHOME="/var/lib/spamassassin/" OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir ${SAHOME} {SAHOME}spamd.log" PIDFILE="${SAHOME}spamd.pid"

-s

Ahora se retoca la configuracin de postfix, aadiendo un nuevo filtro, para lo cual se edita el archivo /etc/postfix/master.cf y al final se aaden las siguientes lineas:
pec3:/home/qwerty# vi /etc/postfix/master.cf ...... spamassassin unix - n n - - pipe user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

Y despus de smtp inet n - - - - smtpd se agrega: -o content_filter=spamassassin, teniendo en cuenta dejar unos espacios en blanco al principio de la linea, as:
smtp inet n - - - - smtpd -o content_filter=spamassassin

esto le indica que debe utilizar un filtro de contenido que se llama spamassassin, que se defini en las tres lineas que se agregaron al final del archivo y este filtro consiste en pasar el mensaje por spamc, el cual decidir si es o no spam.
1 Tomado de Debian: http://packages.debian.org/lenny/spamc

Se hace la aclaracin que como solo se requera el filtro de spam, tan solo se configur de esta forma, porque existe amavis que adems del spamassassin nos permite usar antivirus, teniendo una solucin mas completa. Despus de esto se reinicia el servidor de correo con:
pec3:/home/qwerty# invoke-rc.d postfix restart

y para probarlo enviamos un correo que contenga un texto que sabemos de antemano que es spam: Otra manera de revisar todo esto es la bitcora de postfix, la cual podemos hallar en /var/log/mail.log, all encontramos informcacin sobre los mensajes que entran y salen, el login de los clientes, etc

Ilustracin 6: Mensaje con contenido SPAM

Ilustracin 7: Mensaje enviado al usuario informando que se ha bloqueado un mesaje con SPAM.

b) Montar un servidor de ficheros va un servidor web mediante WebDav. Se debern dar muestras que el servicio funciona haciendo pruebas para las siguientes acciones: mover o copiar ficheros en el servidor, modificar sus propiedades, verificar niveles de acceso y seguridad. Como en el ejercicio anterior describir todos los pasos para la instalacin, configuracin y las pruebas realizadas. Para este ejercicio se deben realizar las siguientes tareas:

Instalar servidor web Apache. Habilitar el mdulo que soporta WebDav. Configurar el directorio a compartir y la seguridad.

Instalar servidor web Apache: En este orden de ideas, para la instalacin de Apache se usa el comando aptget:
pc-caliope:/home/caliope# apt-get install apache2 Leyendo lista de paquetes... Hecho

Creando rbol de dependencias Leyendo la informacin de estado... Hecho Se instalarn los siguientes paquetes extras: apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1 Paquetes sugeridos: apache2-doc apache2-suexec apache2-suexec-custom Se instalarn los siguientes paquetes NUEVOS: apache2 apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1 0 actualizados, 6 se instalarn, 0 para eliminar y 0 no actualizados. Necesito descargar 1396kB de archivos. Se utilizarn 4915kB de espacio de disco adicional despus de esta operacin. Desea continuar [S/n]? S AVISO: No se han podido autenticar los siguientes paquetes! libapr1 libaprutil1 apache2-utils apache2.2-common apache2-mpm-worker apache2 Instalar estos paquetes sin verificacin [s/N]? s 0% [Conectando a security.debian.org (128.101.240.212)]^C pc-caliope:/home/caliope# export FTP_PROXY=http://192.168.1.1:3128 pc-caliope:/home/caliope# apt-get install apache2 Leyendo lista de paquetes... Hecho Creando rbol de dependencias Leyendo la informacin de estado... Hecho Se instalarn los siguientes paquetes extras: apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1 Paquetes sugeridos: apache2-doc apache2-suexec apache2-suexec-custom Se instalarn los siguientes paquetes NUEVOS: apache2 apache2-mpm-worker apache2-utils apache2.2-common libapr1 libaprutil1 0 actualizados, 6 se instalarn, 0 para eliminar y 0 no actualizados. Necesito descargar 1396kB de archivos. Se utilizarn 4915kB de espacio de disco adicional despus de esta operacin. Desea continuar [S/n]? S AVISO: No se han podido autenticar los siguientes paquetes! libapr1 libaprutil1 apache2-utils apache2.2-common apache2-mpm-worker apache2 Instalar estos paquetes sin verificacin [s/N]? s Des:1 http://security.debian.org lenny/updates/main libapr1 1.2.12-5+lenny1 [109kB] Des:2 http://security.debian.org lenny/updates/main libaprutil1 1.2.12+dfsg-8+lenny4 [73,8kB] Des:3 http://security.debian.org lenny/updates/main apache2-utils 2.2.9-10+lenny6 [143kB] Des:4 http://security.debian.org lenny/updates/main apache2.2-common 2.2.9-10+lenny6 [783kB] Des:5 http://security.debian.org lenny/updates/main apache2-mpm-worker 2.2.9-10+lenny6 [241kB] Des:6 http://security.debian.org lenny/updates/main apache2 2.2.9-10+lenny6 [45,2kB] Descargados 1396kB en 3s (410kB/s) Seleccionando el paquete libapr1 previamente no seleccionado. (Leyendo la base de datos ... 142315 ficheros y directorios instalados actualmente.) Desempaquetando libapr1 (de .../libapr1_1.2.12-5+lenny1_i386.deb) ... Seleccionando el paquete libaprutil1 previamente no seleccionado. Desempaquetando libaprutil1 (de .../libaprutil1_1.2.12+dfsg-8+lenny4_i386.deb) ... Seleccionando el paquete apache2-utils previamente no seleccionado. Desempaquetando apache2-utils (de .../apache2-utils_2.2.9-10+lenny6_i386.deb) ... Seleccionando el paquete apache2.2-common previamente no seleccionado. Desempaquetando apache2.2-common (de .../apache2.2-common_2.2.9-10+lenny6_i386.deb) ... Seleccionando el paquete apache2-mpm-worker previamente no seleccionado. Desempaquetando apache2-mpm-worker (de .../apache2-mpm-worker_2.2.9-10+lenny6_i386.deb) ... Seleccionando el paquete apache2 previamente no seleccionado. Desempaquetando apache2 (de .../apache2_2.2.9-10+lenny6_all.deb) ... Procesando disparadores para man-db ... Configurando libapr1 (1.2.12-5+lenny1) ... Configurando libaprutil1 (1.2.12+dfsg-8+lenny4) ... Configurando apache2-utils (2.2.9-10+lenny6) ... Configurando apache2.2-common (2.2.9-10+lenny6) ... Enabling site default. Enabling module alias.

Enabling module autoindex. Enabling module dir. Enabling module env. Enabling module mime. Enabling module negotiation. Enabling module setenvif. Enabling module status. Enabling module auth_basic. Enabling module deflate. Enabling module authz_default. Enabling module authz_user. Enabling module authz_groupfile. Enabling module authn_file. Enabling module authz_host. Configurando apache2-mpm-worker (2.2.9-10+lenny6) ... Starting web server: apache2. Configurando apache2 (2.2.9-10+lenny6) ...

Una vez instalado y para comprobar que se ha instalado correctamente abrimos un navegador y se apunta hacia la direccin IP de la mquina debe responder una pgina con el mensaje It works!, tambin podemos probar desde la consola de texto de la misma mquina el comando ps si el proceso apache2 est en ejecucin:
pc-caliope:/home/caliope# ps -fea | grep apache2 root 4480 1 0 08:27 ? 00:00:00 /usr/sbin/apache2 -k start www-data 4481 4480 0 08:27 ? 00:00:00 /usr/sbin/apache2 -k start www-data 4484 4480 0 08:27 ? 00:00:00 /usr/sbin/apache2 -k start www-data 4487 4480 0 08:27 ? 00:00:00 /usr/sbin/apache2 -k start root 4634 3846 0 09:00 pts/1 00:00:00 grep apache2

y, un telnet al puerto 80 as:


pc-caliope:/home/caliope# telnet localhost 80 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. GET <html><body><h1>It works!</h1></body></html> Connection closed by foreign host.

El servidor apache instalado as tiene su configuracin por defecto, la cual se encuentra en /etc/apache2 y consta de un archivo principal apache2.conf desde el cual por medio de la directiva include carga otros archivos de configuracin para habilitar y deshabilitar los sitios y mdulos disponibles y otras caractersticas, estos archivos vienen bien documentados y son fciles de modificar, sin embargo el paquete apacheutils nos provee unas herramientas como a2en... o a2dis... para estas labores administrativas. Habilitar el mdulo que soporta WebDav Los mdulos disponibles en la instalacin se encuentran en

/etc/apache2/mods-available en este directorio se verifica la existencia de dav_fs.conf y dav.con los cuales cargaremos con el comando a2enmod, as:
pc-caliope:/home/caliope# a2enmod dav dav_fs Enabling module dav. Considering dependency dav for dav_fs: Module dav already enabled Enabling module dav_fs. Run '/etc/init.d/apache2 restart' to activate new configuration!

o,
pc-caliope:/home/caliope# a2enmod Your choices are: actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authnz_ldap authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cern_meta cgi cgid charset_lite dav dav_fs dav_lock dbd deflate dir disk_cache dump_io env expires ext_filter file_cache filter headers ident imagemap include info ldap log_forensic mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http rewrite setenvif speling ssl status substitute suexec unique_id userdir usertrack version vhost_alias Which module(s) do you want to enable (wildcards ok)? dav dav_fs Enabling module dav. Considering dependency dav for dav_fs: Module dav already enabled Enabling module dav_fs. Run '/etc/init.d/apache2 restart' to activate new configuration!

La diferencia entre los dos es que uno es interactivo y el otro ya conocemos y estamos seguros de los mdulos que se cargaran, al final ambos comandos advierten que es necesario reiniciar el servidor para que tome los cambios. Analizando el comando a2enmod: Como se mencion anteriormente el archivo de configuracin del servidor web es /etc/apache2/apache2.conf si se revisa detenidamente las lineas 185 y 186 cargan dentro de la configuracin los archivos *.conf y *.load que se encuentren en el directorio /etc/apache2/mods-enabled, lo que hace a2enmod crear enlaces en /etc/apache2/mods-enabled desde /etc/apache2/ mods-available que son los archivos de configuracin disponibles, esto es equivalente a editar el archivo /etc/apache2/httpd.conf, que es donde se aconseja hacer las configuraciones manuales del usuario,y agregar el contenido a mano. Lo mismo pero mas elegante. A continuacin una comparacin de los dos mtodos:
a2enmod dav dav_fs

vi /etc/apache2/httpd-conf

Enlace a archivos preconfigruados, si se hace Agregar las siguientes lneas: un ls a /etc/apache2/mod-enabled vemos:

lrwxrwxrwx 1 root root 29 dic 10 09:40 dav_fs.conf -> ../mods-available/dav_fs.conf lrwxrwxrwx 1 root root 29 dic 10 09:40 dav_fs.load -> ../mods-available/dav_fs.load lrwxrwxrwx 1 root root 26 dic 10 09:40 dav.load -> ../mods-available

LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so

LoadModule dav_lock_module /usr/lib/apache2/modules/mod_dav_lock.so DAVLockDB /var/lock/apache2/DAVLock

El contenido de los archivos es:


# cat /etc/apache2/mods-available/dav* DAVLockDB /var/lock/apache2/DAVLock # Depends: dav LoadModule dav_fs_module /usr/lib/apache2/modules/mod_dav_fs.so LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so LoadModule dav_lock_module /usr/lib/apache2/modules/mod_dav_lock.so

Una vez realizados estos pasos se procede al paso final de configurar el directorio a compartir. Configurar el directorio a compartir y la seguridad Lo primero es crear un directorio en el mismo DocumentRoot del servidor que ya se tiene configurado, para ello un directorio en /var/www que es el sitio por defecto donde Debian lo tiene configurado, si existe duda se puede verificar en el archivo /etc/apache2/sites-available/default y ubicar la lnea DocumentRoot y es recomendable cambiarlo de usuario al del servidor apache, en este caso es www-data pero en otras distribuciones puede ser apache o nobody.
pc-caliope:~# mkdir /var/www/dav pc-caliope:~# chown www-data:www-data /var/www/dav

Ahora en el sitio que tenemos configurado se agrega el directorio, para lo cual se edita el archivo /etc/apache2/sites-available/default y se agregan las siguientes lneas:
Alias /webdav "/var/www/dav" <Location /webdav> DAV On </Location>

Despus es necesario reiniciar el servidor web:


pc-caliope:/home/caliope# invoke-rc.d apache2 force-reload Reloading web server config: apache2.

Para verificar desde otra mquina con Debian en el menu Lugares->Conectar con el servidor , se escoge el protocolo WebDav y se llenan los datos como se observa en la ilustracin:

Ilustracin 8: Configuracin cliente gnome WebDav Despus de esto la carpeta se puede usar como si fuera local, para comprobar se copiaron archivos del cliente al servidor, y su registro queda en la bitcora del servidor apache en /var/log/apache2/access.log:
172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PROPFIND /webdav HTTP/1.1" 301 320 "-" "gnomevfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PROPFIND /webdav/ HTTP/1.1" 207 669 "-" "gnomevfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PROPFIND /webdav/Pantallazo.png HTTP/1.1" 404 303 "-" "gnome-vfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "HEAD /webdav/Pantallazo.png HTTP/1.1" 404 - "-" "gnome-vfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PUT /webdav/Pantallazo.png HTTP/1.1" 201 280 "-" "gnome-vfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PUT /webdav/Pantallazo.png HTTP/1.1" 204 - "-" "gnome-vfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PROPFIND /webdav HTTP/1.1" 301 320 "-" "gnomevfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PROPFIND /webdav/ HTTP/1.1" 207 669 "-" "gnomevfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PROPFIND /webdav/Pantallazo-1.png HTTP/1.1" 404 305 "-" "gnome-vfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "HEAD /webdav/Pantallazo-1.png HTTP/1.1" 404 - "-" "gnome-vfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PUT /webdav/Pantallazo-1.png HTTP/1.1" 201 282 "-" "gnome-vfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PUT /webdav/Pantallazo-1.png HTTP/1.1" 204 - "-" "gnome-vfs/2.22.0 neon/0.25.4"

172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PROPFIND /webdav/Pantallazo-1.png HTTP/1.1" 207 "-" "gnome-vfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PROPFIND /webdav/Pantallazo.png HTTP/1.1" 207 "-" "gnome-vfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PROPFIND /webdav/Pantallazo.png HTTP/1.1" 207 "-" "gnome-vfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PROPFIND /webdav/Pantallazo-1.png HTTP/1.1" 207 "-" "gnome-vfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PROPFIND /webdav/Pantallazo.png HTTP/1.1" 207 "-" "gnome-vfs/2.22.0 neon/0.25.4" 172.24.31.7 - - [10/Dec/2009:17:12:45 -0500] "PROPFIND /webdav/Pantallazo-1.png HTTP/1.1" 207 "-" "gnome-vfs/2.22.0 neon/0.25.4"

564 562 562 564 562 564

Hasta ahora solos se ha configurado para que cualquier persona lo accese y pueda leer y escribir, para agregar seguridad se puede exigir que para escribir y/o leer sea un usuario validado, para validar el usuario se puede aprovechar cualquier mtodo soportado por Apache, como por ejemplo LDAP, MySql, etc., en este caso a manera de ejemplo se va a restringir la escritura y se usar el sistema de validacin bsico de apache, para lograrlo se sigue el siguiente proceso: Agregar las siguiente lineas al archivo /etc/apache2/sites-avalaible/default :
AuthType Basic AuthName DAV AuthUserFile /var/www/dav/user.passwd <LimitExcept GET OPTIONS> Require valid-user </LimitExcept>

Se debe crear el archivo user.passwd con:


pc-caliope:/var/www/dav# htpasswd -c /var/www/dav/user.passwd jorge New password: Re-type new password: Adding password for user jorge

Una vez reiniciado el servidor y al hacer las mismas pruebas me pedir contrasea. Es aconsejable colocar el archivo de contraseas en otra carpeta y cambiar los pemisos para aumentar la seguridad. 5. Implementar un firewall por medio de iptables, que slo permita acceso a Apache y SSH desde una(s) IP(s) determinadas descartando (DROP) todos los restantes paquetes. Verificar desde una mquina externa que el firewall funciona analizando que puertos permanecen abiertos utilizando alguna de las herramientas propuestas como nmap. En caso de no disponer otra mquina para probar el firewall se puede utilizar alguno de los sitios web que permiten verificar el acceso como por ejemplo GRC (http://grc.com) a travs de

ShieldsUP! (Se debe tener en cuenta en este caso que muchas veces nuestro router bloquea el acceso a la mquina porque el ya est haciendo de FW). Como resultado del ejercicio se debe incluir que pasos se han seguido en la configuracin, una descripcin de cada regla y las verificaciones realizadas de funcionamiento. Antes de continuar es necesario presentar el ambiente de trabajo de este numeral:

Ilustracin 9: Ambiente trabajo numeral 5. En la mquina 172.24.31.249 se instalar el firewall requerido y desde las otras mquinas se harn las pruebas, al equipo 192.168.1.1 se le autorizar el acceso al servidor web y al 172.24.31.7 el acceso a ssh. El script usado para configurar un firewall con iptables es:
#!/bin/bash iptables -F iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -d 172.24.31.249 -s 192.168.1.1 -p tcp --dport 80 -j ACCEPT iptables -A INPUT -d 172.24.31.249 -s 172.24.31.7 -p tcp --dport 22 -j ACCEPT

Listado 3: Script fw_pec3.sh Anlisis script:

iptables -F iptables -P INPUT DROP

Con esto se eliminan las cadenas que pueda tener en el momento las tablas de iptables. Con la opcin -P se establecen polticas para una cadena, en este caso, se estn eliminando los paquetes entrantes (tabla FILTER cadena INPUT) Se autorizan paquetes salientes. Se autorizan paquetes que pasan. Se autorizan los paquetes a la interfaz de loopback. Se autoriza la entrada de los paquetes de protocolo TCP puerto 80 (puerto donde esta escuchando apache los requerimientos) con destino a la mquina 172.24.31.249 (donde se est ejecutando el firewall) que provengan de la direccin 192.168.1.1. Se autoriza la entrada de los paquetes de protocolo TCP puerto 22 (puerto donde esta escuchando SSH los requerimientos) con destino a la mquina 172.24.31.249 (donde se est ejecutando el firewall) que provengan de la direccin 172.24.31.7.

iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -d 172.24.31.249 -s 192.168.1.1 -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -d 172.24.31.249 -s 172.24.31.7 -p tcp --dport 22 -j ACCEPT

La ejecucin del script:


arocha:~# iptables -L Chain INPUT (policy ACCEPT) target prot opt source

destination

Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source arocha:~# ./fw_pec3.sh arocha:~# iptables -L -n Chain INPUT (policy DROP) target prot opt source ACCEPT all -- 0.0.0.0/0 ACCEPT tcp -- 192.168.1.1 ACCEPT tcp -- 172.24.31.7 destination

destination 0.0.0.0/0 172.24.31.249 172.24.31.249

tcp dpt:80 tcp dpt:22

Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

Para verificar se intentaron abrir sesiones web y ssh desde distintas mquinas y los resultados obtenidos correspondieron a lo esperado, a manera de evidencia se utilizar iptraf, que es un programa que nos permite monitorear el

trfico de red ejecutado en la mquina que nos interesa, en este caso el computador que hace de firewall.

Ilustracin 10: Iptraf pruebas con SSH En la ilustracin N 8 se puede observar la ejecucin de iptraf en la mquina que tiene instalado el firewall, mientras se intenta abrir sesiones ssh desde distintos equipos de la red, se puede observar: 1. La sesin ssh entre el equipo y el de direccin 172.24.31.7 fue exitosa y esta activa, se puede ver que frente a cada equipo hay gran cantidad de paquetes enviados. 2. En las sesiones desde otros equipos no se estableci la conexin, por ejemplo se ve que desde la direccin IP 172.24.31.181 puerto 43741 se han enviado 4 paquetes a la direccin IP 172.24.31.249 al puerto 22 (SSH) que no respondido porque en paquetes enviados aparece 0 (cero). 3. Solicitudes a otros puertos tampoco contesta, en este caso solicitudes al puerto 445. Igualmente se hizo la prueba con acceso web y se observaron resultados

similares. nmap es un software para escanear puertos, con el se puede verificar que servicios tiene abiertos un equipo entre otros resultados.
arocha:~# nmap -T Aggressive -A -v localhost Starting Nmap 4.62 ( http://nmap.org ) at 2009-12-11 17:50 COT Initiating SYN Stealth Scan at 17:50 Scanning localhost (127.0.0.1) [1715 ports] Discovered open port 80/tcp on 127.0.0.1 Discovered open port 22/tcp on 127.0.0.1 Discovered open port 111/tcp on 127.0.0.1 Completed SYN Stealth Scan at 17:50, 2.33s elapsed (1715 total ports) Initiating Service scan at 17:50 Scanning 3 services on localhost (127.0.0.1) Completed Service scan at 17:50, 6.07s elapsed (3 services on 1 host) Initiating OS detection (try #1) against localhost (127.0.0.1) SCRIPT ENGINE: Initiating script scanning. LUA INTERPRETER in nse_init.cc:763: /usr/share/nmap/scripts/robots.nse:4: module 'http' not found: no field package.preload['http'] no file '/usr/share/nmap/nselib/http.lua' no file './http.lua' no file '/usr/local/share/lua/5.1/http.lua' no file '/usr/local/share/lua/5.1/http/init.lua' no file '/usr/local/lib/lua/5.1/http.lua' no file '/usr/local/lib/lua/5.1/http/init.lua' no file '/usr/lib/nmap/nselib-bin/http.so' no file './http.so' no file '/usr/local/lib/lua/5.1/http.so' no file '/usr/local/lib/lua/5.1/loadall.so' SCRIPT ENGINE: Aborting script scan. Host localhost (127.0.0.1) appears to be up ... good. Interesting ports on localhost (127.0.0.1): Not shown: 1712 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh (protocol 2.0) 80/tcp open http Apache httpd 2.2.9 ((Debian)) 111/tcp open rpcbind 1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at http://www.insecure.org/cgi-bin/servicefp-submit.cgi : SF-Port22-TCP:V=4.62%I=7%D=12/11%Time=4B22CCB1%P=i686-pc-linux-gnu%r(NULL, SF:20,"SSH-2\.0-OpenSSH_5\.1p1\x20Debian-5\r\n"); Device type: general purpose Running: Linux 2.6.X OS details: Linux 2.6.17 - 2.6.20 Uptime: 0.054 days (since Fri Dec 11 16:33:20 2009) Network Distance: 0 hops TCP Sequence Prediction: Difficulty=203 (Good luck!) IP ID Sequence Generation: All zeros Read data files from: /usr/share/nmap OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 21.404 seconds Raw packets sent: 1734 (77.058KB) | Rcvd: 3474 (147.092KB)

Listado 4: Resultado nmap en la misma mquina. Como se puede observar en el listado 4, desde la misma maquina se tiene acceso a los puertos 22(SSH), 80 (HTTP) y 111 (rcpbind).

jdifen:/home/caliope# nmap -T Aggressive -A -v 172.24.31.249 Starting Nmap 4.62 ( http://nmap.org ) at 2009-12-11 17:47 COT Initiating ARP Ping Scan at 17:47 Scanning 172.24.31.249 [1 port] Completed ARP Ping Scan at 17:47, 0.01s elapsed (1 total hosts) Initiating Parallel DNS resolution of 1 host. at 17:47 Completed Parallel DNS resolution of 1 host. at 17:47, 0.00s elapsed Initiating SYN Stealth Scan at 17:47 Scanning 172.24.31.249 [1715 ports] Discovered open port 22/tcp on 172.24.31.249 Completed SYN Stealth Scan at 17:47, 8.82s elapsed (1715 total ports) Initiating Service scan at 17:47 Scanning 1 service on 172.24.31.249 Completed Service scan at 17:48, 6.00s elapsed (1 service on 1 host) Initiating OS detection (try #1) against 172.24.31.249 SCRIPT ENGINE: Initiating script scanning. LUA INTERPRETER in nse_init.cc:763: /usr/share/nmap/scripts/robots.nse:4: module 'http' not found: no field package.preload['http'] no file '/usr/share/nmap/nselib/http.lua' no file './http.lua' no file '/usr/local/share/lua/5.1/http.lua' no file '/usr/local/share/lua/5.1/http/init.lua' no file '/usr/local/lib/lua/5.1/http.lua' no file '/usr/local/lib/lua/5.1/http/init.lua' no file '/usr/lib/nmap/nselib-bin/http.so' no file './http.so' no file '/usr/local/lib/lua/5.1/http.so' no file '/usr/local/lib/lua/5.1/loadall.so' SCRIPT ENGINE: Aborting script scan. Host 172.24.31.249 appears to be up ... good. Interesting ports on 172.24.31.249: Not shown: 1714 filtered ports PORT STATE SERVICE VERSION 22/tcp open ssh (protocol 2.0) 1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at http://www.insecure.org/cgi-bin/servicefp-submit.cgi : SF-Port22-TCP:V=4.62%I=7%D=12/11%Time=4B22CC20%P=i686-pc-linux-gnu%r(NULL, SF:20,"SSH-2\.0-OpenSSH_5\.1p1\x20Debian-5\r\n"); MAC Address: 00:00:24:C8:73:1C (Connect AS) Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Device type: firewall|general purpose Running: Linux 2.6.X OS details: Smoothwall firewall (Linux 2.6.16.53), Linux 2.6.13 - 2.6.20, Linux 2.6.17 (x86) Uptime: 0.056 days (since Fri Dec 11 16:28:05 2009) Network Distance: 1 hop TCP Sequence Prediction: Difficulty=201 (Good luck!) IP ID Sequence Generation: All zeros Read data files from: /usr/share/nmap OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 17.204 seconds Raw packets sent: 3468 (155.062KB) | Rcvd: 13 (700B)

Listado 5: Resultado nmap desde 172.24.31.7. En este caso solo aparece que tiene acceso al puerto de SSH, lo cual era de esperarse pues es el puerto que esta autorizado para esta mquina. Con la configuracin actual desde la mquina con el firewall no se puede tener acceso a otros servidores web o a sesiones ssh en otros servidores, esto es porque est establecida la poltica DROP en la cadena INPUT, un forma de solucionarlo es adicionando al script la lnea:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

De esta forma se le indica a iptables que si el paquete de entrada que esta analizando la cadena INPUT hace parte de una conexin que inici nuestra mquina, o una conexin que ya estaba establecida o relacionada con una ya establecida dejar pasar los paquetes. Una vez hecho el cambio y aplicado el script, este es el resultado de listar las cadenas:
arocha:~# iptables -L -n Chain INPUT (policy DROP) target prot opt source ACCEPT all -- 0.0.0.0/0 ACCEPT tcp -- 192.168.1.1 ACCEPT tcp -- 172.24.31.7 ACCEPT all -- 0.0.0.0/0

destination 0.0.0.0/0 172.24.31.249 tcp dpt:80 172.24.31.249 tcp dpt:22 0.0.0.0/0 state RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

De esta forma desde la mquina se podrn iniciar conexiones a cualquier protocolo y servicio. 6. Tomando como referencia el captulo de Administracin de seguridad, realizar un anlisis de seguridad completo de vuestra mquina centrado en la utilizacin de herramientas y archivos de informacin/configuracin (generados por Uds o del sistema). Es imprescindible en este ejercicio analizar/realizar: a) Si han habido o no (intentos) intrusiones (se deben provocar/simular intentos y comentar que se han analizado y como han llegado a la conclusin final), b) estado de la seguridad de local, c) estado de la seguridad de red. El resultado final deber ser un informe que permita definir los puntos dbiles y su correccin y si no los hay que se ha analizado para llegar a esta conclusin.

Sobre este tema hay mucho escrito y por escribir, es un tema que no solo es de una mquina y su administrador, sino que involucra a los usuarios, al ambiente fsico, a los desarrolladores de las aplicaciones que se ejecutan sobre esa plataforma, etc. Para efectos de desarrollo de este taller se realizar la prueba sobre un servidor web, la idea es que tenga disponible el servicio web y para administracin ssh desde ciertas mquinas, adems se asume que el estudio de seguridad se realizar en cuanto a la instalacin y configuracin de la mquina en s, dejando fuera del alcance de este estudio la parte de desarrollo del website, es decir, vulnerabilidades como injection sql, cross-site scripting quedan fuera. El orden que se seguir es: 1. 2. 3. 4. 5. Descripcin del servidor, su configuracin. Diagnstico inicial . Correccin de novedades halladas. Prueba de las correcciones. Otros.

Descripcin del Servidor. El sistema que se est analizando es una mquina Soekris 4801-50, en la que se ha instalado Debian Lenny nicamente el sistema base, posteriormente se instalaron bind9 y apache2, dejando las configuraciones que trae por defecto y se iniciaron los servicios correspondietes. Su direccin IP local es 172.24.31.249 a la que se le hace un NAT con la 190.254.1.86. Diagnstico inicial. Para esta fase se us Nessus, que es un escner de vulnerabilidades, bsicamente su funcionamiento es escanear primero los puerto abiertos del objetivo y con base en ellos buscar si existen vulnerabilidades que puedan aprovecha una serie de exploits conocidos; con base en la informacin recuperada elabora un informe donde detalla sobre las vulnerabilidades y advertencias sobre la configuracin errada de los servicios de nuestro sistema e incluso como solucionarlas. Es de anotar que para no se configur un firewall y tiene una direccin publica por medio de NAT y el firewall no filtra nada.

Ilustracin 11: Resultado de Nessus Como se puede observar en la imagen ha detectado algunas novedades que son: 1. DNS mal configurado. 2. Apache presenta una falla en la configuracin y como se aprecia en la imagen dice como se puede corregir. 3. Esta presente el servicio sunrpc(portmap) que se conoce tiene varias vulnerabilidades. 4. Las fallas que dicen general estan asociadas a que se est usando la versin GPL de la herramienta y no tiene habilitados todos los plugins disponibles. En el Anexo C se adjunta la salida en texto del diagnstico inicial con Nessus. Correccin novedades halladas Con base en el reporte se hicieron las siguientes correcciones:

Se elimin el servicio de portmap y dns, ya que no sern usados ni requeridos:


ns:~# apt-get remove portmap Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: nfs-common portmap 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. After this operation, 549kB disk space will be freed. Do you want to continue [Y/n]? Y (Reading database ... 21494 files and directories currently installed.) Removing nfs-common ... Stopping NFS common utilities: statd. Removing portmap ... Stopping portmap daemon.... Processing triggers for man-db ... ns:~# apt-get remove bind9 Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: bind9utils Use 'apt-get autoremove' to remove them. The following packages will be REMOVED: bind9 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 762kB disk space will be freed. Do you want to continue [Y/n]? Y (Reading database ... 21441 files and directories currently installed.) Removing bind9 ... Processing triggers for man-db ...

Se corrigi la configuracin de Apache tal como lo sugiere Nessus, es necesario habilitar el modulo rewrite:
ns:~# a2enmod Your choices are: actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authnz_ldap authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cern_meta cgi cgid charset_lite dav dav_fs dav_lock dbd deflate dir disk_cache dump_io env expires ext_filter file_cache filter headers ident imagemap include info ldap log_forensic mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http rewrite setenvif speling ssl status substitute suexec unique_id userdir usertrack version vhost_alias Which module(s) do you want to enable (wildcards ok)? rewrite Enabling module rewrite. Run '/etc/init.d/apache2 restart' to activate new configuration! ns:~# vi /etc/apache2/sites-available/default ..... RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F] ..... ns:~# invoke-rc.d apache2 stop Stopping web server: apache2. ns:~# invoke-rc.d apache2 start Starting web server: apache2.

Se configur un firewall con iptables, partiendo del numeral anterior, restringiendo el acceso a ssh desde las unicas maquinas que se utilizan para administrar el servidor:

ns:~# vi fw_pec3.sh ns:~# ./fw_pec3.sh ns:~# iptables -L -n Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 172.24.31.249 tcp dpt:80 ACCEPT tcp -- 172.24.31.7 172.24.31.249 tcp dpt:22 ACCEPT tcp -- 190.9.201.179 172.24.31.249 tcp dpt:22 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

Salida desde internet.

Prueba de Correcciones Se vuelve a ejecutar Nessus y en esta ocasin esta es la salida:

Ilustracin 12: Resultado Nessus una vez corregidas novedades.

En el Anexo D se puede encontrar el resultado de Nessus en formato de texto. Otros Es altamente recomendable verificar diariamente las bitcoras del sistema en ellas se pueden rastrear los posibles ataques, pues estos no son elaborados de un da para otro sino que son el resultado de das, semanas o meses de seguimientos, pruebas, etc. es mas, hay encargados de sistemas que ni se dan cuenta de la intrusin, porque como se aclara en los apuntes no necesariamente los atacantes producen daos; pero si con cada acceso al sistema se van dejando huellas que permiten establecer la existencia de una intrusin o un ataque en curso. Por tal motivo se debe revisar diariamente:

Comando last: este nos muestra qu usuarios se ha conectado al sistema y por cual medio, esto nos permite confrontar esta informacin y detectar patrones fuera de lo comn (usuarios que accesan en horas no laborales, accessos desde lugares fuera de lo comn).
ns:~# last root pts/2 root pts/1 root pts/0 root pts/1 root pts/0 root pts/0 root pts/2 root pts/0 root pts/0 root pts/1 root pts/0 root pts/0 root ttyS0 root ttyS0 reboot system root ttyS0 root ttyS0 root pts/0 root pts/0 root ttyS0 root ttyS0 172.24.31.7 Mon Dec 14 15:42 still logged in 172.24.31.7 Mon Dec 14 14:48 still logged in 172.24.31.7 Mon Dec 14 08:43 still logged in 190.9.201.179 Sat Dec 12 23:20 - 23:47 (00:26) 190.9.201.179 Sat Dec 12 23:05 - 23:23 (00:17) 190.9.201.179 Sat Dec 12 22:41 - 22:42 (00:00) 190.9.201.179 Sat Dec 12 21:36 - 22:08 (00:31) 190.9.201.179 Sat Dec 12 21:28 - 22:39 (01:10) 190.9.201.179 Sat Dec 12 20:58 - 21:28 (00:29) 190.9.201.179 Sat Dec 12 20:45 - 22:42 (01:57) 190.9.201.179 Sat Dec 12 20:35 - 20:58 (00:23) 172.24.31.7 Sat Dec 12 20:29 - 20:30 (00:00) Sat Dec 12 20:28 - 20:30 (00:01) Sat Dec 12 20:28 - 20:28 (00:00) boot 2.6.26-2-486 Sat Dec 12 20:28 - 16:11 (1+19:43) Sat Dec 12 20:23 - down (00:01) Sat Dec 12 20:23 - 20:23 (00:00) 190.9.201.179 Sat Dec 12 18:52 - down (01:31) 190.9.201.179 Fri Dec 11 22:02 - 22:04 (00:01) Fri Dec 11 18:09 - 18:10 (00:00) Fri Dec 11 18:09 - 18:09 (00:00)

Como se ve a este servidor solo se accesa como root desde las IP 172.24.31.7 y 190.9.201.79, si aparece otro acceso debe n encenderse las alarmas.

/var/log/auth.log: En esta bitcora se lleva el registro de quienes intentan accesar el sistema y si se tiene xito o no.
Dec 14 07:59:24 ns sshd[6228]: Failed password for invalid user linux123456 from 125.63.78.196 port 43925 ssh2 Dec 14 07:59:28 ns sshd[6230]: Invalid user delutz23 from 125.63.78.196 Dec 14 07:59:28 ns sshd[6230]: pam_unix(sshd:auth): check pass; user unknown Dec 14 07:59:28 ns sshd[6230]: pam_unix(sshd:auth): authentication failure; logname= uid=0

euid=0 tty=ssh ruser= rhost=125.63.78.196 Dec 14 07:59:30 ns sshd[6230]: Failed password for invalid user delutz23 from 125.63.78.196 port 44972 ssh2 Dec 14 07:59:34 ns sshd[6232]: Invalid user gowno12 from 125.63.78.196 Dec 14 07:59:34 ns sshd[6232]: pam_unix(sshd:auth): check pass; user unknown Dec 14 07:59:34 ns sshd[6232]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=125.63.78.196 Dec 14 07:59:36 ns sshd[6232]: Failed password for invalid user gowno12 from 125.63.78.196 port 46863 ssh2 Dec 14 07:59:39 ns sshd[6234]: Invalid user tv from 125.63.78.196 Dec 14 07:59:39 ns sshd[6234]: pam_unix(sshd:auth): check pass; user unknown Dec 14 07:59:39 ns sshd[6234]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=125.63.78.196 Dec 14 07:59:41 ns sshd[6234]: Failed password for invalid user tv from 125.63.78.196 port 47926 ssh2 Dec 14 07:59:45 ns sshd[6236]: Invalid user dj from 125.63.78.196 Dec 14 07:59:45 ns sshd[6236]: pam_unix(sshd:auth): check pass; user unknown Dec 14 07:59:45 ns sshd[6236]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=125.63.78.196 Dec 14 07:59:47 ns sshd[6236]: Failed password for invalid user dj from 125.63.78.196 port 48984 ssh2 Dec 14 08:17:01 ns CRON[6240]: pam_unix(cron:session): session opened for user root by (uid=0) Dec 14 08:17:01 ns CRON[6240]: pam_unix(cron:session): session closed for user root Dec 14 08:43:25 ns sshd[6245]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=172.24.31.7 user=root Dec 14 15:51:28 ns sshd[15050]: Failed password for invalid user db2as from 172.24.31.7 port 43438 ssh2 Dec 14 15:51:39 ns sshd[15052]: Invalid user rewt from 172.24.31.7 Dec 14 15:51:39 ns sshd[15052]: Failed none for invalid user rewt from 172.24.31.7 port 39359 ssh2 Dec 14 15:51:39 ns sshd[15052]: pam_unix(sshd:auth): check pass; user unknown Dec 14 15:51:39 ns sshd[15052]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=172.24.31.7 Dec 14 15:51:41 ns sshd[15052]: Failed password for invalid user rewt from 172.24.31.7 port 39359 ssh2 Dec 14 15:51:45 ns sshd[15055]: Invalid user system from 172.24.31.7 Dec 14 15:51:46 ns sshd[15055]: Failed none for invalid user system from 172.24.31.7 port 39377 ssh2 Dec 14 15:51:46 ns sshd[15055]: pam_unix(sshd:auth): check pass; user unknown Dec 14 15:51:46 ns sshd[15054]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=172.24.31.7 user=root Dec 14 15:51:46 ns sshd[15055]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=172.24.31.7 Dec 14 15:51:47 ns sshd[15055]: Failed password for invalid user system from 172.24.31.7 port 39377 ssh2 Dec 14 15:51:48 ns sshd[15054]: Failed password for root from 172.24.31.7 port 39376 ssh2 Dec 14 15:51:55 ns sshd[15058]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=172.24.31.7 user=root Dec 14 15:51:57 ns sshd[15058]: Failed password for root from 172.24.31.7 port 39402 ssh2 Dec 14 15:51:59 ns sshd[15060]: Invalid user hax0r from 172.24.31.7 Dec 14 15:51:59 ns sshd[15060]: Failed none for invalid user hax0r from 172.24.31.7 port 39413 ssh2 Dec 14 15:52:02 ns sshd[15062]: Invalid user glftpd from 172.24.31.7 Dec 14 15:52:02 ns sshd[15062]: Failed none for invalid user glftpd from 172.24.31.7 port 39421 ssh2 Dec 14 15:52:02 ns sshd[15062]: pam_unix(sshd:auth): check pass; user unknown Dec 14 15:52:02 ns sshd[15062]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=172.24.31.7 Dec 14 15:52:02 ns sshd[15064]: Invalid user outofbox from 172.24.31.7 Dec 14 15:52:02 ns sshd[15064]: Failed none for invalid user outofbox from 172.24.31.7 port 39423 ssh2 Dec 14 15:52:05 ns sshd[15062]: Failed password for invalid user glftpd from 172.24.31.7 port 39421 ssh2 Dec 14 16:04:38 ns sshd[15066]: pam_unix(sshd:auth): authentication failure; logname=

uid=0 euid=0 tty=ssh ruser= rhost=172.24.31.7 user=root

En el fragmento anterior se puede observar un ataque desde la IP 125.63.78.196 porque esta intentando varios usuarios y en un corto lapso, al igual los accesos con usuarios del sistema es el escaneo de Nessus.

Las bitcoras de los servicios habilitados, en este caso en Apache se encuentran en /var/log/apache2, de especial inters error.log, por ejemplo en el fragmento que se aprecia a continuacin, podemos concluir que alguien est tratando de detectar posibles brechas de seguridad para usarlas en su provecho, estas son hechas durante el escaneo con Nessus:
[Mon Dec 14 17:03:16 2009] [error] [client 172.24.31.7] script not /usr/lib/cgi-bin/WackoWiki [Mon Dec 14 17:03:16 2009] [error] [client 172.24.31.7] script not /usr/lib/cgi-bin/WackoWiki [Mon Dec 14 17:03:17 2009] [error] [client 172.24.31.7] script not /usr/lib/cgi-bin/ion-p. [Mon Dec 14 17:03:17 2009] [error] [client 172.24.31.7] script not /usr/lib/cgi-bin/ion-p.exe [Mon Dec 14 17:03:17 2009] [error] [client 172.24.31.7] /var/www/include.php [Mon Dec 14 17:03:17 2009] [error] [client 172.24.31.7] /var/www/include.php [Mon Dec 14 17:03:18 2009] [error] [client 172.24.31.7] /var/www/everythingform.cgi [Mon Dec 14 17:03:18 2009] [error] [client 172.24.31.7] /var/www/everythingform.cgi [Mon Dec 14 17:03:18 2009] [error] [client 172.24.31.7] /var/www/WackoWiki [Mon Dec 14 17:03:18 2009] [error] [client 172.24.31.7] /var/www/WackoWiki [Mon Dec 14 17:03:19 2009] [error] [client 172.24.31.7] script not /usr/lib/cgi-bin/ion-p.exe [Mon Dec 14 17:03:19 2009] [error] [client 172.24.31.7] script not /usr/lib/cgi-bin/ion-p.exe [Mon Dec 14 17:03:19 2009] [error] [client 172.24.31.7] File does not [Mon Dec 14 17:03:19 2009] [error] [client 172.24.31.7] File does not [Mon Dec 14 17:03:20 2009] [error] [client 172.24.31.7] script not /usr/lib/cgi-bin/ezadmin.cgi [Mon Dec 14 17:03:20 2009] [error] [client 172.24.31.7] script not /usr/lib/cgi-bin/ezadmin.cgi [Mon Dec 14 17:03:20 2009] [error] [client 172.24.31.7] script not /usr/lib/cgi-bin/index.php [Mon Dec 14 17:03:20 2009] [error] [client 172.24.31.7] script not /usr/lib/cgi-bin/index.php [Mon Dec 14 17:03:21 2009] [error] [client 172.24.31.7] File does p.exe [Mon Dec 14 17:03:21 2009] [error] [client 172.24.31.7] File does p.exe [Mon Dec 14 17:03:21 2009] [error] [client 172.24.31.7] File does not [Mon Dec 14 17:03:21 2009] [error] [client 172.24.31.7] File does not [Mon Dec 14 17:03:22 2009] [error] [client 172.24.31.7] /var/www/ezadmin.cgi [Mon Dec 14 17:03:22 2009] [error] [client 172.24.31.7] /var/www/ezadmin.cgi [Mon Dec 14 17:03:22 2009] [error] [client 172.24.31.7] /var/www/index.php [Mon Dec 14 17:03:22 2009] [error] [client 172.24.31.7] /var/www/index.php found or unable to stat: found or unable to stat: found or unable to stat: found or unable to stat: File File File File File File does does does does does does not not not not not not exist: exist: exist: exist: exist: exist:

found or unable to stat: found or unable to stat: exist: /var/www/ideabox exist: /var/www/ideabox found or unable to stat: found or unable to stat: found or unable to stat: found or unable to stat: not exist: /var/www/ionnot exist: /var/www/ionexist: /var/www/ca exist: /var/www/ca File does not exist: File File File does does does not not not exist: exist: exist:

[Mon Dec 14 17:03:23 2009] [error] [client 172.24.31.7] File does p.exe [Mon Dec 14 17:03:23 2009] [error] [client 172.24.31.7] File does p.exe [Mon Dec 14 17:03:23 2009] [error] [client 172.24.31.7] File does not [Mon Dec 14 17:03:23 2009] [error] [client 172.24.31.7] File does not

not exist: /var/www/ionnot exist: /var/www/ionexist: /var/www/ca exist: /var/www/ca

La seguridad no es solamente la instalacin y configuracin correcta de la mquina y los servicios que se prestaran, esta labor es de estar constantemente revisando bitcoras, mantener actualizado el sistema, analizar comportamientos extraos en el sistema y las respectivas copias de seguridad. En estas labores GNU/Linux nos ofrece gran cantidad de herramientas libres que permiten agilzar y hacen el trabajo mas sencillo, por ejemplo:

logwatch: Para anlisis de logs, altamente configurable y flexible, se puede configurar para que nos enve un correo diariamente. Nessus: Escner de vulnerabilidades. nmap: Para escanear puertos. Amanda: Para hacer backups. Snort: Monitorear el trafico de red y con una base de datos de ataques detectarlos. ScanLogd: Detecta escaneo de puertos.

ANEXO A SOLUCIN PROBLEMA DE RED LAN PROBLEMA: Durante la instalacin no present ninguna advertencia o aviso de error en cuanto a tarjeta de red ethernet, pero al configurar la direccin IP de acuerdo a la red LAN no tena conexin, verificando con el comando dmesg se encontr:
[ [ [ [ [ 14.069834] loop: module loaded 15.762202] r8169: eth0: link down 17.283179] NET: Registered protocol family 10 17.283575] lo: Disabled Privacy Extensions 17.283988] ADDRCONF(NETDEV_UP): eth0: link is not ready

Como si el patchcord no estuviera conectado, pero si lo estaba e incluso los leds de la interfaz de red titilaban. Tambin se puede observar que est cargado el mdulo r8169 para la eth0 y si se verifica la salida del comando lspci la tarjeta es una Realtek 8101E:
... 03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express ...

SOLUCIN: Cambiar el drive de la tarjeta de red, para lo cual se sigui el siguiente procedimiento: 1. Instalar paquetes de desarrollo y la herramienta modulue-assistant, que facilita la instalacin de nuevos mdulos desde sus paquetes fuente.
pc-caliope:/home/caliope# aptitude install build-essential module-assistant Leyendo lista de paquetes... Hecho Creando rbol de dependencias Leyendo la informacin de estado... Hecho Leyendo la informacin de estado extendido Inicializando el estado de los paquetes... Hecho Leyendo las descripciones de las tareas... Hecho Se instalarn los siguiente paquetes NUEVOS: binutils{a} build-essential dpkg-dev{a} g++{a} g++-4.3{a} gcc{a} gcc-4.3{a} libc6-dev{a} libgomp1{a} libstdc++6-4.3-dev{a} libtimedate-perl{a} linux-libc-dev{a} make{a} module-assistant 0 paquetes actualizados, 14 nuevos instalados, 0 para eliminar y 0 sin actualizar. Necesito descargar 0B/15,7MB de ficheros. Despus de desempaquetar se usarn 51,9MB. Quiere continuar? [Y/n/?] Y Escribiendo informacin de estado extendido... Hecho Seleccionando el paquete binutils previamente no seleccionado.

(Leyendo la base de datos ... 90754 ficheros y directorios instalados actualmente.) Desempaquetando binutils (de .../binutils_2.18.1~cvs20080103-7_i386.deb) ... Seleccionando el paquete linux-libc-dev previamente no seleccionado. Desempaquetando linux-libc-dev (de .../linux-libc-dev_2.6.26-15_i386.deb) ... Seleccionando el paquete libc6-dev previamente no seleccionado. Desempaquetando libc6-dev (de .../libc6-dev_2.7-18_i386.deb) ... Seleccionando el paquete libgomp1 previamente no seleccionado. Desempaquetando libgomp1 (de .../libgomp1_4.3.2-1.1_i386.deb) ... Seleccionando el paquete gcc-4.3 previamente no seleccionado. Desempaquetando gcc-4.3 (de .../gcc-4.3_4.3.2-1.1_i386.deb) ... Seleccionando el paquete gcc previamente no seleccionado. Desempaquetando gcc (de .../gcc_4.3.2-2_i386.deb) ... Seleccionando el paquete libstdc++6-4.3-dev previamente no seleccionado. Desempaquetando libstdc++6-4.3-dev (de .../libstdc++6-4.3-dev_4.3.2-1.1_i386.deb) ... Seleccionando el paquete g++-4.3 previamente no seleccionado. Desempaquetando g++-4.3 (de .../g++-4.3_4.3.2-1.1_i386.deb) ... Seleccionando el paquete g++ previamente no seleccionado. Desempaquetando g++ (de .../g++_4.3.2-2_i386.deb) ... Seleccionando el paquete make previamente no seleccionado. Desempaquetando make (de .../make-dfsg/make_3.81-5_i386.deb) ... Seleccionando el paquete libtimedate-perl previamente no seleccionado. Desempaquetando libtimedate-perl (de .../libtimedate-perl_1.1600-9_all.deb) ... Seleccionando el paquete dpkg-dev previamente no seleccionado. Desempaquetando dpkg-dev (de .../dpkg/dpkg-dev_1.14.25_all.deb) ... Seleccionando el paquete build-essential previamente no seleccionado. Desempaquetando build-essential (de .../build-essential_11.4_i386.deb) ... Seleccionando el paquete module-assistant previamente no seleccionado. Desempaquetando module-assistant (de .../module-assistant_0.10.11.0_all.deb) ... Procesando disparadores para man-db ... Configurando binutils (2.18.1~cvs20080103-7) ... Configurando linux-libc-dev (2.6.26-15) ... Configurando libc6-dev (2.7-18) ... Configurando libgomp1 (4.3.2-1.1) ... Configurando gcc-4.3 (4.3.2-1.1) ... Configurando gcc (4:4.3.2-2) ... Configurando make (3.81-5) ... Configurando libtimedate-perl (1.1600-9) ... Configurando dpkg-dev (1.14.25) ... Configurando module-assistant (0.10.11.0) ... Configurando libstdc++6-4.3-dev (4.3.2-1.1) ... Configurando g++-4.3 (4.3.2-1.1) ... Configurando g++ (4:4.3.2-2) ... Configurando build-essential (11.4) ... Leyendo lista de paquetes... Hecho Creando rbol de dependencias Leyendo la informacin de estado... Hecho Leyendo la informacin de estado extendido Inicializando el estado de los paquetes... Hecho Escribiendo informacin de estado extendido... Hecho Leyendo las descripciones de las tareas... Hecho

2. Se prepara la herramienta module-assistant


pc-caliope:/home/caliope# m-a update Actualizado los ficheros infos de los paquetes 85 pc-caliope:/home/caliope# m-a prepare Obteniendo los fuentes de la versin del ncleo: 2.6.26-2-686 apt-get install linux-headers-2.6.26-2-686 Leyendo lista de paquetes... Hecho Creando rbol de dependencias Leyendo la informacin de estado... Hecho

Se instalarn los siguientes paquetes extras: cpp-4.1 gcc-4.1 gcc-4.1-base linux-headers-2.6.26-2-common linux-kbuild-2.6.26 Paquetes sugeridos: gcc-4.1-locales gcc-4.1-multilib gcc-4.1-doc libmudflap0-dev Se instalarn los siguientes paquetes NUEVOS: cpp-4.1 gcc-4.1 gcc-4.1-base linux-headers-2.6.26-2-686 linux-headers-2.6.26-2-common linux-kbuild-2.6.26 0 actualizados, 6 se instalarn, 0 para eliminar y 0 no actualizados. Se necesita descargar 0B/7246kB de archivos. Se utilizarn 41,2MB de espacio de disco adicional despus de esta operacin. Desea continuar [S/n]? S Seleccionando el paquete gcc-4.1-base previamente no seleccionado. (Leyendo la base de datos ... 93114 ficheros y directorios instalados actualmente.) Desempaquetando gcc-4.1-base (de .../gcc-4.1-base_4.1.2-25_i386.deb) ... Seleccionando el paquete cpp-4.1 previamente no seleccionado. Desempaquetando cpp-4.1 (de .../cpp-4.1_4.1.2-25_i386.deb) ... Seleccionando el paquete gcc-4.1 previamente no seleccionado. Desempaquetando gcc-4.1 (de .../gcc-4.1_4.1.2-25_i386.deb) ... Seleccionando el paquete linux-headers-2.6.26-2-common previamente no seleccionado. Desempaquetando linux-headers-2.6.26-2-common (de .../linux-headers-2.6.26-2-common_2.6.26-15_i386.deb) ... Seleccionando el paquete linux-kbuild-2.6.26 previamente no seleccionado. Desempaquetando linux-kbuild-2.6.26 (de .../linux-kbuild-2.6.26_2.6.26-3_i386.deb) ... Seleccionando el paquete linux-headers-2.6.26-2-686 previamente no seleccionado. Desempaquetando linux-headers-2.6.26-2-686 (de .../linux-headers-2.6.26-2-686_2.6.26-15_i386.deb) ... Procesando disparadores para man-db ... Configurando gcc-4.1-base (4.1.2-25) ... Configurando cpp-4.1 (4.1.2-25) ... Configurando gcc-4.1 (4.1.2-25) ... Configurando linux-headers-2.6.26-2-common (2.6.26-15) ... Configurando linux-kbuild-2.6.26 (2.6.26-3) ... Configurando linux-headers-2.6.26-2-686 (2.6.26-15) ... Creando enlace simblico... apt-get install build-essential Leyendo lista de paquetes... Hecho Creando rbol de dependencias Leyendo la informacin de estado... Hecho build-essential ya est en su versin ms reciente. 0 actualizados, 0 se instalarn, 0 para eliminar y 0 no actualizados. Hecho!

3. Obtener los fuentes del mdulo de la pgina de Realtek en el siguiente enlace: http://www.realtek.com.tw/downloads/downloadsView.aspx? Langid=1&PNid=7&PFid=7&Level=5&Conn=4&DownTypeID=3&GetDown=f alse#2 4. Compilacin, instalacin y configuracin del mdulo.
pc-caliope:/home/caliope/Desktop# mv r8101-1.013.00.tar.bz2 /usr/src/ pc-caliope:/home/caliope/Desktop# cd /usr/src/ pc-caliope:/usr/src# tar -jxvf r8101-1.013.00.tar.bz2 r8101-1.013.00/ r8101-1.013.00/readme r8101-1.013.00/Makefile r8101-1.013.00/src/ r8101-1.013.00/src/r8101_n.c r8101-1.013.00/src/Makefile_linux24x r8101-1.013.00/src/rtl_eeprom.c r8101-1.013.00/src/Makefile r8101-1.013.00/src/rtl_eeprom.h

r8101-1.013.00/src/rtl_ethtool.h r8101-1.013.00/src/r8101.h pc-caliope:/usr/src# rm r8101-1.013.00.tar.bz2 pc-caliope:/usr/src# cd r8101-1.013.00/ pc-caliope:/usr/src/r8101-1.013.00# lsmod | grep r8169 r8169 23684 0 pc-caliope:/usr/src/r8101-1.013.00# rmmod r8169 pc-caliope:/usr/src/r8101-1.013.00# make clean modules make -C src/ clean make[1]: se ingresa al directorio `/usr/src/r8101-1.013.00/src' rm -rf *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags .tmp_versions Module.symvers Modules.symvers Module.markers *.order make[1]: se sale del directorio `/usr/src/r8101-1.013.00/src' make -C src/ modules make[1]: se ingresa al directorio `/usr/src/r8101-1.013.00/src' make -C /lib/modules/2.6.26-2-686/build SUBDIRS=/usr/src/r8101-1.013.00/src modules make[2]: se ingresa al directorio `/usr/src/linux-headers-2.6.26-2-686' CC [M] /usr/src/r8101-1.013.00/src/r8101_n.o /usr/src/r8101-1.013.00/src/r8101_n.c:435: warning: rtl8101_phyio_read defined but not used /usr/src/r8101-1.013.00/src/r8101_n.c:483: warning: rtl8101_ephy_read defined but not used CC [M] /usr/src/r8101-1.013.00/src/rtl_eeprom.o LD [M] /usr/src/r8101-1.013.00/src/r8101.o Building modules, stage 2. MODPOST 1 modules CC /usr/src/r8101-1.013.00/src/r8101.mod.o LD [M] /usr/src/r8101-1.013.00/src/r8101.ko make[2]: se sale del directorio `/usr/src/linux-headers-2.6.26-2-686' strip --strip-debug r8101.ko make[1]: se sale del directorio `/usr/src/r8101-1.013.00/src' pc-caliope:/usr/src/r8101-1.013.00# make install make -C src/ install make[1]: se ingresa al directorio `/usr/src/r8101-1.013.00/src' install -m 744 -c r8101.ko /lib/modules/2.6.26-2-686/kernel/drivers/net/ make[1]: se sale del directorio `/usr/src/r8101-1.013.00/src' pc-caliope:/usr/src/r8101-1.013.00# depmod -a pc-caliope:/usr/src/r8101-1.013.00# modprobe r8101 pc-caliope:/usr/src/r8101-1.013.00# lsmod | grep r8101 r8101 27792 0 pc-caliope:/usr/src/r8101-1.013.00# ifconfig -a pc-caliope:/usr/src/r8101-1.013.00# ping 172.24.7.3 PING 172.24.7.3 (172.24.7.3) 56(84) bytes of data. 64 bytes from 172.24.7.3: icmp_seq=1 ttl=64 time=1.92 ms 64 bytes from 172.24.7.3: icmp_seq=2 ttl=64 time=0.280 ms 64 bytes from 172.24.7.3: icmp_seq=3 ttl=64 time=0.284 ms 64 bytes from 172.24.7.3: icmp_seq=4 ttl=64 time=0.257 ms 64 bytes from 172.24.7.3: icmp_seq=5 ttl=64 time=0.266 ms ^C --- 172.24.7.3 ping statistics --5 packets transmitted, 5 received, 0% packet loss, time 4004ms rtt min/avg/max/mdev = 0.257/0.601/1.922/0.660 ms

Con esto ya se tiene andando la tarjeta de red, pero cada vez que reinicie la mquina tendr que removerse el mdulo r8169 y cargar el r8101 manualmente, para evitarlo se realiza el procedimiento descrito en el prximo numeral. 5. Post configuracin.
pc-caliope:/home/caliope# echo "blacklist r8169">> /etc/modprobe.d/blacklist pc-caliope:/home/caliope# mv /lib/modules/2.6.26-2-686/kernel/drivers/net/r8169.ko /lib/modules/2.6.26-2-686/kernel/

drivers/net/r8169.ko.bak pc-caliope:/home/caliope# depmod pc-caliope:/home/caliope# insmod /lib/modules/2.6.26-2-686/kernel/drivers/net/r8101.ko pc-caliope:/home/caliope# mv /boot/initrd.img-2.6.26-2-686 /boot/initrd.img-2.6.26-2-686.ba pc-caliope:/home/caliope# mkinitramfs -o /boot/initrd.img-2.6.26-2-686 2.6.26-2-686

ANEXO B SOLUCIN PROBLEMA WIRELESS PROBLEMA El dispositivo wireless no fue detectado, como se puede observar en la salida del comando iwconfig:
pc-caliope:~# iwconfig lo no wireless extensions. eth0 no wireless extensions.

SOLUCION En lneas generales se plantean tres soluciones a este problema: 1. Utilizar bc43xx-fwcutter que es un paquete que soporta los dispositivos wireless con chip Broadcom bcm43xx, se instala sencillamente como cualquier paquete .deb con las herramientas correspondientes para la gestin de paquetes. Esta fue la primera opcin que aplique debido a su sencillez, pero no funcion. 2. Utilizar ndiswrapper, la cual descarte por experiencia propia pues en varias ocasiones no he logrado hacer funcioner la red wireless con esta herramienta. 3. Buscar el controlador de la tarjeta, teniendo en cuenta que con Ubuntu el mismo equipo me ha funcionado correctamente, para su instalacin y configuracin se siguieron los siguientes pasos:
pc-caliope:/home/caliope# wget http://www.broadcom.com/docs/linux_sta/hybrid-portsrc-x86_32-v5.10.91.9.3.tar.gz pc-caliope:/home/caliope# cd ~caliope/Desktop/Descargas/hybrid-portsrc-x86_32-v5.10.91.9.3 pc-caliope:/home/caliope# make -C /lib/modules/2.6.26-2-686/build M=`pwd` pc-caliope:/home/caliope# cp wl.ko /lib/modules/2.6.26-2-686/kernel/drivers/net/wireless pc-caliope:/home/caliope# depmod -a pc-caliope:/home/caliope# modprobe wl

Para comprobar su funcionamiento:


pc-caliope:/home/caliope# iwconfig

lo eth0 eth1

no wireless extensions. no wireless extensions. IEEE 802.11bg ESSID:"" Nickname:"" Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated Bit Rate:54 Mb/s Tx-Power:32 dBm Retry min limit:7 RTS thr:off Fragment thr:off Power Managementmode:All packets received Link Quality=5/5 Signal level=0 dBm Noise level=-86 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 iwlist eth1 scanning

pc-caliope:/home/caliope#

ANEXO C DIAGNSTICO INICIAL CON NESSUS Nessus Scan Report ------------------

SUMMARY - Number of hosts which were alive during the test : 1 - Number of security holes found : 2 - Number of security warnings found : 4 - Number of security notes found : 14

TESTED HOSTS 172.24.31.249 (Security holes found)

DETAILS + 172.24.31.249 : . List of open ports : o ssh (22/tcp) (Security notes found) o sunrpc (111/tcp) (Security notes found) o http (80/tcp) (Security warnings found) o unknown (53432/tcp) (Security notes found) o sunrpc (111/udp) (Security notes found) o unknown (45028/udp) (Security hole found) o domain (53/udp) (Security warnings found) o general/udp (Security notes found) o general/icmp (Security warnings found) o general/tcp (Security hole found) . Information found on port ssh (22/tcp) An ssh server is running on this port

. Information found on port ssh (22/tcp) Remote SSH version : SSH-2.0-OpenSSH_5.1p1 Debian-5 . Information found on port ssh (22/tcp) The remote SSH daemon supports the following versions of the SSH protocol : . 1.99 . 2.0 SSHv2 host key fingerprint : 31:1c:9e:8c:87:bd:fa:7a:57:20:75:37:93:1c:ae:9e . Information found on port sunrpc (111/tcp)

The RPC portmapper is running on this port. An attacker may use it to enumerate your list of RPC services. We recommend you filter traffic going to this port. Risk factor : Low CVE : CAN-1999-0632, CVE-1999-0189 BID : 205 . Information found on port sunrpc (111/tcp) RPC program #100000 version 2 'portmapper' (portmap sunrpc rpcbind) is running on this port . Warning found on port http (80/tcp)

Your webserver supports the TRACE and/or TRACK methods. TRACE and

TRACK are HTTP methods which are used to debug web server connections. It has been shown that servers supporting this method are subject to cross-site-scripting attacks, dubbed XST for "Cross-Site-Tracing", when used in conjunction with various weaknesses in browsers. An attacker may use this flaw to trick your legitimate web users to give him their credentials. Solution: Disable these methods. If you are using Apache, add the following lines for each virtual host in your configuration file : RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F] If you are using Microsoft IIS, use the URLScan tool to deny HTTP TRACE requests or to permit only the methods needed to meet site requirements and policy. If you are using Sun ONE Web Server releases 6.0 SP2 and later, add the following to the default object section in obj.conf: <Client method="TRACE"> AuthTrans fn="set-variable" remove-headers="transfer-encoding" set-headers="content-length: -1" error="501" </Client> If you are using Sun ONE Web Server releases 6.0 SP2 or below, compile the NSAPI plugin located at: http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F50603 See http://www.whitehatsec.com/press_releases/WH-PR-20030120.pdf http://archives.neohapsis.com/archives/vulnwatch/2003-q1/0035.html http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F50603 http://www.kb.cert.org/vuls/id/867593

Risk factor : Medium . Information found on port http (80/tcp) A web server is running on this port . Information found on port http (80/tcp) The remote web server type is : Apache/2.2.9 (Debian) Solution : You can set the directive 'ServerTokens Prod' to limit the information emanating from the server in its response headers. . Information found on port unknown (53432/tcp) RPC program #100024 version 1 'status' is running on this port . Information found on port sunrpc (111/udp) RPC program #100000 version 2 'portmapper' (portmap sunrpc rpcbind) is running on this port . Vulnerability found on port unknown (45028/udp) :

The remote statd service may be vulnerable to a format string attack. This means that an attacker may execute arbitrary code thanks to a bug in this daemon. Only older versions of statd under Linux are affected by this problem. *** Nessus reports this vulnerability using only information that was gathered. *** Use caution when testing without safe checks enabled.

Solution : upgrade to the latest version of rpc.statd Risk factor : High CVE : CVE-2000-0666, CAN-2000-0800 BID : 1480 . Warning found on port unknown (45028/udp)

The statd RPC service is running. This service has a long history of security holes, so you should really know what you are doing if you decide to let it run. *** No security hole regarding this program have been tested, so *** this might be a false positive. Solution : We suggest that you disable this service. Risk factor : High CVE : CVE-1999-0018, CVE-1999-0019, CVE-1999-0493 BID : 127, 450, 6831 . Information found on port unknown (45028/udp) RPC program #100024 version 1 'status' is running on this port . Warning found on port domain (53/udp)

The remote name server allows recursive queries to be performed by the host running nessusd. If this is your internal nameserver, then forget this warning. If you are probing a remote nameserver, then it allows anyone to use it to resolve third parties names (such as www.nessus.org). This allows hackers to do cache poisoning attacks against this nameserver. If the host allows these recursive queries via UDP, then the host can be used to 'bounce' Denial of Service attacks against another network or system.

See also : http://www.cert.org/advisories/CA-1997-22.html Solution : Restrict recursive queries to the hosts that should use this nameserver (such as those of the LAN connected to it). If you are using bind 8, you can do this by using the instruction 'allow-recursion' in the 'options' section of your named.conf If you are using bind 9, you can define a grouping of internal addresses using the 'acl' command Then, within the options block, you can explicitly state: 'allow-recursion { hosts_defined_in_acl }' For more info on Bind 9 administration (to include recursion), see: http://www.nominum.com/content/documents/bind9arm.pdf If you are using another name server, consult its documentation. Risk factor : High CVE : CVE-1999-0024 BID : 136, 678 . Information found on port domain (53/udp) BIND 'NAMED' is an open-source DNS server from ISC.org. Many proprietary DNS servers are based on BIND source code. The BIND based NAMED servers (or DNS servers) allow remote users to query for version and type information. The query of the CHAOS TXT record 'version.bind', will typically prompt the server to send the information back to the querying source. The remote bind version is : 9.5.1-P3 Solution : Using the 'version' directive in the 'options' section will block the 'version.bind' query, but it will not log such attempts. . Information found on port domain (53/udp)

A DNS server is running on this port. If you do not use it, disable it. Risk factor : Low . Information found on port general/udp For your information, here is the traceroute to 172.24.31.249 : 172.24.31.7 172.24.31.249 . Warning found on port general/icmp

The remote host answers to an ICMP timestamp request. This allows an attacker to know the date which is set on your machine. This may help him to defeat all your time based authentication protocols. Solution : filter out the ICMP timestamp requests (13), and the outgoing ICMP timestamp replies (14). Risk factor : Low CVE : CAN-1999-0524 . Vulnerability found on port general/tcp :

You are running a version of Nessus which is not configured to receive a full plugin feed. As a result, the security audit of the remote host produced incomplete results. To obtain a complete plugin feed, you need to register your Nessus scanner at http://www.nessus.org/register/ then run nessus-update-plugins to get the full list of Nessus plugins. . Information found on port general/tcp

Information about this scan : Nessus version : 2.2.10 Plugin feed version : 200704181215 Type of plugin feed : GPL only Scanner IP : 172.24.31.7 Port scanner(s) : nessus_tcp_scanner Port range : 1-15000 Thorough tests : no Experimental tests : no Paranoia level : 1 Report Verbosity : 1 Safe checks : yes Max hosts : 20 Max checks : 4 Scan duration : unknown (ping_host.nasl not launched?)

-----------------------------------------------------This file was generated by the Nessus Security Scanner

ANEXO D DIAGNSTICO FINAL CON NESSUS Nessus Scan Report ------------------

SUMMARY - Number of hosts which were alive during the test : 1 - Number of security holes found : 1 - Number of security warnings found : 0 - Number of security notes found : 7

TESTED HOSTS 172.24.31.249 (Security holes found)

DETAILS + 172.24.31.249 : . List of open ports : o ssh (22/tcp) (Security notes found) o http (80/tcp) (Security notes found) o general/udp (Security notes found) o general/tcp (Security hole found) . Information found on port ssh (22/tcp) An ssh server is running on this port . Information found on port ssh (22/tcp) Remote SSH version : SSH-2.0-OpenSSH_5.1p1 Debian-5 . Information found on port ssh (22/tcp)

The remote SSH daemon supports the following versions of the SSH protocol : . 1.99 . 2.0 SSHv2 host key fingerprint : 31:1c:9e:8c:87:bd:fa:7a:57:20:75:37:93:1c:ae:9e . Information found on port http (80/tcp) A web server is running on this port . Information found on port http (80/tcp) The remote web server type is : Apache/2.2.9 (Debian) Solution : You can set the directive 'ServerTokens Prod' to limit the information emanating from the server in its response headers. . Information found on port general/udp For your information, here is the traceroute to 172.24.31.249 : 172.24.31.7 172.24.31.249 . Vulnerability found on port general/tcp :

You are running a version of Nessus which is not configured to receive a full plugin feed. As a result, the security audit of the remote host produced incomplete results.

To obtain a complete plugin feed, you need to register your Nessus scanner at http://www.nessus.org/register/ then run nessus-update-plugins to get the full list of Nessus plugins. . Information found on port general/tcp Information about this scan : Nessus version : 2.2.10 Plugin feed version : 200704181215 Type of plugin feed : GPL only Scanner IP : 172.24.31.7 Port scanner(s) : nessus_tcp_scanner Port range : 1-15000 Thorough tests : no Experimental tests : no Paranoia level : 1 Report Verbosity : 1 Safe checks : yes Max hosts : 20 Max checks : 4 Scan duration : unknown (ping_host.nasl not launched?)

-----------------------------------------------------This file was generated by the Nessus Security Scanner