Cómo evitar un ataque de escaneo de puertos con PortScanDetector

9
2868

A diario estamos a merced de individuos o máquinas que quieren acceder a nuestra información, ordenadores o simplemente quieren conocer nuestros pasos por internet, es por esto que debemos tener siempre en cuenta los riesgos tecnológicos a los que estamos expuestos. Una de la más popular vulnerabilidad que afrontamos en la actualidad es el ataque de escaneo de puertos, por lo que es conveniente aprender a protegernos del mismo y esto se puede hacerse fácilmente gracias a un script llamado PortScanDetector.

¿Qué es el ataque de escaneo de puertos?

El ataque de escaneo de puertos (portscan) es el proceso en el que se analiza automáticamente los puertos de una máquina conectada a la red con la finalidad de verificar cuáles puertos están abiertos, cerrados o cuenta con algún protocolo de seguridad, el resultado de este análisis permitirá que los intrusos puedan saber información como la composición de nuestra arquitectura, el sistema operativo de nuestros ordenadores y los posibles agujeros de seguridad que luego serán explotados por los atacantes.


Es importante destacar que los administradores de redes también utilizan el escaneo de puertos con la finalidad de crear mapas de vulnerabilidades que luego deben ser corregidas, entre las muchas herramientas para el escaneo de puertos destacan arp-scanNmap y Angry IP Scanner.

En el pasado se escribieron par de artículos muy interesante que nos permiten protegernos del ataque de escaneo de puertos, dichos artículos son Pasos para asegurar nuestro VPS y Consejos de seguridad para tu Linux (Servidor) en los que se dan consejos prácticos para asegurar nuestros servidores. En está ocasión queremos enseñar a realizar estos procesos de una manera más automática.

¿Qué es PortScanDetector?

Es un script de código abierto, desarrollado en python por Jacob Rickerd que permite detectar el escaneo de puertos en Linux, esto es posible gracias a que el script agrega reglas a nuestro iptables o firewalld que van registrando los paquetes TCP que se transmiten y los bloquean automáticamente en aquellos casos donde se han consultados más de 10 puertos, de esta sencilla manera nos aseguramos que nadie intente hacer un rastreo de todos nuestros puertos.

¿Cómo usar PortScanDetector?

PortScanDetector necesita python 2.7 para poder funcionar, luego simplemente debemos clonar el repositorio oficial de la herramienta y ejecutar el script python, automáticamente este estará analizando la red constantemente y bloqueando todos los posibles ataques. Los comandos para realizar los pasos mencionados anteriormente son los siguientes:

git clone https://github.com/Rickerd0613/PortScanDetector.git
cd PortScanDetector/
sudo python scanDetector.py

 

9 COMENTARIOS

  1. PortScanDetector   master  sudo python scanDetector.py
    Traceback (most recent call last):
    File “scanDetector.py”, line 48, in
    firewalld()
    File “scanDetector.py”, line 20, in firewalld
    [“firewall-cmd”, “–list-all-zones”]):
    File “/usr/lib/python2.7/subprocess.py”, line 566, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
    File “/usr/lib/python2.7/subprocess.py”, line 710, in __init__
    errread, errwrite)
    File “/usr/lib/python2.7/subprocess.py”, line 1335, in _execute_child
    raise child_exception
    OSError: [Errno 2] No such file or directory

    Alguna Idea?

  2. Buenas tardes, al clonar y ejecutar me dio estos errores:
    python scanDetector.py
    Traceback (most recent call last):
    File “scanDetector.py”, line 48, in
    firewalld()
    File “scanDetector.py”, line 20, in firewalld
    [“firewall-cmd”, “–list-all-zones”]):
    File “/usr/lib/python2.7/subprocess.py”, line 566, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
    File “/usr/lib/python2.7/subprocess.py”, line 710, in __init__
    errread, errwrite)
    File “/usr/lib/python2.7/subprocess.py”, line 1335, in _execute_child
    raise child_exception
    OSError: [Errno 2] No such file or directory

  3. hola, mi error en este caso es:
    File “scanDetector.py”, line 12
    print “Rule not there”
    ^
    SyntaxError: Missing parentheses in call to ‘print’. Did you mean print(int “Rule not there”)?

  4. Una pregunta Lagarto, una ves ejecutado el script, los cambios al firewall(en mi caso firewalld) kedan permanentemente configurados? Sabes de alguna manera de alguna manera de revertirlo en caso ke asi sea?

Dejar una respuesta