Wpad Nedir?
WPAD (İngilizcede Web Proxy Autodiscovery Protocol, yani Otomatik Vekil Sunucu Keşif Protokolü) internete erişim için kullanılan bir vekil sunucunun (proxy de denir) adresini (veya adreslerini) otomatik olarak ayarlayabilmek için kullanılır. Mozilla veya Internet Explorer bazı sayfalara girerken altta “proxy ayarları algınalıyor” derken yapılan işlem aslında budur.
WPAD, DHCP’nin DHCP Bilgisi (DHCP Inform) mesajını kullanır.
http://tr.wikipedia.org/wiki/WPAD
Detaylı ingilizce
http://en.wikipedia.org/wiki/Web_Proxy_Autodiscovery_Protocol
Örnek Wpad Dosyası
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
//Web Proxy Autodiscovery Protocol //Fatih USTA function FindProxyForURL(url, host) { // Degisken tanımlari var proxy_1 = "PROXY 172.16.1.1:8080"; var proxy_2 = "PROXY 172.16.2.1:8080"; var proxy_3 = "PROXY 172.16.3.1:8080"; var proxy_4 = "PROXY 172.16.4.1:8080"; var proxy_5 = "PROXY 172.16.5.1:8080"; var proxy_no = "DIRECT"; var resolved_ip = dnsResolve(host); //dns cozumlemesi // Yonlendirilemeyen Adresler icin proxy kullanmasın (RFC 3330) if (isInNet(resolved_ip, "0.0.0.0", "255.0.0.0") || isInNet(resolved_ip, "10.0.0.0", "255.0.0.0") || isInNet(resolved_ip, "127.0.0.0", "255.0.0.0") || isInNet(resolved_ip, "169.254.0.0", "255.255.0.0") || isInNet(resolved_ip, "172.16.0.0", "255.240.0.0") || isInNet(resolved_ip, "192.0.2.0", "255.255.255.0") || isInNet(resolved_ip, "192.88.99.0", "255.255.255.0") || isInNet(resolved_ip, "192.168.0.0", "255.255.0.0") || isInNet(resolved_ip, "198.18.0.0", "255.254.0.0") || isInNet(resolved_ip, "224.0.0.0", "240.0.0.0") || isInNet(resolved_ip, "240.0.0.0", "240.0.0.0")) { return proxy_no; } //microsoft ipleri windows ve ofis guncellestirmeleri icin proxy kullanma if (isInNet(resolved_ip, "64.4.0.0", "255.255.0.0")){ return proxy_no; } if (isInNet(resolved_ip, "65.52.0.0", "255.252.0.0")){ return proxy_no; } if (isInNet(resolved_ip, "207.46.0.0", "255.255.0.0")){ return proxy_no; } if (isInNet(resolved_ip, "157.54.0.0", "255.254.0.0")){ return proxy_no; } if (isInNet(resolved_ip, "157.56.0.0", "255.252.0.0")){ return proxy_no; } if (isInNet(resolved_ip, "157.60.0.0", "255.255.0.0")){ return proxy_no; } //Proxy disinda tutulacak Adresler (IP tabanli ve dns cozumlemesi) if (isInNet(resolved_ip, "217.169.192.0", "255.255.240.0")){ return proxy_no; } //akbank if (isInNet(resolved_ip, "193.37.135.0", "255.255.255.0")){ return proxy_no; } //albarakaturk if (isInNet(resolved_ip, "62.244.222.0", "255.255.255.0")){ return proxy_no; } //anadolubank if (isInNet(resolved_ip, "195.85.255.0", "255.255.255.0")){ return proxy_no; } //denizbank if (isInNet(resolved_ip, "62.108.64.0", "255.255.255.0")){ return proxy_no; } //finansbank if (isInNet(resolved_ip, "217.68.208.0", "255.255.240.0")){ return proxy_no; } //garanti if (isInNet(resolved_ip, "194.29.208.0", "255.255.248.0")){ return proxy_no; } //garanti2 if (isInNet(resolved_ip, "193.108.213.0", "255.255.255.0")){ return proxy_no; } //halkbank if (isInNet(resolved_ip, "212.127.96.0", "255.255.224.0")){ return proxy_no; } //hsbc if (isInNet(resolved_ip, "85.158.100.0", "255.255.252.0")){ return proxy_no; } //ing if (isInNet(resolved_ip, "213.161.128.0", "255.255.224.0")){ return proxy_no; } //isbank if (isInNet(resolved_ip, "91.208.199.0", "255.255.255.0")){ return proxy_no; } //kuveytturk if (isInNet(resolved_ip, "195.142.154.0", "255.255.255.0")){ return proxy_no; } //sekerbank if (isInNet(resolved_ip, "213.148.64.0", "255.255.255.0")){ return proxy_no; } //teb if (isInNet(resolved_ip, "77.72.184.0", "255.255.248.0")){ return proxy_no; } //turkiyefinans if (isInNet(resolved_ip, "193.254.228.0", "255.255.254.0")){ return proxy_no; } //yapikredi if (isInNet(resolved_ip, "173.194.0.0", "255.255.0.0")){ return proxy_no; } //gmail if (isInNet(resolved_ip, "62.146.66.0", "255.255.255.0")){ return proxy_no; } //Avira if (isInNet(resolved_ip, "89.190.148.0", "255.255.255.0")){ return proxy_no; } //Avira if (isInNet(resolved_ip, "89.105.213.0", "255.255.255.0")){ return proxy_no; } //Avira if (isInNet(resolved_ip, "46.31.112.0", "255.255.255.0")){ return proxy_no; } //Turkishairlines if (isInNet(resolved_ip, "190.93.248.0", "255.255.0.0")){ return proxy_no; } //cloudflare if (isInNet(resolved_ip, "94.101.86.0", "255.255.255.0")){ return proxy_no; } //radyo-dinle if (isInNet(resolved_ip, "195.87.191.0", "255.255.255.0")){ return proxy_no; } //powerturk //Proxy disinda tutulacak adresler (URL) if ((shExpMatch(url, "*itunes*")) || (shExpMatch(url, "*apple*")) || (shExpMatch(url, "*avira-update.com*")) || (shExpMatch(url, "*62.146.66.*")) || (shExpMatch(url, "*89.190.148.*")) || (shExpMatch(url, "http://safebrowsing*")) || (shExpMatch(url, "http://localhost*")) || (shExpMatch(url, "http://go.microsoft.com/*")) || (shExpMatch(url, "http://crl.microsoft.com/pki/crl/products/MicrosoftRootAuthority.crl*")) || (shExpMatch(url, "http://crl.microsoft.com/pki/crl/products/MicrosoftProductSecureCommunications.crl*")) || (shExpMatch(url, "http://www.microsoft.com/pki/crl/products/MicrosoftProductSecureCommunications.crl*")) || (shExpMatch(url, "http://crl.microsoft.com/pki/crl/products/MicrosoftProductSecureServer.crl*")) || (shExpMatch(url, "http://www.microsoft.com/pki/crl/products/MicrosoftProductSecureServer.crl*")) || (shExpMatch(url, "*.verisign.com")) || (shExpMatch(url, "*.contacts.msn.com")) || (shExpMatch(url, "*65.52.*.*")) || (shExpMatch(url, "*65.53.*.*")) || (shExpMatch(url, "*65.54.*.*")) || (shExpMatch(url, "*65.55.*.*")) || (shExpMatch(url, "*64.4.*.*")) || (shExpMatch(url, "*157.54.*.*")) || (shExpMatch(url, "*157.56.*.*")) || (shExpMatch(url, "*157.60.*.*")) || (shExpMatch(url, "*207.46.*.*")) || (shExpMatch(url, "ftp://*")) || (shExpMatch(url, "https://sls.microsoft.com/*")) || (shExpMatch(url, "https://sls.microsoft.com:443*")) || (shExpMatch(url, "http://cdn2.powerturk.com:8030*")) || (shExpMatch(url, "*.google.com*")) || (shExpMatch(url, "*.gstatic.com*")) || (shExpMatch(url, "*googleapis.com*"))|| (shExpMatch(url, "*googleusercontent.com*")) || (shExpMatch(url, "*.verisign.net*")) || (shExpMatch(url, "*gov.tr*")) || (shExpMatch(url, "*turkishairlines*")) || (shExpMatch(url, "*anadolujet*")) || (shExpMatch(url, "*onurair*")) || (shExpMatch(url, "*borajet*")) || (shExpMatch(url, "*cbdplanet.com*")) || (shExpMatch(url, "*sunexpress*")) || (shExpMatch(url, "*flypgs*")) || (shExpMatch(url, "*atlasjet*")) || (shExpMatch(url, "*bankasya.com*")) || (shExpMatch(url, "*finansbank.com*")) || (shExpMatch(url, "*ingbank.com*")) || (shExpMatch(url, "*yapikredi.com*")) || (shExpMatch(url, "*garanti.com*")) || (shExpMatch(url, "*ziraat.com*")) || (shExpMatch(url, "*akbank.com*")) || (shExpMatch(url, "*denizbank.com*")) || (shExpMatch(url, "*halkbank.com*")) || (shExpMatch(url, "*sekerbank.com*")) || (shExpMatch(url, "*isbank.com*")) || (shExpMatch(url, "*hsbc.com*")) || (shExpMatch(url, "*teb.com*")) || (shExpMatch(url, "*vakifbank.com*")) || (shExpMatch(url, "*albarakaturk.com*")) || (shExpMatch(url, "*kuveytturk.com*")) ) return proxy_no; // Yerel aglar // Tanimlanan agları algiladıgi zaman ilgili proxy adresini otomatik ayarlar. if ((shExpMatch(myIpAddress(), "*:172.16.1.*")) || (isInNet(myIpAddress(),"172.16.1.0","255.255.255.0")) ) return proxy_1; if ((shExpMatch(myIpAddress(), "*:172.16.2.*")) || (isInNet(myIpAddress(),"172.16.2.0","255.255.255.0")) ) return proxy_2; if ((shExpMatch(myIpAddress(), "*:172.16.3.*")) || (isInNet(myIpAddress(),"172.16.3.0","255.255.255.0")) ) return proxy_3; if ((shExpMatch(myIpAddress(), "*:172.16.4.*")) || (isInNet(myIpAddress(),"172.16.4.0","255.255.255.0")) ) return proxy_4; if ((shExpMatch(myIpAddress(), "*:172.16.5.*")) || (isInNet(myIpAddress(),"172.16.5.0","255.255.255.0")) ) return proxy_5; return proxy_no; } |
Ayarlar
Öncelikle bu linkten http://notepad-plus-plus.org/ notepad plus kurmanızı öneririm. Windows notepad dosyanın formatını bozuyor.
1- Örnek wpad dosyası bir notepadplus dosyasına kopyalanır.
2- Yapınıza göre ilgili ağ ayarları yapılır.
3- Notepad plus dosyası Kayıt edilirken Kayıt türü olarak Tüm Dosyalar seçilir. Dosya adı olarak wpad.dat denir.
3- Hazırlanan dosya bir web sunucu altına atılır. IIS-6-7-8/apache2/nginx vs.
Örn:
IIS için aşağıdaki ayarlar yapılır.
1- IIS üzerinde application server çalışacak ve IIS de mime Type kısmına .dat uzantılı application/octet-stream aklenir.
2- wpad.dat dosyası C:\inetpub\wwwroot\ altına atılır.
3- Başlat > Çalıştır > iisreset denir.
4- Test için web sunucuda http://127.0.0.1/wpad.dat dosyasına erişilir ve içeriği görülür. Ayni şekilde ağdan da erişildiği test edilir.
Uygulama Yöntemleri
A- Windows Sistemlerde
a. Group Policy ile
Group Policy Management Açılır ve Default Domain Policy edit denir veya istenilen başka bir domain policy üzerinde aşağıdaki ayarlar yapılır.
1 2 3 4 5 6 7 |
>User configuration >Windows Settings >Internet Explorer Meintanance >Connection/Automatic Browser Configuration Enable Automatic configuration/isaretle Automatically configure every / 5 dakika Automatic proxy Url / http://172.16.1.100/wpad.dat veya http://orneksite.com/wpad.dat |
Bilgisayarlarda Proxy ayarlarini degistirilemez yada görünmez yapmak
1 2 3 4 5 6 7 8 9 10 11 12 |
>User Configuration >Administrative Templates >Internet Explorer/Desable changing Automatic Configuration settings/enable >Desable Changing proxy settings / enable Yada > Desable Changing connection settings / enable yada >User Configuration >Administrative Templates >Internet Explorer >Internet Control Panel/Desable the Connection page/enable |
Bu islemleri yapdiktan sonra
baslat>çalistir>gpupdate /force
b. DHCP ile
Öncelikle DHCP consolu açin.
Varolan Scop üzerinde sag tiklayin “Set Predefined options” u seçin
Açilan sayfada;
1- Option class> DHCP Standart Options
2- Option Name> 002 Time Offset
Oldugu kontrol edilir ve Add Butonu tiklanir.
Açilan sayfada;
1- name : wpad
2- Data type : string – array kutucugu bos olacak sekilde ayarlanir.
3- code : 252
4- Description: AutoDiscovery
Ok dedikten sonra
String ( string value de yazabilir ) http://www.orneksite.com:80/wpad.dat yazılır.
Sonrasinda iki kez ok diyerek çikiyoruz.
En son “Scope options” bölümünde sağ tıklanır “configure options” seçilir yapilan WPAD opsiyonunu Scope için seçilir.
Bütün ayarlar bittikten sonra dhcp Servis restart edilir
Not: dhcp ile dağıtılan wpad internet explorer de görünmez.
B- Linux Sistemlerde
a. DHCP ile
Eklenen parametreler
Genel Tanım
option wpad-url code 252 = text;
Scope için tanım
option wpad-url "http://orneksite.com/wpad.dat";
Son hali ile örnek yapılandırma
/etc/dhcpd.conf veya /etc/dhcp/dhcpd.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
authoritative; option domain-name ""; option domain-name-servers 195.175.39.40, 8.8.8.8; option subnet-mask 255.255.255.0; option wpad-url code 252 = text; ddns-update-style ad-hoc; default-lease-time 86400; max-lease-time 86400; subnet 172.16.1.0 netmask 255.255.255.0 { range 172.16.1.2 172.16.1.10; option broadcast-address 172.16.1.255; option wpad-url "http://orneksite.com/wpad.dat"; option routers 172.16.1.1; } |
Not: dhcp ile dağıtılan wpad internet explorer de görünmez.
Kısaca bu kadar. 🙂