Şirketinizde onlarca veya yüzlerce cihaz varsa, her birine manuel olarak proxy ayarlamak imkansızdır. İşte bu nedenle WPAD (Web Proxy Auto-Discovery) protokolü vardır - kullanıcı müdahalesi olmadan tarayıcıların ve uygulamaların proxy sunucu ayarlarını otomatik olarak bulmasını sağlar. Nasıl çalıştığını, nasıl doğru yapılandırılacağını ve hangi hatalardan kaçınılması gerektiğini inceliyoruz.
WPAD nedir ve neden gereklidir
WPAD, Web Proxy Auto-Discovery Protocol olarak açılır - web proxy otomatik keşif protokolü. Temel görevi, istemci cihazının (dizüstü bilgisayar, akıllı telefon, iş istasyonu) proxy sunucu ayarlarını kendiliğinden bulup uygulamasını sağlamaktır; bu, sistem yöneticisinin veya kullanıcının manuel müdahalesini gerektirmez.
300 çalışanlı bir kurumsal ağı hayal edin. Yeni bir kişi işe alındığında veya proxy sunucusunun adresi değiştiğinde, WPAD olmadan yönetici her bir cihazı manuel olarak dolaşmak veya talimatlar göndermek zorunda kalırdı. WPAD ile her şey otomatik olarak gerçekleşir: cihaz ağa bağlanır, yapılandırmayı talep eder ve hemen gerekli proxy üzerinden çalışmaya başlar.
Protokol, 1990'ların sonlarında Netscape ve Sun Microsystems tarafından geliştirilmiştir. Yaşına rağmen, hala dünya genelindeki kurumsal BT altyapılarında yaygın olarak kullanılmaktadır - özellikle internet trafiğinin merkezi kontrolü, içerik filtrelemesi veya kurumsal geçit üzerinden isteklerin zorunlu yönlendirilmesi gereken yerlerde.
WPAD'ın gerçekten gerekli olduğu durumlar:
- Şirkette bir proxy'ye bağlı 20'den fazla cihaz var
- Proxy sunucusunun adresi periyodik olarak değişiyor
- Çalışanlar farklı lokasyonlardan (ofis, şube, uzaktan) bağlanıyor
- Farklı trafik türleri için farklı proxy'ler uygulanması gerekiyor
- Kullanıcı müdahalesi olmadan merkezi yönetim gerekiyor
Teknik olarak WPAD, proxy seçimi mantığını içeren bir JavaScript fonksiyonu içeren PAC dosyası (Proxy Auto-Config) ile birlikte çalışır. WPAD, bu dosyanın istemci cihazlara teslim mekanizmasıdır, PAC ise kural setidir. Her iki bileşeni anlamak, doğru yapılandırma için kritik öneme sahiptir.
WPAD nasıl çalışır: adım adım keşif mekanizması
WPAD etkinleştirildiğinde bir cihaz ağa bağlandığında, otomatik proxy keşif prosedürünü başlatır. Bu süreç kesinlikle standartlaştırılmıştır ve belirli bir sırada gerçekleşir. Bu sırayı anlamak, altyapıyı doğru yapılandırmaya ve sorunları hızlı bir şekilde teşhis etmeye yardımcı olur.
Adım 1: DHCP üzerinden istek (seçenek 252)
İlk olarak, cihaz bir DHCP isteği gönderir ve 252 numaralı seçeneği (wpad) kullanır. Eğer DHCP sunucusu WPAD desteği ile yapılandırılmışsa, yanıt olarak PAC dosyasının URL'sini döner - örneğin, http://wpad.company.local/wpad.dat. Bu, yapılandırmanın en hızlı ve güvenilir teslimat yoludur, çünkü IP adresi alım aşamasında gerçekleşir.
Adım 2: "wpad" ana bilgisayarı için DNS isteği
Eğer DHCP URL döndürmediyse, cihaz mevcut alan adında wpad ismini çözmek için DNS sunucusuna başvurur. Eğer cihaz company.local alanında ise, DNS isteği wpad.company.local adresine olacaktır. Başarılı bir çözümleme durumunda, cihaz http://wpad.company.local/wpad.dat adresine başvurur.
Adım 3: PAC dosyasının indirilmesi ve uygulanması
URL alındıktan sonra, tarayıcı veya uygulama PAC dosyasını HTTP üzerinden indirir. Dosya, her istekte bir dize döndüren JavaScript fonksiyonu FindProxyForURL(url, host) içerir: proxy kullanmak, doğrudan bağlanmak veya sunucu listesini taramak. İstemci bu dosyayı önbelleğe alır ve trafiği yönlendirmek için kullanır.
Önemli bir nokta: WPAD keşfi sadece ilk bağlantıda değil, periyodik olarak tekrarlanır. Tarayıcılar genellikle her başlatıldıklarında veya belirli aralıklarla PAC dosyasını yeniden yükler. Bu, proxy ayarları değiştiğinde PAC dosyasını sunucuda güncellemenin yeterli olduğu anlamına gelir - tüm cihazlar değişiklikleri otomatik olarak alır.
| Keşif Aşaması | Yöntem | Öncelik | Gereksinimler |
|---|---|---|---|
| DHCP Seçeneği 252 | URL'nin doğrudan iletimi | 1 (en yüksek) | Yapılandırılmış DHCP sunucusu |
| DNS wpad.* | Ana bilgisayar adının çözülmesi | 2 | DNS'de wpad için A kaydı |
| Manuel PAC URL'si | Açık yapılandırma | Manuel | Her cihazda yapılandırma |
PAC dosyası: WPAD yapılandırmasının kalbi
PAC dosyası (Proxy Auto-Configuration), tek bir zorunlu fonksiyon olan FindProxyForURL(url, host) içeren bir JavaScript dosyasıdır. Tarayıcı veya uygulama bir bağlantı kurmak istediğinde, bu fonksiyonu çağırır ve hangi proxy üzerinden gideceği veya doğrudan bağlanıp bağlanmayacağına dair bir talimat alır.
Fonksiyon iki parametre alır: istenen kaynağın tam URL'si ve ana bilgisayar adı. Bu verilere dayanarak, üç tür direktiften birini döndürür:
DIRECT— doğrudan bağlan, proxy olmadanPROXY host:port— belirtilen HTTP proxy'sini kullanSOCKS host:portveyaSOCKS5 host:port— SOCKS proxy'sini kullan
Kurumsal bir ağ için basit bir PAC dosyası örneği:
function FindProxyForURL(url, host) {
// Yerel adresler - doğrudan
if (isPlainHostName(host) ||
shExpMatch(host, "*.company.local") ||
isInNet(host, "192.168.0.0", "255.255.0.0")) {
return "DIRECT";
}
// Dahili hizmetler - doğrudan
if (shExpMatch(host, "*.internal.company.com")) {
return "DIRECT";
}
// Tüm diğer trafik - kurumsal proxy üzerinden
return "PROXY proxy.company.local:8080; DIRECT";
}
PROXY proxy.company.local:8080; DIRECT yapısına dikkat edin - bu bir yedekleme zinciridir. Eğer ana proxy erişilemezse, tarayıcı otomatik olarak doğrudan bağlantıya geçecektir. Yük dengelemesi veya yedekleme için noktalı virgülle birden fazla proxy sunucusu belirtilebilir.
PAC dosyası, doğru MIME türü ile web sunucusu tarafından dağıtılmalıdır: application/x-ns-proxy-autoconfig. Bazı tarayıcılar ayrıca text/plain kabul eder, ancak bu önerilmez. Dosya genellikle wpad.dat veya proxy.pac olarak adlandırılır ve web sunucusunun kök dizininde bulunur.
Karmaşık senaryolar için yararlı PAC fonksiyonları:
isInNet(host, pattern, mask)— alt ağ maskesi ile IP adresi kontrolüshExpMatch(str, pattern)— desenle karşılaştırma (wildcards)dnsDomainIs(host, domain)— alan adına ait olup olmadığını kontrol etmemyIpAddress()— istemcinin IP adresini alma (farklı ofisler için)weekdayRange()/timeRange()— programlı yönlendirme
DHCP ve DNS üzerinden WPAD yapılandırması
Kurumsal ağda WPAD'ı dağıtmanın iki temel yolu vardır: DHCP ve DNS üzerinden. Pratikte, her ikisini de yapılandırmak önerilir - DHCP öncelikli yöntem olarak ve DNS yedek olarak. Her bir yaklaşımı detaylı olarak inceleyelim.
DHCP üzerinden yapılandırma (seçenek 252)
DHCP sunucusunda, PAC dosyasının URL'si ile 252 numaralı seçeneği (WPAD) eklemek gerekir. Windows Server için (DHCP rolü):
- DHCP sunucusu yönetim konsolunu açın
- Server Options veya Scope Options bölümüne gidin
- Configure Options → Advanced seçeneğine tıklayın
- Vendor class: Microsoft Windows 2000 Options seçeneğini seçin
- 252 numaralı seçeneği (WPAD) bulun ve URL'yi girin:
http://wpad.company.local/wpad.dat - Değişiklikleri kaydedin - yeni DHCP istemcileri ayarları otomatik olarak alacaktır
ISC DHCP Sunucusu olan Linux sistemleri için yapılandırma dosyasına ekleyin:
# /etc/dhcp/dhcpd.conf
option wpad code 252 = text;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option wpad "http://wpad.company.local/wpad.dat\000";
}
DNS üzerinden yapılandırma
DNS yöntemi için, PAC dosyasını dağıtan web sunucusunun IP adresini gösteren wpad ismiyle iç DNS alanınızda bir A kaydı oluşturmanız gerekir.
- DNS Yöneticisi konsolunu açın (Windows) veya alan dosyasını düzenleyin (BIND)
company.localalanında bir A kaydı oluşturun:wpad → 192.168.1.50- 192.168.1.50 sunucusunda bir web sunucusu (IIS, Apache, Nginx) dağıtın
wpad.datdosyasını web sitesinin kök dizinine yerleştirin.datuzantısı için MIME türünü ayarlayın:application/x-ns-proxy-autoconfig- Erişilebilirliği kontrol edin: tarayıcıda
http://wpad.company.local/wpad.datadresini açın
⚠️ Windows Server DNS için önemli:
Windows Server DNS, güvenlik nedenleriyle (WPAD saldırılarına karşı koruma) "wpad" ismiyle A kaydı oluşturulmasını varsayılan olarak engeller. Oluşumuna izin vermek için PowerShell'de şu komutu çalıştırın: dnscmd /config /enableglobalqueryblocklist 0 veya "wpad"ı DNS global engelleme listesinden kaldırın.
PAC dosyasını dağıtmak için Nginx web sunucusunun yapılandırılması
# /etc/nginx/sites-available/wpad
server {
listen 80;
server_name wpad.company.local;
root /var/www/wpad;
location /wpad.dat {
default_type application/x-ns-proxy-autoconfig;
add_header Cache-Control "max-age=3600";
}
location /proxy.pac {
default_type application/x-ns-proxy-autoconfig;
add_header Cache-Control "max-age=3600";
}
}
WPAD güvenlik açıkları ve riskleri
WPAD, yönetim kolaylığının ciddi güvenlik riskleri ile el ele gittiği protokollerden biridir. Bu riskleri anlamak, kurumsal ağlarla çalışan herhangi bir BT uzmanı için kritik öneme sahiptir. Birkaç saldırı sınıfı, trafiği ele geçirmek için WPAD'ı bir vektör olarak kullanır.
WPAD İsim Ele Geçirme
Eğer bir cihaz, meşru bir WPAD sunucusunun olmadığı bir ağa bağlanıyorsa, ancak bir saldırgan sahte bir DNS sunucusu kurar veya DHCP isteklerine yanıt verirse, kurbanına kötü niyetli bir PAC dosyası sunabilir. Tüm HTTP istekleri tarayıcıdan saldırganın proxy'si üzerinden geçecektir - bu klasik bir "adam ortada" (MITM) saldırısıdır. Özellikle halka açık Wi-Fi ağlarında tehlikelidir.
WPAD üzerinden DNS Rebinding
Saldırı, tarayıcının PAC dosyasına güvendiği ve JavaScript'i çalıştırdığı gerçeğini kullanır. Kötü niyetli bir PAC dosyası, iç ağı keşfetmek için dnsResolve() fonksiyonunu kullanabilir: IP adreslerini taramak, açık portları ve hizmetleri belirlemek. Bu, kurbanın tarayıcısını kurumsal altyapıyı tarayan bir araç haline getirir.
WPAD'ın halka açık ağlardaki etkisi
Otomatik proxy keşfi etkin olan cihazlar, halka açık ağlarda - kafelerde, havaalanlarında, otellerde - WPAD sunucusu aramaya devam eder. Eğer üst düzey bir alanda wpad.com kaydı varsa (ve böyle durumlar araştırmacılar tarafından kaydedilmiştir), tarayıcı dış sunucudan PAC dosyasını yükleyebilir. Bu nedenle ICANN, wpad.com alan adının kaydını engellemiştir.
| Tehdit | Saldırı Vektörü | Koruma Önlemleri |
|---|---|---|
| Sahte WPAD ile MITM | DHCP/DNS değiştirme | DHCP Snooping, DNS imzalama |
| İç ağı keşfetme | Kötü niyetli PAC dosyası | PAC bütünlüğünü kontrol etme |
| Halka açık ağlarda veri sızıntısı | Açık Wi-Fi | Ofis dışında WPAD'ı devre dışı bırakma |
| Kimlik bilgilerini ele geçirme | Proxy ele geçirme | Her yerde HTTPS + HSTS |
Nasıl korunulur: pratik öneriler
- WPAD'ı yalnızca gerektiğinde etkinleştirin - kurumsal cihazlarda grup politikaları (GPO) aracılığıyla
- PAC dosyasını dağıtmak için HTTPS kullanın - bu içerik değiştirilmesini önler
- Switch'lerde DHCP Snooping yapılandırın - sahte DHCP sunucularına karşı koruma
- Perimetrede wpad DNS isteklerini engelleyin - cihazların dış ağlarda WPAD aramasını önlemek için
- Uzaktan çalışanlar için WPAD'ı devre dışı bırakın - ofis dışında çalışırken VPN politikaları veya GPO aracılığıyla
- wpad.dat'a yapılan istekleri izleyin - beklenmedik istekler saldırı sinyali verebilir
WPAD ve manuel yapılandırma: yaklaşımların karşılaştırılması
WPAD'ı uygulamadan önce, gerçekten hangi durumlarda mantıklı olduğunu ve ne zaman manuel yapılandırma veya grup politikaları ile devam etmenin daha iyi olduğunu anlamak faydalıdır. Her yaklaşımın avantajları ve sınırlamaları vardır.
| Parametre | WPAD | Manuel yapılandırma | GPO (grup politikaları) |
|---|---|---|---|
| Ölçeklenebilirlik | ✅ Harika | ❌ Kötü | ✅ Harika |
| Windows dışı cihazları destekleme | ✅ Evet | ✅ Evet | ⚠️ Sadece Windows |
| Güvenlik | ⚠️ Riskler var | ✅ Yüksek | ✅ Yüksek |
| Yönlendirme kurallarının esnekliği | ✅ Maksimum | ❌ Hayır | ⚠️ Sınırlı |
| Ayarların değiştirilme hızı | ✅ Anında | ❌ Her PC'de manuel | ⚠️ Bir sonraki GPO güncellemesinde |
| Kurumsal ağ dışında çalışma | ⚠️ Halka açık ağlarda riskler | ✅ Stabil | ✅ Stabil |
Çoğu kurumsal ortam için en iyi strateji, ofis cihazları için WPAD ve uzaktan çalışan dizüstü bilgisayarlar için zorunlu manuel yapılandırma (GPO veya MDM aracılığıyla) kombinasyonudur. Bu, güvenlikte ödün vermeden yönetim esnekliği sağlar.
Ayrıca, anonimlik ve güvenilirliğin önemli olduğu görevler için - örneğin, dış hizmetlerle çalışırken veya rakipleri izlerken - WPAD aracılığıyla kurumsal proxy yeterli olmayabilir. Bu gibi durumlarda, dış hizmetlerden kaynaklı engellemeleri önemli ölçüde azaltan gerçek ev kullanıcılarının IP adreslerini sağlayan rezidans proxy'leri ek olarak kullanılır.
Kurumsal ağlar için WPAD alternatifleri
WPAD, kurumsal ağda proxy ayarlarını merkezi olarak yönetmenin tek yolu değildir. Altyapıya, şirketin büyüklüğüne ve güvenlik gereksinimlerine bağlı olarak, diğer yaklaşımlar da uygun olabilir. Temel alternatifleri inceleyelim.
1. PAC dosyasının doğrudan dağıtımı GPO aracılığıyla
Active Directory ortamında, Internet Explorer ve Edge tarayıcılarında PAC dosyası URL'sinin zorunlu olarak ayarlanması için grup politikaları kullanılabilir (Internet Explorer Bakımı veya Yönetim Şablonları aracılığıyla). Avantajı - hangi cihazların ayarları alacağını tam kontrol etme, WPAD saldırı riskleri olmadan. Dezavantajı - yalnızca alan içindeki Windows cihazları için çalışır.
2. Şeffaf proxy (Transparent Proxy)
Ağ ekipmanları (yönlendirici, güvenlik duvarı) HTTP/HTTPS trafiğini yakalar ve istemci cihazlarda herhangi bir ayar olmadan proxy sunucusu üzerinden yönlendirir. Kullanıcılar ve uygulamalar proxy'nin varlığından haberdar değildir. Bu kullanışlıdır, ancak HTTPS trafiği için SSL İnceleme desteği gerektirir, bu da PKI altyapısı için ek gereksinimler getirir.
3. Mobil cihazlar için MDM sistemleri
iOS ve Android cihazlar için mobil cihaz yönetim sistemleri (MDM) - örneğin, Microsoft Intune, Jamf veya VMware Workspace ONE - proxy ayarlarını merkezi olarak göndermeyi sağlar. Bu, kurumsal ağ dışında sıkça çalışan mobil cihazlar için WPAD'dan daha güvenilirdir.
4. Zorunlu yönlendirme ile kurumsal VPN
Proxy sunucusu yerine, uzaktan çalışanların tüm trafiği kurumsal VPN geçidi üzerinden yönlendirilir. Geçitte filtreleme ve trafik inceleme politikaları uygulanır. Bu yaklaşım yüksek güvenlik seviyesi sağlar, ancak VPN altyapısı gerektirir ve diğer bölgelerdeki kullanıcılar için gecikmeleri artırabilir.
Kurumsal altyapının ötesinde kalan görevler için - örneğin, pazarlama departmanının rakip fiyatlarını izlerken veya farklı bölgelerden reklam kampanyalarını test ederken - kurumsal araçlar genellikle yetersiz kalır. Bu gibi durumlarda, hızlı veri çekme görevleri için veri merkezi proxy'leri veya sosyal medya ve reklam platformları ile çalışmak için mobil proxy'ler kullanılır.
Proxy yönetim yaklaşımını seçerken kontrol listesi
- ✅ Sadece Windows cihazları alan içinde → GPO + PAC dosyası
- ✅ Karma ortam (Windows + Mac + Linux + mobil) → WPAD + DHCP
- ✅ Yüksek güvenlik gereksinimleri → Şeffaf proxy veya VPN
- ✅ Mobil cihazlar → MDM (Intune, Jamf)
- ✅ Uzaktan çalışanlar → VPN + zorunlu yönlendirme
- ✅ Dış hizmetlerle, reklamla, veri çekmeyle çalışma → Dış proxy sağlayıcıları
Sonuç
WPAD, kurumsal ağlarda proxy ayarlarını merkezi olarak yönetmek için güçlü bir araçtır. Doğru yapılandırılmış WPAD, DHCP ve DNS üzerinden sistem yöneticilerini her cihazı manuel olarak yapılandırma zorunluluğundan kurtarır ve tüm altyapıda değişikliklerin anında uygulanmasını sağlar. Başarılı bir uygulamanın anahtarı, çalışma mekanizmasını anlamak, PAC dosyasını doğru yapılandırmak ve güvenlik önlemlerini almak: DHCP Snooping, PAC dağıtımı için HTTPS, ağın dışındaki WPAD isteklerini engelleme.
WPAD'ın, kurumsal ağ içindeki trafik yönlendirme sorununu çözdüğünü, ancak dış hizmetlerle çalışmak için özel proxy çözümlerinin yerini almadığını unutmamak önemlidir. Eğer ekibiniz rakipleri izliyorsa, farklı bölgelerden reklamları test ediyorsa veya pazar yerleriyle çalışıyorsa, ek olarak rezidans proxy'lerini değerlendirmeyi öneririz - gerçek ev kullanıcılarının IP adreslerini sağlarlar ve dış platformlardan engellenme riskini en aza indirirler.
```