Muammer Benzeş

"Duyduklarım, gördüklerim, bildiklerim..."

NAVIGATION - SEARCH

FTP 7 için Windows firewall ayarları

FTP 7.0 . FTP 7.5 . IIS 7.0 . IIS 7.5 . Windows Server 2008

FTP 7'de passive port kullanımı başlıklı yazıda FTP 7.0'da passive port ayarlarının nasıl yapılacağından bahsetmiştik. Bu yazıda ise Windows Server 2008 üzerinde FTP 7.0 ile ilgili ayarların nasıl yapılacağından bahsedeceğiz.

Windows Server 2008, IIS 7.0 ve FTP 7.0 kurulu sunucumuz bir firewall arkasında yer almıyor ve Windows Server 2008'in kendi firewall'unu kullanmak istiyorsak FTP ile ilgili ayarları nasıl yapacağız?

Windows Server 2008'de firewall'da ayarları birden fazla yol ile yapabiliriz : Komut satırı, Windows XP ve Windows Vista'dan alışık olduğumuz, Control Panel'deki Windows Firewall linki ile ve Windows Server 2008 ile gelen ve Start menüsündeki Administrative Tools altında yeralan Windows Firewall with Advanced Security linki ile.

Firewall ile ilgili ayarları yaparken Windows Firewall with Advanced Security linkini tercih ediyorum çünkü bu şekilde firewall ile ilgili ayarları tıpkı diğer firewall'larda olduğu gibi daha kapsamlı yapma şansım oluyor.



FTP 7.0 ayarlarını yapmak için sol bölümden Inbound Rule'a ve sağ bölümden de New Rule linkine tıklıyoruz. Açılan Rule Type başlıklı pencerede Port'u seçip Next'e tıklıyoruz.



Protocol and Ports başlıklı pencerede Does this rule apply to TCP or UDP başlıklı kısımda TCP'yi seçiyoruz. Does this rule apply to all local ports or specific local ports başlıklı kısımda ise Specific local ports'u seçip FTP için kullanmak istediğimiz portu girip Next'e tıklayarak devam ediyoruz.



Action başlıklı pencerede Allow the connection seçeneğini işaretleyip Next'e tıklıyoruz.



Profile başlıklı pencerede uygulayacağımız kuralın hangi bağlantı türlerinde geçerli olacağını seçiyoruz : Corporate, private, public. Bu bağlantı türleri ne anlama geliyor, kısaca özetlersek :

- Corporate : Sunucunun bağlı olduğu domainden gelecek bağlantılar için geçerlidir.
- Private : Sunucunun bağlı olduğu domaindeki bir client'ın Internet üzerinden erişiminde geçerlidir.
- Public : Internet üzerinden gelecek herhangi bir client için geçerlidir. Genel olarak FTP client'ların bağlantısı için bu bağlantı türünün seçilmesi yeterlidir.



Name başlıklı pencerede Name kısmında kural için bir isim veriyoruz. Description kısmına da istersek bir açıklama girerek Finish'e tıklıyoruz. Böylece kuralımızı tanımlamayı bitiriyoruz, artık kuralımız çalışır halde.

Passive port ile bağlantı yapmayı denediğimizde bağlantının gerçekleşmediğini göreceğiz :) Çünkü yapmamız gereken son bir işlem daha var. Passive port ile bağlantının çalışabilmesi için aşağıdaki komutu komut satırından çalıştırmamız gerekiyor :

netsh advfirewall set global StatefulFtp enable

Böylece FTP ile ilgili yapacağımız tüm tanımları tamamladık. Umarım faydalı olmuştur.

FTP 7'de passive port kullanımı

FTP 7.0 . FTP 7.5 . IIS 7.0 . IIS 7.5 . Windows Server 2008

FTP 7.0 ile ilgili önceki yazılarımızda FTP 7.0 kurulumundan, bir FTP sitesinin nasıl oluşturulacağından ve kullanıcı yetkilendirmesinden bahsetmiştik. Bu yazımızda ise FTP 7.0'da passive (pasif) portların nasıl ayarlanacağından bahsedeceğiz.

FTP 7.0 sunucumuzda kullanıcı yetkilendirmelerini yaptıktan sonra kullanıcılar FTP client programları veya Internet Explorer ile bağlanmak istediklerinde bağlantı problemi yaşayabilirler. Bunun sebebi FTP 7.0 üzerinde passive port ayarlarının yapılmamış olmasıdır. Çünkü FTP client programları varsayılan olarak bağlantıları passive modda gerçekleştirmek üzere yapılandırılmıştır.

