Enviado em 13/09/2012 - 10:30h
Pessoal, venho a algum tempo pesquisando sobre a implementação de um servidor proxy.
Após conhecer como funciona e quais são os tipos eu estabeleci uma meta para implantar em uma empresa. Um servidor proxy transparente com controle de tráfego http e https com regras baseadas em ips.
O problema inicial estava em capturar a tela inicial do usuario, devem existir jeitos melhores de se fazer isso, mas eu fiz o seguinte: levantei um servidor web apache e coloquei ele escutando conexões nas portas 81, 82 e 443. Fiz uma regra de firewall que inicialmente redireciona todos os acessos à Internet para as portas 82 (http) e 443 (https). Nas portas 82 e 443 eu apliquei uma regra no apache que reescreve a url que tentou acessá-lo redirecionando para uma pagina na porta 81 que contem uma pagina indicando os termos de uso do proxy e contem um botao aceito que chama um script php que libera o acesso à Internet, e abre uma popup que quando fechada ativa o redirecionamento para 82 e 443 novamente.
Pretendo melhorar este metodo mas por enquanto ele esta me atendendo. O problema agora está em controlar o tráfego https pelo proxy transparente, seu que não é possível, então pensei o seguinte: eu poderia redirecionar todo o tráfego com destino a porta 443 para uma página (semelhante ao que acontece com a pagina inicial) que contem uma explicação que o uso de sites https estaria desativado por padrao, e que para usá-lo a pessoa teria que configurar o proxy no navegador.
Configurando no navegador, mesmo se o proxy estiver configurado como transparente ele responde ao trafego https e consegue controlá-lo. Só que pensei também em construir um aplicativo em c++ e qt que configure o proxy nos clientes, e disponibilizar o download nesta página, porém não sei como eu poderia implementar a configuração do proxy neste aplicativo, pensei em chamar um comando via função system() mas não encontrei comando que configure o proxy no windows desta maneira, para linux seria mais tranquilo.
Alguém tem uma sugestão ou está com problema semelhante ao meu e quer compartilhar da minha solução e me ajudar a melhorá-la. Desde já obrigado.
Após conhecer como funciona e quais são os tipos eu estabeleci uma meta para implantar em uma empresa. Um servidor proxy transparente com controle de tráfego http e https com regras baseadas em ips.
O problema inicial estava em capturar a tela inicial do usuario, devem existir jeitos melhores de se fazer isso, mas eu fiz o seguinte: levantei um servidor web apache e coloquei ele escutando conexões nas portas 81, 82 e 443. Fiz uma regra de firewall que inicialmente redireciona todos os acessos à Internet para as portas 82 (http) e 443 (https). Nas portas 82 e 443 eu apliquei uma regra no apache que reescreve a url que tentou acessá-lo redirecionando para uma pagina na porta 81 que contem uma pagina indicando os termos de uso do proxy e contem um botao aceito que chama um script php que libera o acesso à Internet, e abre uma popup que quando fechada ativa o redirecionamento para 82 e 443 novamente.
Pretendo melhorar este metodo mas por enquanto ele esta me atendendo. O problema agora está em controlar o tráfego https pelo proxy transparente, seu que não é possível, então pensei o seguinte: eu poderia redirecionar todo o tráfego com destino a porta 443 para uma página (semelhante ao que acontece com a pagina inicial) que contem uma explicação que o uso de sites https estaria desativado por padrao, e que para usá-lo a pessoa teria que configurar o proxy no navegador.
Configurando no navegador, mesmo se o proxy estiver configurado como transparente ele responde ao trafego https e consegue controlá-lo. Só que pensei também em construir um aplicativo em c++ e qt que configure o proxy nos clientes, e disponibilizar o download nesta página, porém não sei como eu poderia implementar a configuração do proxy neste aplicativo, pensei em chamar um comando via função system() mas não encontrei comando que configure o proxy no windows desta maneira, para linux seria mais tranquilo.
Alguém tem uma sugestão ou está com problema semelhante ao meu e quer compartilhar da minha solução e me ajudar a melhorá-la. Desde já obrigado.