[SOLUCIONADO] Firewall con Iptables

Iniciado por Toshayx, Agosto 24, 2017, 03:57:16 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 24, 2017, 03:57:16 PM Ultima modificación: Septiembre 26, 2017, 10:18:50 PM por Gabriela
Buenas Undercodeanos.

Tras horas buscando en la red he llegado a un punto en el que me he atascado.

Tengo un Raspbian con dos interfaces, wlan0 y eth0, que quiero usar como firewall entre mi equipo y mi router.

La interface a la que se conecta mi equipo es wlan0 y a la que se conecta el router es eth0, la idea es que el firewall solo permita el trafico http y dns, algo sencillo para empezar con mi firewall.

El problema es que no consigo que funcione ninguna web, el ssh funciona correctamente, este es mi script.

El forwarding de linux esta habilitado.

Código: text
#!/bin/bash

# Limpia las tablas de iptables
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t filter -F
iptables -t filter -X

# Deniega todo el tráfico por defecto
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# Permite el tráfico loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# SSH PARA MI RASP
iptables -A INPUT -p tcp --sport 513:65535 --dport 4321 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 4321 --dport 513:65535 -m state --state ESTABLISHED -j ACCEPT


# HTTP Y DNS

iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -p tcp -m multiport --dport 80,443 -j ACCEPT
iptables -A FORWARD -i wlan0 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -i wlan0 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i eth0 -p udp --dport 53 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


A ver si alguin puede echarme un cable, estoy seguro que estoy pasando algo por alto, un cordial saludo.

Añado la solución al post ya que unos días después mirando el código de nuevo, me di cuenta de las cosas que me faltaban para que la configuración fuera optima.

En primer lugar solo estaba dándole masquerade al trafico saliente por lo tanto debía añadirlo para el entrante también, ya que mi ordenador esta en una red distinta a mi LAN.

Código: text
iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE


Después me faltaba añadir una regla para el trafico DNS TCP que llegaba a mi dispositivo ya que solo tenia para el DNS TCP saliente, el código quedaría así:

Código: text
iptables -A FORWARD -i enp0s3 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -i enp0s3 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i enp0s8 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i enp0s8 -p tcp --dport 53 -j ACCEPT


Recuerdo un consejo de un gran informático que conocí:

"cuando lleves mucho tiempo atascado en algo, levántate, toma un café y cuando estés despejado vuelve a mirar el código"

Aquel día me pase casi una hora probando sin éxito la configuración, es cierto que solvente muchos mas fallos, pero no fui capaz de dar con estos, pero tras volver días después, apenas tarde 1 minuto en darme cuenta del error...

Espero haber sido de ayuda para alguien :)