FproxyAdmin - Gerenciador WEB do Proxy

Há um tempo atrás, desenvolvi um sistema que tinha como objetivo, ter uma interface de administração totalmente WEB
e que utilizasse o Squid e o DansGuardian por trás. Então, apresento o FproxyAdmin. Espero que com o apoio de toda
comunidade, possamos evoluir juntos esta solução.

[ Hits: 25.759 ]

Por: Felipe em 18/04/2012


O Projeto



O FproxyAdmin foi concebido diante de uma carência que havia identificado no mundo do Software Livre, em relação a console de administração WEB do Squid, e com aplicabilidade de um modelo corporativo, amplo.

Posteriormente, identifiquei que o DansGuardian também podia agregar bastante nas funcionalidades do modelo proposto, então, os seus recursos passaram a fazer parte da solução.

Depois de pronto, juntamente com um amigo, cheguei a usá-lo em uma empresa de médio porte que prestava consultoria e está em funcionamento até hoje. Mas o curioso é que depois disso, deixei esta solução guardada, pois passei a me dedicar em outra solução, o Attik.

Tenho plena consciência que o FproxyAdmin ainda tem muito a evoluir, e conto com o apoio da comunidade para executar essa tarefa com êxito.

- Composição:
  • Interface WEB: 100% PHP;
  • Banco de dados: MySQL;
  • Interação com o Sistema Operacional: via PHP e Shell Script;
  • Software de Proxy: Squid;
  • Software de controle das listas de bloqueios e outras: DansGuardian;
  • Antívirus: Clamav;
  • Premissa: simplicidade.

- Como posso contribuir para o projeto?
  • O projeto ainda não tem um site próprio;
  • Evolução da interface com recursos mais modernos;
  • Configuração da solução para conseguir se integrar com o AD.

Criador do FproxyAdmin:

- Felipe Pereira da Silva
- felipetsi[at]gmail.com

Previamente publicado em: http://firewallattik.wordpress.com - FproxyAdmin
Página anterior    

Páginas do artigo
   1. Modelo e Utilização
   2. O Projeto
Outros artigos deste autor

Attik Firewall

Leitura recomendada

wlmproxy - um proxy superior

YASG (Yet Another Security Guide)

Aspecto de segurança para uma arquitetura web

Administrando Linux via web (parte 1)

Enjaulamento de usuário no sistema operacional

  
Comentários
[1] Comentário enviado por tenkaichi em 18/04/2012 - 10:41h

Ola,
constaria que me falace mais sobre sou projeto, se poder...

posso integrar ele a um sistema de monitoramento de provedor de internet se problemas?

Aguardo sua resposta!

[2] Comentário enviado por vicentedeandrade em 18/04/2012 - 18:22h

Olá,

Enfrentei um problema com a integração do Squid com o MS/AD, qual seria o problema? Espero poder ajudar.

[3] Comentário enviado por thiagocantero em 18/04/2012 - 22:42h

Felipe, parabéns por sua iniciativa!!!!
Precisamos de mais pessoas com idéias que facilitam e ajudam a popularizar nosso querido GNU/Linux!
Mais uma vez, parabéns pela iniciativa que deve ter sua publicidade digna de um excelente colaborador do software livre!
Abraços

[4] Comentário enviado por rafaelc.lopes em 19/04/2012 - 10:39h

Parabéns Felipe
Parece ser uma ótima ferramenta mesmo, vou instalar e logo posto aqui.

[5] Comentário enviado por silent-man em 19/04/2012 - 11:44h

@felipetsi, boa idéia!

Não deixem de ver outro sistema de gerência do squid.

http://www.grupoponte.com.br/squidadmin/

[]s

[6] Comentário enviado por risto em 19/04/2012 - 14:58h

uma dúvida, ele bloqueia a porta https?

[7] Comentário enviado por dumleao em 20/04/2012 - 00:51h

Olá,

Tenho todos os serviçoes instalados em meu servidor. Apache, mysql, squid etc... Como fica a instalçao já tendo os pacotes instalados?
Teria como adcionar cache full? Interessante tb integrar com o AD da MS


Abrçao, Parabéns pela solução.

[8] Comentário enviado por israelsoares em 20/04/2012 - 09:20h

isso não ta funcionando direito. quando instala o fproxyadmin, não é possivel fazer mais nada no servidor.

[9] Comentário enviado por felipetsi em 20/04/2012 - 12:28h

