Portál AbcLinuxu, 1. května 2025 00:24

proxyhrátky

4.6.2024 11:58 | Přečteno: 2306× | Výběrový blog

Mám docela rád proxy. Na web používám většinou kombinaci klient <--> squid <--> privoxy <--> server. Když je potřeba, strčím mezi privoxy a server ještě tor. Vyjímečně používám taky mitmdump(na zachytávání konktrétního obsahu) nebo proxychains(pro programy co z nějakého důvodu připojení přes proxy odmítají nebo ho vůbec neumí). Přijde mi to věrnější unixové filozofii, kdy se složitý úkol rozdělí na víc částí. V případě problému se dá takto snadněji dohledat a vyřešit příčina. Squid jenom kešuje, privoxy jenom filtruje. Nevidím důvod proč takovýma věcma zatěžovat přímo prohlížeč, který to navíc ani neumí dělat pořádně. Prohlížeč se má starat o vykreslování stránek na obrazovku a přímou interakci s uživatelem a né si hrát na videopřehrávač, antivirus, editor PDF dokumentů nebo webovou cache nebo na jánevímcovšecko. Hlavní výhoda proxy je ale ta, že uživatel má plnou kontrolu nad celou komunikací. Může si libovolně filtrovat, měnit obsah, přesměrovávat, může si podle libosti nastavit co a jak dlouho se má kešovat. Koho víc baví sledovat v reálném čase spíš provoz jak nějakou pitomou animovanou ikonu, ten krásně vidí v logu jak to celé vlastně funguje pod kapotou. Taková proxy navíc nemusí být omezená jenom pro localhosta. Můžou to taky využívat další počítače v síti když by měly zájem.

Privoxy považuju za jeden z nejvychytanějších nástrojů na webovou hygienu. V kombinaci s pár rozšířeníma do prohlížeče to dokáže snížit objem sraček co uživatelům stříkají dnešní weby do paštěky na jakžtakž únosnou míru. Některé servery nám taky odmítají vydat obsah dokud se jim nepošlou ty "správné" hlavičky nebo nemáme tu "správnou" ip adresu.

Na archlinuxu je bohužel distribuční balíček trochu přirozbitý. Neumí zobrazovat statistiky, neumí pořádně logovat, no hlavně neumí SSL! Překompiloval jsem si ho s volbama
--enable-compression --with-openssl --enable-extended-statistics --enable-external-filters --enable-pcre-host-patterns --with-brotli
Kdo neví jak se to dělá, na internetu se povalujou návody. Taky bylo potřeba trochu upravit systemd service
[Service]
SuccessExitStatus=15
StandardOutput=append:/var/log/privoxy.log
StandardError=truncate:/var/log/privoxy.log
Loguje to netuším proč jenom do chybového výstupu, ale to asi ničemu nevadí. Bez této úpravy to nelogovalo vůbec. Teď bylo potřeba si vytvořit nějaký důvěryhodný certifikát. Kdysi jsem půl dne zápasil s tím proč sakra nefunguje ssl, abych nakonec v němém úžasu zjistil, že ten stroj jenom neměl nastavený přesný čas. Defaultně mají všecky certifikáty časové omezení. Abych vyloučil podobné budoucí komplikace, jsem ho vytvořil jako "nafurt" s falešným časem.
a=localhost; faketime '1970-01-01 00:00:00' openssl req -x509 -newkey rsa:4096 -subj "/CN=$a" -out $a.pem -keyout $a.pem -days $((365*1000)) -nodes && openssl x509 -text -noout -in $a.pem
Sekurity experti si nejspíš teď budou rvát vlasy, ale co - certifikát je náš, tak ho můžem zvesela nainstalovat do systému, aby mu programy věřily.
mv localhost.pem /etc/ca-certificates/trust-source/anchors/
update-ca-trust
Do adresáře /etc/privoxy stačí udělat symlink
ln -s /etc/ca-certificates/trust-source/anchors/localhost.pem /etc/privoxy/localhost.pem
Jako další krok je potreba vytvořit nějaký adresář, do kterého si privoxy bude moct odkládat certifikáty pro jednotlivé servery. Takovou jakby ssl cache. Neumí si ho vytvořit automaticky. Naštěstí je to potřeba udělat jenom jednou po instalaci. Spíš jsem na to ale asi zapomněl během úprav PKGBUILD.
mkdir -p /var/privoxy/certs && chown -cR privoxy:privoxy /var/privoxy
Konfigurák /etc/privoxy/conf je bohatě okomentářovaný tak je hned jasné co která volba dělá. A ona vůbec celá ta integrovaná dokumentace je velkolepá. S něčím podobným už dneska málokdo ztrácí čas. Se hned pozná stará škola! Pro začátek stačí několik málo základních změn. Default action jsem zaremoval a nechal jsem jenom ten uživatelský, protože už ve výchozím nastavení toho privoxy blokuje na můj vkus moc a některé weby odmítaly správně fungovat.
#/etc/privoxy/conf
actionsfile user.action
filterfile user.filter
debug     1
debug  1024
debug  4096
debug  8192
debug 65536
listen-address  127.0.0.1:8118
ca-cert-file /etc/privoxy/localhost.pem
ca-key-file /etc/privoxy/localhost.pem
certificate-directory /var/privoxy/certs
trusted-cas-file /etc/ssl/cert.pem
Ty debug volby nejsou nutné, no bez nich bude ten log prázdný. Aby ten self-mitm fungoval, je potřeba ještě definovat jména serverů. Chceme beztak https inspection všude, takže lomítko. url bez lomítka jsem ještě neviděl.
#/etc/privoxy/user.action
{+https-inspection}
/
přesměrování onion domén na tor
{+forward-override{forward-socks5t localhost:9050 .}}
.onion
občas se stane, že má některý server rozbité ssl. Tu může pomoct
{+ignore-certificate-errors}
rozbityserver.com
Tak a základ by měl fungovat. Zkouška ...
echo quit | openssl s_client -proxy localhost:8118 -servername abclinuxu.cz -connect abclinuxu.cz:443
Těch možností co tam jde všecko nastavit jsou mraky. Dokonce to umí takovou exotiku jak je třeba změna pořadí odesílaných hlaviček. To některé paranoidní servery taky můžou sledovat. Další docela příjemnou vlastností je, že se ty filtry a akce dají editovat za běhu a není potřeba restartovat celou službu. Kdysi v dávnověku tu kdosi napsal hezký seriál. Za těch skoro 20 let se to nezměnilo. Určitě stojí za přečtení. Veškerý software v počítači mi takto může fungovat přes privoxy kromě jediné výjímky. Firefox! Bojoval jsem s ním jak lev, jak naimportovat certifikát systémově pro všecky uživatele, kejkle s policies.json nefungujou. Pokaždé jsem se dostal leda k nicneříkajícímu:
about:policies#errors
Unable to add certificate - /etc/ca-certificates/trust-source/anchors/localhost.pem
Mozillí software prostě odmítá respektovat systémové certifikáty a uživatel si ho tam musí ručně naklikat sám. Kdybyste někdo věděl jak ten firefox kreknout, byl bych vděčný. Barvičky v terminálu zpřehledňujou čtení. Doporučuju proto taky mrknout na log-parser. Volám to pomocí funkce přímo z bashrc
privoxy-log() { tail -F /var/log/privoxy.log | perl ~/scripts/privoxy-log-parser.pl; }
       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

