Com base nos seus comentários abaixo da sua pergunta, o que você deseja é substituir INPUT
por FORWARD
:
iptables -A FORWARD -i wlan0 -j DROP
INPUT
filtra os pacotes destinados à máquina, mas ainda permitirá que os pacotes destinados sejam encaminhados. Portanto, se você quiser um portal cativo, precisará usar FORWARD
para capturar pacotes que, de outra forma, seriam roteados.
Dica: Para portais cativos, eu recomendo ChilliCoova , pois é MUITO escalável. Embora funcione muito bem em pequenas escalas, tenho me envolvido com a implementação disso em uma escala extremamente grande em uma rede de abrangência nacional.
Editar # 1:
Você pode usar -I
em vez de -A
para garantir que a regra DROP
preceda qualquer outra regra que permita sua aprovação. Por favor poste a saída de iptables -L FORWARD -v
se isto ainda acontecer.
Editar # 2:
Estou inclinado a cuncluir que o seu Pi não está agindo como um roteador, visto que a regra não captura nenhum pacote (como indicado pelo número mais à esquerda). Então a questão óbvia é: onde estão esses pacotes? Por favor, poste a saída de iptables -L -v
. O mesmo que o anterior, mas agora queremos todas as tabelas, não apenas FORWARD
.
Observação: vejo que você usa como padrão ACCEPT
. Um método comum para garantir que nada seja explorado é tornar o padrão DROP
, explicitamente apenas ACCEPT
de coisas que devem ser permitidas.
Editar # 3:
Os pacotes parecem recitar na cadeia OUTPUT
. Tente mudar a regra para isso: iptables -A FORWARD -o wlan0 -j DROP
(wlan0 é a interface de saída e não a interface de entrada?)