FTP 7.0 üzerinde passive portlar kullanabilir miyiz? Evet, kullanabiliriz. Passive portları kullanabilmek için birkaç ayar yapmamız gerekecek. İlk olarak kullanacağımız passive portları ayarlamakla başlıyoruz. IIS Manager'da sol bölümden sunucumuzun adına ve orta bölümden FTP Firewall Support linkine tıklıyoruz.



Açılan pencerede Data Channel Port Range başlıklı bölümde kullanmak istediğimiz port aralığını belirtiyoruz. Burada 1025'den başlayıp 65535'e kadar istediğimiz kadar portu kullanım için tanımlayabiliriz, aralığın büyüklüğünü sunucudaki FTP kullanım yoğunluğuna göre belirleyebiliriz. Port aralığını girdikten sonra Apply'a tıklıyoruz.

Not : 1-1024 arası portlar sistem kullanımı için rezerve edilmiştir. Ayrıca SQL Server gibi programlar daha yüksek (1433) port numaralarını kullanabilmektedir. Bu nedenlerle tavsiyem mümkün olduğunca yüksek port numaraları (40000 veya 60000 sonrası gibi) kullanılmasıdır.



Apply'a tıkladığımızda aşağıdaki uyarı mesajı görüntülenecek. Mesajdan da anlaşılabileceği gibi firewall üzerinde ilgili ayarları yapmamız öneriliyor. Eğer sunucumuz bir firewall arkasında değilse ve Windows Server 2008'in kendi firewall'unu kullanacaksak yapılacak ayarları  FTP 7.0 için Windows firewall ayarları başlıklı yazıda bulabilirsiniz.



Eğer FTP sunucusunda her bir FTP sitesi için ayrı IP adresleri kullanılmayacaksa External IP Address of Firewall kısmına FTP sunucusu için geçerli olacak IP adresini girebiliriz. Her FTP sitesi için ayrı IP adresi kullanılacaksa IIS Manager'da sol bölümden ilgili FTP sitesine ve orta bölümden FTP Firewall Support linkine tıklıyoruz.



Açılan pencerede External IP Address of Firewall kısmına ilgili FTP sitesi için kullanmak istediğimiz IP adresini yazıp Apply'a tıklıyoruz.



Böylece FTP 7.0'da passive port kullanımı için gerekli ayarları tamamladık. Windows Server 2008 firewall üzerinde FTP 7.0 ile ilgili yapılması gereken ayarları FTP 7.0 için Windows firewall ayarları başlıklı yazıda bulabilirsiniz.

FTP 7'de kullanıcı yetkilendirme

FTP 7.0 . FTP 7.5 . IIS 7.0 . IIS 7.5 . Windows Server 2008

FTP 7.0 ile ilgili daha önceki yazılarımızda FTP 7.0 kurulumundan ve bir FTP sitesinin nasıl oluşturulacağından bahsetmiştik. Bu yazımızda ise FTP 7.0'da kullanıcı yetkilendirmelerinden bahsedeceğiz.

IIS 7.0 ile beraber, artık web veya FTP sitesi ile ilgili yetkilendirme yaparken sadece Windows kullanıcıları kullanılmıyor. IIS 7.0 içerisinde sadece IIS için geçerli olan kullanıcılar oluşturabiliyor ve bu kullanıcılara istenilen yetkiler verilebiliyor. Bu şekilde kullanıcıların Windows üzerinde yetkileri olmadığı için sunucu ile ilgili herhangi başka bir yerlere erişmeleri engellenmiş oluyor.

IIS 7.0'ın kullanıcıları ile çalışabilmek için öncelikle IIS 7.0 bileşenlerinden Management Service'in kurulması gerekiyor. Bu kurulumu gerçekleştirmek için Server Manager'ı açıp, soldaki bölümden Roles'e ve Web Server (IIS)'e tıklıyoruz. Sağ bölümde IIS ile ilgili görüntülenecek bilgiler ve ayarlar arasından Add Role Services'a tıklıyoruz. Açılan pencerede Management Service'i işaretleyip sırasıyla Next, Install ve Close'a tıklayarak kurulumu tamamlıyoruz.



Kurulumu tamamladıktan sonra IIS Manager'ı açıp soldaki bölümden sunucu adına tıkladığımızda ortadaki bölümde Management başlığı altında yeni seçeneklerin aktif olduğunu görüyoruz : IIS Manager Permissions, IIS Manager Users ve Management Service.



