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

Cihat Solak
Intertech
6 min readMay 22, 2023

--

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?

File Transfer Protocol —Internet Information Services

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. 👌

Internet Information Services — Control Panel

Bir FTP Sitesi Nasıl Oluşturulur?

IISM üzerinden adım adım FTP sitesinin kurulumunu yapalım.

[1] — Add FTP Site 🚏

Internet Information Services Manager — Add FTP Site

[2] — Site Information 🚏

Internet Information Services Manager — Site Information

[3] — Binding and SSL Settings 🚏

Internet Information Services Manager — Binding and SSL Settings

[4] — Authentication and Authorization Information 🚏

Internet Information Services Manager — 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.

Internet Information Services Manager

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.

FTP root at localhost

Bir ftp sitesine gitmek istediğinizde ftp:// ifadesiyle erişim sağlamanız gerekmektedir. Komut satırıyla,

FTP root at localhost

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 da ls komutuyla birlikte ftp içerisinde yer alan dosyaları 📂 listeleyebiliriz.
  • GET {fileName} komut şablonuyla dosya indirebiliriz.
  • PUT {fileName} komut şablonuyla dosya yükleyebiliriz. Örneğin put c:\banka.jpeg komutuyla banka.jpeg dosyasını yükler.
  • quit veya bye 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.

FTP Current Sessions

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.

Local Users and Groups

Kullanıcı oluşturduktan sonra “FTP Authentication” kısmından Anonymous Authentication’ı disabled yapıp Basic Authentication’ı enabled yapalım. 🛡️

FTP Authentication

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.

FTP Authorization Rules

Senaryo: İşte bu kadar! Hadi gelin şimdi kimliksiz şekilde ftp site’a erişmeye çalışalım. 🙂

FTP — Anonymous authentication is not allowed.

Görüldüğü üzere “Anonymous authentication is not allowed.” dönüşüyle birlikte erişim sağlayamadık.

FTP — Authorized user login

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 Messages

FTP sitesine powershell üzerinden eriştiğinizde bu mesajları görüntüleyebilirsiniz.

FTP Messages

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.

FTP User Isolation

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.

Binding and SSL Settings

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 😎

--

--