È stata pubblicata la versione 83 del proxy cache e antispam per uso personale con impostazioni flessibili.
Funzionalità principali (tutto configurabile):
- filtraggio dei contenuti indesiderati (liste bianche/nere per URL, divieto di cookie);
- memorizzazione cache forzata e illimitata dei dati ricevuti (comoda principalmente per immagini e script);
- correzione dei contenuti delle pagine web al volo (modificando il sorgente in C, è disponibile un esempio per sostituire il contenuto delle pagine clone di stackoverflow con un link all'originale);
- liste nere/bianche dei certificati e certificate pinning basato su lista;
- sostituzione dell'indirizzo IP/dominio/percorso/protocollo della richiesta HTTP secondo la configurazione (una versione estesa del /etc/hosts);
- sniffer http/https.
Si adatta perfettamente alla navigazione su siti tramite una connessione internet lenta o su un dispositivo lento (grazie ai punti 1 e 2, per i quali tutto è stato originariamente progettato), ma è comunque utile in qualsiasi caso.
Il proxy è suddiviso in tre parti per motivi di sicurezza e per semplificare la logica di funzionamento: server TLS (che termina le connessioni del browser), modulo centrale del proxy e client, che termina le connessioni in uscita.
Il programma è progettato per un utilizzo personalizzato, cioè tutte le configurazioni e la directory dei dati attuali del server proxy sono legate a un utente specifico, o addirittura a un profilo del browser specifico. È tecnicamente possibile avviare il proxy come daemon globale, ma in tal modo risulta difficile utilizzare una delle sue principali funzioni: la cache aggressiva di tutto, poiché i dati memorizzati nella cache di ciascun profilo del browser possono essere unici e devono essere isolati l'uno dall'altro per motivi di sicurezza.
Esempio di lista di blocco:
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 # alcuni spammer usano questo
Esempio di lista di routing:
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
In caso di aggiornamento da una versione precedente alla 78, è necessario convertire la cache: accedere alla directory di lavoro del proxy dell'utente (uid/gid) e eseguire fproxy-cacheconv-78 (per impostazione predefinita, questo programma non viene compilato).
Modifiche rispetto all'ultima versione pubblicata (80):
- fproxy-dashboard ora ha l'opzione per mostrare le dimensioni dei contenuti in byte invece che in kilobyte;
- supporto per server difettosi che ignorano l'intestazione "Connection: close";
- supporto per server difettosi che restituiscono un'intestazione non corretta "Content-Encoding: identity";
- invio dell'opzione TLS ALPN;
- miglioramento del funzionamento del terminatore TLS sul lato esterno (client): ora supporta non solo TLS, ma anche connessioni normali, può operare come un daemon indipendente ricevendo richieste dal proxy principale sulla rete, e può anche inoltrare le proprie connessioni in uscita attraverso un altro proxy, consentendo così di suddividere le attività in modo flessibile tra i nodi in condizioni di scarsa connessione Internet e/o in caso di necessità di organizzare l'uscita del traffico su un server remoto di varia affidabilità; inoltre, la nuova versione è più comoda per l'uso manuale dalla riga di comando come client TLS da console con supporto per il proxy.
- semplificata la compilazione, ora c'è un Makefile invece degli script shell
- organizzati pacchetti .deb precompilati nel repository (per versioni Debian 8-12)
- modifiche al file di configurazione, non retrocompatibili
- nuova configurazione per la gestione del routing delle richieste, che unisce le precedenti configurazioni separate di risoluzione e di instradamento delle connessioni in uscita a un server remoto, e ha ricevuto vari nuovi parametri: ora è possibile scegliere per ogni URL (protocollo, dominio, porta, percorso) quale client e quale proxy utilizzerà, attraverso quale server DNS verrà effettuata la risoluzione del suo indirizzo IP (inclusa l'opzione di delegare questo compito a un proxy esterno HTTP o SOCKS5), oppure indicare manualmente l'indirizzo, e sostituire il protocollo, la porta o il prefisso del percorso dell'URL.
- supporto per certificati SAN per indirizzi IP sia nel client che nel server (i browser da tempo non accettano più indirizzi IP nel CommonName)
Prossimi progetti:
- supporto per callback CGI/FastCGI/.so per la lavorazione mitm dei contenuti ricevuti dai siti
- gestore di profili e configurazioni proxy
- gestione interattiva del controllo dei certificati dei siti remoti e delle liste di blocco
Fonte: linux.org.ru
