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”
![iptables](https://culturalibre.ar/wp-content/uploads/2023/09/imagen-4.png)
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