Practicamos seguridad con IPTables
En otro momento estuvimos hablando de IPTABLES https://culturalibre.ar/2022/05/23/iptables-paso-a-paso/ y ahora queriamos hacer un poquito de practica para que tambien tengan algunos ejemplos claros… por eso la entrada se denomina “Practicamos seguridad con IPTables”
Si no leíste nada sobre iptables te aconsejo que leas: https://culturalibre.ar/2022/05/23/iptables-paso-a-paso/
Ahora siguiendo con todo lo que vimos vamos a comenzar con la practica:
Creamos un archivo donde pondremos las reglas:
nano misreglas.rules
en el interior pondremos:
iptables -Z ; iptables -F ; iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Estas reglas son predeterminadas y tienen como objetivo limpiar toda configuración que pueda existir y harán permanentes conexiones ya establecidas y relacionadas para evitar desconexiones.
En el mismo archivo continuamos poniendo reglas. La idea es “aca no entra ni sale nadie a menos que yo les diga”
Vamos a contra con un rango de red 192.168.0.0/24 que va desde 192.168.0.1 a 192.168.0.254 más el brodcast obviamente. asi que vamos a escribir estas reglas:
# Permite trafico desde la red 192.168.0.0/24 al puerto 22 (SSH) del servidor :
iptables -A INPUT -s 192.168.0.0/24 --dport 22 -j ACCEPT
#Permite trafico desde la red 192.168.0.0/24 al puerto 5432 (psql) del servidor si fuera otra base de datos pondríamos el puerto que se necesita:
iptables -A INPUT -s 192.168.0.0/24 --dport 5432 -j ACCEPT
#Permite trafico desde la red 192.168.0.0/24 al puerto 80 (HTTP) del servidor:
iptables -A INPUT -s 192.168.0.0/24 --dport 80 -j ACCEPT
#Permite trafico desde la red 192.168.0.0/24 al puerto 443 (HTTPS) del servidor:
iptables -A INPUT -s 192.168.0.0/24 --dport 22 -j ACCEPT
#Permite ping desde la red 192.168.0.0/24 al servidor:
iptables -A INPUT -p icmp --icmp-type echo-request -s 192.168.0.0/24 -j ACCEPT
#Bloquea todo el trafico desde la IP 192.168.0.150 al servidor (esto sirve para que vos bloques algo por ip):
iptables -A INPUT -s 192.168.0.150 -j DROP
Las salidas las manejamos asi (sigue al final en el mismo archivo:
#Permite todo el trafico del servidor hacia la IP 192.168.0.1 (router):
iptables -A OUTPUT -d 192.168.0.1 -j ACCEPT
#Bloquear todo el trafico desde el servidor hacia la IP 192.168.0.150:
iptables -A OUTPUT -d 192.168.0.200 -j DROP
#Bloquear el tráfico del puerto 22 (SSH) hacia la IP 192.168.0.2:
iptables -A OUTPUT -d 192.168.0.2 --dport 22 -j DROP
#Permite todo el tráfico restante:
iptables -A OUTPUT -d 0.0.0.0/0 -j ACCEPT
Vamos a guardarlo al archivo y hacer otro para borrar todo y desactivarlo por si hace falta (uno nunca sabe):
nano desactivoreglas.rules
iptables -Z ; iptables -F ; iptables -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
una vez guardado los dos archivos vamos a darle permisos de ejecución:
chmod +x desactivoreglas.rules
chmod +x misreglas.rules
Para ejecutar cada regla se realiza con sudo sh antes, entonces activamos:
sudo sh misreglas.rules
y desactivamos:
sudo sh desactivoreglas.rules
armate una maquinitica virtual y proba lo que te haga falta sacando ideas de aca y del link anterior donde hablamos de #iptables
Si te gusta la entrada podes ayudar compartiendo o colaborando!
Por m’as #culturalibre para todos!
Filed under: CulturaLibre,redes,scripting,SoftwareLibre - @ 29 septiembre, 2023 1:20 pm