4.6.2024 13:41 ~
Rozbalit Rozbalit vše Re: proxyhrátky
Odpovědět | Sbalit | Link | Blokovat | Admin
Na localu selfsigned certifikat je uplne v pohode, ono i tak jde v prvni rade o sifrovany prenos nez nejakou onanii jestli kecas s tim "pravym" serverem. To te zajima tak pri internetovych platbach, na bezne brouzdani pohoda.
4.6.2024 17:50 RealJ | skóre: 8
Rozbalit Rozbalit vše Re: proxyhrátky
Tohle budes tvrdit do doby nez ti nekdo podstrci jiny server a ty se budes divit proc ti to heslo nefunguje… vlastni CA a klidne si udelam certifikatu kolik chci a jake chci - furt lepsi nez jakykoliv selfsigned (tedy pokud pokazde neoverujes fingerprint)
4.6.2024 19:52 FE/BE re$en1
Rozbalit Rozbalit vše Re: proxyhrátky
Jake heslo? co to meles? To neni nejaky wordprc admin ale proxy pro http starozitnosti aby byly zabaleny do https na lokalu. Rozdil mezi vlastni CA a selfsigned klicem nahozenym do trustu je v podstate zadny.
5.6.2024 03:49 RealJ | skóre: 8
Rozbalit Rozbalit vše Re: proxyhrátky
si klidne pridavej selfsigned certidikaty do trustu, je to stejna kokotina jako to tve fe/be reseni pro 5 stranek ktere jsi doted nikomu neukazal.
5.6.2024 07:06 FE/BE re$en1
Rozbalit Rozbalit vše Re: proxyhrátky
A co tam potrebujes ukazat? 5 html souboru a jeden CSS? :-D
6.6.2024 19:30 ...
Rozbalit Rozbalit vše Re: proxyhrátky
Odpovědět | Sbalit | Link | Blokovat | Admin
no a neco konkretniho, k cemu je to dobry? vidim akorat hroooooooooooooooooomadu srani s necim, co se resit vubec nemusi... co to konkretne prinese dobryho a jak to zaplati/ospravedlni vsechno to srani navic? jakoze, taky jsem pouzival pocitac bez Xek jen tak z hecu, je tohle v podobny kategorii, nebo ta neurcita argumentace, jak prohlizece nemaji delat, co uz ale stejne delaji a jak to z nejakyho duvodu umi spatne, je myslena vazne?
7.6.2024 06:14 jejda | skóre: 25 | blog: jejda
Rozbalit Rozbalit vše Re: proxyhrátky
No zas tak moc veliké sraní s tím není. Musím se ale přiznat, že mám počítač spíš jako takovou technologickou hračku. Neživí mě to, ani na to nemám školy. Jsem si tak říkal, že třeba nejsu sám koho to baví se v tom vrtat, zkoušet, objevovat. Proto ty svoje pokusy občas zveřejňuju. To k čemu je proxy dobrá tam taky píšu. Samozřejmě že se dá přežít aji bez proxy. Když ale narazíš na nějaké (většinou uměle vytvořené) omezení a limity, proxy to někdy dokáže zachránit. S těma prohlížečema to byl spíš jenom takový povzdech. On vůbec celý ten dnešní ekosystém okolo www mi přijde už strašně přeplácaný, neohrabaný, náchylný na zbytečné chyby, běžný smrtelník už se v tom všem těžko orientuje. Dospělo to postupně do takové fáze, že spousta lidí už pomalu přestává tušit, jak by si bez www pomocí internetu mezi sebou mohli vyměňovat informace. Ze zoufalství se tak dezorientovaní uživatelé vrhají do náručí velkých korporací a poskytovatelů služeb kteří fungujou vlastně jenom díky tomu, že jsou věci koncepčně špatně. To že má potom takový web browser stovky MB a je pomalu složitější jak celý operační systém, tomu na eleganci taky moc nepřidává. Mám rád software který si mě postupně vychovává, ukazuje mi způsoby, cesty, možnosti, funguje maximálně transparentně. Z velikých web browserů mám ale pocit, že se naoko tváří jak kompletní univerzální balík řešení na všecko, no spouta důležitých detailů je stejně záměrně schovaných kdesi hluboko pod povrchem a ve finále člověk zjistí, že ani těch možností tam zdaleka nemá tolik jak to na první pohled vypadalo.
7.6.2024 11:33 ...
Rozbalit Rozbalit vše Re: proxyhrátky
okay, je to hracka :) a to je supr, kdo si hraje, nezlobi - ted jsem ale zvedavej na nejakej priklad nejakyho limitu, kde snadno pomuze ta proxy, protoze to se muze i hodit, dik :)
7.6.2024 21:37 jejda | skóre: 25 | blog: jejda
Rozbalit Rozbalit vše Re: proxyhrátky
Tak někam lezu napřímo, jinam jedině přes tor nebo jinačí vzdálenou proxy, aby server neviděl moji pravou IP. Jasně, namítneš že na toto jde taky použít třeba proxy autoconfig. Na firefoxu se toto dá naklikat celkem snadno, ale prohlížeče s jádrem chromium je potřeba spouštět takovým vcelku ošklivým příkazem. Například:
vivaldi --proxy-pac-url='data:application/x-javascript-config;base64,'$(base64 -w0 /cesta/k/proxy.pac)
Když použiju lokální privoxy, tak se mi to přesměrovávání řeší samo automaticky bez ohledu na to jaký browser používám. Navíc při záznamech do té privoxí actionfile nemusí uživatel umět programovat javaskript. Přijde mi to teda jednodušší.

Nebo druhý příklad. Na prohlížení map používám často marbles custom mapama. Většina serverů odkud stahuju tiles (to jsou takové ty obrázky 256x256 ze kterých marble skládá mapu) ofuky nedělá, Třeba google, bing, thunderforest, esri, yandex jsou v pohodě. No když zkusíš stáhnout tiles třeba od mapboxu, nokie, stadiamaps nebo seznamu, narazíš na to že bez správného referera máš smůlu. Marble bohužel neumí odesílat na server custom http hlavičky, takže jsme opět odkázaní na pomoc naší proxy, která pro vybrané servery vyčaruje potřebný referer a preventivně rači změní taky user-agent, hlavičky správně seřadí aby server nepanikařil a teprv potom to šlape. Nemám tušení jak bych toto řešil bez proxy. C++ neumím, abych si to do marble doprogramoval.

Nebo třeba takový squid. Osobně to používám jenom pro sebe, ale máš lidi kteří se starají o celou síť kde je třeba několik stovek uživatelů. Tam taková cache dokáže ušetřit hromadu přenášených dat a taky se to z ní uživatelům načítá pocitově rychlejš. Na místech kde není moc rychlý internet by tu linku takové množství požadavků jistě zadusilo. Proxy cache jim to surfování může udělat trochu snesitelným.

Nevím co bys chtěl slyšet za konkrétní příklady. Každý uživatel má jinačí požadavky, tak si to musí každý nastavit podle sebe a né mávnout rukou s tím že "to nejde".

20.6.2024 13:17 spam | blog: genericbucket
Rozbalit Rozbalit vše spam
Odpovědět | Sbalit | Link | Blokovat | Admin
Příloha:
spam odstraněn

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.