Estou executando o arco Linux em um Raspberry Pi para criar um roteador personalizado. A configuração:
eth0
: WAN / Internet opção 1 via DHCP
wlan0
: LAN via WPA2 / CCMP ( hostapd
) oferecendo DHCP ( dnsmasq
, 192.168.0.0/24)
wlan1
: WAN / Internet opção 2 via DHCP (não considerado ainda)
Observação: dnsmasq
consulta servidores DNS públicos (por exemplo, Google, 8.8.8.8) configurados no parâmetro server
e também é configurado como um adblocker (parâmetro addn-hosts
, FQDNs de anúncio apontando para 0.0.0.0).
Esta é minha configuração básica para IPv4 (conforme mostrado a seguir) e IPv6:
iptables -F
iptables -P INPUT DROP
e iptables -P FORWARD DROP
e iptables -P OUTPUT ACCEPT
e iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 4444 -m state --state NEW -j DROP
Nota: 4444 é a porta default do medidor, portanto, novas conexões de saída nesta porta não são permitidas. / p>
Para NAT WAN e LAN, adiciono as seguintes regras iptables
(daqui apenas IPv4): iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
e iptables -A INPUT -p tcp -m multiport --dports 22,53 -i wlan0 -j ACCEPT
< br> iptables -A INPUT -p udp -m multiport --dports 53,67 -i wlan0 -j ACCEPT
Nota: As conexões de entrada para SSH (finalidade de administração) e DNS estão dentro da LAN permitida.
Como camada adicional de proteção e privacidade, o Pi estabelece um OpenVPN através de tun0
(DHCP, 10.10.0.0/24):
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Desde que o túnel OpenVPN esteja presente, tudo funciona bem. Mas ainda não estou feliz com a configuração:
eth0
caso o tun0
não esteja presente sem tocar novamente nas regras iptables
? dnsmasq
para usar o servidor DNS oferecido na configuração DHCP do servidor OpenVPN e, caso o provedor de VPN específico não ofereça uma entrada de servidor DNS, um servidor DNS público, como o Google, é apenas o failover opção? Eu também gostaria de ter uma segunda conexão OpenVPN à nossa rede corporativa ( tun1
, DHCP, 10.10.1.0/24, * .mycorp.intern). Usando uma regra PREROUTING como:
iptables -t nat -A PREROUTING -i wlan0 --destination 10.10.1.0/24 --to-destination 10.10.1.1
Mas minha abordagem não funcionará, porque em tun1
o Pi receberá um IP (por exemplo, 10.10.1.100) de 10.10.1.0/24 com 10.10.1.1 como gateway e 10.10.1.2 como DNS para * mycorp.intern. Por outro lado, tun0
obterá um IP (por exemplo, 10.10.0.50) de 10.10.0.0/24 com 10.10.0.1 como gateway e talvez um servidor DNS. Contanto que os intervalos de endereços IP sejam estáticos, eu posso configurar tudo de alguma forma com tabelas IP, mas o OpenVPN envia as rotas, gateways, etc. para o meu iptables
setup.
Loking para a frente para o apoio.
Kind regads.