Automatická konfigurace MSIE

Z Milan Kerslager
Verze z 28. 9. 2007, 20:38, kterou vytvořil Milan.Kerslager (diskuse | příspěvky) (Založení článku)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Přejít na: navigace, hledání

V předchozím textu jsme se zabývali konfigurací transparentní proxy. To je výhodné, protože to minimalizuje potřebu konfigurace na straně prohlížeče. Jenže (jak už to tak bývá) není nic tak jednoduché. Transparentní proxy se nehodí v případě, že chcete požadovat od uživatelů při jejím využívání jméno a heslo (to je velmi výhodné při dohledávání, kam uživatelé chodili, když nastane nějaký problém). Stejně tak je transparentní proxy krátká na případy, kdy je cílový WWW server umístěn na jiném portu, než 80. Poslední nevýhodou je nemožnost nakonfigurovat transparentní proxy i pro stahování souborů pomocí protokolu FTP (např. pokud byste chtěli dělat důslednou antivirovou kontrolu atp.).

Naštěstí existuje možnost, jak nakonfigurovat Microsoft Internet Explorer (MSIE) automaticky. MSIE se totiž (pokud je automatická konfigurace povolena, což je jeho implicitní nastavení) pokusí při svém startu získat dokument z URL http://wpad.nasedomena.cz/wpad.dat a předpokládá, že se v něm nachází JavaScript, který požadovanou konfiguraci zajistí. Proto bylo v deklaraci domény uvedeno CNAME wpad, které je aliasem pro náš WWW server.

Na serveru tedy spustíme WWW server Apache a nakonfigurujeme ho tak, aby při daném požadavku naservíroval připravený soubor. Do konfiguračního souboru Apache /etc/httpd/conf/httpd.conf (v případě RH 8.0, RH 9 nebo Fedory do souboru /etc/httpd/conf.d/wpad.conf) vložíme tento řádek:

Alias /wpad.dat /etc/proxy.config-ie

Soubor /etc/proxy.config-ie (může být umístěn i jinde) bude obsahovat:

function FindProxyForURL(url, host)
{
  // Make sure this is a protocol we proxy

  if (!((url.substring(0,5) == "http:")      ||
        (url.substring(0,4) == "ftp:")       ||
        (shExpMatch(url, "https://*:80/*"))) ||
        (shExpMatch(url, "http://*.test.cz/*")) ||
        (url.substring(0,16) == "http://127.0.0.1"))
  {

    return "DIRECT";

  } else {

    return "PROXY cache.test.cz:3128 ; DIRECT";

  }
}

Tento krátký kód říká, že komunikace prohlížeče bude přesměrována do proxy kromě případů, kdy bude používána zabezpečená komunikace, bude se přistupovat na počítače ve vnitřní síti nebo se bude uživatel snažit kontaktovat WWW server umístěný na jeho vlastním počítači. Správnou činnost automatické konfigurace ověříme vypnutím transparentní proxy (nejlépe zrušením pravidla v iptables), restartem prohlížeče a sledováním logu proxy cache Squid, když bude někdo na stanici prohlížeč používat. Stejně tak můžete zkontrolovat v logu WWW serveru Apache (soubor /var/log/httpd/access_log), jestli si vůbec prohlížeč konfigurační skript stáhne.