Opa, vamos as respostas:

tenkaichi, conforme dito, o FproxyAdmin surgiu de um desejo em tornar a administração de um proxy mais simples e mais próxima de um modelo de negócio, por isso existe a possibilidade de gerentes de diversas áreas administrar os seus subordinados.

Cheguei a implementar essa solução em uma empresa de médio porte, onde funciona até hoje, mas não tive tempo para continuar evoluindo a solução, pois estava trabalhando em outra que em breve apresentarei a comunidade também.

O projeto é esse, acho que ainda temos muito a evoluir nesse software.

vicente_neto, o FproxyAdmin ainda não possui integração com o AD, teremos que desenvolver esse recurso. Mesmo que a integração com o AD via Samba e Winbind seja feita manualmente, como a interface atualizar o squid.conf a cada aplicação das mudanças realizadas, todas as alterações realizadas serão desfeitas. Conto com o seu apoio para desenvolver essa funcionalidade já na próxima versão.

thiagocantero e rafaelc.lopes, muito obrigado!!! É essa a idéia, colaboração.

silent-man, obrigado. Não conhecia o squidadmin. Acho que esses dois projetos podem contribuir muito um ao outro.

risto, a princípio não era para haver esse problema, mas o Dansguardian não está interpretando adequadamente esse protocolo. Talvez por uma configuração inadequada no dansguardian.conf. Vamos trabalhar na correção desse problema.

dumleao, O fato de você já ter instalado os softwares pré-requisitos pode impactar na execução de algum comando do script de instalação, é necessária análise antes de executá-lo. Por enquanto o pacote foi feito para uma instalação do zero.

israelsoares, estranho o seu comentário. O Fproxyadmin foi testado por diversas verzes e por um logo tempo, inclusive, o tenho em funcionamento em redes corporativas. Qual versão do Debian está utilizando e quais problemas que identificou?

[10] Comentário enviado por goonigth em 20/04/2012 - 19:01h

Ótimo projeto, gostaria de ajudar a desenvolve-lo.
Obrigado.

[11] Comentário enviado por israelsoares em 23/04/2012 - 09:10h

opa! bom meu caro felipe, deixa eu ver se consigo te explicar.
em primeiro lugar eu iniciante, posso ter feito algo errado. eu estou usando o debian squeeze, faço toda a instalação do servidor, todos os procedimentos normais de costume. depois instalo o fproxyadmin, depois que ele é instalado, perco acesso ssh, não consigo instalar mais nada no servidor e nem consigo acessar o fproxyadmin pelo browser. por acaso, teria como mandar um passo a passo? informar algo sobre o banco de dados e outras informações que vc acha importante? fico no aguardo. forte abraço.

Israel soares.

[12] Comentário enviado por danniel-lara em 23/04/2012 - 09:16h

Tchê parabéns pelo projeto muito legal mesmo
Minha dica é procure incentivar o pessoal a usar
e sugerir melhorias , pois uma ferramenta como essa , facilita muito
a vida do SysAdmin , e também procure incentivar o pessoal e colaborar com
o seu projeto com ajuda de códigos e melhorias .

Abraço

[13] Comentário enviado por dumleao em 23/04/2012 - 20:08h

Uma boa seria usar o módulo MSNT do Squid para integrar ao AD mas particulamente nunca consegui com que funcionasse de forma transparente para o usuário, só login e senha.
Que tiver uma dica para eu fazer isso passar transparente aceito, só tentei com o módulo MSNT.

Seu projeto é muito bom para toda comunidade, não pare com o projeto.

Abraço,

[14] Comentário enviado por felipetsi em 01/05/2012 - 00:55h

Opa. Agradeço imensamente o interesse e participação de toda comunidade.

Respondendo aos comentário feitos:

goonigth, muito obrigado.
O projeto precisa na sequência de:
- um site oficial;
- administradores Linux para desenvolver novos recursos (integração com o AD, por exemplo), transformando-os disponíveis apenas com a execução de um único script;
- desenvolvedores PHP implementar na interface WEB as funcionalidades disponibilizadas;
- integrantes da comunidade para testar as novas versões.

