Skip to main content Link Search Menu Expand Document (external link)

Correción 1 - Peligros - Versión de Lynis e Iptables

Lo primero que vamos a hacer es usar la versión más reciente de Lynis, como lo instalamos usando el comando apt, vamos a desinstalarlo primero; antes haremos una copia del archivo /var/log/lynis-report.dat para mantenerlo para futura referencia:

mkdir auditoria1_datos && cd auditoria1_datos

sudo cp /var/log/lynis-report.dat ./

# Movemos el archivo de auditoria1.log a esta carpeta

mv ../auditoria1.log ./

Ya teniendo estos archivos en una carpeta aparte, procedemos a desinstalar con apt el programa:

sudo apt remove -y lynis --purge

Como vamos a instalar desde el repositorio de Github, vamos a descargar el paquete de la herramienta git

sudo apt install -y git

Ahora nos vamos a la carpeta /usr/local y clonamos el repositorio por HTTPS

sudo git clone https://github.com/CISOfy/lynis.git

Tras movernos a la carpeta del repositorio, vemos que está el ejecutable lynis, el cuál usaremos para ejecutar el programa de la siguiente manera:

./lynis [comandos]

Vamos a ver si tenemos una versión más reciente:

Cuando instalamos por apt la versión de Lynis era la 1.3.9 y ahora tenemos la 3.0.8, por lo que ya hemos hecho un gran cambio de los que nos resaltaban como “críticos”. Ahora es el momento de Iptables, nos mostraba varios números de reglas que pudieran ser innecesarias; veremos el número de estas junto a la regla de la siguiente manera:

sudo iptables -L --line-numbers

Como vemos hay un gran número de reglas afectadas, pero lo más indicativo es que la política por defecto es ACCEPT y eso puede ser peligroso de cara a la seguiridad este sistema en internet. Comenzaremos cambiando las políticas por defecto a que sean todas “DROP”, es decir, que rechazen todo tráfico que no esté autorizado y vamos a crear unas a medida de nuestras necesidades. Como vimos en un apartado anterior había muchos puertos abiertos, ya que Metasploitable3 tiene una gran lista de vulnerabilidades, así que al rechazar todo el tráfico no autorizado estamos mejorando en seguridad:

Antes de comenzar con las primeras reglas para ssh, en el ./ssh/authorized_keys de esta máquina copiamos nuestra clave pública

## Limpiar las reglas anteriores

sudo iptables -F
sudo iptables -Z

## Par de reglas ssh

sudo iptables -A INPUT -s 10.0.2.0/24 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

sudo iptables -A OUTPUT -d 10.0.2.0/24 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT 

## Política DROP en todas las cadenas, de alguna manera no me deja borrar 
## la cadena FORWARD, así que la añado.

sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP
sudo iptables -P FORWARD DROP

## Aceptamos consultas y respuestas DNS

sudo iptables -A INPUT -i eth0 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT

sudo iptables -A OUTPUT -o eth0 -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT

## Permitimos el tráfico HTTP/HTTPS

sudo iptables -A INPUT -i eth0 -p tcp -m multiport --sport 80,443 -m state --state ESTABLISHED -j ACCEPT

sudo iptables -A OUTPUT -o eth0 -p tcp -m multiport --dport 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT

## Permitimos el acceso a nuestro servidor web

sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

sudo iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

Hemos tomado una política más restrictiva de tráfico, sólo habrá acceso a internet, DNS, SSH y a nuestro servidor web. El resto de tráfico se rechazará, por ejemplo, la base de datos sólo será accesible desde local.