FTP 7'de kullanıcı yetkilendirme

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.

Comments

Comments (14) -

komik
teşekkürler
Mustafa
Merhaba,

530 Valid hostname is expected şeklinde hata alıyorum, bağlanamıyorum. neden kaynaklanabilir ?
MuammerBenzes
Mustafa,
FTP tanımlarken host header name (ör:ftp.mustafa.com gibi) girdiysen kullanıcı adını ftp.mustafa.com|ftpuser şeklinde yazmak gerekiyor.
Ramazan
Hocam elineze sağlık gerçekten çok yararlı oldu çok teşekkür ederim bir sorum olacak normal ftp programları ile bağlantı kurdum sorun yok ancak normal ie'den açtığımda adresi nasıl girmeliyim.Birde ben ftp klasörünü c:\test diye klasör açtım yolunu oraya gösterdim aşşağıdaki komutlarda bu yola göre hangilerini değiştirmem lazım umarım anlatabilmişimdir.teşekkür ediyorum...

- 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
MuammerBenzes
@Ramazan
IE’den girerken ftp://ftp.domain.com veya ftp://12.34.56.78 şeklinde girmen gerekiyor. Sonrasında kullanıcı adı ve şifre soracak.

Sadece en alttaki komutu değiştirmen gerekiyor :
calcs “c:\test” /G “Network Service”:C /T /E
Ramazan
Hocam tekrar merhaba verdiğiniz bilgileri uyguladım ftp sorunsuz çalışmaktadır.Tekrar bir sorum olacak tek klasör içerisinde ayrı klasörlere erişim vermek istiyorum yani c:\test klasörüne "ramazan" kullanıcısı erişsin c:\test\test2 klasörüne'de "ahmet" erişsin gibi ayrı kullanıcıların erişmesini nasıl sağlarım her kullanıcılar bir birlerinin dosyalarını göremeyecek şekilde nasıl yaparız.

ftp.testdomain.com\test
ftp.testdomain.com\test2 gibi
Alper AKPINAR
Hocam eline sağlık süper yazmışsında. Herşeyi hallettim.
Bağlanırken şifreyi yazdıktan sonra bekle bekle sunucu geç cevap veriyor diyor FF. IE ise bekle bekle Internet Explorer cannot display the webpage diyor. Yardımcı olursan sevinirim.
MuammerBenzes
@Alper,
Sistemde bir problem olabilir. FTP loglarına bakıp hata olup olmadığını kontrol edebilirsiniz.

FTP için IE veya FF yerine bir FTP client kullanmanızı tavsiye ederim.
Baris
Merhaba aynı hatayı bende aldım biraz daha açarmısınız dediğiniz şekilde client tarafındamı giricez yoksa ftp yetkilendirmesi yaparken kullanıcyı bu şekildemi oluşturucaz.
MuammerBenzes
@Barış : Kullanıcıyı sistemde oluştururken yine ftpuser şeklinde isimlendireceksin.
Client tarafında bağlanırken ise ftp.domain.com|ftpuser olarak yazmak gerekiyor kullanıcı adını.
orhun kutay bozkurt
üstad yazdıklarını okudum ama bi türlü sorunu çözemedim vps in üzerine kurdum bu ftp yi 530 valid hostname hatası veriyor şifreyi girdikten sonra
orhun kutay bozkurt
herşeyi yaptım bu seferde 530 User cannot log in. hatası veriyor çıldırıcam
MuammerBenzes
@Orhun : Bi yerlerde eksiklik var sanırım. Detayları mail olarak (muammer @ muammerbenzes.com) gönderebilirsen yardımcı olmaya çalışabilirim.
MuammerBenzes
@Gökhan : Bizim üç farklı komutla yaptığımız işi direkt klasöre yetki vererek yapmış. Benzer işlem, sonuç aynı Smile