Configure o ufw para redirecionar o tráfego http para outro IP

4

Estou tentando redirecionar todo o tráfego HTTP / HTTPS de um servidor para outro (via IP).

Eu uso o ufw firewall. Como posso configurá-lo para isso?

    
por Olivier 26.07.2012 / 20:08

2 respostas

9

(Você precisará de privilégios de administrador para isso, então faça o login como root ou use o sudo de acordo)

Uma solução fácil é usar iptables para isso:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -m conntrack --ctstate NEW -j DNAT --to foo_serverip:80
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -m conntrack --ctstate NEW -j DNAT --to foo_serverip:443
iptables -t nat -A PREROUTING -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

redirecionará todo o tráfego na interface eth0 (opção: -i) recebida nas portas 80 e 443 (opção: --dport 80, 443) para um endereço IP foo_serverip na porta 80 ou 443.

Depois de testado, você pode salvar suas regras atuais do iptables com

iptables-save > /etc/iptables.rules

e restaure-os com

iptables-restore < /etc/iptables.rules

Sabendo disso, as opções para restaurar as regras no momento da inicialização são múltiplas. O mais simples que posso pensar é editar seu /etc/rc.local e acrescentar a linha /sbin/iptables-restore < /etc/iptables.rules a ele.

Eu não acho que ufw possa fazer nada disso sozinho.

    
por 26.07.2012 / 20:24
1

É possível configurar o ufw para fazer o encaminhamento de porta para o IP externo

  1. edite /etc/default/ufw para aceitar solicitações de encaminhamento

    default_forward_policy = "accept"

  2. edite o /etc/ufw/sysctl.conf para permitir o encaminhamento

    net.ipv4.ip_forward=1

  3. edite /etc/ufw/before.rules , adicione o seguinte após o primeiro comentário

    *nat
    :PREROUTING ACCEPT [0:0]
    -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination external_ip:80
    COMMIT  
    
por 25.06.2014 / 01:33