20 dic. 2010

Seguridad en Ubuntu (VI) - Herramientas de análisis del sistema

Un aspecto importante en la seguridad y que mucha gente ignora son los análisis más o menos periódicos del sistema. Estos análisis nos ayudarán a detectar posibles intrusiones, evaluar la seguridad del sistema y preveer cuales son los principales riesgos.

Existen numerosas herramientas para estas tareas, algunas de ellas muy sencillas, otras muy complejas. En este artículo os voy a presentar algunas de las que me han parecido más útiles y sencillas de usar.

  • ¿Qué puertos/servicios tengo abiertos? nmap
La mayoría de intrusiones remotas se producen por fallós en los servicios que damos al exterior. Estos servicios abren puertos a través de los cuales es teóricamente posible obtener acceso al sistema.

El comando nmap nos servirá (entre otras cosas) para listar estos servicios:
sudo apt-get install nmap
nmap localhost

Esto instalará nmap y listará los puertos/servicios que ofrece nuestro sistema, en mi caso por ejemplo este es el resultado:
Starting Nmap 5.21 ( http://nmap.org ) at 2010-12-09 14:14 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00060s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
rDNS record for 127.0.0.1: localhost.localdomain
Not shown: 997 closed ports
PORT STATE SERVICE
21/tcp open ftp
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp

Estos resultados corresponden a la compartición de archivos mediante Samba (puertos 139 y 445), al servicio de impresora de red (puerto 631) y al servidor de archivos ftp que he instalado (puerto 21).

Si veis puertos o servicios listados que no necesitais podeis desactivarlos desinstalando el paquete correspondiente o modificando los scripts de arranque siguiendo este artículo Optimizar El Arranque (II) Bum

Nota: si no sabeis exactamente lo que hace un puerto/servicio podeis consultar la web http://www.speedguide.net/ports.php

Otro punto importante a escanear, es el router (principalmente para aquellos que teneis conexiones ADSL), este escaneado nos mostrará qué puertos/servicios son directamente accesibles desde el exterior.
nmap 192.168.1.1

Tan solo hay que darle nmap la dirección IP de nuestro router. En mi caso este fue el resultado:
Starting Nmap 5.21 ( http://nmap.org ) at 2010-12-09 16:30 CET
Nmap scan report for 192.168.1.1
Host is up (0.0035s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
21/tcp open ftp
23/tcp open telnet
80/tcp open http

Estos resultados corresponden a los métodos de acceso a la configuración del router (por telnet puerto 23 y web puerto 80) y a la redirección del puerto ftp (puerto 21) a mi servidor local de archivos.

Si veis puertos o servicios listados que no necesitais podeis desactivarlos o restringir el acceso desde el exterior configurando correctamente las opciones de vuestro router.

Nota: podeis comprobar qué puertos/servicios son visibles desde el exterior con el escaneador online de http://www.speedguide.net/portscan.php

  • ¿Me han colado algún troyano? rkhunter
Un troyano es un tipo de software malicioso que tiene generalmente como propósito el robo de información privada del sistema infectado. Se distinguen de los virus en que generalmente no provocan daños visibles.

GNU/Linux no es invulnerable a este tipo de software y la infección es relativamente fácil, para saber si hemos sido "infectados" por algún tipo de troyano tenemos la herramienta rkhunter, su instalación es sencilla
sudo apt-get install rkhunter

Una vez instalado lo ejecutaremos con la orden:
sudo rkhunter -c

Este comando ejecutará una serie de tests en busca de troyanos y dará como resultado final un informe como este:
System checks summary
=====================

File properties checks...
Files checked: 131
Suspect files: 0

Rootkit checks...
Rootkits checked : 242
Possible rootkits: 0

Applications checks...
All checks skipped

The system checks took: 1 minute and 46 seconds

All results have been written to the log file (/var/log/rkhunter.log)

One or more warnings have been found while checking the system.
Please check the log file (/var/log/rkhunter.log)

Si apareciese algún troyano el propio programa nos dará instrucciones sobre como eliminarlo y enlaces con más información del problema.


  • ¿Qué usuarios entran en el sistema? lastlog
Todos los accesos al sistema quedan registrados y podemos consultar este registro para ver si alguien está accediendo a nuestro ordenador tanto remota como localmente.

Para ver el registro de entradas ejecutaremos el comando lastlog:
lastlog | grep -v Nunca
Nombre Puerto De Último
dani tty1 sáb nov 27 14:56:04 +0100 2010

Aquí comprobaremos que no hay accesos no controlados, en caso de aparecer entradas sospechosas lo más recomendable es cambiar la contraseña del usuario comprometido y ejecutar rkhunter para asegurarnos de que no nos han dejado ningún regalo camuflado.

  • Más información
Escaneador de puertos on-line: http://www.speedguide.net/portscan.php
Ayuda para routers ADSL: http://www.adslayuda.com/



4 comentarios :

fosco_ dijo...

Ahora sí, se había publicado el artículo incompleto y por eso he tenido que borrarlo.

Esta vez está completo y listo para el consumo, disculpad las molestias.

Miguel angel dijo...

excelente tutorial,gracias porque aunque ha veces creas que no te seguimos,como es mi caso,la verdad es que si lo hacemos muchas veces leo tus artículos,aunque no deje ningún comentario,gracias de nuevo

Anónimo dijo...

Hola, gracias por tus artículos son muy buenos. Oye aun continua esto con la parte VII ?

Dani Molina dijo...

@Anónimo, pues la verdad es que últimamente tengo un tanto abandonado el blog, entre twitter, android y foros es dificil encontrar tiempo para escribir buenos artículos. Pero es verdad que estaría bien poder continuar esta serie de artículos relacionados con la seguridad.