Em primeiro lugar, essa é uma pergunta muito parecida com o encaminhamento de iptables entre duas interfaces .
Dito isso, você deseja que seu host se torne um gateway, mas mais específico, apenas para os protocolos HTTP
e HTTPS
(80/443). Para conseguir isso, você deve:
- Poder encaminhar o tráfego entre essas duas interfaces
- Encaminhar pacotes com porta de destino 80 (HTTP)
- Encaminhar pacotes com porta de destino 443 (HTTPS)
- Como
iptables
(netfilter
) é umstateless packet filtering system
, aceita pacotes que estão voltando - NAT de origem (altere o endereço IP de origem) para o IP do seu host
Traduzido para o iptables:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED \
-j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Desde que os outros hosts da sua rede usem seu host para acessar a Internet (o que significa que sua caixa do Linux se comporta como um gateway).