Resolvido: Captive Portal - bypass
-
Olá pessoal,
Recentemente li um artigo sobre como "burlar" o sistema de autenticação de usuário do CP e assim ter acesso à internet. Gostaria de saber como podemos implementar uma maior segurança nesse sistema de Portal.
Valeu :)
bypass captive portal:
http://www.torrent-invites.com/showthread.php?t=184902 -
Gostaria de saber como podemos implementar uma maior segurança nesse sistema de Portal.
So what do we need before we can get started?
a public server, reachable from anywhere with PORT 53 (DNS ) open to the internet - Must run UNIX / Your prefered LINUX distribution
a domain name or subdomain where have the right to create A & NS records , so practically you must be able to set a NS record for your own zone ( Check Wikipedia for explanation on different DNS record types ). I use FreeDNS.net atm.To check what resources are avalaible enter:
dns2tcpc -z my.home.com -k 123 ( Your NS Sever and the key you specified in the conf file )O que entendi do tutorial é que você precisar ter acesso a resolução de nomes/icmp sem estar autenticado. Se o seu captive portal não permite isso, então fique tranquilo.
Faça um lab, teste a ferramenta e veja como o pfsense se sai.
-
Olá Marcelo,
O meu CP está resolvendo nome/icmp. Fiz um teste que vi no youtube colocando a porta do proxy no navegador e funcionou perfeitamente os acessos, sem autenticar.
A regra da LAN está assim:
IPv4* Lan net * * * * *Uso o Squid 2.x + SquidGuard para fazer o controle do acesso à internet.
Tem alguma maneira de bloquear esta "resolução" e também impedir o acesso via proxy sem estar autenticado?
valeu..
-
O squid3-dev tem autenticação e patch para o captive portal.
-
Marcello,
Testei o squid3 e também o Squidv3-dev ambos habilitei o patch do CP e colocando o proxy no navegador passou direto pelo CP.
Tem outra configuração a ser feita?
Obrigado pela ajuda…
-
Você reaplicou as configurações do captive depois de habilitar o patch?
Veja via ipfw -xSeuCaptive show se o bloqueio da 3128 já está aplicado. -
Olá Marcelo,
Fiz alguns testes com o squid3, squid-dev 3 com o Squidguard.
Dois ambientes:
1° Com 1 WAN e 1 LAN
2° Com 2 WAN 2 LAN e 1 Sync (CARP)
No primeiro ambiente, nas configurações do squid testei a opção patch do Captive Portal, mas só funcionou quando selecionei a interface loopback.
Ao selecionar a Interface LAN e inserir no browser de internet da máquina cliente as configurações de proxy IP + porta 3128, consigo acesso direto à internet sem passar pela autenticação do Captive Portal.
Me lembro de ter lido um post seu que o squid3-dev ou squidguard "escuta na interface loopback".
No segundo ambiente, ao selecionar a interface loopback, consigo fazer a autenticação via CP, mas quando acesso qualquer site o squid bloqueia o site, diz que o caracter "_" é inválido. Vou tentar tirar um print e te enviar.
Ao aplicar a patch de CP, fiz o restart do CP, squid3 e Squidguard3.
Obrigado Marcello.
-
LAN 2
ipfw -x10.10.0.1 show
[2.1.3-RELEASE][root@fwjnd.XXX.local]/root(5): ipfw -x10.10.0.1 show 00078 113384 17058403 pipe 2024 ip from any to any MAC any 00:26:82:84:ba:5c 00079 189547 247541649 pipe 2025 ip from any to any MAC 00:26:82:84:ba:5c any 00080 8302 947172 pipe 2030 ip from any to any MAC any 40:b3:95:71:a1:e6 00081 9061 8012896 pipe 2031 ip from any to any MAC 40:b3:95:71:a1:e6 any 00082 0 0 pipe 2092 ip from any to any MAC any 54:ae:27:39:24:3e 00083 0 0 pipe 2093 ip from any to any MAC 54:ae:27:39:24:3e any 00084 34749 38595612 pipe 2098 ip from any to any MAC any 60:fa:cd:62:61:84 00085 21576 3788239 pipe 2099 ip from any to any MAC 60:fa:cd:62:61:84 any 00086 0 0 pipe 2106 ip from any to any MAC any 64:27:37:9f:94:ad 00087 0 0 pipe 2107 ip from any to any MAC 64:27:37:9f:94:ad any 00088 3331 373846 pipe 2120 ip from any to any MAC any 70:11:24:cd:61:52 00089 3418 1910700 pipe 2121 ip from any to any MAC 70:11:24:cd:61:52 any 00090 4784 725843 pipe 2136 ip from any to any MAC any 78:a3:e4:71:a1:6f 00091 4465 2448355 pipe 2137 ip from any to any MAC 78:a3:e4:71:a1:6f any 00092 0 0 pipe 2158 ip from any to any MAC any 84:8e:0c:3d:40:8d 00093 0 0 pipe 2159 ip from any to any MAC 84:8e:0c:3d:40:8d any 00094 0 0 pipe 2194 ip from any to any MAC any c4:85:08:0e:df:3f 00095 0 0 pipe 2195 ip from any to any MAC c4:85:08:0e:df:3f any 00096 15175 1919762 pipe 2202 ip from any to any MAC any e0:75:7d:9a:14:96 00097 15292 10933630 pipe 2203 ip from any to any MAC e0:75:7d:9a:14:96 any 65291 0 0 allow pfsync from any to any 65292 0 0 allow carp from any to any 65301 25364 966008 allow ip from any to any layer2 mac-type 0x0806,0x8035 65302 0 0 allow ip from any to any layer2 mac-type 0x888e,0x88c7 65303 0 0 allow ip from any to any layer2 mac-type 0x8863,0x8864 65307 482 22740 deny ip from any to any layer2 not mac-type 0x0800,0x86dd 65310 460358 48361818 allow ip from any to { 255.255.255.255 or 10.10.0.1 } in 65311 416015 228893808 allow ip from { 255.255.255.255 or 10.10.0.1 } to any out 65312 0 0 allow icmp from { 255.255.255.255 or 10.10.0.1 } to any out icmptypes 0 65313 0 0 allow icmp from any to { 255.255.255.255 or 10.10.0.1 } in icmptypes 8 65314 0 0 pipe tablearg ip from table(3) to any in 65315 0 0 pipe tablearg ip from any to table(4) in 65316 0 0 pipe tablearg ip from table(3) to any out 65317 0 0 pipe tablearg ip from any to table(4) out 65318 1117551 289881930 pipe tablearg ip from table(1) to any in 65319 1313689 1307126128 pipe tablearg ip from any to table(2) out 65532 291398 31844840 fwd 127.0.0.1,8000 tcp from any to any dst-port 80 in 65533 244239 36109931 allow tcp from any to any out 65534 113913 7148994 deny ip from any to any 65535 13 4340 allow ip from any to any [2.1.3-RELEASE][root@fwjnd.xxx.local]/root(6):
-
o patch do captive portal não está aplicado.
Não tem nenhuma regra tratando a porta do squid nesse seu ipfw.
-
Olá Marcelo,
Para funcionar tenho que alterar a regra de LAN:
LAN * * * destino any
para
LAN * * destino (IP do Firewall) + porta 3128 ?
No primeiro ambiente de teste, a regra da LAN está any any e o patch só funciona se eu selecionasse a interface loopback.
-
O patch inclui no captiveportal.inc as regras que não permitem acesso a 3128 antes de autenticar o captive portal.
quando você marca essa opção no squid, tem que salvar a configuração, entrar no captive portal e salvar lá também para que as novas regras sejam aplicadas.
Não precisa criar nehuma regra pela interface web.
-
A maneira que conheço para bular o CP quando de usa o CP com Proxy transparente é fixando o IP do proxy e porta do próprio pfsense no navegador do cliente.
Para evitar isso crie uma regra bloqueando acesso a porta 3128 antes das regras de liberação da LAN. -
O patch inclui no captiveportal.inc as regras que não permitem acesso a 3128 antes de autenticar o captive portal.
quando você marca essa opção no squid, tem que salvar a configuração, entrar no captive portal e salvar lá também para que as novas regras sejam aplicadas.
Não precisa criar nehuma regra pela interface web.
Obrigado Marcello,
Habilitei a opção Resolv dns v4 first - Squid e o bloqueio funcionou.
Enable this option to force dns v4 lookup first. This option is very usefull if you have problems to access https sites.
Obrigado a todos.
-
Segui os mesmos procedimentos e o patch não é aplicado, abri um novo Post e já encontrei vários posts atualizados, inclusive no forum em ingles, confirmando que o Patch Captive Portal não funciona no pfSense 2.1.x. https://forum.pfsense.org/index.php?topic=79831.msg435539#msg435539
-
Estranho Ivart, fiz vários testes e está funcionando normalmente. No seu firewall só tem uma interface LAN?
-
Já descobri o problema, o patch não funciona no Squid3 somente na versão dev, já corrigi o squid.inc para aplicar o patch correto quando o pfsense for versão 2.1, o problema atual que não consegui achar solução em lugar nenhuma é relativo ao redirecionamento para o CP quando o proxy é fixado no browser do cliente ou na conexão wireless do mobile (IOS/Androis). No browser ainda é possivel colocar na mão o endereço do gateway :8000 para acessar o CP mas no Mobile uma vez configurada a conexão WiFi com o proxy não tem como o cliente fazer o login. Ainda não existe uma solução prática de integração entre o CP e o Squid.
-
Já descobri o problema, o patch não funciona no Squid3 somente na versão dev, já corrigi o squid.inc para aplicar o patch correto quando o pfsense for versão 2.1, o problema atual que não consegui achar solução em lugar nenhuma é relativo ao redirecionamento para o CP quando o proxy é fixado no browser do cliente ou na conexão wireless do mobile (IOS/Androis). No browser ainda é possivel colocar na mão o endereço do gateway :8000 para acessar o CP mas no Mobile uma vez configurada a conexão WiFi com o proxy não tem como o cliente fazer o login. Ainda não existe uma solução prática de integração entre o CP e o Squid.
A unica coisa que consegui fazer com relação a isso é na parte de ignorar o proxy adicionar um site (por exemplo o de onde você trabalha) e o ip do pfsense, e no squid habilitar também a navegação http transparente, fazendo tudo isso após o usuario acessar o site especificado vai abrir a tela de login e autenticar para os outros sites, mas não achei isso muito pratico, estou procurando algo mais user…