IIS kullanıcıları ile işlem yapabilmek için ilk olarak Management Service'e çift tıklayarak gerekli ayarları yapıyoruz.  Management Service başlatılmış durumda ise ayarlarda herhangi bir değişiklik yapamıyoruz, durdurmak için sağ bölümden Stop'a tıklıyoruz. Sonrasında "Windows credentials or IIS Manager credentials" seçeneğini işaretliyoruz. Uzak yönetim ayarları yapmadığımız için diğer ayarlara dokunmadan sağ bölümden Apply'a tıklayıp ayarları kaydedip, Start'a tıklayarak Management Service'i başlatıyoruz.



Sıra geldi kullanıcı tanımlamaya. Sol bölümden sunucu adına tıklayıp orta bölümden de IIS Manager Users'a çift tıklayarak kullanıcı tanımlayabiliyoruz. Görüntülenen pencerede sağ bölümden "Add User..."a tıklıyoruz. Açılan pencerede kullanıcı adı ve şifre bilgilerini girip OK'e tıklayarak kullanıcı tanımlama işlemini tamamlıyoruz.



Kullanıcı tanımlarken basit ve kısa bir şifre belirlersek IIS bir uyarı mesajı görüntülüyor. Bu mesajda güçlü bir şifrenin nasıl olması gerektiği (rakam, işaret, küçük ve büyük harf içermeli) anlatılıyor ve belirlediğimiz şifreyi kullanmak isteyip istemediğimiz soruluyor. Yes'e tıklayarak belirlediğimiz şifreyi kullanabiliyoruz.



Kullanıcıyı tanımladıktan sonra artık sıra yetkilendirme işlemlerine geldi. IIS Manager'da soldaki bölümden FTP sitemize, orta bölümden de FTP Authentication'a tıklıyoruz. Görüntülenen pencerede sağ bölümden Custom Providers'a tıklayıp açılan pencerede IisManagerAuth'u işaretleyip OK'e tıklıyoruz.



Bir sonraki adımda sol bölümden FTP sitemize, orta bölümden de IIS Manager Permissions'a tıklıyoruz. Görüntülenen pencerede Allow User'a tıklıyoruz. Açılan pencerede IIS Manager'ı seçili duruma getirip alttaki textbox'a direkt kullanıcı adını yazarak veya Select'e tıklayarak listeden kullanıcıyı seçerek OK'e tıklıyoruz.



Yetkilendirme işleminin son aşamasında yine FTP sitemize ve orta bölümden FTP Authorization Rules'a tıklıyoruz. Görüntülenen pencerede Add Allow Rule'a tıklıyoruz. Açılan pencerede yapacağımız tanımlamaya uygun olan seçeneği işaretliyoruz. Kullanıcıya yetki vereceğimiz için Specified Users'ı işaretleyip altındaki textbox'a kullanıcı adını girip "Permissions" bölümünden "Read" ile okuma, "Write" ile yazma hakkı verip OK'e tıklıyoruz.



Bu işlemi tamamladıktan sonra FTP client programı ile bağlanmayı denediğimizde "530 User cannot log in" hatası alacağız. Çünkü yapmamız gereken ayarlar henüz bitmedi :)

FTP hizmetinin çalışabilmesi için FTP sitesi için belirlenen klasöre ve "C:\Windows\System32\inetsrv\config" klasörü ve altındaki administration.config ve redirection.config dosyalarında "Network Service" kullanıcısını veya tanımladığınız kullanıcıyı yetkilendirmek gerekiyor. Bu işlemleri hızlıca aşağıdaki komutlar ile yapabiliyoruz :

cacls "C:\Windows\System32\inetsrv\config" /G "Network Service":R /E
cacls "C:\Windows\System32\inetsrv\config\administration.config" /G "Network Service":R /E
cacls "C:\Windows\System32\inetsrv\config\redirection.config" /G "Network Service":R /E
cacls "C:\inetpub\ftpklasoru" /G "Network Service":C /T /E

Aynı işlemleri Windows Explorer ile de gerçekleştirebiliriz. Yapacağımız yetkilendirmeler şu şekilde :

C:\Windows\System32\inetsrv\config klasörüne read, list folder content ve execute hakkı
C:\Windows\System32\inetsrv\config\administration.config dosyasına read ve execute hakkı
C:\Windows\System32\inetsrv\config\redirection.config dosyasına read ve execute hakkı
C:\inetpub\ftpklasoru klasörü ve alt klasörlerine modify hakkı

Biraz uzun bir yazı oldu :) FTP 7.0'da yetkilendirme karmaşık gibi gelebilir ancak birkaç deneme yaptıktan sonra öyle olmadığını göreceksiniz.

Yandex.Metrica