Israel soares, tentei simular em meu ambiente a mesma situação que você descreveu, mas não ocorreu nenhum travamento. Estava até suspeitando da versão Debian Squeeze, mas nada de errado ocorreu. Solicito que reveja a instalação do seu SO para certificar que não há nenhum problema.
Na versão 1.0, para acessar a interface do Fproxyadmin, após a instalação, por gentileza, certifique-se que você tentou utilizando http://IP_DO_PROXY:2880/fproxyadmin. Na versão 1.1 não será mais utilizada a porta 2880, pois será utilizada a porta padrão.
Enquanto realizava o troubleshoot aproveitei para revisar o script de instalação e atualizar algumas outras coisas do pacote que estavam gerando pequenos erros. Já está disponível a nova versão do Fproxyadmin, baixe-a em "http://sourceforge.net/projects/fproxyadmin/files/fproxyadmin-1.1.0.tar.gz/download" e tente novamente e me avise.

danniel-lara, muito obrigado pelas dicas, procurarei segui-las, com certeza.

dumleao, obrigado pela dica e elogios. O funcionamento do Squid com o AD é algo absolutamente tranquilo de se implementar. Já tive a oportunidade de implementar por diversas outras vezes utilizando squid, winbind, kéberos e samba. Sem sombra de dúvida essa funcionalidade é muito importante e precisa ser implementada no Fproxyadmin já nas próximas versões, para isso conto com o apoio da comunidade.


Conforme já dito, disponibilizei uma nova versão, baixe em: http://sourceforge.net/projects/fproxyadmin/files/fproxyadmin-1.1.0.tar.gz/download

[15] Comentário enviado por chcdc em 02/05/2012 - 09:25h

Muito bom o projeto, mas comigo aconteceu algo diferente, estranho.

Refere-se ao dansguardian.conf
Ele acusa erro durante a instalação, mas eu não vi nenhum.

E uma duvida, eu posso incluir bloqueio por horario?
Eu preciso exatamente disto, e até agora não encontrei nenhuma solução via web.

E o que eu puder ajudar estou disponivel

Abraços


[16] Comentário enviado por marcos_soares em 05/05/2012 - 22:12h

Muito bom esses recursos, mas infelizmente não consigo testar, pois login admin e senha admin não funciona, tem alguma solução para isso ?

[17] Comentário enviado por felipetsi em 09/05/2012 - 14:55h

Olá, vamos as respostas:

chcdc, infelizmente o Fproxyadmin ainda não tem a funcionalidade de especificar um horário, mas creio que podemos trabalhar nisso.

marcos_soares, estranho não ter conseguido logar com usuário e senha "admin". Deve ter ocorrido algum erro na hora de execução do script que cria o banco. Partindo do princípio que você descompactou o pacote .tar.gz no diretório /usr/local/src, faça o seguinte:

- Verifique se o banco realmente foi criado com o seguinte comando: # mysql -p -u root proxy -e "show tables"

- Caso não receba uma lista com 7 (sete) tabelas (address, department, groupsession, person, session, whitelistsite e whitelisturl), é porque o banco não foi criado ou está sem as tabelas. Então execute: # mysql -p -u root < /usr/local/src/proxy/db.sql

- Se mesmo com o banco certinho, não conseguir logar, tente: # mysql -p -u root -e "update proxy.person set password='21232f297a57a5a743894a0e4a801fc3' where login='admin'"

Ao digitar qualquer um dos comandos acima, será solicitado a senha do root do banco de dados, basta digitar.

[18] Comentário enviado por dumleao em 09/05/2012 - 21:35h

O projeto precisa na sequência de:
- um site oficial;

Precisar de algo referente estou disposto a fazer parte, não tenho muito conhecimento mas bastante ousadia e muitas idéias.
Quanto ao site se precisar ajudo a mantelo.


Abraço,

[19] Comentário enviado por felipetsi em 10/05/2012 - 09:41h

dumleao, certamente um site oficial irá contribuir bastante. Estamos em busca de voluntários para o desenvolvimento e manutenção. Se puder ajudar com isso, certamente sua contribuição será muito bem-vinda.

Se for o caso, vamos desenvolver esta idéia por e-mail, felipetsi@gmail.com.

[20] Comentário enviado por marcoscarraro em 10/05/2012 - 10:05h

Buenas Pessoal,

Tem o meu projeto também para quem quiser utilizar, remodelar.

http://vivaolinux.com.br/artigo/Instalando-Carraro-DashBoard/

http://marcoscarraro.blogspot.com.br/2011/05/lancado-o-carraro-dashboard.html

http://marcoscarraro.blogspot.com.br/2011/08/instando-o-painel-carraro-dashboard.html


