FTP 7'de kullanıcı sınırlandırma (izolasyon)

Uzun bir süredir ara verdiğim FTP ile ilgili yazılara nihayet bir yenisini ekliyorum. Daha önceki yazılarımızda FTP kurulumundanFTP sitesi oluşturmaktankullanıcı yetkilendirmeden, passive port ayarlarındanFTP için firewall ayarlarından bahsetmiştik.

Bu yazıda FTP için tanımladığımız kullanıcıları nasıl izole edeceğimizden, nasıl birbirlerinin klasörlerine erişmelerini engelleyeceğimizden ve nasıl sadece kendilerine ait olan klasörlere erişmelerine izin vereceğimizden bahsedeceğiz.

Kullanıcıları izole edebilmek için öncelikle yapmamız gereken bu işlem için gerekli ayarlamayı yapmak. Bu ayarı yapabilmek için IIS Manager'da FTP için oluşturduğumuz web sitesine tıklayıp, orta bölümde görüntülenen seçeneklerden FTP User Isolation'a tıklıyoruz.

FTP User Isolation

Görüntülenecek olan FTP User Isolation başlıklı bölümde nasıl bir izolasyon yapmak istiyorsak seçiyoruz.

Kullanıcı izole etme

Do not isolate users. Start users in: ayarını seçecek olursak kullanıcıların FTP'ye bağlandıklarında herhangi bir kısıtlama olmadan dolaşabilmelerine izin vermiş oluyoruz. Buradaki seçeneklerden FTP root directory seçeneği işaretlenirse tüm kullanıcılar FTP'ye bağlandıklarında FTP'nin ana klasörünü görebilecekler, sonrasında da istedikleri alt klasöre gidebileceklerdir. Eğer User name directory işaretlenecek olursa da kullanıcı FTP'ye bağlandığında kendisine ait olan klasörü görecek; ancak, üst klasöre çıkıp istediği gibi diğer klasörlere de gitme şansına sahip olacaktır.

Isolate users. Restrict users to the floowing directory: ayarını seçecek olursak kullanıcılar işaretlenecek olan seçeneğe göre sadece kendi klasörleri içerisinde dolaşma hakkına sahip olacaklardır.

User name directory (disable global virtual directories) seçeneği çoğunlukla tercih edeceğimiz seçenek olacak. Bu seçeneği işaretlediğimizde kullanıcının FTP kullanabilmesi için aşağıda ayrıntılarını ele alacağımız bazı tanımlamalar yapmak gerekecek. Ancak bir klasöre birden fazla kişinin erişebilmesi veya bir kullanıcının birden fazla klasöre erişebilmesi gibi sağladığı kolaylıklar nedeniyle  bu tanımlamaları sorun etmeyeceğiz :)

User name physical directory (enable global virtual directories) seçeneğinin işaretlenebilmesi için FTP'ye bağlanacak olan kullanıcıların adları ile bağlandıkları klasörün adının aynı olması gerekmektedir. Bu seçeneğin işaretlenmesi kullanıcı adları ile klasör adları aynı olduğu sürece her kullanıcı için ayrıca tanımlama yapılmasını gerektirmediği için kolaylık sağlayacaktır. Ancak, aynı klasöre birden fazla kullanıcının ulaşması gereken durumlarda işe yaramayacaktır. Ayrıca bir kullanıcının birden fazla farklı klasöre erişme durumunda da benzer şekilde işe yaramayacaktır.

FTP home directory configured in Active Directory seçeneği ile Active Directory üzerinden tanımlanmış FTP ayarlarını kullanmamız mümkün olabilmekte. Set butonuna tıklayıp yetkili bir Active Directory kullanıcısının bilgilerini girerek bu ayarları aktif hale getirebiliriz.

Custom seçeneği ile FTP 7 ile gelen ASP.NET Membership Authentication özelliğini kullanarak SQL Server gibi bir yerde sakladığımız kullanıcı bilgileri ile yetkilendirme yapabiliyoruz. 

Yukarıdaki seçeneklerden User name directory (disable global virtual directories) seçeneği ile devam ettiğimizi varsaydığımızda yapmamız gereken birkaç ayarımız oldu��undan bahsetmiştik. Şimdi bu ayarlar nelerdir onlara bir bakalım:

Öncelikli olarak FTP sitesi için belirlediğimiz ana klasör içerisinde LocalUser isminde bir alt klasör oluşturuyoruz. User name directory seçeneği ile çalışmak için bu klasöre ihtiyacımız var. Tanımları bu klasörün altında oluşturacağız.

LocalUser klasörünü oluşturduktan sonra IIS Manager'da FTP sitesinde bu klasörü bulup sağ tıklayıp Add Virtual Directory'e basıyoruz.

Kullanıcı tanımlama

Görüntülenecek olan Add Virtual Directory başlıklı pencerede erişim tanımlayacağımız kullanıcının adını ve bağlanacağı klasöre ait bilgileri girip OK'e basıyoruz.

FTP kullanıcı bilgilerini giriyoruz

Artık kullanıcımız ilgili klasöre erişebilecek şekilde tanımlandı ve kullanıcı listesinde de yerini aldı.

Kullanıcı tanımlaması tamamlandı

Bu aşamadan sonrasında kullanıcının erişeceği başka klasörler var ise onları da kullanıcı adının altında Virtual Directory (sanal klasör) olarak ekleyip erişimi sağlayabiliriz. Aynı klasöre farklı bir kullanıcı da bağlanacak ise o kullanıcıyı da ismi ile tanımlarken aynı klasörü göstererek erişimini sağlayabiliriz.

Bir kullanıcıya birden fazla alt klasör tanımladığımızda FTP ile erişimde bu klasörlerin görünmemesi sorunu ile karşı karşıya kalacağız. Bu sorunu ortadan kaldırmak için yapmamız gereken bir ayar var. Bu ayarı yapabilmek için IIS Manager'da ilgili FTP sitesini işaretleyip orta bölümdeki FTP Directory Browsing'e tıklıyoruz.

FTP Directory Browsing ayarları

Görüntülenecek olan FTP Directory Browsing başlıklı ekranda Directory Listing Options altında yeralan Virtual Directories bölümünü işaretliyoruz. Böylece artık kullanıcıya eklediğimiz tüm klasörler FTP bağlantısı gerçekleştiriğinde görüntülenecek.

Sanal klasör görüntüleme

Comments

Comments (5) -

abdullah
muammer bey hosting firmasının çağrımı cevaplamasını beklemeden kurtardınız beni teşekkür ederim.
Muhammet SEVİMLİ
Tesekkür Ederim Muammer Bey, gercekten uzun zamandir aradigim bir konuydu ve malesef bilende bilmeyende herkes bu konu hakkinda biseyler yazmis ancak isin test kismina girence vasat kaliyordu hepsi..

Bunu Test Ettim Mükemmel Calisiyor.. Tekrar Tesekkürler...
MuammerBenzes
@Muhammet : İşinize yaramasına sevindim.
Muhammet Sevimli
Muammer Bey peki isin icine active drictory girinci bu ayarlar ise yaramiyor, active directory de calisabilmesi icin kullanici hangi gruplara dahil etmemiz gerekiyor veya nasil bir yapilandirma yapmamiz gerekli...
Tesekkürler....
Ahmet Sait Duran
Merhaba. @Muhammet sevimli. Domainde, klasör ismi LocalUser değil, domain adı olacak. Mesela duran.com domaini için Duran ismiyle bir klasör oluşturmanız gerekiyor