3 Ocak 2014 Cuma

Yerel Bilgisayarınızda IIS Websitesini Yayınlayın

Bu yazımızı biraz kısa ve teorik tutacağız,

Diyelim ki elinizde bir web uygulaması veya bir web sitesi var. Ve siz bu internet sitesini internet üzerinden paylaşmak istiyorsunuz.

Bunu ağınızda bulunan diğer bilgisayarlarla yapmak gayet kolay. Yapmanız gereken tek şey, Windows Güvenlik Duvarı (Firewall) üzerinde, web applikasyonunu yayınladığınız port için bir istisna(exception) oluşturmak.
Böylece ağınızdaki bilgisayarlar sizin bilgisayarınız üzerinde bulunan IIS üzerine ;

http://IPADRESI(LAN/Yerel):PORT   --> (Örnek) http://192.168.2.3:99

şeklinde ulaşabilirler. 

Peki ama bunu intranet(yerel ağ) içerisinde değil de internet üzerinde paylaşmak istiyorsanız ne olacak ?

Hemen çok ufak bir senaryo... Kendi ofisinizde ki bilgisayarda IIS üzerinde FalancaLTD diye bir web sitesi(veya applikasyon,normalde farketmez ancak biz buradaki senaryoda bir websitesi olarak alacağız) var ve 99 portu üzerinden yayın yapıyor. Ve tabi bu arada sizin LAN(yerel) IP'niz de 192.168.2.3

Şimdi intranet üzerinde nasıl ki yerel ip adresini yazıp, iki nokta üst üsteyi de koyup portu da yazdıktan sonra giriş yapabiliyorsak, internette de bunu yapabiliriz... mi ? Teorik olarak evet ancak burada önümüze birkaç engel çıkacak tabi(güvenlik engeli).

Dışarıdan bir bilgisayar sizin WAN(genel ip diyelim) IP adresinizi (Hadi 99.88.77.66 olsun) kullanarak giriş yapmaya çalıştığında öncelikle varsa modeminizdeki firewall engel koyarak bağlantıyı koparacaktır. Eğer bu engel aşılırsa bu seferde Wİndows Firewall aynı işlemi uygulayacaktır.

Bunları aşmanın yollarına gelelim ;


  1. Windows Firewall üzerinde bir "Gelen Kuralı" belirleyerek TCP Protokülün sizin kullandığınız portuna (bizim senaryomuzda 99) izin verin.
  2. Modeminiz üzerindeki firewall'a ( bu konuda kesin olamıyorum çünkü tahmin edersiniz herkesin modemi birbirinden farklı ) aynı istisnayı ekleyin. * Not : eğer böyle bir seçeneğiniz yoksa büyük ihtimalle firewall'ı devre dışı bırakmak zorunda kalırsınız.
Böylece IIS, gelen isteği güvenlik duvarlarına takılmadan almış olacak ve web sitesini serve(sunacak) edecektir... mi ? Büyük ihtimalle hayır ! 

Peki neden ?

Birçok modem dışarıdan gelen isteklerde, istemcinin bir porta direkt olarak ulaşmasına izin vermezler. Burada devreye neredeyse her modem üzerinde bulunan NAT (Network Address Translation / Ağ Adresi Dönüştürme ) devreye girer.

NAT[kaynak], modem üzerine gelen bir isteği IP maskeleme yaparak başka bir IP (LAN IP) üzerine gönderebilir. 

Buradaki mantık nedir ? 

İstemcinin http://99.88.77.66:99 (A İsteği olarak yazacağım bundan sonra) adresli isteği sizin modeminiz üzerine gelecektir. Modeminiz bu işlemi LAN IP'ye dönüştürerek bir response(cevap) almaya çalışacaktır. Peki dönüştüreceği LAN IP yi nereden bilecek ? O ağda sizden başka 20 bilgisayar olabilir ancak sadece sizin IIS'iniz FalancaLTD adlı internet sitesini yayınlıyor.

Varsayılan olarak modeminiz "Varsayılan Ağ Geçidi" üzerine yönlendirme yapacaktır. 

* Hani şu Windows'ta Denetim Masası > Ağ ve Paylaşım Merkezi penceresinde "Bağlantılar" yazısının tam karşısında bulunan mavi linke(genellikle Ethernet yazar) tıkladığınızda ve "Ayrıntılar" butonuna bastığınızda listenin alt sıralarında çıkan "Varsayılan Ağ Geçidi" ... :)

Varsayalım ki bizim ağ geçidimiz 192.168.2.1 olsun... Modem otomatik olarak sizin A isteğinizi http://192.168.2.1:99 olarak algılayacaktır ve tabi bu adreste bir IIS olmadığı için hiçbir karşılık alamayacaksınız.

İşte burada adres yönlendirme yaparak bu işin içinden çıkacağız.
  1. Modeminizin arayüzünü açın ( Genellikle tarayıcınıza "Varsayılan Ağ Geçidi" IP adresini yazarak erişebilirsiniz, örneğin, http://192.168.2.1)
  2. Arayüzden NAT ayarlarını bulun ( artık nerede olduğunu bulmak size kalmış ) ( Mesela TP-Link modemlerde "Gelişmiş" menüsü altında)
  3. Eğer varsa "NAT etkin" seçeneğini işaretleyip NAT yi aktif hale getirin.
  4. Ayağa kalkıp bir 30m koşup geri gelin :) ( spor her zaman iyidir )
  5. NAT üzerine yeni bir kural ekleyin ve düzenleme kısmında şunlara dikkat edin;
    1. Yerel IP Adresi sorulacaktır burada IIS kurulu olan bilgisayarın LAN(Yerel) IP'sini girmeniz gerekmektedir. (192.168.2.3 / senaryoya göre )
    2. Başlangıç ve bitiş portları olacaktır ( yada birden fazla port ekleme seçeneği ) , başlangıç portuna A isteği üzerine gelen port (Örnek : 99.88.77.66:99) , bitiş portuna ise IIS üzerinde yayın yapan sitenin portunu girin ( bilmiyorsanız %99.99 ihtimalle 80 'dir ya da IIS'de internet sitenize tıklayıp sağdaki "Eylemler" panelinde "Siteye Gözat" yazan yerden görebilirsiniz)
    3. Bir kural ismi isteyebilir, istediğiniz herhangi birşeyi girin.
    4. Eğer protokol soruyorsa, bir protokol seçin ( %99.99 TCP )
    5. Ve kaydedin.
Eğer DMZ seçeneği açıksa(tabi varsa) ve IP adresi olarak da IIS'in bulunduğu LAN IP adresi(192.168.2.3) girilmişse, zaten internet sitesini görebiliyor olursunuz. Daha kısa bir işlemdir ancak tavsiye etmem çünkü DMZ gelen tüm istekleri kabul etmenize sebep olur ve bu da güvenlik açığı demektir.


Bu işlemleri yaptıktan sonra tekrar deneyin, eğer hala bağlanamıyorsanız ve NAT işlemlerini doğru yaptığınızı varsayıyorsanız büyük ihtimalle istek başka bir Firewall'a takılmıştır.

Tabi başta bahsetmeyi unuttum , bilgisayarınızda yüklü 3. parti her antivirüs yazılımı, firewall vb. yazılımlar için de aynı istisnaları girmeniz gerekmektedir.


Artık başka bir bilgisayardan WAN IP adresiniz ve IIS sitesinin portu yazıldığında artık otomatik olarak internet sitesini görebileceksiniz.

Göremezseniz bana sorabilirsiniz. :) 

"Bu yazıyı kısa tutacağız" deyince inandınız değil mi ?







Hiç yorum yok:

Yorum Gönder