Quiero restringir todo el tráfico de mi máquina Ubuntu para que entre o salga de la red local ( eth0
) o desde o hacia mi VPN ( tun0
). Debería ser posible conectar el enrutador en la red local, pero no es posible salir de la red local sin usar la VPN.
Como no tengo experiencia con iptables y no pude encontrar algunos procedimientos, probé ufw pero no tuve éxito.
¡Gracias por algunos consejos o fragmentos de código sobre cómo acercarse!
Respuesta1
Querrá operar en la cadena INPUT de la tabla de filtro con una acción predeterminada de DROP y luego establecer reglas ACEPTAR para los paquetes entrantes (-i) en cada interfaz. Para mejorar la seguridad, también puede imponer la subred del host de origen, pero las reglas siguientes serán suficientes.
iptables -t filter -p INPUT DROP
iptables -t filter -A INPUT -i eth0 -j ACCEPT
iptables -t filter -A INPUT -i tun0 -j ACCEPT
iptables -t filter -A INPUT -i lo -j ACCEPT
Si también desea aplicar lo mismo para el tráfico que sale del host, haga lo siguiente:
iptables -t filter -p OUTPUT DROP
iptables -t filter -A OUTPUT -o eth0 -j ACCEPT
iptables -t filter -A OUTPUT -o tun0 -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
Sin embargo, si haces esto, es posible que no tengas las otras interfaces. Además, lo
está ahí porque es la interfaz loopback; sin esas reglas, el loopback ya no funcionaría.
Tenga en cuenta que si su host es un enrutador, estas reglas no se aplicarán al tráfico que enruta (solo al tráfico que genera él mismo o que está destinado a él en lugar de a través de él).