A 83ª versão do proxy de cache e anti-spam para uso pessoal foi publicada com configurações flexíveis.
Funções principais (tudo configurável):
- filtragem de conteúdo indesejado (listas brancas/pretas de URLs, proibição de cookies);
- cache forçado e indefinido dos dados recebidos (principalmente útil para imagens e scripts);
- corrigir o conteúdo das páginas da web em tempo real (modificando o código-fonte em C, com um exemplo para substituir o conteúdo de páginas-clones do stackoverflow por um link para a original);
- listas brancas/pretas de certificados e pinagem de certificado conforme a lista;
- substituição do endereço IP/domínio/caminho/protocolo da requisição HTTP conforme a configuração (uma versão estendida de /etc/hosts);
- sniffer http/https.
Ideal para navegar em sites através de internet lenta ou em dispositivos lentos (graças aos pontos 1 e 2, para os quais tudo foi inicialmente criado), mas é útil em qualquer caso.
O proxy é dividido em três partes para segurança e simplificação da lógica de trabalho: servidor TLS (terminando conexões do navegador), módulo central do proxy e cliente, terminando conexões de saída.
O programa é destinado a uso personalizado, ou seja, todas as configurações e diretórios com os dados atuais do proxy estão associados a um usuário específico, ou até mesmo a um perfil de navegador específico. É tecnicamente possível executar o proxy como um demônio do sistema, mas nesse formato é difícil utilizar uma de suas principais funções — o cache agressivo de tudo, pois os dados em cache de cada perfil do navegador podem ser diferentes e devem ser isolados entre si por motivos de segurança.
Exemplo de lista de bloqueio:
deny nosub all share.yandex.ru browser-updater.yandex.net deny nosub all a.ria.ru # ? deny nosub spec vk.com query \/share.php deny nosub spec yastatic.net query \/pcode\/adfox\/loader.js query \/share2\/share.js deny nosub spec www.youtube.com query \/subscribe_widget deny nosub spec pano.img.ria.ru query \/adriver\/flashplagin\/movie.swf deny nosub spec a.ria.ru query \/ping deny nosub spec n-ssl.ria.ru query \/polling deny nosub spec apis.google.com query \/js\/plusone.js deny nosub spec yandex.ru pref \/clck\/safeclick\/ pref \/clck\/click\/ pref \/clck\/jclck\/ deny all spec query \/tnc # index.ru proxied counter exact \/tnc.js # index.ru proxied counter query \/pixel.gif # alguns spammers usam isso
Exemplo de lista de roteamento:
https://my.local.site set proxy none set target http://127.0.0.1:1234/localsite set http_host new.host:1234.intel.com resolve off set proxy socks5://127.0.0.1:3333
Caso haja atualização de uma versão anterior à 78, deve-se converter o cache: entre na diretório de trabalho do servidor proxy do usuário (uid/gid) e execute fproxy-cacheconv-78 (por padrão, este programa não é compilado).
Mudanças desde a última versão publicada (80):
- fproxy-dashboard agora possui uma opção para mostrar tamanhos de conteúdo em bytes em vez de kilobytes;
- suporte a servidores com bugs que ignoram o cabeçalho 'Connection: close';
- suporte a servidores com bugs que retornam um cabeçalho 'Content-Encoding: identity' incorreto;
- envio de opção TLS ALPN;
- melhoria no funcionamento do terminador TLS do lado externo (cliente): agora suporta não apenas TLS, mas também conexões normais, opera como um daemon independente recebendo solicitações do proxy principal pela rede, e pode também passar suas conexões de saída através de outro proxy, permitindo assim dividir as tarefas entre os nós em condições de mau desempenho da Internet e/ou necessidade de organizar a saída do tráfego em um servidor remoto com diferentes níveis de confiabilidade; além disso, a nova versão é mais conveniente para uso manual a partir da linha de comando como um cliente TLS de console com suporte a proxy;
- compilação simplificada, agora há um Makefile em vez de scripts shell
- pacotes .deb pré-compilados organizados no repositório (para versões Debian 8-12)
- mudanças no arquivo de configuração, incompatíveis com versões anteriores
- nova configuração para gerenciar o roteamento de solicitações, que combinou configurações anteriormente separadas de resolv e de redirecionamento de conexões de saída para um servidor remoto, e também obteve uma série de novas opções: agora é possível escolher através de qual cliente, qual proxy será enviado para cada URL (protocolo, domínio, porta, caminho), através de qual servidor DNS será feita a definição de seu endereço IP (incluindo a opção de delegar esta tarefa a um proxy externo HTTP ou SOCKS5), ou escrever o endereço manualmente, além de poder alterar o protocolo, a porta ou o prefixo do caminho da URL
- suporte adicionado a certificados SAN para endereços IP tanto no cliente quanto no servidor (navegadores deixaram de aceitar endereços IP em CommonName há algum tempo)
Planos para o futuro:
- suporte para hooks CGI/FastCGI/.so para manipulação MITM do conteúdo recebido dos sites
- gerenciador de perfis e configurações de proxy
- controle interativo para verificação de certificados de sites remotos e listas de bloqueio
Fonte: linux.org.ru
