Tengo un enrutador debian que está conectado directamente a internet. Tiene 3 interfaces: eth0 (internet / wan), eth1 (lan), tun0 (vpn).
Todo el tráfico debe enrutarse a través de tun0 vpn. Es una instalación mínima de Debian con isc-dhcp-server instalado para las direcciones ip eth1 (lan).
Las reglas de la tabla ip están en enlace
#!/bin/sh -e
#default policy to drop all incoming packets
iptables -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
ip6tables -F
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT DROP
iptables -A INPUT -i eth0 -p tcp --dport 48000 -j ACCEPT
iptables -A INPUT -i tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -m conntrack \
--ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i tun0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o tun0 -j MASQUERADE
#accept incoming packets from localhost and the LAN interface
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
#accept incoming packets from the WAN if the router intiated the connection
iptables -A INPUT -i eth0 -m conntrack \
--ctstate ESTABLISHED,RELATED -j ACCEPT
#forward LAN packets to the WAN
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
#forward WAN packets to the LAN if the LAN initiated the connection
iptables -A FORWARD -i eth0 -o eth1 -m conntrack \
--ctstate ESTABLISHED,RELATED -j ACCEPT
#NAT traffic going out to the WAN interface
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
exit 0
LAN debe poder enviar a WAN / internet. Las conexiones entrantes SÓLO deben ser si LAN o el enrutador lo iniciaron. También podría transferir 40000 a la LAN.
¿Estas reglas son lo suficientemente seguras? ¿Se puede simplificar más?