Windows'ta WPAD'i (Web Proxy Otomatik Keşif Protokolü) Kullanma
WPAD (Web Proxy Otomatik Bulma) protokolü, ağınızdaki istemcilerdeki proxy ayarlarını kolayca yapılandırmanıza olanak tanır. WPAD'in arkasındaki fikir, bir istemcinin ağınızda proxy ayarlarına sahip bir PAC yapılandırma dosyasına sahip bir web sunucusunu bulmak için DHCP ve/veya DNS'yi kullanabilmesidir (
http://yourdomain/wpad.dat).
Proxy Otomatik Bulma Dosyası Oluşturun (wpad.dat)
Özel bir PAC (Proxy Otomatik Yapılandırması) dosyası, proxy kullanımına ilişkin kuralları açıklar. PAC dosyasının önceden tanımlanmış adı wpad.dat'tır. Bu dosya, istemcinin belirli bir kaynağa (HTTP, HTTPS veya FTP) bağlanırken bir proxy sunucusu kullanması mı yoksa doğrudan bu kaynağa erişmesi mi gerektiğini belirleyen kurallar içerir.
wpad.dat dosyasında Javascript sözdizimi kullanılır. Varsayılan bir proxy sunucu adresinin yanı sıra bir istemcinin bağlantılar için proxy kullanması (veya kullanmaması) gereken durumlara ilişkin farklı istisnalar ve kurallar belirleyebilirsiniz.
Basit bir wpad.dat söz dizimi örneğine bakalım:
function FindProxyForURL(url, host)
{
if (shExpMatch(host, "127.0.0.1" )) {return "DIRECT";}
if (shExpMatch(host, "*/localhost*" )) {return "DIRECT";}
if (isInNet(host, "192.0.0.0", "255.0.0.0")) {return "DIRECT";}
if (isInNet(host, "10.0.0.0", "255.0.0.0")) {return "DIRECT";}
// Dedicated proxy for a specific IP network
if (isInNet(myIpAddress(), "172.15.1.0", "255.255.255.0"))
{return "PROXY prx2.a-d.site:8080";}
if (dnsDomainIs(host, "*.corp.a-d.site")) {return "DIRECT";}
// Local addresses to be accessed directly
if (
shExpMatch(url,"http://*.a-d.site") ||
shExpMatch(url,"https://*.a-d.site") ||
shExpMatch(url,"ftp://*.a-d.site")
)
return "DIRECT";
// If the URL does not contain dots in the address, the client should access it directly.
if (isPlainHostName(host)) {return "DIRECT";}
if (shExpMatch(host,"bank.example.com")) {return "DIRECT";}
// Use a separate proxy server to access a specific wildcard domain
if (shExpMatch(url,"*.microsoft.com*")){return "PROXY prx2.a-d.site:8080";}
//a default proxy server address
return "PROXY proxy.a-d.site:3128";
}
Bir PAC dosyası genellikle, istenen URL'ye göre proxy adresini istemciye döndüren tek bir FindProxyForURL işlevinden oluşur. Bu durumda return “DIRECT” yönergesi, bu IP adreslerine ve etki alanlarına erişim için doğrudan bağlantının (proxy olmadan) kullanılması gerektiğini belirtir. Bir istemcinin eriştiği web sitesi WPAD dosyasındaki kuralların hiçbiriyle eşleşmiyorsa, varsayılan proxy sunucusu (
PROXY proxy.a-d.site:3128) erişmek için kullanılır.
Squid veya 3proxy gibi popüler proxy sunucularından herhangi birini kullanabilirsiniz.
PAC dosyasını, belirli web sitelerine erişimi reddetmek veya reklam içeren alan adlarına erişimi engellemek için basit bir içerik filtreleme aracı olarak kullanabilirsiniz.
proxy_empty = "PROXY 127.0.0.1:3128"; // a link to an non-existing proxy
if ( shExpMatch(url,"*://twitter.com/*")) { return proxy_empty; }
if ( shExpMatch(url,"*://spam.*")) { return proxy_empty; }
if ( shExpMatch(url,"*doubleclick.net/*")) { return proxy_empty; }Farklı işletim sistemi sürümlerinde PAC dosyasının maksimum boyutu konusunda kısıtlamalar vardır. Windows için wpad.dat dosyasının boyutu 1 MB'ı geçmemelidir.
Wpad.dat dosyasını yerel ağınızdaki bir HTTP web sunucusuna koyun ve tüm kullanıcıların okumasına izin verin. Linux tabanlı (nginx, apache, lighttpd) veya Windows tabanlı (IIS veya PowerShell tabanlı basit bir HTTP sunucusu) web sunucusu kullanabilirsiniz.
Bu örnekte wpad.dat dosyasını bir etki alanı denetleyicisindeki IIS web sunucusunda yayınlayacağım. wpad.dat dosyasını C:\inetpub\wwwroot dizinine kopyalayın.
Ağınızda etki alanı olmayan istemciler varsa, IIS klasöründe IUSR ve IIS APPPOOL\DefaultAppPool salt okunur izinlerini verin.
IIS Yöneticisini açın (
inetmgr
), IIS web sitesi ayarlarında MIME Türleri'ni seçin ve yeni bir tür ekleyin:
Dosya adı uzantısı:
.datMIME türü:
application/x-ns-proxy-autoconfig
IIS'yi yeniden başlatın.
DHCP veya DNS'de WPAD Kayıtlarını Yapılandırma
Artık istemcilerin PAC dosyasını bulması için DHCP sunucularını veya DNS kayıtlarını yapılandırmanız gerekiyor.
DHCP sunucusu kullanıyorsanız 252 seçeneğini kullanarak istemciler için bir WPAD adresi ayarlayabilirsiniz. Windows Server'da çalışan DHCP için bu örnekte:
DHCP konsolunu açın (
dhcpmgmt.msc), IPv4 bölümünü tıklayın ve Önceden Tanımlanmış Seçenekleri Ayarla'yı seçin;
Ekle'yi tıklayın ve aşağıdaki seçeneklerle bir giriş ekleyin:
Ad:WPADVeri tipi:
stringKod:
252Tamam'a tıklayın ve WPAD ana makinenizin adresini belirtin (
http://wpad.a-d.site).
Ardından Kapsam Seçenekleri'ni açın ve bunun için 252 WPAD seçeneğini etkinleştirin (veya Sunucu Seçenekleri bölümündeki ayarı yapılandırın).
Daha sonra alanınızda wpad adı için A veya CNAME DNS kayıtları oluşturun.
Active Directory kullanıyorsanız Microsoft DNS sunucusunun varsayılan olarak wpad ve isatap adlarının kullanımını engellediğini unutmayın. Bunu şu komutu çalıştırarak kontrol edebilirsiniz::
dnscmd mun-dc02 /info /globalqueryblocklistBu adların DNS'de kullanılmasına izin vermek için şu komutu çalıştırın:
dnscmd mun-dc02 /config /enableglobalqueryblocklist 0Listeyi temizleyebilirsiniz:
dnscmd /config /globalqueryblocklistVe isatap için bir kayıt ekleyin:
dnscmd /config /globalqueryblocklist isatapTüm DNS sunucularında aynı değişiklikleri yapın.
Ardından, WPAD dosyasının bulunduğu web sunucunuzu işaret eden wpad adında bir A kaydı oluşturun. DNS Yöneticisinde manuel olarak bir A kaydı oluşturabilirsiniz (
dnsmgmt.msc) veya Add-DnsServerResourceRecordA PowerShell cmdlet'ini kullanarak:
Add-DnsServerResourceRecordA -Name wpad -IPv4Address 192.168.13.10 -ZoneName a-d.loc -TimeToLive 01:00:00WPAD için Tarayıcıları Yapılandırma
Artık tarayıcılarınızı başlangıçta otomatik olarak bir PAC dosyası alacak şekilde yapılandırmanız gerekiyor. Bunu yapmak için, IE ayarlarında veya Ayarlar'daki (MS-Ayarları hızlı URI komutu: Windows proxy ayarlarında) Otomatik Algılama Ayarları seçeneğini (Araçlar > İnternet Seçenekleri > Bağlantılar > LAN Ayarları) etkinleştirin.
ms-settings:network-proxy).
Grup İlkesi seçeneğini kullanarak bu seçeneği merkezi olarak etkinleştirebilirsiniz: Kullanıcı Yapılandırması -> Tercihler -> Denetim Masası Ayarları -> İnternet Ayarları -> Yeni ->Internet Explorer 10 .
GPO kullanarak proxy sunucu ayarlarının nasıl yapılandırılacağı hakkında daha fazla bilgi edinin.
Artık istemci cihazlardaki tarayıcılar, yüklendiğinde DNS'de bir wpad girişi arayacak (veya DHCP'den alacak). Ağda WPAD'e sahip bir ana bilgisayar bulunursa, istemci dosyayı indirecektir.
http://wpad.%domain%/wpad.dat, JavaScript kodunu çalıştırın ve PAC dosyasındaki proxy sunucu kurallarını uygulayın.
Örneğin, Windows wpad adını önce DNS'de arar, ardından Yerel Bağlantı Çok Noktaya Yayın Ad Çözümlemesi (LLMNR) aracılığıyla ve ardından NetBIOS'u (NBNS) kullanarak arar. LLMNR ve NetBIOS protokolleri devre dışı bırakılırsa yalnızca DNS araması kullanılır.
Tarayıcının internete erişirken PAC dosyasını kullanıp kullanmadığını kontrol edebilirsiniz (Chromium tabanlı web tarayıcıları için: Google Chrome, Opera, Microsoft Edge):
Bir tarayıcı açın ve şuraya gidin:
chrome://net-export/Özel bilgileri çıkar'ı seçin ve Diske Günlük Kaydetmeye Başla'yı tıklayın;
Ardından verileri kaydetmek için JSON dosya adını belirtin;
Günlüğe Kaydetmeyi Durdur'u tıklayın;
JSON dosyanızı herhangi bir metin düzenleyicide açın ve
proxySettings. Bu örnekte tarayıcının wpad.dat'taki proxy ayarlarını kullandığını görebilirsiniz:
"proxySettings":{"effective":{"pac_url":"http://wpad/wpad.dat"},"original":{"auto_detect":true,"from_system":true}}
Windows bilgisayarda WPAD kullanımını reddetmek istiyorsanız, HKLM\SOFTWARE\Microsoft\Windows kayıt defteri anahtarında 1 değerine sahip DisableWpad adlı bir DWORD parametresi oluşturun. \CurrentVersion\Internet Ayarları\WinHttp\.
Proxy ayarlarının WPAD (PAC) dosyasını kullanarak yapılandırılması, proxy'nin Windows GPO aracılığıyla ayarlanmasıyla elde edilemeyecek ek esneklik sağlar. WPAD ayrıca Windows, Linux, MacOS ve diğer işletim sistemlerinin yanı sıra mobil cihazlarda da desteklenir.









