Hace un mes más o menos os hable de NMap, un escaner de puertos con el cual podíamos comprobar aquellos puertos que teníamos abiertos en nuestras máquinas. Si alguno lo probó, comprobaría que aunque tuviera casi todo cerrado, como debería ser, algunos puertos estaban abiertos, además, si tenía algún servicio corriendo para su uso personal, estos también estarían abiertos. Con NMap sabíamos hasta aquí.
Hoy os traigo una herramienta para conocer más cosas del exterior, es decir, de los que se intentan conectar a nosotros o escanear nuestro ordenador o servidor en busca de una posible entrada. La herramienta se llama “IPPL“, y es una herramienta que crea logs que luego podemos consultar de los intentos de conexión a nuestro ordenador. ¿Por qué puede esto ser interesante? Si tenemos servicios abiertos, por ejemplo, sabremos quien esta intentando conectar con ellos, si nos han realizado un escaneo de puertos y registraremos cualquier intento de conexión. Evidentemente, no hay ni punto de comparación entre las conexiones a un ordenador de escritorio y un servidor, pero para practicar un poco nos servirá uno de escritorio.
Lo primero es hacernos con el programa. Como siempre, yo me remito a Ubuntu, donde el “ippl” forma parte de los repositorios. Así que con una simple instrucción podemos instalarlo:
sudo aptitude install ippl
Tras esto, “ippl” estará instalado en nuestro sistema y solo tendremos que configurarlo a nuestro gusto.
El “ippl” tres opciones básicas:
-h: Muestra la ayuda.
-n: Ejecuta como no demonio.
-c: Para indicar el fichero de configuración.
“Ippl” ya trae una configuración por defecto. El fichero de configuración se encuentra en “/etc/ippl.conf“. Personalmente, prefiero hacerme diferentes ficheros de configuración en vez de modificar el por defecto, de este modo con el parámetro “-c” de “ippl” puedo realizar logs a la medida, aunque evidentemente también se puede realizar uno muy grande en el que estén todas las conexiones y filtrarlos con otras herramientas como “grep” o “tail” o, una tercera opción, establecer filtrados en el fichero de configuración del “ippl“, eso a gusto de cada uno. Para pasarle nuestro propio fichero de configuración a “ippl” al ejecutarlo utilizaríamos la siguiente instrucción:
sudo ippl -c fichero.conf
Ahora vamos a ver un poco el fichero de configuración. Como ya he comentado viene uno por defecto en el que esta escrito casi todo lo necesario, pero en muchos casos comentado. Así que para realizar modificaciones, en muchos de los casos, bastará con descomentar o comentar aquellas lineas que nos sean útiles. Yo me voy a centrar en los puntos más importantes para no aburrir y aquel que este más interesado puede jugar un poco con el fichero de configuración.
La primera sección de la que voy a hablar es la de “Protocols logged“. Aquí señalaremos los protocolos de los que queramos que quede registro. Se nos quedará una linea de la siguiente manera:
run icmp tcp
Creo que es obvio que de este modo quedaría registro de conexiones con paquetes tipo “icmp” y “tcp“, pero no “udp” por ejemplo. Existen cuatro valores posibles para los protocolos, “tcp“, “icmp“, “udp” y “all“. Los tres primeros se corresponden con el nombre y el últimos los engloba a todos.
La siguiente sección que vamos a ver es la de “Log in a file“. Si vamos a utilizar “ippl” en un ordenador con mucho volumen de tráfico es mucho mejor que el log se cree en un fichero y no saliendo por la consola simplemente, sobretodo de cara a analizarlo posteriormente. Para esto bastará con tener descomentada la linea siguiente para indicarle el destino:
log-in all /directorio/fichero.log
Una gran ventaja, es que se pueden clasificar los logs en distintos ficheros, es decir, si estamos capturando varios tipos de protocolos, podemos hacer que cada uno se almacene en un fichero. Por poner un ejemplo con “tcp” y “udp” esto quedaría algo así:
log-in udp /directorio/udp.log
log-in tcp /directorio/tcp.log
Obviamente esto es una gran ventaja a la hora de clasificar y analizar el tráfico. Otra sección que nos ayudará a esto es la de “Logging format“. En esta sección especificaremos el tipo de detalle que tendrá el log. Existen tres tipos:
short: Fecha, hora, protocolo, IP entrante.
normal: Fecha, hora, protocolo, puerto, IP entrante. Esta es la forma por defecto.
detailed: Lo mismo que normal, pero muestra origen y destino de las conexiones y sus puertos.
El modo de poner esto en el fichero de configuración sería:
logformat detailed all
Existen varias opciones más para retocar y especificar más el tipo de tráfico del que queremos dejar constancia, pero no tiene mucho sentido entrar aquí más en detalle. Así que os remito al fichero de configuración por defecto para verlas. Y por supuesto, si tenéis alguna duda podéis preguntar en los comentarios.
Otro detalle más sobre “ippl” es que lo podemos usar como una aplicación normal y corriente o como demonio. La forma más cómoda, obviamente, es como demonio, pero para la pequeña prueba que os voy mostrar a continuación yo lo voy a utilizar como aplicación por practicidad a la hora de pegar los resultados aquí, ya que en este modo saca los resultados por pantalla.
Bueno, empecemos con un pequeña prueba. En ella voy a seguir los siguientes pasos, realizar una conexión al puerto 80, realizar una conexión ftp, realizar un conexión telnet y realizar un escaneado de puertos con NMap.
Las instrucciones que he ejecutado son las siguientes:
sudo ippl -n
links 127.0.0.1
ftp 127.0.0.1
telnet 127.0.0.1
nmap 127.0.0.1
Y el resultado obtenido, excluyendo la gran mayoría del “nmap” por extensión es el siguiente:
Jan 22 13:34:47 IP Protocols Logger: started.
Jan 22 13:35:15 www connection attempt from 127.0.0.1
Jan 22 13:35:29 ftp connection attempt from 127.0.0.1
Jan 22 13:36:00 telnet connection attempt from unknown@localhost [127.0.0.1]
Jan 22 13:36:00 auth connection attempt from 127.0.0.1
Jan 22 13:36:00 last message repeated 1 time(s)
Jan 22 13:36:20 www connection attempt from 127.0.0.1
Jan 22 13:36:20 ssh connection attempt from 127.0.0.1
Jan 22 13:36:20 domain connection attempt from 127.0.0.1
Jan 22 13:36:20 www connection attempt from 127.0.0.1
Jan 22 13:36:20 port 3389 connection attempt from 127.0.0.1
Jan 22 13:36:20 ldaps connection attempt from 127.0.0.1
…
Como se puede ver son fácilmente reconocibles todas las actividades que he realizado.
La única pega que le he encontrado, que por otra parte es normal, es que el escaneo de “nmap” en modo silencioso no deja ningún registro, pero era de esperar.
Bueno, ya sabéis si tenéis alguna duda preguntad .Espero que os sirva aunque solo sea para entreteneros un rato. Nos vemos.