iptables encaminhando todos, exceto o servidor local

iptables encaminhando todos, exceto o servidor local

Estas são as regras que estou usando:

iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables --table nat --append POSTROUTING --out-interface wlan5 -j MASQUERADE
iptables --append FORWARD --in-interface wlan3 -j ACCEPT

Tenho wlan5 com 192.168.1.100 e wlan3 com 10.0.0.1. Eu faço do meu laptop um repetidor wifi com 2 placas wifi.

Então as pessoas se conectam ao wlan3, o gateway é 10.0.0.1 e tudo redireciona para wlan5 [gw 192.168.1.1].

Agora, isso está funcionando muito bem,excetoNão consigo acessar um servidor HTTP local hospedado em meu laptop. Ele está hospedado no meu laptop e funciona como localhost ou 10.0.0.1:

$ curl -I 10.0.0.1
HTTP/1.1 301 Moved Permanently
Date: Tue, 26 Feb 2013 02:35:32 GMT
Server: Apache/2.2.22 (Ubuntu)
Location: http://10.0.0.1/index.php
Vary: Accept-Encoding
Content-Type: text/html; charset=iso-8859-1

Ok, então é aqui que surge o problema. Um cliente na minha rede de compartilhamento [wlan3] com IP 10.0.0.20 tenta acessar 10.0.0.1:80 e não consegue se conectar:

$ wget http://10.0.0.1                                       
Connecting to 10.0.0.1 (10.0.0.1:80)
wget: can't connect to remote host (10.0.0.1): Connection refused

Ele pode executar ping em 10.0.0.1 e até mesmo executar ping em IP externo. então ele tem conexão com a internet, que é o ponto, mas não consegue acessar o HTTP, acredito por causa das regras do iptables. logo após o erro, recebo isto no syslog do meu laptop:

Feb 25 21:36:19 toshi kernel: [57806.285170] Inbound IN=wlan3 OUT= MAC=9c:b7:0d:a5:45:67:a8:26:d9:3e:04:21:08:00 SRC=10.0.0.20 DST=10.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=28282 DF PROTO=TCP SPT=58343 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0 

Portanto, a questão é: como posso excluir o encaminhamento de solicitações IP para 10.0.0.1 e não encaminhar para wlan5?

Obrigado

Responder1

editar: mais uma vez, depois que pensei que o problema estava resolvido, ele simplesmente parou de funcionar novamente sem que eu emitisse mais comandos iptables. Não consigo entender por que ele continua funcionando e depois não funciona. >.<


Encontrei um comando iptables diferente que funciona para compartilhar minha internet de 1 dispositivo wifi [de longo alcance] para outro [interno]:

iptables -t nat -A POSTROUTING -o wlan5 -j MASQUERADE

em vez dos comandos iptables na pergunta. E isso faz com que eu ainda possa acessar a internet e ainda acessar http/ssh em 10.0.0.1 a partir de 10.0.0.20.

Responder2

Oiptables-save saídaque você postou mostra as seguintes cadeias personalizadas na tabela de filtros: INBOUND, OUTBOUND, LOG_FILTER, LSI e LSO. Firestarter cria 5 cadeias, todas nomeadas exatamente assim.

Tenho certeza de que seu problema é causado pelo Firestarter. Abra-o e verifique se está realmente desativado.

Referências:

informação relacionada