Squidguard+squid+captive portal+freeradius2+lightsquid



  • Bom pessoal estou testando essas 5 soluções como um todo em uma implementação aqui na empresa e venho lhes falar sobre resultados positivos e negativos de tais processos.Estou trabalhando na área de T.I faz 1 ano,mas estou em um ritmo de aprendizado rápido e estudo frequentemente,se eu estiver passando informações erradas aqui por favor me corrijam.

    O captive portal está funcionando muito bem com o freeradius2 e o controle de banda/tráfego/tempo de conexão/tempo de login máximo está funcionando perfeitamente com as 2 ferramentas,pois testei tais elementos.

    O resultado é muito satisfatório,pois temos uma página aonde os usuários podem se autenticar,podemos controlar a banda por usuário(até mesmo em torrents o controle funciona)/tempo de uso ,etc… não vou mencionar todas as funcionalidades de tais pacotes,mas venho detalhar minha experiência sobre eles com vocês.  :)

    Página do captive portal: (vou adicionar algumas imagens e logo)

    Código da página:

    
    content="text/html; charset=iso-8859-1" />
    <title>Página de Login</title>
    
    ## Login
    
    Digite seu usuário e senha para acessar a internet .
    
    Usuário:
    class="form-login" title="Username" value="" size="30" maxlength="2048" />
    Senha:
    title="Password" value="" size="30" maxlength="2048" type="password" />
    
    type="checkbox" /> Lembrar senha [style="margin-left: 30px;">Esqueceu a senha?](#)
    
    [![](images/login-btn.png)height="42" width="103" />](#)
    
    

    Página de aceitação de uso:

    
    content="text/html; charset=iso-8859-1">
    <title>Termos de Uso</title>
    
    # Termos de Uso
    
    ### style="font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 12px; color: rgb(0, 0, 0); font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: rgb(255, 255, 255);"><font<br>color="#ff0000">Leia com atenção nossos Termos de Aceitação antes de
    continuar.</font<br>
    
    <center>
    
    <span<br>style="color: rgb(70, 69, 69); font-family: tahoma; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: rgb(255, 255, 255); display: inline ! important; float: none;"><font<br>face="Arial">- Acessar a Internet
    somente por necessidade de serviço ou por determinação expressa de
    
    superior hierárquico, realizando as tarefas e
    operações em estrita observância aos procedimentos aqui citados.
    
    - Manter a necessária cautela quando da exibição de
    dados em tela, impressora ou na gravação em
    
    meios eletrônicos, a fim de evitar que deles venham
    a tomar ciência pessoas não autorizadas;
    
    - Não revelar minha senha de acesso a Internet e de
    minha caixa postal (e-mail) a ninguém
    
    e tomar o máximo de cuidado para que ela permaneça
    somente de meu conhecimento.
    
    - Responder, em todas as instâncias, pelas
    conseqüências das ações ou omissões de minha parte
    
    que possam pôr em risco ou comprometer a
    exclusividade de conhecimento de minha senha ou
    
    das transações a que tenha acesso.
    
    - Não é permitida a navegação em sites
    pornográficos, defensores do uso drogas,filmes,desenhos,animações,redes
    sociais,sites de Pedofilia ou sites de cunho racista e similares;
    
    - Respeitar as normas de segurança e restrições de
    sistema impostas pelos sistemas de segurança
    
    implantados na instituição;
    
    - Cumprir e fazer cumprir os dispositivos da
    Política Corporativa de Segurança da Informação, de suas
    
    diretrizes, bem como deste Termo de Responsabilidade.
    
    -Proibido violar a privacidade de outros usuários.</font<br></span<br> 
    
    </center>
    
    <form method="post" action="$PORTAL_ACTION$">
    
    <font<br>face="Arial">type="hidden"></font<br> 
    
    </form>
    
    

    Pontos negativos:

    -Captive portal atualmente apenas funciona com proxy transparente.
    -O usuário consegue burlar o captive colocando no navegador o ip do pfsense e porta 3128 (solução redirecionar porta 3128 para 8000).

    Dúvidas:

    Essas dúvidas complementam um tutorial bem detalhado que vou fazer sobre tais pacotes.

    -Como posso editar essa página ou qualquer outra página para direcionar os elementos nas div para $PORTAL_ACTION$ e $PORTAL_REDIRURL$?
    -Como posso criar uma página de termos que ao clicar em aceitar direciona para a página de login ?
    -Posso adicionar o index.html dessas páginas diretamente no file manager juntamente com as imagens ?
    -Como posso gerar relatórios de acesso pelo lightsquid apartir de uma base de usuários do freeradius2 ?

    Essas perguntas são essenciais para mim poder concluir o tutorial.

    Obrigado a todos que colaborarem com tais questões.



  • Você já testou o arquivo modificado que postei no outro topico?



  • Vina18, boa tarde

    Me responda uma coisa, o freeradius vc instalou no pfsense mesmo ou em outro servidor, é um pacote do pfsense?

    abs

    Souza Linux



  • @souzalinux:

    Vina18, boa tarde

    Me responda uma coisa, o freeradius vc instalou no pfsense mesmo ou em outro servidor, é um pacote do pfsense?

    abs

    Souza Linux

    O freeradius2 é um pacote do pfsense,que por sinal é bem completo  :)

    @marcello vou testar 2ªfeira e fazer outros testes.Posto os resultados aqui.



  • Vina,

    Eu acredito que você consiga isso integrando a janela do captive portal com a autenticação do squid.

    Exemplo teórico:
    Dentro do html do login, uma chamada para uma pagina que passe pela autenticação ntlm do squid.

    A alguns anos atras eu já tentei isso, mas acabei tocando o squid com dansguardian em modo sanduíche.



  • @Marcello

    Segui os procedimentos que você descreveu e com sucesso a porta 3128 é bloqueada até o login ser realizado com sucesso.O usuário não consegui navegar até ser autenticado.

    Será que com uma modificação no captive portal faria ele funcionar em modo não transparente ?

    No meu ponto de vista o captive portal não funciona em modo não transparente,pois o mesmo não foi feito para direcionar a navegação para "ip_pfsense:8000" (página do portal do captive) até que seja feito o login e em seguida para a porta 3128.Isso explica o fato de que os usuários conseguem "burlar" a autenticação ao setar as configurações do proxy no navegador.

    Obrigado marcello pela ajuda.
    Vou testar mais algumas modificações,pois ainda não consegui redirecionar a página de termos para uma página do captive modificada.



  • Vina com o arquivo modificado você conseguiu bloquear o squid.

    O próximo passo é configurar o browser para não exigir proxy para uma determinada url e colocar esta mesma url como pagina padrão.

    Desta forma, toda vez que o usuário abrir o browser, a pagina sera acessada e o captive portal acionado.



  • @Gratz 3000 posts marcello  :o

    Marcello tal procedimento descrito acima funcionou,pois eu configurei no navegador para não usar proxy para x url e adicione o ip do pfsense.

    Ex: sem proxy para:localhost, 127.0.0.1, uol.com.br(página principal), 192.168.1.1(ip pfsense)

    Tal procedimento tem de ser "automatizado" via GPO.

    Não teria marcelo como fazer isso pelo script do wpad ou alguma outra forma ?



  • Funciona sim, falei da configuração manual do proxy porque você não esta usando wpad ainda.

    O wpad faz isso com "o pé nas costas".



  • Ótimo marcello…

    Vou subir na vm um windows 2008 aqui e rodar serviço de dhcp,dns e testar.

    Grato marcello.

    (Da pra fixar esse tópico pro pessoal que não conhece tal solução) .

    O próximo problema é o lightsquid,pois não consigo gerar relatórios a partir de nomes de usuários.O cron faz tal procedimento ?



  • Vou coloca este tópico na lista de tutoriais para pacotes.

    Devo publicar o patch do captive portal.



  • @vina18

    Boa tarde

    Você tem o esquema do wpad pois já tentei fazer funcionar e não obtive êxito.

    Abs

    Souza Linux





  • @marcelloc:

    Dentro do html do login, uma chamada para uma pagina que passe pela autenticação ntlm do squid.

    Só uma correção

    O teste que fiz a alguns anos usava a autenticação do servidor web e não do squid para identificar o usuário.

    Pode ser uma boa tentativa para unificar captive portal e autenticação "transparente"



  • vina18

    Bom dia. Gostaria de saber como tá o andamento do projeto do Squidguard+squid+captive portal+freeradius2+lightsquid. Estou acompanhando seu tópico e adoraria saber informações dos resultados.

    Abraços

    ATT

    Breno Alencar



  • @breno.uni:

    vina18

    Bom dia. Gostaria de saber como tá o andamento do projeto do Squidguard+squid+captive portal+freeradius2+lightsquid. Estou acompanhando seu tópico e adoraria saber informações dos resultados.

    Abraços

    ATT

    Breno Alencar

    Breno como estou bem ocupado com algumas virtualizações de servidores aqui no trampo ta bem corrido para "mecher" no pfsense  :P mas o seguinte status posso lhe passar.

    -Captive portal+Freeradius2 -
    -Restrição de horário para uso da internet -Ok testado
    -Restrição de banda (limita a banda para todos os protocolos) adeus torrent maldito -Ok testado
    -Restrição de banda máxima por dia       -OK testado
    -Captive portal testado com todas as portas bloqueadas apenas a porta (80,3128,8080,8000 liberadas) a porta 443 está com restrição apenas alguns sites liberados,protocolo ICMP liberado apenas na interface LAN.
    -O Captive portal está funcionando em modo não transparente graças ao arquivo que o MARCELLOC me passou e eu substitui nas configurações do captive portal.O usuário precisa setar o proxy para navegar e ter a página principal como o ip_pfsense:8000 para acessar a página de login.

    -Lightsquid-

    -Ainda apenas estou conseguindo tirar relatórios apartir do IP dos usuários.
    -Vou tentar e testar se é possível "puxar" as informações do status do captive portal ou do squid para fazer tal log apartir da base de dados dos usuários.

    -Customização do captive portal-

    -O captive portal deixa muito a desejar nessa questão de customização do portal,pois o mesmo precisa fazer upload das imagens pelo interface web do captive e até hoje não descobri em que pasta elas são armazenadas. (vou pesquisar mais)
    -Estou tendo problemas com códigos css/php na página.
    -Os campos de login e senhas deram certos porém preciso criar um redirecionamento para a página de aceitação de termos antes de tal login.
    -Vou precisar de um tempo para terminar tal customização,mas ela está indo muito bem até agora.  :)

    Grato!



  • Vina,

    Você seguiu algum tutorial para configurar o freeradius?

    Queria sincronizar o freeradius com o Ad, para fazer os usuarios do Captive Portal logarem no AD, será possivel?

    Parabens pelo projeto!



  • Vina,

    Estou ancioso para testar o freeradius no pfsense. Se vc tiver alguma material disponivel sobre o assunto e tiver como compartilhar com os demais ficariamos imensamente agradecidos. Todo o material é bem vindo. Se precisar de pessoal para teste estou à sua disposição.

    Abraços

    ATT

    Breno Alencar



  • E ai pessoal, alguma ideia de como "pegar" os usuários autenticados pelo Captive Portal e mostrar esses no Lightsquid?

    Será que da pra inserir no

    <form>do captive portal algum parametro pra gravar o usuario no ntlm pro Lightsquid conseguir ler?</form>



  • @Thiago:

    Vina,

    Você seguiu algum tutorial para configurar o freeradius?

    Queria sincronizar o freeradius com o Ad, para fazer os usuarios do Captive Portal logarem no AD, será possivel?

    Parabens pelo projeto!

    É bem tranquilo tal procedimento thiago  :)

    Da uma olhada :

    Youtube Video

    Infelizmente temos pouco conteúdo sobre o freeradius2 o que eu aprendi foi errando e acertando o famoso Virtualbox + testes  :D

    Após realizar tal procedimento vá na aba LDAP e configure segundo as informações do seu servidor previamente configurado com o AD.
    No squid vá na aba auth settings e selecione RADIUS e complete com as informações segunda suas configurações do freeradius2.

    Boa sorte.



  • @Thiago:

    E ai pessoal, alguma ideia de como "pegar" os usuários autenticados pelo Captive Portal e mostrar esses no Lightsquid?

    Será que da pra inserir no

    <form>do captive portal algum parametro pra gravar o usuario no ntlm pro Lightsquid conseguir ler?
    </form>

    Eu vou fazer alguns testes com o cron e o captive pra ver se consigo gravar os usuários apartir do captive e gerar os relátorios ou até mesmo em um servidor web e gerar os relatórios apartir dele.

    Estou meio sem tempo ,mas vou tentar  ;)



  • Vina,

    Pode não parecer simples a primeira vista, mas acredito que a solução vira através de um helper do squid escrito em perl ou php que receba a autenticação/solicitação de ident e verifique na base de usuários autenticados do captive portal/freeradius.



  • Boa Noite Marcello!

    Você saberia criar uma solução assim?
    Poderia nos dar o caminho das pedras?



  • Já escrevi helpers em perl que usam a informação de usuário já autenticado mas a autenticação em si nunca fiz.

    Estava pensando em alterar a autenticação de ident do dansguardian para consultar a base do radius/captive portal, mas ainda não escrevi nenhuma linha de código.

    Acredito que o caminho das pedras seja por ai.


Log in to reply