[FUGSPBR] Squid transparente autenticado

Rodrigo Ricardo Passos R2 em infolinks.com.br
Seg Maio 24 10:31:55 BRT 2004


Pessoal,

já fiz algo que você consegue fazer uma altenticação mas não baseado no 
proxy. O processo é o seguinte:
1. O request do usuário você intercepta via fwd do ipfw para a porta 
8080 do Apache local.
2. Dentro o Apache, utilizando mod_rewrite você recebe a requisição e 
envia para um autenticador local, ou seja, uma página php que fara a 
autenticação e receberá como parâmetro alem do nome do usuário e senha, 
receberá a página que o usuário fez o requisitou.
3. Esse script/página em php verificará se o usuário e senha são válidos 
em qualquer banco de dados, dentre eles um RADIUS.
4. Usuário e senha válidos, ele adicionará uma regra específica para o 
ip do cara que fez a requisição habilitando também o acesso a internet 
do usuário além da navegação web. Isso poderá incluir controle de banda 
entre outras coisas.
5. Depois de validar como autenticação ok, ele redireciona para a página 
requisitada originalmente.

O mod_rewrite ficou assim:
#    <IfModule mod_rewrite.c>
#    RewriteEngine on
#    RewriteCond   %{HTTP_HOST}                 ^(.*)
#    RewriteRule   ^(.+)                        %{HTTP_HOST}        [C]
#    RewriteRule   ^(.*) http://192.168.1.66:8080/auth/index.php?url=$1 [R]
#    </IfModule>

e um exemplo básico do php sem o insert das regras do ipfw assim:

<HTMl>
<TITLE>Autenticacao</TITLE>
<BODY>
<CENTER>
<BR>
<H1> Sistema de Autenticação </H1>
<form method=post action="auth.php">
<P> Nome: <input type="text" name="username">
<P> Senha: <input type="password" name="passwd">
<?php
global $url;
print "<input type='hidden' name='url' value='$url'>";
?>
<P><input type="submit" name="submit" value="Conectar">
</form>
</body>
</html>

auth.php irá receber os parâmetros do form (index.php) obviamente e
fará o seguinte:

<?php

global $username, $passwd, $url;
$site = "http://".$url;
if (<VERIFICAÇAÕ DE USUÁRIO>) {
   if (<VERIFICAÇÃO DA SENHA>) {
      header ("Location:".$site);
   }
}
?>

Acho dá uma luz para autenticação antes da utilização do proxy 
transparente. Claro, cabe a você nesse momente a fazer várias 
customizações do squid para resolver uma gama de problemas referente a 
esse usuário inclusive tratando o cara por ip que nesse caso ficou 
baseado a autenticação do usuário e access_list dentro do squid que irá 
te reduzir muitos problemas.

Espero ter ajudado.

Rodrigo - R2



Patrick Tracanelli wrote:

>
> http://www4.fugspbr.org/lista/cgi-bin/namazu.cgi?query=proxy_auth&submit=Search&idxname=FUG-BR 
>
>


_______________________________________________________________
Para enviar um novo email para a lista: fugspbr em fugspbr.org
Sair da Lista: http://lists.fugspbr.org/listinfo.cgi
Historico: http://www4.fugspbr.org/lista/html/FUG-BR/



Mais detalhes sobre a lista de discussão freebsd