Abraços
Marcos Carraro.

[21] Comentário enviado por TiagoSouza em 30/05/2012 - 15:32h

chcdc, sobre o bloqueio por horário, já deu uma olhada no Mikrotik? Sei que você deve estar procurando alguma solução com o Squid, mas o MK é uma boa alternativa. Aliás, lembro de ter visto em algum lugar ensinando a fazer bloqueios por horário no Squid, não seria muito difícil implantar isso (caso realmente exista, posso estar enganado), né felipe?

[22] Comentário enviado por tecnet em 10/06/2012 - 10:47h

Felipe,
Soh corregindo, seu firewall esta configurado somente pra Derbian, e quando colocar algo tem que colocar aonde instalar os pacotes ex:

Dansguardian se o cara nao tem instalado como faz, entende?

Obrigado

[23] Comentário enviado por custodiomv em 22/06/2012 - 11:13h

Olá a todos,

Fiz a instalação conforme o procedimento, quando vou acessar a interface web digito usuário e senha e ele me retorna a seguinte informação:

SELECT: Access denied for user 'attikuserweb'@'localhost' (using password: NO)

Alguém pode me ajudar?

[24] Comentário enviado por mibdata em 03/08/2012 - 09:27h

Parabens com o projeto otima iniciativa.. ainda nao tive tempo de testar mais vou fazer.. o que queria era colaborar com o projeto.. tenho empresa de Desenvolvimento de Sites e hospedagem e posso liberar pra voce espaco para colocarmos o site do projeto e forum caso deseje.. coloco-me a disposição.

abraco.

[25] Comentário enviado por neto_itape em 04/09/2012 - 10:20h

Caro amigo felipesti, estou tentando funcionar o Fproxyadmin mas sem sucesso pois mesmo após descompactar ele e usar o script para instalar ele, depois de td isso vou ao navegador de outra maquina e tento acessar pelo endereço da rede ele acessa mais após colocar o user: admin e pass: admin ele retorna a seguinte messangem:
SELECT: Access denied for user 'www-data'@'localhost' (using password: NO)

Bem já fiz até mesmo as dicas que vc passou para o amigo marcos_soares e mesmo assim não obtive sucesso ... pelos comandos que vc passo as tabelas foram criadas com sucesso mais creio que não foi criado o usuario e senha para acessar o banco de dados a versão que estou utilizando é a Fproxyadmin 1.1.0 ... se puder me ajudar agradeço. Obrigado.

[26] Comentário enviado por felipetsi em 16/09/2012 - 21:25h

Neto, o erro indica que o usuário do Fproxyadmin não esta com permissão para acesso ao seu Banco de Dados. Tente o comando abaixo e depois tente acessar novamente.
# mysql -p -u root
< Será solicitada a senha do usuário root no Mysql, digite-a. Obs: veja que é a senha do roto no Mysql e não a do sistema operacional>
Após digitar a senha estará na console de comandos do Mysql, então digite:
# GRANT ALL PRIVILEGES ON proxy.* TO proxy@localhost IDENTIFIED BY 'PASS'

Substitua o termo 'PASS' pela senha que deseja colocar.

Depois verifique se a senha digita está no eguinte arquivo: /var/www/proxy/conn_proxy.php
# vi /var/www/proxy/conn_proxy.php

Caso não esteja, coloque.

Pronto, isso deve corrigir o problema citado.

[27] Comentário enviado por neto_itape em 18/09/2012 - 11:37h

Então Felipe, fiz conforme o que você me passou logo acima:

# GRANT ALL PRIVILEGES ON proxy.* TO proxy@localhost IDENTIFIED BY 'PASS'

E aonde era 'PASS' deixei 'admin' mais quando fui conferir se estava ok pelo caminho:

# vi /var/www/proxy/conn_proxy.php

Vi que na pasta "/var/www" não tinha proxy mais sim uma outra pasta que era "fproxyadmin" dae dentro dela que encontrei o "conn_proxy.php" mas o que fiz no mysql não salvo ali ... será que o arquivo que executamos na instalação o "instalar" nao está com erro no caminho dos arquivos nessa parte?

[28] Comentário enviado por felipetsi em 18/09/2012 - 17:21h

Neto, você tem razão quanto ao nome do diretório dentro de www, é realmente fproxyadmin, eu me confundi.

