Tengo la intención de construir un firewall iptables mínimo dentro del servidor ubuntu 14.04. Sólo para asegurarme de que estoy construyendo mi firewall correctamente y ejecutándolo correctamente, lo estoy ejecutando a través de la comunidad para su verificación. No entiendo muy bien la forma -o interface
y -i interface
el funcionamiento. Cada vez que miro diferentes reglas de firewall, se configuran de manera diferente, lo que complica la forma en que se configuran mis wan
reglas lan
. La forma en que lo entiendo es así:ordenador personal>-i interface
LAN -o interface
>-i interface
PÁLIDO -o interface
>INTERNET. Esto también es válido para NAT
las mesas. prerouting
>RED postrouting
y forward
bypassesRED.
Este es un conjunto de reglas generales para que el firewall funcione si estoy en lo correcto, dónde wan
está eth0
y lan
está eth1
:
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Este es mi conjunto de reglas donde wan
está eth0
y lan
está eth1
:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate DNAT,ESTABLISHED,RELATED -j ACCEPT
iptables -P FORWARD -j DROP
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 67 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -P INPUT -j DROP
iptables -P OUTPUT -j ACCEPT
iptables -t nat -P INPUT ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -p tcp -i eth1 --dport 22 -j ACCEPT
También respecto a la ejecución permanente del firewall. ¿Después de editar este conjunto de reglas sudo nano -w /etc/rc.local
lo uso sudo chmod 755 /etc/rc.local
y sudo reboot
este conjunto de reglas será permanente cada vez que se inicie el dispositivo?
Respuesta1
Antes de seguir adelante. Mire las "tablas de filtro neto" ( nftables
). Reemplaza a iptables, iptables6, arptables, ...
nftables es: más fácil de usar, más potente y más nuevo. En sistemas recientes, iptables es una interfaz (heredada) para nftables.
Un ejemplo de un conjunto de reglas de nftables: bloquear el acceso directo a la red del usuario other
y obligarlo a usar un proxy. Todavía tiene dos contadores que se usaron en las pruebas (se podrían quitar). Además accept
, skuid "proxy-server" es innecesario. Como esta es la política actual.
#!/usr/sbin/nft -f
table ip my_table {}
flush table my_table
table ip my_table {
chain output {
type filter hook output priority 0; policy accept;
skuid "other" jump restrict_chain;
skuid "proxy-server" accept;
}
chain restrict_chain {
counter;
oifname != "lo" reject;
tcp dport != "1080" reject;
counter;
accept;
}
}