IIS FTP Sunucusu Kurulumu ve Yapılandırması: Adım Adım Kılavuz
IIS FTP Server Installation and Configuration: A Step-by-Step Guide
FTP, dosya 📁 aktarımına yarayan internetin en eski protokollerinden biridir. Kullanım amacı olarak, paylaşılacak dosyaları bir FTP sitesinde depolar ve servis ederiz. Dolayısıyla bunu yapabilmek için önce ftp hizmetini kurmamız gerekmektedir. Peki, Nasıl?
FTP hizmeti eğer aktif değilse, windows features altından aktif etmelisiniz. Bu işlem sonucunda inetpub
[C:\inetpub] klasörünün altında ftproot
[C:\inetpub\ftproot] adında yeni bir klasörü oluşacaktır. Ayrıca IISM (Internet Information Services Manager) hizmetlerinin arasında “Microsoft FTP Service” adında yeni bir hizmet de eklenecektir. 👌
Bir FTP Sitesi Nasıl Oluşturulur?
IISM üzerinden adım adım FTP sitesinin kurulumunu yapalım.
[1] — Add FTP Site 🚏
[2] — Site Information 🚏
[3] — Binding and SSL Settings 🚏
[4] — Authentication and Authorization Information 🚏
Anonymous ve basic seçenereklerini işaretleyerek siteye kimlik bilgisi (authentication) belirtmeden erişilebilmesini sağladık. Ancak kimlik belirtilmesi gereken durumlarda “Basic” doğrulama 👮 yöntemi kullanılacaktır.
Authorization kısmında “All users” seçimini yaparak kimlik bilgisi belirten veyahut belirtmeyen kullanıcılar site içeriğine erişebilecektir. Selectbox içerisinde yer alan “Specified roles or user groups” 🔐 seçeneğiyle yalnızca belirtilen rol veya kullanıcı gruplarının erişimine izin verilebilir.
Permission bölümünde de tahmin edeceğiniz üzere kullanıcılara okuma/yazma 📝 izni tanımlıyoruz. Fakat dosya ve klasörler üzerinden NTFS izinleri ayrıca bulunmaktadır. Dolayısıyla siz yukarıdaki görselde yer alan yazma iznini sağlamış olsanız dahi, ilgili kullanıcı/kullanıcıların NTFS izni yetersiz ise burada işaretlenen write
izni ile dosya yükleyemeyebilirsiniz. Buna da dikkat etmek gerekmektedir. ❗❗
[5] — Complete 🚏
Oluşturulan FTP sitesini IISM konsolunda şu şekilde görüntülemelisiniz.
FTP Sitesine Erişim
Ftp sitelerine internet explorer benzeri bir tarayıcı ile grafik ortamından veya ftp.exe programı ile komut satırından erişebiliriz.
Bir ftp sitesine gitmek istediğinizde ftp://
ifadesiyle erişim sağlamanız gerekmektedir. Komut satırıyla,
cmd ekranında ftp localhost
ile ftp sitesine erişimi sağlıyorum. Benden istemiş olduğu user bilgisini anonymous
olarak ayarladıktan sonra password kısmını boş geçiyorum. Dönüş değeri olarak 203 User logged in
ifadesini ekranda görüyoruz.
- dir
ya dals
komutuyla birlikte ftp içerisinde yer alan dosyaları 📂 listeleyebiliriz.GET {fileName}
komut şablonuyla dosya indirebiliriz.PUT {fileName}
komut şablonuyla dosya yükleyebiliriz. Örneğinput c:\banka.jpeg
komutuyla banka.jpeg dosyasını yükler.quit
veyabye
komutuyla ftp ortamını terk ederiz.
Kullanıcıların FTP sitesine Upload Yapabilmesi için 3 kural gereklidir.
🔸 FTP sitesine yazma izni verilmiş olması gereklidir.
🔸 FTP sitesine yükleme yapacak kullanıcının, sitenin klasörü üzerinde NTFS izni olarak modify yetkisine sahip olması gereklidir.
🔸 Kullanıcının FTP sitesine anonim kullanıcı olarak değil, kendi ismiyle oturup açması gerekir.
FTP Current Sessions
FTP sitesine bağlı olan kullanıcıların listesini görüntüleyebileceğimiz bölümdür.
Peki, basic authentication ile kullanıcı giriş sağlamak için ne yapmak gerekiyor?
Bunun için ilk adım olarak ftp için izole bir kullanıcı oluşturalım. Powershell’i 👨💻 açtıktan sonra lusrmgr
komutuyla birlikte kullanıcı yönetim penceresini açalım ve new user ile yeni bir kullanıcı oluşturalım.
Kullanıcı oluşturduktan sonra “FTP Authentication” kısmından Anonymous Authentication’ı disabled yapıp Basic Authentication’ı enabled yapalım. 🛡️
Kimlik doğrulama işlemini de hallettikten sonra artık yetkilendirme kısmına bakabiliriz. “FTP Authorization” kısmından oluşturmuş olduğumuz izole ftp kullanıcısını yetkilendiriyoruz.
Senaryo: İşte bu kadar! Hadi gelin şimdi kimliksiz şekilde ftp site’a erişmeye çalışalım. 🙂
Görüldüğü üzere “Anonymous authentication is not allowed.” dönüşüyle birlikte erişim sağlayamadık.
Oluşturmuş olduğumuz kullanıcıyla erişim sağlayabildiğimizi görmüş olduk.
FTP Messages
Siteye gelenler ve gidenler için mesajlar tanımlayabiliriz. 💬🗨️
FTP sitesine powershell üzerinden eriştiğinizde bu mesajları görüntüleyebilirsiniz.
FTP User Isolation 👥
Kullanıcı yalıtımı, kullanıcıların FTP sitesinde farklı klasörlere (kendileri için ayrılmış klasörlere) erişimini sağlar.
Başlangıçta FTP root directory seçeneği işaretli olduğundan ötürü izolasyon bulunmamaktadır. 🧱 FTP sitesine giren kullanıcılar ana klasöre (root) erişibilir.
User name directory seçimi yapıldığında, ftp sitesine giren kullanıcıların kendi adlarını taşıyan klasörlere yönlendirilmesi sağlanır. 💡
ftparthur
kullanıcıyla siteye eriştiğimde, remote site yolundan da göreceğiniz üzere kullanıcı adımla eşleşen klasöre beni otomatik olarak yönlendirdi. Fakat kullanıcı izolasyonu sağlamadığımız için, kullanıcı kendi ismiyle eşleşen klasöre yönlendirilse dahii bir üst klasöre erişmek istediği takdirde erişebilecektir.
🚩 SORU: Kullanıcılar sadece ismiyle eşleşen klasöre erişebilmesini, diğer klasörlere erişememesini nasıl sağlarım?
Etki alanımızın iki adı bulunur. DNS adı (abc.com gibi) ve NetBIOS adı (CIHAT gibi). Bu isimlendirmeleri etki alanı oluştururken belirleriz. Genel olarak NetBIOS adı, DNS adından türetilir. DNS adnının ilk noktaya kadarki kısmının en çok 15 karakteri alınarak NETBIOS adı türetilir.
Kullanıcıları izole etmek için ftp sitesinin ana klasörü altında, etki alanının NETBIOS adıyla bir klasör yaratılmalıdır. Bu klasör altında da FTP sistesine erişecek kullanıcılar için alt klasörler oluşturulmalıdır.
FORMÜL: \Inetpub\ftproot\{NetBIOS Name}\{FTP Username}
Formülü uyguladıktan sonra “FTP User Isolation sekmesinde, “User name directory” seçeneğini uyguluyoruz. Bu işlemlerden sonra kullanıcı FTP sitesine girdiğinde yalnızca kendi klasörünün içinde gezinebilecektir, yani kullanıcı izole hale getirilmiştir.
İzolasyon Seçenekleri
1- User name directory (disable global virtual directories): Kullanıcı adını taşıyan klasörlere yönlendirir. (Kullanıcı diğer kullanıcıların dosya ve klasörleri üzerinde NTFS iznine sahip olsa bile o klasörlere erişemez.)
2- User name physical directory (enable global virtual directories): Kullanıcı adını taşıyan klasöre yönlendirir. (Kullanıcı diğer kullanıcıların dosya ve klasörleri üzerinde NTFS iznine sahipse onlara erişebilir.)
Kullanıcı izolasyonu için “Authentication” sekmesinden “Basic Authentication” şıkkının aktif (enabled) olması gerekmektedir.
Güvenli FTP (Secure FTP)
FTP, internetin ilk iki protokollerinden biridir. Diğer protokol ise telnet’dir. İlk protokollerin hemen hepsi gibi, güvenlik kaygısı taşımadan yaratılmıştır.
HTTP’nin güvenli sürümü HTTPS’idi. FTP’nin güvenli sürümü için iki farklı seçenek bulunmaktadır.
🔹 SFTP (Secure FTP)
🔹 FTPS (FTP Secure)
Windows’da FTPS yapabiliyoruz fakat SFTP yapamıyoruz. IISM ile FTPS olarak ftp site eklemek gayet basit.
Localhost ile çalışıyorsanız “IIS Express Development Certificate” 📑 seçip geçebilirsiniz. Elinizde bir SSL sertifikası buluyorsa, select kısmından sertifikayı da ekleyebilirsiniz.
Oluşturulan ya da oluşturulmuş ftp sitelerine erişmek için WinScp ya da Filezilla gibi yardımcı programları kullanabilirsiniz.
Wir Sehen Uns 😎