Esclarecendo as suas colocações, caso eu realmente tenha interpretado corretamente, quando você executa o comando GRANT no prompt do Mysql, ele apenas irá atribuir a permissão ao usuário do Fproxyadmin no BD e alterar a senha para que você colocar. Este comando não altera nenhum arquivo do Frpoxyadmin. Portanto, depois de digitá-lo, você deve acessar (pode ser com o comando "vi") o arquivo /var/www/fproxyadmi/conn_proxy.php e atualizá-lo da seguinte forma:

<?php 
$hostname_proxy = "127.0.0.1";
$database_proxy = "proxy";
$username_proxy = "proxy";
$password_proxy = "123";
$proxydb = mysql_connect($hostname_proxy, $username_proxy, $password_proxy);
mysql_select_db($database_proxy,$proxydb);
?>

Daí você substitui o termo 123 pela senha que você colocou quando digitou o comando GRANT, lembrando de manter as aspas duplas.

Agora deve dá tudo certo na sua instalação.

Quanto ao script de instalação, sim era para ele fazer tudo isso. Me fale qual é a versão do seu SO, e com qual usuário que executou a instalação. Vou analisar.

[29] Comentário enviado por neto_itape em 19/09/2012 - 17:59h

Então é um debian 6 instalado do zero num virtual box ... td executado com o user root do sistema ... e fiz novamente o procedimento e não deu certo novamente ... qdo coloco o user e senha aparece a mensagem "SELECT: Access denied for user 'www-data'@'localhost' (using password: NO)" o que será que pode ser?

[30] Comentário enviado por igor_peixoto em 29/10/2012 - 16:57h

poxa estou com o mesmo problema, achei mt util esta solução para fazer testes na empresa que atuo, sempre me enrolada um pouco com o squid 'puro' esta ferramenta irá ajudar muito.

Parabéns Felipe pela iniciativa.

[31] Comentário enviado por frangolinobogo em 03/11/2012 - 13:42h

Por favor, é a segunda versão que testo no virtualbox. Devo estar fazendo alguma orelhada. Na tela manager.php, quando clico no grupo e em adicionar computador, recebo a mensagem de selecionar grupo. Não consigo adicionar nenhum computador ao grupo, e em seguida à mensagem popup, a pagina vence o login e tem de ser recarregada. O banco tem de ser setado mesmo no conn_proxy.php, o script de instalação não faz esta parte. Obrigado, e parabéns pelo projeto. Pena que não sou programador para ajudar. O gerenciamento de usuários e regras sempre é um impecilho na implementação do squid. O webmin faz isto, mas instala um porção de coisas a mais e somente permite a edição de um departamento.

Marco Carraro, tem um script seu que consta um comando "rm -rf /*". É o limpeza e limpa_cache. Este limpa mesmo! rss

Obrigado

[32] Comentário enviado por neto_itape em 13/11/2012 - 14:25h


[28] Comentário enviado por felipetsi em 18/09/2012 - 17:21h:

Neto, você tem razão quanto ao nome do diretório dentro de www, é realmente fproxyadmin, eu me confundi.

Esclarecendo as suas colocações, caso eu realmente tenha interpretado corretamente, quando você executa o comando GRANT no prompt do Mysql, ele apenas irá atribuir a permissão ao usuário do Fproxyadmin no BD e alterar a senha para que você colocar. Este comando não altera nenhum arquivo do Frpoxyadmin. Portanto, depois de digitá-lo, você deve acessar (pode ser com o comando "vi") o arquivo /var/www/fproxyadmi/conn_proxy.php e atualizá-lo da seguinte forma:

<?php 
$hostname_proxy = "127.0.0.1";
$database_proxy = "proxy";
$username_proxy = "proxy";
$password_proxy = "123";
$proxydb = mysql_connect($hostname_proxy, $username_proxy, $password_proxy);
mysql_select_db($database_proxy,$proxydb);
?>


Daí você substitui o termo 123 pela senha que você colocou quando digitou o comando GRANT, lembrando de manter as aspas duplas.

Agora deve dá tudo certo na sua instalação.

Quanto ao script de instalação, sim era para ele fazer tudo isso. Me fale qual é a versão do seu SO, e com qual usuário que executou a instalação. Vou analisar.


Então caro amigo felipetsi como vc pode nos ajudar com relação ao problema que está acontecendo ... ou algum de vcs aqui testou num ubuntu e deu certo? Se for esse caso me avise que vou testa em outra distribuição diferente da do Debian. Abraços!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts