Portál AbcLinuxu, 6. června 2024 19:51

Automatická konfigurace proxy serveru v síti

28.5.2019 23:31 | Přečteno: 4681× | linux | Výběrový blog | poslední úprava: 10.6.2019 08:10

Setkávám se s tím, že mnozí toto neznají, nebo ti, co to znají, nevědí, jak to pořádně funguje.

Proč automatická konfigurace proxy?

Je to jednoduché, existují firemní sítě, kde uživatelé nemají přímý přístup na internet a jediný způsob, jak se dostat ven, je přes proxy server. Je to celkem standardní politika. Jenomže jak klientům říci, kde je proxy server?

Ano, můžeme ho na PC nastavit natvrdo, buď nějakou distribucí nastavení v rámci třeba Active Directory politik, nebo jinak. Problém ale je, že uživatelé mají třeba notebooky. Jak tedy zajistit, aby notebookáři fungoval internet někde na freewifi, doma apod.? Můžeme mu dát dva webové prohlížeče, jeden, co bude nastaven na proxy, druhý, který ne. To je ale pro uživatele i pro správce značně nekomfortní (distribuce oblíbených položek apod.). Další možnost je do PC nainstalovat nějaký Network Profiler (Netsetman apod.), který umožňuje měnit i nastavení proxyny.

Všechny tyto nápady nejsou úplně ideální. Vyžadují nějakou účast admina, nebo interakci uživatele a někdy i nástroj třetí strany. To je samozřejmě špatně.


Jak funguje automatické konfigurace proxy?

Krásný popis je na této adrese : findproxyforurl.com.
Jak je vidět, nastavit automatickou konfiguraci lze pomocí DNS a DHCP. Podpora DHCP není ve všech prohlížečích, podpora DNS je. Z toho důvodu použijeme řešení pomocí DNS.

Pokud tedy ve firmě provozujeme nějakou doménu (Active Directory, např.: corp.devaine.cz), nebo používáme nějaký dns suffix, tak prohlížeč se tedy po spuštění snaží najít konfigurační soubor na jedné z těchto adres:

Nastavení je velmi jednoduchá věc, která se skládá ze čtyřech kroků :


Nastavení DNS záznamu

Na DNS serveru je teda potřeba vytvořit DNS záznam "A", který správně směruje na web server, kde je uložen "wpad.dat" soubor.

Pokud používáme CNAME, tak pozor, třeba java nechodí na wpad přes CNAME, ale přes koncový "A" záznam. V takovém případě musí být tedy server/wpad dostupný z obou dns adres, jinak něco nemusí fungovat. Pokud tedy např. vytvoříme dns záznam jako toto :

proxy-cluster.corp.devaine.cz  A  192.168.1.1
wpad.corp.devaine.cz  CNAME web-cluster.corp.devaine.cz
Tak wpad.dat musí být dostupný na těchto adresách :
http://wpad/wpad.dat
http://wpad.corp.devaine.cz/wpad.dat
http://web-cluster.corp.devaine.cz/wpad.dat

Případ s "http://wpad/wpad.dat" by neměl nikdy nastat. Pokud ale nepoužíváme dns suffix, tak nejspíše nastane.

UPDATE: dle RFC 3040 by mělo být možné pro automatickou detekci používat toto :

V našem případě by tedy vhodné dns záznamy měly vypadat takto :
wpad.corp.devaine.cz  A  192.168.1.1
_wpad._tcp  SRV   0 0 80 wpad.corp.devaine.cz
IN      TXT    "service: wpad:http://wpad.corp.devaine.cz/wpad.dat"


Vytvoření konfiguračního souboru

Není to nic složitého, je to obyčejný txt, kde si nadefinujeme výjimky, které mají být směrovány bez proxy na přímo do sítě (v našem případě vše v naší lokální doméně "corp.devaine.cz") a na jaký proxy server má jít zbytek komunikace (v našem případě na proxy serveru "192.168.1.254:3180")

function FindProxyForURL(url, host)
    {
     if (isPlainHostName(host) ||
        dnsDomainIs(host, ".corp.devaine.cz") ||
        isInNet(host, "127.0.0.1", "255.255.255.255") ||
        isInNet(host, "192.168.0.0", "255.255.0.0"))
        isInNet(myIpAddress(), "10.0.0.0", "255.255.255.0")
        return "DIRECT";
     else
        return "PROXY 192.168.1.254:3128";
    }

Vysvětlivky :

Příklad konfiguračního souboru je pro ipv4, kdo používá ipv6, je třeba jí též zohlednit, a to i pro localhost.
Provoz lze řídit i na základě url, nebo protokolu, viz další příklady : Code Snippets


Publikace konfiguračního souboru

Jako poslední věc je potřeba umístit soubor na web server, který je potřeba nastavit tak, aby byl dostupný ze všech DNS, které by mohl prohlížeč aj. aplikace volat.

Dále by měl soubor servírovat jako mime type "application/x-ns-proxy-autoconfig". Není to tedy úplně nutné, ale je to standard a špatným nastavením mime type bychom si mohli někde(třeba u nějakých striktních aplikací) vytvořit problém.

Nastavení na nginx serveru pak vypadá takto :

server {
        listen   80;
        server_name  wpad.corp.devaine.cz wpad web-cluster.corp.devaine.cz;

        root /var/www/wpad;
        location / {
            types {
                application/x-ns-proxy-autoconfig    dat;
            }

        }
        access_log  /var/log/nginx/wpad.corp.devaine.cz.access.log;
        error_log /var/log/nginx/wpad.corp.devaine.cz.error.log;
}

Nastavení web prohlížeče

Internet Explorer má ve výchozím nastavení povolenou automatickou detekci :
IE Proxy

Chrome používá nastavení ze systému, tedy v případě win z Internet Exploreru.

Firefox má svou vlastní konfiguraci a ta není ve výchozím nastavení na automatické detekci. U Firefoxu tedy bude nutné použít distribuci vlastního nastavení. U Firefoxu ESR by od verze 60 mělo fungovat GPO (Group Policy v rámci Active Directory), ale nezkoušel jsem (jiné priority). Další možností je distribuce vlastního nastavení pomocí vlastního konfiguračního souboru, viz tento článek : Firefox - centrální konfigurace v síti.
Firefox Proxy


Závěr

A to je prosím vše. Takto jednoduše funguje směrování komunikace klientů v síti na proxy server.

Samozřejmě v dnešní době nemusí všechny app toto podporovat. V takovém případě nezbývá, než na firewallu povolit konkrétní port na konkrétní službu, aby se na ní klienti dostali napřímo bez proxyny.

Zdar Max

PS: Původně jsem chtěl psát jen o automatickém nastavení proxy v síti, ale když jsem zjistil, že u FF se musím zmínit o distribuci konfigurace, tak jsem si řekl, že bych toto měl objasnit v nějakém zápisku, co vydám dřív [Firefox - centrální konfigurace v síti]. Mno a vzhledem k tomu, že k distribuci nastavení používám Inno Setup, tak jsem si říkal, že bych měl před vydáním zápisku o FF vydat zápisek o Inno Setupu [Inno Setup : OSS instalátor pro windows]. To zní docela úchylně... :)

       

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 (3) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

msk avatar 29.5.2019 11:02 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Odpovědět | Sbalit | Link | Blokovat | Admin
Aku to ma vyhodu proti transparentnej proxy riesenej nat-om?
Max avatar 29.5.2019 11:26 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
U transparentní proxy musíš podvrhovat certifikáty. Aby prohlížeč nepeskoval, tak na každý dns musíš vygenerovat cert, takže zátěž pro server. Jenomže i v takovém případě ti nemusí weby fungovat, protože DNS CAA.
Zdar Max
Měl jsem sen ... :(
msk avatar 29.5.2019 14:27 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Hm, ja som mal na mysli transparentnu http proxy, proxyovanie https trafficu pomocou podvrhovania certifikatov povazujem za zvrhlost najvacsiu a nikdy som neimplementoval, tak mi to nedoslo.
Josef Kufner avatar 29.5.2019 14:34 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Spíš jde o to, že u HTTPS řekne prohlížeč CONNECT a přes proxy se naváže spojení přímo, tedy do dat ani certifikátů po cestě nic nezasahuje. V případě transparentní proxy prohlížeč neví, že se má chovat jinak, a celé to jde k šípku.
Hello world ! Segmentation fault (core dumped)
Max avatar 29.5.2019 14:46 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Transparentní proxy je právě podvrhování certifikátů. Prohlížeč neví, že jde přes proxy, protože mu to nutíš natem. Kromě milion nevýhod máš výhodu v tom, že vidíš do https komunikace. Když jdeš přes netransparentní (prohlížeč ví, že jde přes proxy), tak certifikáty nepodvrhuješ, vše se chová korektně, ale na proxyně nevidíš do https komunikace a nemůžeš jí tak pěkně filtrovat jako u http.
Pokud myslíš transparentní jen pro http a netransparentní pro https, tak nechápu smysl nasazení k té netransparentní i tu transparentní.
Takže stále nevím, jak jsi to myslel, když se ptáš na transparentní proxynu a přitom nechceš podvrhovat certifikáty.
Zdar Max
Měl jsem sen ... :(
msk avatar 29.5.2019 15:17 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Ano, takto som to mal chvilu nasadene (transparentnu na http, https slo napriamo). Je to ale 12 rokov, odvtedy situaciu okolo proxy nesledujem pretoze skoro vsetko preslo na https a do toho za normalnych okolnosti nie je vidiet *1.

*1 ano viem ze to existuje a ze sa to tak bezne v korporaciach pouziva, ja osobne to ale povazujem za zlocin za ktory by mal byt trest smrti (myslim cumiet do sifrovanej komunikacie a podvrhovat certifikaty).
Max avatar 29.5.2019 15:23 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Proto je potřeba používat netransparentní proxynu. Sice nelze provoz moc dobře filtrovat, ale lze jej filtrovat aspoň na základně adres, člověk má i statistiky, dlouhou historii a lze odhalit a případně předejít i nějakým nepěkným věcem.
Každopádně když toto všechno víš, tak stále nechápu, proč jsi vznesl na počátku ten dotaz.
Zdar Max
Měl jsem sen ... :(
29.5.2019 20:57 zigi | skóre: 14
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Pokud se nepletu, tak certifikaty se daji podvrhovat i s netransparentni proxy…
Jendа avatar 1.6.2019 00:06 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Jednoznačně, například BURP to tak dělá.
29.5.2019 13:01 V.
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Odpovědět | Sbalit | Link | Blokovat | Admin
Ok, hodí se prozkoumat i RFC 3040 (Internet Web Replication and Caching Taxonomy).
Max avatar 29.5.2019 13:24 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Spíš mi dej hint, na co konkrétně narážíš?
Že můžu použít i dns záznamy txt a srv? Něco jako :
# srv
_wpad._tcp  SRV   0 0 80 wpad.corp.devaine.cz  

# txt
IN      TXT    "service: wpad:http://wpad.corp.devaine.cz/wpad.dat"
Přiznám se, že to jsem nevěděl a nezkoušel. SRV záznamem by šel vyřešit problém s překladem bez dns suffixu (což je v případě AD nula stanic).
Jestli to tedy bylo to, na co narážíš, tak díky. Pokud ne, prosím o hint.
díky
Zdar Max
Měl jsem sen ... :(
29.5.2019 13:57 V.
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Já znam použití statického proxy.pacu, pro větvení přístupu pokud proxy něco neumí nebo se jedná kolizní či jinak nepřístupné sítě/cíle.
Takže dík za osvětu a to RFC jsem našel jako jediné, co se vztahuje k wpad. Pátral jsem po podkladech ve smyslu "když přečtu man, objevím toho ještě víc".
Max avatar 29.5.2019 14:06 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Tak jsem hodil do zápisku update o txt a srv záznamech.
Zdar Max
Měl jsem sen ... :(
29.5.2019 20:36 NN
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Odpovědět | Sbalit | Link | Blokovat | Admin
Kdysi jsem Squid proxy provozoval, ale dnes uz si moc nedokazu predstavit nejaky vetsi vyznam. Puvodne to na HTTP kesovalo stranky a urychlovalo brouzdani, blokace porku etc. Dnes s HTTPS anywhere to nemuze delat nic moc uzitecneho. Mozna nejake statistiky a IP based blokace, ale to vsechno dnes zastane lepsi firewall/IPS.
Max avatar 29.5.2019 22:14 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Je to tak, statistiky, ip blokace + spousta webů ještě https nemá. Zatím si myslím, že to má větší smysl, než firewall/ips.
Zdar Max
Měl jsem sen ... :(
1.6.2019 21:42 VSi | skóre: 28
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Další věc je autentizace. Pomocí proxy lze zajistit jednoznačnou identifikaci uživatele nebo servisního účtu pro každé spojení, ať už pro potřeby povolení/blokace nebo logování. Hodí se to v řadě případů, kdy je v daném prostředí povolena komunikace "ven" jen striktně vymezené skupině uživatelů / služeb. Na firewallu/IPS to lze řešit jen velmi obtížně, zvlášť v případě sdílených strojů nebo sítí kde nelze dostatečně spolehlivě zajistit identitu na úrovni IP adres.
29.5.2019 20:53 zigi | skóre: 14
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Odpovědět | Sbalit | Link | Blokovat | Admin
A bezpecnost takoveho reseni? Ve vychozim stavu mit zapnutou autokonfiguraci proxy je divny - kdokoliv kdekoliv mi pak muze podvrhnout svoji proxy... Kdyby slo v prohlizecich/systemech nastavit seznam duveryhodnych proxy, tak to by byla jina pisnicka.
29.5.2019 21:02 zigi | skóre: 14
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
To uz mi fakt prijdou lepsi ty sitovy profily.
Max avatar 29.5.2019 22:00 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Nemyslím si, že by to bylo nějak víc nebezpečné, než kdyby tato volba byla vypnutá. Pokud jsem v cizí síti, tak musím očekávat man in middle útok. Tj. můžeš být napadnut transparentní proxynou a podvrhováním certifikátů ještě jednodušeji, než někde vystavovat wpad a snažit se nějak oblbout prohlížeč, kterému předem oznámíš, že se ho snažíš oblbnout.
Jinak kdokoli ti podvrhnout wpad nemůže, jen ten, kdo ti vnutí svoje dns.
Zdar Max
Měl jsem sen ... :(
31.5.2019 08:56 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Aspoň dřív se to we windowech na wpad ptalo i přes netbios. Responder se mi chytal, když jsem to zkoušel naposled.
31.5.2019 10:06 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Co je na „podvržení“ proxy špatného? Když chci, tak o tom vím, a veškerá komunikace by stejně měla být šifrovaná. Když mi nepodvrhne svoji proxy, bude rovnou unášet celou komunikaci, o čemž se dozvím až když něco nebude fungovat – a sledovat komunikaci může úplně stejně.
31.5.2019 09:36 MP
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Odpovědět | Sbalit | Link | Blokovat | Admin
Firefox je v tomhle opet debilni jako v mnoha dalsich pripadech, oproti ostatnim, kde to funguje out-of-box. Ma nastaveno defaultne pouziti systemoveho nastaveni, ale pokud je systemove nastaveni automaticka detekce proxy, tak s tim stejne nefunguje.

Mimochodem, obzvlast v Linuxu je pouziti WPADu casto prekerka, ne kazda aplikace to podporuje (ahoj balickovaci systemy!).
Max avatar 31.5.2019 10:41 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Je to tak, v některých věcech je to smutnější pohled než u Windows. Další kapitolou pak byl Android, kde třeba i je ruční nastavení pro proxy, ale skoro nic na to nebere ohled. Aktuální stav ale neznám, už je to nějaký pátek, co jsem na to koukal (Android 4/5).
Zdar Max
Měl jsem sen ... :(
Bedňa avatar 8.6.2019 13:03 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Odpovědět | Sbalit | Link | Blokovat | Admin
Příloha:
Tak mi sme boli kolegovia ani som nevedel :-)

Ja som bol rok v Budapešti.
KERNEL ULTRAS video channel >>>
Max avatar 10.6.2019 08:49 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Jako na naší pobočce? Jinak Budapešť mají na povel kolegové z SK. Já mám na starosti CZ (kromě toho, že je to největší pobočka/hlavní sídlo, tak jsou zde i všechny servery/služby), PL, DE.
Zdar Max
Měl jsem sen ... :(
Bedňa avatar 10.6.2019 11:44 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Jj na Slovensku Branko s Matúšom to spravujú na diaľku zo Slovenska a ja som na to fyzicky šahal :) Teda občasne chodia aj do Budapešti. To že sú servers v Prahe viem, stačilo, že to niekde po ceste k nám spadlo a už som mal telefonát. Ja son bol externista. 10dní tam, 4doma. V Budapešti je krásne, vynikajúci ľudia, krásne mesto. Vôbec to nie je ako sa hovorí. Keď napr. porovnám aj kolegiálne vzťahy, tak sa hanbím akí sme u nás na seba psy.

Mno stací tam prísť a spýtať sa na SuperMario, to som tam dostal prezývku :-)

Zo Slovenského ´M' si výborne rozumiem s COO Palim to asi vieš kto je.

Mám užasné zážitky na celý život.
KERNEL ULTRAS video channel >>>
Max avatar 10.6.2019 13:08 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Ptal jsem se, byl jsi ověřen, svět je malý :).
Zdar Max
Měl jsem sen ... :(
Bedňa avatar 10.6.2019 13:59 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Bohužial jeden človek v deň mojho odchodu vyrobil FUD, tak dúfam že sa ti to nedostalo do uší :-)

Kvôli tomu človeku som sa rozhodol že odídem a je to človek zo Slovenska. To zaboli, ale ja to berem tak, že toto je život a hajzlíci sú všade.

Ten svet je fakt malý a som rád, že som pracoval s takou legendou ako si ty, hoci som o tom nevedel :-)

Nikomu prosím ťa nič nehovor, pretože bývalýxh kolegov mám moc rád a bol by som nerád aby som ich občas nemohol ísť pozrieť, pretože tam dostanem ban.

Szia Max :-)
KERNEL ULTRAS video channel >>>
Bedňa avatar 19.6.2019 21:23 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Automatická konfigurace proxy serveru v síti
Dnes som mal telefonát, že či by sme nedohodoli na nejakej spolupráci, takže tam zas občasne asi budem, len nie toľko.
KERNEL ULTRAS video channel >>>

Založit nové vláknoNahoru

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