Bom , o problema eh o seguinte: o meu redir nao funciona de jeito nenhum quando vem da rede interna, ou seja, eh muito bizarro:
10.94.1.5 - firewall (+proxy)
192.168.1.7 - servidor web
fw:~# tcpdump -i eth1 -n dst host 10.94.1.5 and dst port 80
tcpdump: listening on eth1
11:05:42.241464 192.168.1.236.4941 > 10.94.1.5.80: S 92569632:92569632(0) win 64240 <mss 1460,nop,nop,sackOK> (DF)
11:05:45.227224 192.168.1.236.4941 > 10.94.1.5.80: S 92569632:92569632(0) win 64240 <mss 1460,nop,nop,sackOK> (DF)
11:05:51.161680 192.168.1.236.4941 > 10.94.1.5.80: S 92569632:92569632(0) win 64240 <mss 1460,nop,nop,sackOK> (DF)
3 packets received by filter
0 packets dropped by kernel
ou seja o pilantra nao me devolve nada... mas entretanto qdo eu vou pela internet.
11:09:38.938007 200.217.88.20.61107 > 10.94.1.5.80: S 1600006107:1600006107(0) win 5840 <mss 1452,sackOK,timestamp 163698185 0,nop,wscale 0> (DF)
11:09:39.159912 200.217.88.20.61107 > 10.94.1.5.80: . ack 784569905 win 5840 <nop,nop,timestamp 163698214 0> (DF)
11:09:39.216678 200.217.88.20.61107 > 10.94.1.5.80: P 0:582(582) ack 1 win 5840 <nop,nop,timestamp 163698214 0> (DF)
11:09:39.432384 200.217.88.20.61107 > 10.94.1.5.80: . ack 1 win 5840 <nop,nop,timestamp 163698243 0,nop,nop,sack sack 1 {218:219} > (DF)
11:09:39.446260 200.217.88.20.61107 > 10.94.1.5.80: . ack 212 win 6432 <nop,nop,timestamp 163698243 1608818,nop,nop,sack sack 1 {218:219} > (DF)
11:09:39.449906 200.217.88.20.61107 > 10.94.1.5.80: . ack 219 win 6432 <nop,nop,timestamp 163698243 1608818> (DF)
11:09:39.463896 200.217.88.20.61107 > 10.94.1.5.80: F 582:582(0) ack 219 win 6432 <nop,nop,timestamp 163698244 1608818> (DF)
eu tenho comunicacao.
minha linha de iptables eh a seguinte:
$IPTABLES -A FORWARD -d 192.168.1.7 -p tcp --dport 80 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -d 10.94.1.5 -j DNAT --to 192.168.1.7
meu firewall eh stateful e default policy de dropar.
agora quando eu uso meu proxy eu gero o mesmo problema do redir de antes (se eu resolver o de cima, eu resolvo esse)
# tcpdump -i lo -n
11:11:57.434172 10.94.1.5.3858 > 10.94.1.5.80: S 2986185642:2986185642(0) win 32767 <mss 16396,sackOK,timestamp 320694592 0,nop,wscale 0> (DF)
11:11:57.434206 10.94.1.5.80 > 10.94.1.5.3858: R 0:0(0) ack 2986185643 win 0 (DF)
11:11:57.434963 10.94.1.5.3859 > 10.94.1.5.80: S 2985825885:2985825885(0) win 32767 <mss 16396,sackOK,timestamp 320694592 0,nop,wscale 0> (DF)
11:11:57.434987 10.94.1.5.80 > 10.94.1.5.3859: R 0:0(0) ack 2985825886 win 0 (DF)
11:11:57.435514 10.94.1.5.3860 > 10.94.1.5.80: S 2987901856:2987901856(0) win 32767 <mss 16396,sackOK,timestamp 320694592 0,nop,wscale 0> (DF)
11:11:57.435562 10.94.1.5.80 > 10.94.1.5.3860: R 0:0(0) ack 2987901857 win 0 (DF)
ele tentando se comunicar com ele mesmo (jah que o dns em questao do meu www resolve para ele) o proxy resolve e tenta falar com ele, logo eu tenho um problema pois ele nao me faz o redir.
# telnet 10.94.1.5 80
Trying 10.94.1.5...
telnet: Unable to connect to remote host: Connection refused
Cruel, se alguem tiver alguma luz me de um toque porque eu ainda nao consegui resolver esse pepino, esse me aconteceu depois que eu tive que colocar a seguinte diretiva no meu proxy:
httpd_accel_uses_host_header on
pois se eu nao por ela eu nao consiguo acessar o sites internos da rede que eu presciso (outra rede nao a minha, mas nao a internet)