En esta oportunidad vamos hablar de una utilidad llamada “Portsentry” la cual nos permite tener un monitoreo de los puertos de nuestro servidor y mediante reglas aplicar una accion a ciertos paquetes generados hacia ellos.
1. Instalacion:
# apt-get install portsentry
Luego seguimos el wizard:
Una vez que terminamos con el wizard, seguimos de la siguiente manera:
2. Configuracion:
# vi /etc/portsentry/portsentry.conf
Ya dentro del archivo vamos a configurar los siguiente parametros:
TCP_PORTS: Aqui es donde seteamos los puertos bajo el protocolo TCP que van hacer monitoreados
UDP_PORTS: Idem. del punto anterior pero en este caso se basa en el protocolo UDP
En nuestro caso como es un ejemplo practico, vamos a dejar los puertos por defaults.
Ahora pasemos a los parametros advanzados, estos son nombrados asi porque en esta ocacion la aplicacion no abre ningun puerto para su monitoreo como lo hizo en los parametros anteriores, sino que ahora le pide al Kernel que le notifique todos los pedidos hacia los puertos menores seteados en los parametros:
ADVANCED_PORTS_TCP=”1024″
ADVANCED_PORTS_UDP=”1024″
Como paso siguiente vamos a definir los puertos que no queremos que sean notificados por el Kernel.
ADVANCED_EXCLUDE_TCP=”113,139″
ADVANCED_EXCLUDE_UDP=”520,138,137,67″
Archivos adicionales de configuracion:
En este archivo seteamos todos los HOST que tenemos de confianza , para que nuestro sistema no tome como un ataque su request.
IGNORE_FILE=”/etc/portsentry/portsentry.ignore”
El archivo que configuramos debajo, contiene las direcciones IP que los HOST que solicitaron conectividad hacia los puertos monitoreados.
HISTORY_FILE=”/var/lib/portsentry/portsentry.history”
Este archivo contiene las direcciones IPs que nos estan solictando un request en el momento a los puertos, serian las IPs que estan atacando en tiempo real.
BLOCKED_FILE=”/var/lib/portsentry/portsentry.blocked”
Parametros sobre las acciones que se van a empleadar a la hora de llegar un request sobre el/los puertos.
BLOCK_UDP=”0″
BLOCK_TCP=”0″
En este caso tenemos seteado los 2 parametros en “0″, con esto lo que estamos haciendo es registrar los intentos. Debajo dejamos los diferentes seteos:
0: Solo registramos los intentos
1: Bloquemos la direccion IP de origen la cual esta enviando peticiones hacia nuestro server
2: Corremos un comando externo, el cual vamos a setear en el parametro KILL_CMD_RUN
Parametro de resolucion de DNS:
Aqui es donde seteamos si queremos que la aplicacion haga una resolucion de DNS sobre los HOST.
RESOLVE_HOST = “0″
Seteos sobre esta variable:
0: No resolvemos sobre los Host.
1: Hay una resolucion de DNS sobre los Hosts.
En nuestro caso vamos a pasar la parte de configuracion de las variables de KILL_ROUTER
La siguiente variable/parametro lo usamos para escribir en el archivo /etc/host.deny el cual tiene como funcion dropear toda conectividad desde la direccion IP guardada en el hacia nuestro servidor.
KILL_HOSTS_DENY=”ALL: $TARGET$ : DENY”
El parametro que hablaremos en la proxima linea tiene como funcion ejecutar el script seteado , como bien explicamos en las variables:
BLOCK_UDP=”0″
BLOCK_TCP=”0″
KILL_RUN_CMD=”/some/path/here/script $TARGET$ $PORT$ $MODE$”
En la siguiente variable, tenemos que tener cierta precaucion porque podemos hacer que nuestro sistema anule conexiones las cuales no son ataques hacia nosotros.
SCAN_TRIGGER=”0″
Un valor recomendado como bien vemos dentro del archivo de configuracion es un “2″.
Como ultima variable tenemos el seteo del banner que vamos a mostrar.
PORT_BANNER=”ACCESO DENEGADO”
3. Iniciacion de la apliacion:
portsentry -tcp: El sistema hace una verificacion sobre los puertos TCP que fueron seteados
portsentry -udp: Idem. del punto anterior pero ahora verifica los puertos UDP.
portsentry -stcp o -sudp: El sistema inicia en modo stealth, verificando los paquetes ( TCP o UDP segun nuestra eleccion a la hora del inicio) entrantes, si alguno de ellos es un pedido sobre los puertos monitoreados , el sistema dropea esta conexion.
portsentry -atcp: Iniciamos el sistema en modo Advanzado con lo cual usaremos como referencia la variable ADVANCED_PORTS_TCP.
portsentry -audp: Idem. del punto anterior pero vamos a usar ADVANCED_PORTS_UDP como referencia.
Listo con esto tenemos nuestro sistema configurado muy basico :p pero, luego depende de cada uno.