Como su nombre indica, la herramienta de detección de ataques de exploración de puertos (PSAD) se utiliza para bloquear la exploración de puertos en el servidor. Nmap, una herramienta muy conocida, se usa principalmente para iniciar el escaneo de puertos para detectar puertos abiertos/cerrados. La herramienta PSAD monitorea continuamente los registros del firewall (iptables en el caso de la plataforma Linux) para determinar el escaneo de puertos o cualquier otro ataque que haya ocurrido. En caso de un ataque exitoso al servidor, PSAD también toma medidas para disuadir la amenaza.
En este artículo, instalaremos y configuraremos PSAD en Ubuntu 15.04 VM. Actualmente, estamos ejecutando los siguientes servicios en VM.
- Servidor web (puerto 80)
- Servidor FTP (puerto 21)
- servidor ssh (puerto 22)
Los comandos netstat y telnet se utilizan para verificar el estado de los puertos con los servicios mencionados anteriormente.
Servicio web (Apache)
Servicio ftp (vsftpd)
Servicio Ssh (shell seguro)
Instalación
Los detalles de la configuración de VM se dan en la figura 1 y la dirección IP es 192.168.1.111.
El paquete IPtables (conocido como linux firewall) está preinstalado en todas las plataformas Linux. Por lo tanto, instale el paquete PSAD en la VM. Se puede instalar desde código fuente o paquete binario. En este artículo, instalaremos el paquete PSAD desde el repositorio de Ubuntu. En primer lugar, ejecute el comando de actualización del paquete y luego instale el paquete PSAD con el siguiente comando.
$sudo apt-get update
$sudo apt-get install psad
El paquete PSAD requería muchas dependencias que se resuelven automáticamente en caso de instalación desde el repositorio de Ubuntu. Sin embargo, la instalación de PSAD desde el código fuente requería varios paquetes perl.
Durante la instalación del paquete, PSAD solicita la configuración del servidor de correo que se muestra a continuación. En este artículo, no hemos configurado ningún servidor SMTP para alertas de correo electrónico.
Configuración
PSAD utiliza registros de firewall (iptables) para detectar cualquier actividad maliciosa en la máquina. Los siguientes comandos habilitarán el registro de paquetes en las cadenas de entrada y reenvío de iptables.
$sudo iptables -A INPUT -j LOG
$sudo iptables -A FORWARD -j LOG
Después de habilitar los registros para ambas cadenas, ejecute el siguiente comando para mostrar la configuración actual de iptables.
$sudo iptables -L
La salida del comando anterior será similar a la que se muestra a continuación.
Chain INPUT (policy ACCEPT)
target prot opt source destination
LOG all -- anywhere anywhere LOG level warning
Chain FORWARD (policy ACCEPT)
target prot opt source destination
LOG all -- anywhere anywhere LOG level warning
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
El archivo de configuración de PSAD, las reglas de snort y las firmas se encuentran en /etc/psad directorio en la plataforma Ubuntu. El archivo de configuración de PSAD es /etc/psad/psad.conf y tiene muchos parámetros para cambiar mientras se implementa en el servidor de producción. Sin embargo, en este artículo, cambiaremos algunas configuraciones de PSAD para que detecte los registros de iptables y tome las medidas necesarias para impedir el ataque.
EMAIL_ADDRESSES root@localhost; ##change it to get psad alerts
HOSTNAME test-machine; #set host name
HOME_NET 192.168.1.0/24; # Set LAN network
EXTERNAL_NET any; # Set Wan network
ENABLE_SYSLOG_FILE Y; #by default set yes
Una de las configuraciones importantes de PSAD es la configuración IPT_SYSLOG_FILE
parámetro. Por defecto, busca registros en /var/log/messages. Sin embargo, syslog en Ubuntu es /var/log/syslog por lo tanto, cambie la ruta para que PSAD detecte actividad maliciosa.
IPT_SYSLOG_FILE /var/log/syslog;
Estamos usando PSAD como IDS/IPS, por lo que debemos habilitar ENABLE_AUTO_IDS parámetro en psad.conf expediente. Cambiará automáticamente las reglas de iptables para bloquear el escaneo del atacante.
ENABLE_AUTO_IDS Y; # disable by default
AUTO_IDS_DANGER_LEVEL 1; #By default level is 5
La configuración básica de PSAD está completa, ahora actualice las firmas para que pueda reconocer correctamente los tipos de ataques conocidos.
sudo psad --sig-update
Antes de iniciar PSAD en la máquina, escanee el servidor con la herramienta Nmap. La salida del escáner muestra que los siguientes puertos están abiertos en la máquina.
Ahora inicie la herramienta PSAD usando el siguiente comando y también verifique el estado que se muestra en la siguiente figura.
# /etc/init.d/psad start
#psad -S
Después de habilitar PSAD, el escáner Nmap no detectó ningún puerto abierto, que también se muestra en la siguiente figura.
PSAD bloquea al atacante (la dirección IP es 192.168.1.102) agregando una regla de eliminación en las tablas de ip.
La regla de iptables contra la dirección 192.168.1.102 se muestra en la siguiente figura.
La salida detallada de PSAD se muestra en las siguientes figuras.
El escaneo de puertos por parte del atacante se muestra en la salida de PSAD.
La IP del atacante se muestra en el siguiente resultado de PSAD.
Conclusión
En este artículo, exploramos una conocida herramienta de código abierto, PSAD, para bloquear el escaneo de puertos en los servidores. PSAD es un IDS/IPS completo que agrega automáticamente la dirección IP del atacante en las reglas del firewall. El atacante usa el escáner de puertos para obtener información preliminar sobre el servidor para lanzar más ataques, por lo que es muy importante bloquear el escaneo de puertos automáticamente.