Configuração para hostapd, iptables e squid

1


Estou tentando configurar um ponto de acesso semelhante ao dos aeroportos e tal. Então, basicamente, as pessoas podem se conectar à rede, entrar em uma tela inicial e depois autenticar com o servidor proxy.

Até agora eu consegui configurar o squid e o iptables para redirecionar os pacotes 80/443 com a configuração do meu teste, mas obviamente as pessoas hoje em dia também querem que o whatsapp e outras coisas funcionem, mas eu realmente não consigo trabalhar .

Já experimentei um monte de coisas, minha configuração atual lê o seguinte (como um teste para o whatsapp):

squid3.conf

[...]
acl Safe_ports port 4244
acl Safe_ports port 5242
acl Safe_ports port 5228
acl Safe_ports port 5223
acl Safe_ports port 5222
[...]

iptables

-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 4244 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 5242 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 5228 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 5223 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 5222 -j REDIRECT --to-ports 3128


Esta é a configuração que tentei fazer o whatsapp se comunicar, mas obviamente não. Agora, antes de instalar o squid, usei o hostapd apenas para rotear os pacotes assim

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE

que permitiu acesso total à internet, o que eu gostei. Então, eu tenho 2 perguntas agora.

  1. É possível configurar o iptables de uma forma que apenas usuários autenticados por squid obtenham acesso total à internet, como descrito acima? Se assim for, isso resolveria todos os meus problemas imediatamente.
  2. Se não, como seria uma configuração básica para o whatsapp?

Provavelmente vale a pena mencionar: eu tentei "drony" para o Android, bem como a whatsapp da cadeia proxy de sua miséria, mas eu não tive sorte com isso também.
Qualquer ajuda é apreciada. Obrigado!



edit: Eu ainda não descobri uma maneira de fazê-lo corretamente. Tomei uma outra abordagem que parecia meio viável na minha cabeça, que seria tentar modificar todos os pacotes de uma forma como esta:

iptables -t nat -A PREROUTING -i eth0 ! -s 192.168.2.1 -p tcp -j DNAT --to 192.168.2.1:3128
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0 -d 192.168.2.1 -j SNAT --to 192.168.2.1:3128

Basicamente, se eu tiver tudo certo, isso deve transferir todos os pacotes para o proxy do squid (entrada e saída) ... pelo menos eu espero?

Eu também tenho algumas outras linhas que parecem poder resolver o problema, mas até agora não tive nenhum sucesso. A linha seria

iptables -A FORWARD -s 192.168.2.0 -d 192.168.2.1 -i eth0 -o eth0 -p tcp --dport 3128 -j ACCEPT

bem como mudanças de eth / wlan como das

iptables -A FORWARD -s 192.168.2.0 -d 192.168.2.1 -i eth0 -o wlan0 -p tcp --dport 3128 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0 -d 192.168.2.1 -i wlan0 -o eth0 -p tcp --dport 3128 -j ACCEPT

Eu acho que isso não é realmente um projeto para pessoas com habilidades moderadas, ou eu estou apenas fazendo algo ridiculamente errado. Curiosamente, as novas linhas (parecem) substituem perfeitamente estas linhas

-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3128

então presumo que não esteja muito longe, mas agora estou totalmente preso.

    
por Bryde 08.07.2016 / 08:16

0 respostas