Spawnzao

Tag: apache

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…)

14 Comments :, , , , , , , , , , , , , more...

Falha de Segurança PhpMyAdmin – Análise

by on Jan.14, 2011, under Linux, PHP, Software Livre

Essa é uma simples análise de um problema no servidor de um cliente, abaixo seguem os passos que eu segui para descobrir o que estava acontecendo.

O primeiro passo foi abrir o Cacti e visualizar o estado do servidor, e ai a primeira surpresa: os 2 processadores estavam com 100% de processamento. Obviamente algo anormal estava acontecendo.

O segundo passo foi acessar o servidor e descobrir qual o processo estava consumindo o processamento da máquina. Para isso utilizei o comando:

top

E para minha surpresa um processo chamado ./s rodando com o usuário apache estava consumindo todo o processamento do servidor, por ai já dava pra perceber que o servidor estava de alguma forma vulnerável.

(continue reading…)

1 Comment :, , , , , , , , , , , , , more...

Proxy Reverso com Pound

by on Jan.07, 2011, under Linux, Software Livre

Quem administra servidores web tem uma grande preocupação com segurança, mas quando falo em segurança não digo somente a preocupação com os temidos “crackers” e os “script kiddies”, e sim em manter seu servidor web o máximo possível disponível, organizado e estruturado. E é ai que entra o Pound.

O Pound é nada mais que um proxy reverso e balanceador de carga, além disso ele filtra requisições incorretas, suporta hosts-virtuais, fail-over e é um frontend HTTPS. As requisições HTTPS são decodificadas e passadas para o backend em forma de HTTP. Se mais de um servidor backend está definido (cluster de servidor web), ele escolhe um deles aleatoriamente, baseado nas prioridades definidas. Por default, o Pound mantém registro de associação entre clientes e servidores backend (sessions).

Essa imagem ilustra o funcionamento do Pound:

(continue reading…)

1 Comment :, , , , , , , , , , 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