fproxy v83 — lokalny serwer proxy do filtrowania ruchu http(s)

Opublikowana 83. wersja serwera proxy do cache'owania i ochrony przed spamem do użytku osobistego z elastycznymi ustawieniami.

Główne funkcje (wszystko konfigurowalne):

  1. filtrowanie niepożądanej treści (białe/czarne listy adresów URL, zakaz plików cookie);
  2. wymuszone i bezterminowe cache'owanie otrzymanych danych (głównie przydatne dla obrazów i skryptów);
  3. korygowanie zawartości stron internetowych w locie (poprzez edytowanie kodu źródłowego w C, istnieje przykład zamiany zawartości klonowanych stron stackoverflow na link do oryginału);
  4. czarne/białe listy certyfikatów i certificate pinning wg listy;
  5. zmiana adresu IP/domeny/ścieżki/protokołu żądania http wg konfiguracji (taki rozszerzony wariant /etc/hosts);
  6. sniffer http/https.

Świetnie nadaje się do przeglądania stron internetowych przez wolny internet lub na wolnym urządzeniu (dzięki pkt 1 i 2, dla których wszystko zostało pierwotnie zaplanowane), ale ogólnie jest przydatne w każdej sytuacji.

Serwer proxy w celach bezpieczeństwa i uproszczenia logiki działania podzielony jest na trzy części: serwer TLS (kończący połączenia przeglądarki), centralny moduł proxy i klient, kończący połączenia wychodzące.

Program jest zaprojektowany do użytku personalizowanego, co oznacza, że wszystkie konfiguracje i katalog z bieżącymi danymi serwera proxy są przypisane do konkretnego użytkownika lub nawet do konkretnego profilu przeglądarki. Uruchomienie proxy jako systemowego demona jest technicznie możliwe, ale w takim przypadku trudno użyć jednej z jego głównych funkcji - agresywnego cache'owania wszystkiego, ponieważ dane zcache'owane dla każdego profilu przeglądarki mogą być różne i muszą być izolowane dla bezpieczeństwa.

Przykład listy blokowania:

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 # niektórzy spamerzy używają tego

Przykład listy routingu:

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

W przypadku aktualizacji z wersji starszej niż 78 należy przekonwertować pamięć podręczną: wejść do katalogu roboczego serwera proxy użytkownika (uid/gid) serwera proxy i wykonać fproxy-cacheconv-78 (domyślnie ten program nie jest kompilowany).

Zmiany od ostatniej opublikowanej wersji (80):

  1. fproxy-dashboard teraz ma opcję wyświetlania rozmiarów zawartości w bajtach, a nie w kilobajtach;
  2. wsparcie dla wadliwych serwerów, ignorujących nagłówek „Connection: close”;
  3. wsparcie dla wadliwych serwerów, przekazujących nieprawidłowy nagłówek „Content-Encoding: identity”;
  4. wysyłanie opcji TLS ALPN;
  5. ulepszona praca zewnętrznego terminatora TLS (klienta): teraz obsługuje nie tylko TLS, ale i zwykłe połączenia, działa jako niezależny demon, przyjmujący żądania od głównego proxy przez sieć, a także może przesyłać swoje wychodzące połączenia przez inne proxy, co pozwala elastycznie rozdzielać zadania między węzłami w warunkach słabego połączenia internetowego i/lub potrzeby zorganizowania „wyjścia” ruchu gdzieś na zdalnym serwerze o różnym stopniu zaufania; nowa wersja jest także bardziej przydatna do ręcznego użycia z wiersza poleceń jako konsolowy klient TLS z obsługą proxy;
  6. uproszczono kompilację, teraz jest Makefile zamiast skryptów shellowych
  7. zorganizowano wstępnie zbudowane pakiety .deb w repozytorium (dla wersji Debian 8-12)
  8. zmiany w pliku konfiguracyjnym, niekompatybilne wstecznie
  9. nowa konfiguracja do zarządzania routowaniem żądań, łącząca wcześniej oddzielne konfiguracje resolv i włączania tunelowania wychodzących połączeń do zdalnego serwera, a także zyskała szereg nowych opcji: teraz można dla każdego url-a (protokół, domena, port, ścieżka) wybierać, przez którego klienta i jakie proxy będzie wysłane, przez którego serwera DNS będzie przeprowadzana identyfikacja jego adresu IP (w tym opcjonalne delegowanie tego zadania do zewnętrznego serwera proxy http lub socks5), lub ręcznie wpisać adres oraz zmienić protokół, port lub prefiks ścieżki url-a
  10. dodano wsparcie dla certyfikatów SAN dla adresów IP zarówno w kliencie, jak i w serwerze (przeglądarki od pewnego czasu przestały akceptować adresy IP w CommonName)

W planach na przyszłość:

  1. wsparcie CGI/FastCGI/.so haków dla przetwarzania MITM otrzymanego z witryn treści
  2. menedżer profili i konfiguracji proxy
  3. interaktywne zarządzanie weryfikacją certyfikatów zdalnych witryn i listami blokad

Źródło: linux.org.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster