Spawnzao

Tag: ldap

Captive Portal completo com o Squid no CentOS 7

by on Jan.17, 2016, under Iptables, Linux, PHP, Selinux, Software Livre, Squid

O captive portal para redes wireless são uma mão na roda, ainda mais em redes que utilizam autenticação ntlm ou outra autenticação via navegador. Entretanto, por mais que existam diversos captive portal disponíveis na internet, as vezes eles não se adequam perfeitamente as nossas necessidades, uns por se focarem em lan houses, outros por não serem compatíveis com nossa base de usuários (ex: ldap, mysql, sqlserver, …), outros por não terem um log completo de todos os acessos dos usuários, dentre outros problemas.

captiveportal

Então, utilizando o squid montei um captive portal, dividido em 3 partes.

No squid temos 2 scripts que fazem a verificação dos usuários autenticados e seus determinados ips, o primeiro script verifica se o ip da máquina está autenticado, caso não esteja, retorna HTTP Status Code 302 (redirecionamento) e a url do captive portal para o usuário se autenticar, caso o ip esteja autenticado ele prossegue a url desejada. No segundo script, verificamos novamente se o ip está autenticado, caso ele não esteja, retorna erro para o squid e a navegação é negada, caso ele esteja autenticado, ele busca no banco de dados o usuário e informa para o squid para que a sessão seja logada, impedindo que os acessos fiquem sem um usuário responsável. O squid está configurado em modo transparente, nas portas http (3128) e https (3129), entretanto no https estamos utilizando para tunelar todas as conexões, caso deseja abrir as conexões essa configuração deverá ser feita a parte. O firewall, captura todas as conexões de portas conhecidas e redireciona para o squid, as que utilizam texto plano, como por exemplo o telnet (porta 23), são redirecionadas para a porta 3128 e as conexões critografadas, como por exemplo o ssh (porta 22), são redirecionadas para a porta 3129. Com isso não saberemos qual a url acessada e qual o conteúdo, mas o ip e a porta para aquele determinado usuário estará salvo.

Para armazenar as sessões dos usuários autenticados utilizo o mysql, nele temos 3 tabelas, a primeira é a sessions, que armazena as sessões dos usuários autenticados, a segunda é a logs, que armazena tudo que acontece no captive portal e por último a tabela disallow, que armazena os usuários bloqueados, que não conseguirão fazer a autenticação no portal, tem como objetivo bloquear usuários coringas, convidados, usuários que violaram os termos de uso, dentre outros.

E por último o portal web que realiza a autenticação dos usuários, desenvolvido em PHP e subdividido em 2 partes, a primeira que realiza a verificação do nome e senha do usuário na base de dados LDAP e a segunda que realiza o gerenciamento das sessões, logs e usuários bloqueados utilizando o banco de dados mysql.

Deixar um pouco de conversa e colocar a mão na massa.

(continue reading…)

16 Comments :, , , , , , , , , , , , , more...

Corrigir a permissão da pasta winbindd_privileged

by on Dec.15, 2014, under Linux, Samba, Software Livre, Squid

Quando utilizamos o Squid autenticando usuários ou grupos no Active Directory, temos a possibilidade de fazê-lo utilizando o serviço winbindd.

Entretanto a permissão default da pasta /var/lib/samba/winbindd_privileged está incorreta e não permite que o squid tenha acesso, além disso se você alterar a permissão para squid:squid ou para o modo 777, o serviço winbindd não aceitará a configuração e dará o seguinte erro: “invalid permissions on socket directory /var/lib/samba/winbindd_privileged”.

Para corrigirmos o problema teremos que acertar as configurações da pasta “/var/lib/samba/winbindd_privileged”, para que então os serviços winbindd e squid funcionem perfeitamente.

(continue reading…)

3 Comments :, , , , , , , , , more...

Licença

Creative Commons License

Techs

 Blog Tool, Publishing Platform, and CMS
Powered by PHP
Powered by MySQL
Mozilla Foundation
hacker emblem
Mozilla Foundation
Open Source Initiative
Creative Commons