WPAD ile bilgisayarlara otomatik proxy tanımlama

Küçük veya büyük fark etmeden kurumsal yapılar içerisinde, kullanıcıların bilgisayarları ile Internet üzerindeki veya yerel ağ içerisindeki belirli kaynaklara erişimlerinin kısıtlanması veya erişim sağlanması gerekebiliyor. Bu gereksinim her ne kadar çoğunlukla işle ilgili olmayan sosyal paylaşım, haber, oyun vb. sitelere erişimin kısıtlanması olarak karşımıza çıksa da, zaman zaman belirli kaynaklara erişim sağlamak (ör: üniversitelerin kütüphaneleri) için tersine de olabiliyor.

Bu tip ihtiyaçlar için her kullanıcı veya bilgisayar için ayrı ayrı ayar yapmak zor olacağından proxy kullanmamız gerekiyor. Proxy kelime karşılığı olarak "vekil" veya "elçi" anlamlarına gelmektedir. Bilgisayar dünyasındaki karşılığı ise ağ üzerindeki bilgisayarlardan gelen isteklere, verilen kurallar çerçevesinde izin verilip verilmeyeceğine karar verilmesi ve bu isteklere izin veriliyorsa işlemin proxy tarafından gerçekleştirilip, isteği yapan bilgisayara cevabın gönderilmesi olarak özetlenebilir.

Yapı içerisinde proxy hizmeti kullanmaya karar verdiğimizde karşımıza proxy bilgisinin bilgisayarlara eklenmesi sorunu çıkıyor. Sistemimizde Active Directory yapısı kullanıyor isek, bu bilgiyi bilgisayarlara Group Policy ile göndermek mümkün. Ancak karşımıza birkaç zorluk çıkıyor :

- Bazı kullanıcılarımız laptop kullanıyor ve şirket dışında da Internet'e erişmek istiyor. Her seferinde proxy ayarı değiştirmek hem zor hem de her kullanıcı için yapması kolay olmayabilir.
- Active Directory ortamını kullanmayan bilgisayarlarımız veya dışarıdan misafir olarak sistemi kullanan bilgisayarlar var. Bunlar için ayarları otomatik göndermek mümkün değil.

NOT : Yapıda ISA Server veya Forefront TMG ürünlerini varsa proxy kullanmadan SecureNAT özelliği ile Active Directory'ye dahil olan/olmayan tüm bilgisayarlara uygulamak mümkün. Böylece aşağıdaki ayarları yapmamıza gerek kalmıyor.

Karşı karşıya kaldığımız bu zorlukları aşmanın yolu, DHCP sunucusu ile IP dağıtırken proxy bilgisini de bilgisayarlara göndermek. Bu işlemi yapabilmemizi sağlayan ise Web Proxy Autodiscovery Protocol (WPAD). WPAD, proxy auto-config (PAC) olarak isimlendirilen dosya ile bilgisayarlara proxy bilgisini gönderebiliyor. PAC dosyası içerisinde en basit haliyle aşağıdaki Javascript fonksiyonunu barındırıyor.

function FindProxyForURL(url, host)
{
    return "PROXY proxy.example.com:8080; DIRECT";
}

 Bu Javascript fonksiyonunu kendi yapımız için aşağıdaki şekilde değiştirmek mümkün. Eğer proxy sunusuna host name ile ulaşılamıyorsa IP adresi de kullanabiliyoruz :

function FindProxyForURL(url, host)
{
    return "PROXY 192.168.1.1:8080; DIRECT";
}

Birden fazla proxy kullandığımız veya karmaşık tanımlamaların olduğu durumlar için de aşağıdaki gibi bir dosyaya ihtiyacımız olacak :

function FindProxyForURL(url, host) {
    // Yerel adresler için proxy kullanmıyoruz
    if (shExpMatch(host, "*.domain.local"))
    {
        return "DIRECT";
    }

    // 1. proxy sunucusu ile erişilen adresler için
    if (isInNet(host, "10.0.0.0", "255.255.248.0"))
    {
        return "PROXY 10.0.0.1:8080";
    }

    // Diğer tüm istekler için kullanılacak proxy sunucusu
    return "PROXY 10.0.0.2:8080; DIRECT";
}

İhtiyacımız doğrultusunda oluşturduğumuz PAC dosyasını standart olarak kullanılan wpad.dat ismi ile kaydediyoruz. Bu dosyayı ağdan erişilebilen bir web sitesi içerisinde yayınlamamız ve bilgisayarların bu dosyaya http://websitesiadresi/wpad.dat gibi bir adresten erişmesi gerekiyor.

WPAD dosyasını web sunucusunda yayınladıktan sonra, DHCP sunucusu üzerinde gerekli tanımlamayı yapmamız gerekiyor :

Administrative Tools (Yönetimsel Araçlar)'tan DHCP sunucuna ulaştıktan sonra sağ tıklayıp Set Predifines Options linkine basıyoruz.

Açılan Predefined Options and Values penceresinde Add'e tıklayıp ekranı aşağıdaki gibi dolduruyoruz :

Description kısmını istediğiniz gibi değiştirebilirsiniz. Giriş işlemlerini tamamladıktan sonra OK'e basıp bir önceki ekrana döndüğümüzde Value kısmına WPAD dosyasını yayınladığımız adresi giriyoruz. Eğer her bir scope için farklı adres girmemiz gerekiyor ise (ör : IP adresi, farklı subnet vs. gibi durumlar nedeniyle) bu kısmı boş geçebiliriz.

Son olarak otomatik proxy eklemek istediğimiz scope'ta Scope Options'a sağ tıklayıp Configure Options'a basıyoruz. General kısmında 252 WPAD tanımını bulup kutucupu işaretleyoruz. Yukarıda geçtiği gibi eğer o scope için ayrıca bir tapmak gerekiyorsa Data entry kısmına istediğimiz bilgiyi yazıp işlemi tamamlıyoruz.

Artık sistemimizde DHCP üzerinden IP alan tüm bilgisayarlara proxy bilgisi otomatik olarak eklenecek. Böylece bilgisayarlar ile ilgili kısıtlama veya yetkilendirme işlemlerini merkezi yapma şansına sahip olabileceğiz.

Comments