HOWTO IPPL
De Gentoo Linux Wiki
| Kernel & Hardware • Red y Servicios • Portage • Relacionado con el Sistema • Servidor X • Juegos • Misceláneos |
Tabla de contenidos |
[editar] Introduccion
Este programa nos permite loguear cualquier tipo de conexion entrante del exterior a nuestro ordenador. Con ello podremos tener un control mayor sobre nuestras conexiones. Ippl(IP protocols logger) en realidad no actua como un simple programa ya que es un demonio que funciona en segundo plano(background).
Ahi que tener en cuenta que siempre loguea el trafico entrante y nunca el saliente, por lo que cuando se hable de maquina de destino hablaremos de la maquina que tiene instalado el IPPL, asi como puerto entrante sera el puerto de dicha maquina. Cuando se hable de maquina o puerto que intenta conectarse se hablara de la maquina externa.
[editar] Instalacion
Este paquete se encuentra en la rama estable de x86 y en la rama inestable ~amd64 del portage:
# emerge net-analyzer/ippl
[editar] Configuracion
[editar] Fichero de configuracion ippl.conf
La configuracion de ippl.conf se centra en el archivo /etc/ippl.conf, en el cual pondremos nuestra configuracion, es decir, que queremos que nos logeen y de que manera deseamos que loguee. Acontinuacion explicaremos como debemos de configurar dicho fichero:
Primero deberemos de decirle que protocolos queremos loguear, si es mas de uno escribirlos dejando un espacio en blanco entre ellos:
run protocolo
run protocolo1 protocolo2
| Explicación: protocolo |
UDP: tipo UDP. TCP: tipo TCP. ICMP: tipo ICMP. |
Acontinuacion diremos que logear y en que ficheros almacenarlo, esto se hace con la opcion log-in:
log-in [protocolo/s] /diectorio/fichero.log *siendo protocolos: icmp, tcp, udp y all.
Ahora le diremos el tipo de formato con que nos guardara los logs:
logformar [formatos] [protocolos]
Estos formatos son principalmente el nivel de detalle que deseamos usar:
| Explicación: [formatos] |
short: muestra fecha, hora. tipo de protocolo, ip que lo solicito.
normal: muestra fecha, hora, puerto y ip que realiza la conexion. Es la forma predeterminada.
detailed: muestra la informacion como normal y añade el origen y destino de las direcciones y puertos de la conxion
|
El formato de los logs que usaremos siempre, es el detailed ya que es el mas informacion aporta. Su formato es el siguiente:
Mes Dia Hora puerto X conesion comenzada/o intendo de IP (IP:puerto -> IP2:puerto)
Existe la opcion de no logear(ignore) o logear(log) ciertos tipos de conexiones dentro de cada protocolo:
ignore/log {option [opcion],[opcion],...} [protocolos] [descripcion]
| Explicación: [opcion] |
resolve/noresolve: resuelve/no resuelve la direccion ip.
ident/noident: usa/no usa la identificacion del usuario(logging).
logclosing/nologclosing: logea/no logea el cierre de conexiones.
short/normal/detailed: igual significado que en logformat.
|
| Explicación: descripcion |
type <numero/nombre>: especificamos un tipo de paquete ICMP mediante su nombre o nuemero identificativo. ej: type 8.
port <numero/nombre>: especificamos el numero o nombre del puerto de destino, ya sea TCP o UDP ej: port 21 o port ftp
srcport <numero/nombre>: especificamos el numero del puerto de origen, ya sea TCP o UDP
|
Un ejemplo de un archivo de configuracion basico ippl.conf seria el siguiente:
| Archivo: /etc/ippl.conf |
run icmp tcp udp log-in tcp /var/log/tcp_ippl.log log-in icmp /var/log/icmp_ippl.log log-in udp /var/log/udp_ippl.log log-in all /var/log/all_ippl.log logformat detailed all ignore icmp type echo_replay log option ident,resolve tcp port ftp log option ident,resolve tcp port telnet |
[editar] Runlevel
Para agragar el demonio ippl a nuestra maquina:
# rc-update add ippl default
[editar] Ficheros de logs
Debemos de asegurarnos que tenemos nuestros ficheros creados y con permisos adecuados. Para el ejemplo anterior deberiamos de escribir lo siguiente:
# touch /var/log/tcp_ippl.log # touch /var/log/udp_ippl.log # touch /var/log/icmp_ippl.log # touch /var/log/all_ippl.log # chmod 600 /var/log/*_ippl.conf
[editar] Uso
[editar] Arranque/Rearranque/Parada del servicio
Para arrancar el demonio ippl deberemos de introducir lo siguiente:
# /etc/init.d/ippl start
Para parar el demonio ippl deberemos de introducir lo siguiente:
# /etc/init.d/ippl stop
Para restaurar y volver a cargar una nueva coniguracion del ippl.conf debremos de poner lo siguiente:
# /etc/init.d/ippl restart
[editar] Tratamiento de los ficheros logs
Una de las preguntas frecuentes es el uso real que se puede hacer de esta herramienta. Es decir, yo tengo logueado todas las conexiones pero realmene puedo obtener alguna utilidad de este logueo a gran escala?
Pues la utilidad es tan grande como nosotros de imaginativos, uno de los ejemplos mas claros puede ser, por ejemplo, desde que ip han intentando conectarse al ftp hasta quien me ha hecho un scaneo de puertos. Veamos un ejemplo:
Vamos a utilizar de un simple tail(nos muestra las ultimas filas de un fichero de forma de tail -nNºlineas fichero):
Podriamos ver quien se ha conectado al puerto 21, hemos seleecionado las ultimas 2000 lineas:
# tail -n 2000 /var/log/tcp_ippl.log | grep port 21
Imaginaros que en el resultado de mostrar las ultimas 500 lineas, obtenemos algo parecido a lo siguiente(nuestra maquina es la 80.33.20X.XXX):
# tail -n 500 /var/log/tcp_ippl.log | more
| Explicación: Conjunto de lineas de nuestro fichero tcp_ippl.log |
Sep 24 02:13:17 port 494 connection attempt from 217.127.170.XXX (217.127.170.XX:42617->80.33.20X.XXX:494) Sep 24 02:13:18 port 581 connection attempt from 217.127.170.XXX (217.127.170.XX:42621->80.33.20X.XXX:581) Sep 24 02:13:18 port 581 connection attempt from 217.127.170.XXX (217.127.170.XX:42599->80.33.20X.XXX:581) Sep 24 02:13:20 port 5631 connection attempt from 217.127.170.XXX (217.127.170.XX:42618->80.33.20X.XXX:5631) Sep 24 02:13:20 port 5714 connection attempt from 217.127.170.XXX (217.127.170.XX:42620->80.33.20X.XXX:5714) Sep 24 02:13:22 port 881 connection attempt from 217.127.170.XXX (217.127.170.XX:42622->80.33.20X.XXX:881) Sep 24 02:13:22 port 576 connection attempt from 217.127.170.XXX (217.127.170.XX:42631->80.33.20X.XXX:576) Sep 24 02:13:25 port 1447 connection attempt from 217.127.170.XXX (217.127.170.XX:42632->80.33.20X.XXX:1447) Sep 24 02:13:25 port 1502 connection attempt from 217.127.170.XXX (217.127.170.XX:42634->80.33.20X.XXX:1502) Sep 24 02:13:27 port 380 connection attempt from 217.127.170.XXX (217.127.170.XX:42640->80.33.20X.XXX:380) Sep 24 02:13:27 port 1422 connection attempt from 217.127.170.XXX (217.127.170.XX:42641->80.33.20X.XXX:1422) Sep 24 02:13:28 port 1723 connection attempt from 217.127.170.XXX (217.127.170.XX:42642->80.33.20X.XXX:1723) Sep 24 02:13:31 port 472 connection attempt from 217.127.170.XXX (217.127.170.XX:42643->80.33.200.XX:472) Sep 24 02:13:31 port 395 connection attempt from 217.127.170.XXX (217.127.170.XX:42644->80.33.200.XX:395) Sep 24 02:13:31 port 844 connection attempt from 217.127.170.XXX (217.127.170.XX:42645->80.33.200.XX:844) |
Alguien en menos de 15 segundos a intentado conectarse a distintos puertos, de los cuales tu no ofreces servicios, eso es lo que conocemos como un escaneo de puertos y la ip 217.127.170.XXX esta escanenado a tu ordenador(80.33.20X.XXX). Por lo que podremos prevenir un posible ataque denegando inmediatamente cualquier conexion con dicha ip.
Con el uso de script en bash, o con algun mini programilla en perl(o algun otro, a gusto del consumidor) podremos hacer que busque y analice las ultimas filas del fichero y que nos habise con algun mensage de que esta ocurriendo un escaneo de nuestro ordenador. Como podeis ver las posibilidades son casi ilimitadas.
[editar] Información adicional
Podéis encontrar mas información aquí:
