IPTABLES: Encaminhar solicitações http de saída para eth1

1

Eu estou tentando rotear todas as solicitações HTTP de saída DEIXANDO meu servidor para passar por um proxy (tinyproxy) em outro servidor. Eu quero que a transmissão para o proxy use nossa LAN, que está na eth1. Não importa o que eu tente, os pedidos estão saindo em eth0.

Eu criei esta regra:

 iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT -o eth1 --to-destination 123.123.123.123:8888

No entanto, isso não funciona. A solicitação está saindo na eth0. Eu sei que estou perdendo algo grande aqui, mas estou sem ideias. Qualquer ajuda seria apreciada.

Configuração:

    eth0      Link encap:Ethernet  HWaddr 04:01:33:0E:
      inet addr:111.111.111.111  Bcast:111.111.111.255     Mask:255.255.255.0
      inet6 addr: fe80::601:33ff:121:4f01/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:1068434 errors:0 dropped:0 overruns:0 frame:0
      TX packets:499051 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:1087084291 (1.0 GiB)  TX bytes:104089629 (99.2 MiB)

eth1      Link encap:Ethernet  HWaddr 04:01:33:0E:
      inet addr:10.11.10.10  Bcast:10.11.255.255  Mask:255.255.0.0
      inet6 addr: fe80::601:33ff:121:4f02/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:8243 errors:0 dropped:0 overruns:0 frame:0
      TX packets:4746 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:10948267 (10.4 MiB)  TX bytes:633381 (618.5 KiB)

 route -n; cat /etc/network/interfaces
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
162.243.xx.xx   0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.128.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         162.243..xx.xx   0.0.0.0         UG    0      0        0 eth0
cat: /etc/network/interfaces: No such file or directory


iptables -t nat -vnL
Chain PREROUTING (policy ACCEPT 5983 packets, 352K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 15734 packets, 1020K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 4693 packets, 331K bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            162.243..xx.xx
 3550  239K ACCEPT     all  --  *      *       0.0.0.0/0            127.0.0.1
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            10.128.95.89
 7491  449K DNAT       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 to:10.128.3.132:8888
    
por Jafo 21.01.2016 / 23:21

2 respostas

0

Aqui está o seu problema: De acordo com sua configuração, ambas as NICs estão usando o Metric: 1 Se você quiser usar ETH1 como NIC principal, altere a Métrica para 0 .

Sua configuração:

enlace de enlace eth0: Ethernet HWaddr 04: 01: 33: 0E:       ATUALIZAÇÃO ACIMA DE MULTICAST MTU: 1500 Métrica: 1

enlace de enlace eth1: Ethernet HWaddr 04: 01: 33: 0E:       ATUALIZAÇÃO ACIMA DE MULTICAST MTU: 1500 Métrica: 1

    
por 25.01.2016 / 17:14
0

Sua tabela de roteamento está em jogo aqui.

Seu proxy está localizado em um endereço IP roteável pela Internet. Sua interface eth0 está configurada com um endereço IP roteável à Internet, provavelmente com uma rota padrão apontada para o seu gateway WAN (Comcast, AT & T, etc.). Sua interface eth1 está configurada com um endereço IP não-roteável pela Internet. O que está acontecendo é que sua tabela de roteamento está vendo a rota para o seu endereço de destino (o servidor proxy) através da interface eth0 , assim o pacote viaja nessa rota.

Estou disposto a apostar que sua regra do iptables não está vendo nenhum resultado, e isso explica por quê. O que você está tentando realizar aqui na sua configuração atual requer a interface eth0 .

Espero que isso ajude

    
por 22.01.2016 / 07:21