fproxy v83 — server proxy locale per la filtrazione del traffico http(s)

È stata pubblicata la versione 83 del proxy cache e antispam per uso personale con impostazioni flessibili.

Funzionalità principali (tutto configurabile):

  1. filtraggio dei contenuti indesiderati (liste bianche/nere per URL, divieto di cookie);
  2. memorizzazione cache forzata e illimitata dei dati ricevuti (comoda principalmente per immagini e script);
  3. 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);
  4. liste nere/bianche dei certificati e certificate pinning basato su lista;
  5. sostituzione dell'indirizzo IP/dominio/percorso/protocollo della richiesta HTTP secondo la configurazione (una versione estesa del /etc/hosts);
  6. 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):

  1. fproxy-dashboard ora ha l'opzione per mostrare le dimensioni dei contenuti in byte invece che in kilobyte;
  2. supporto per server difettosi che ignorano l'intestazione "Connection: close";
  3. supporto per server difettosi che restituiscono un'intestazione non corretta "Content-Encoding: identity";
  4. invio dell'opzione TLS ALPN;
  5. 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.
  6. semplificata la compilazione, ora c'è un Makefile invece degli script shell
  7. organizzati pacchetti .deb precompilati nel repository (per versioni Debian 8-12)
  8. modifiche al file di configurazione, non retrocompatibili
  9. 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.
  10. 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:

  1. supporto per callback CGI/FastCGI/.so per la lavorazione mitm dei contenuti ricevuti dai siti
  2. gestore di profili e configurazioni proxy
  3. gestione interattiva del controllo dei certificati dei siti remoti e delle liste di blocco

Fonte: linux.org.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster