[FUGSPBR] Squid transparente autenticado
Rodrigo Ricardo Passos
R2 em infolinks.com.br
Seg Maio 24 16:39:33 BRT 2004
Foi mal pelo erro de português .. mas é autenticação onde se lê
altenticação.
O ip do usuário você conseguirá pelas variaveis na hora do post do CGI.
E não se esqueça, para registrar a regre via ipfw você precisará:
1. Permissão de root para o usuário www
2. enviar uma requisição para um soquete local com que rode como root
3. utilizar o sudo, habilitando o usuário www para utilizar o ifpw como
root e adicionar shell para esse usuário no passwd.
4. Se alguem tiver outra ideia mande que vai ser bem útil.
Att.
R2
Rodrigo Ricardo Passos wrote:
> 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/
>
>
_______________________________________________________________
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