ProFTPD kurulumu ve yapılandırılması

Ubuntu Türkiye Wiki sitesinden
Şuraya atla: kullan, ara

ProFTPD nedir?

ProFTPD, GNU Genel Kamu Lisansı lisansı ile dağıtılan bir FTP sunucusudur. Genel yapı dizaynı olarak Apache web sunucusunun dizaynı örnek alınmıştır. ProFTPD'nin temel özellikleri şu şekilde sıralanabilir:

  1. Tek bir yapılandırma dosyası bulunmaktadır. Debian tabanlı sistemlerde genelde /etc/proftpd/proftpd.conf yolunda bulunur. Dosya içerisinde direktifler ve direktif grupları bulunur.
  2. Her dizine isteğe bağlı olarak koyulan .ftpaccess dosyası tıpkı Apache deki .htaccess dosyası gibidir.
  3. Standalone (Tekbaşına) ya da inetd (sistem hizmeti) şeklinde çalıştırılabilir.
  4. Anonim FTP erişiminde kök dizinler ayrı bir dizin yapısı şeklinde yapılandırılmaya gerek duymaz.
  5. Unix / Linux biçimli erişim yetkilendirmelerine (chmod) izin verir
  6. Günlük tutma özelliği vardır. Ve kayıt edilecek bilgilerin genişletilme seçeneği mevcuttur.
  7. Shadow Password (Gölge Parolama) desteği vardır.

Kurulumu

Debian tabanlı sistemlerde (Ubuntu , Kubuntu , Xubuntu , Lubuntu, Mint , ...vb)

sudo apt-get install proftpd

komutu verilir ve kuruluma başlanır. Yükleme esnasında size aşağıdaki gibi soru soracaktır.

Proftpd1.png

Bu soruda size açıklamasında da belirtildiği gibi Kendibaşına (Standalone) ya da inetd den (Sistem servisi) olarak çalışma modlarından hangisini kullanmak istediğinizi seçmenizi isteyecektir. Açıklamada da belirtildiği gibi eğer yüksek trafiğe sahip bir ftp sunucunuz olacak ise, yani aynı anda bağlanacak kullanıcı sayınız fazla ise. Sunucuyu kendi başına (standalone) olarak çalıştırmanız önerilir. Hem böylelikle herhangi bir saldırgan sunucunuza bağlandığında sunucu üzerinde yazılım çalıştırmak isterse hiçbir şekilde sisteme erişemediğinden başarısız olacaktır.

Yapılandırma

Sunucunuzu ilk kurduğunuzda varsayılan olarak tüm bağlantılara kapalı bir şekilde yapılandırılmış olacaktır.

sudo gedit /etc/proftpd/proftpd.conf

komutunu vererek yapılandırma dosyamızı açıyoruz.

Dosyada kullanılan/kullanılabilecek yönergelerden bazıları :

  1. ServerName ---> FTP sunucunuzun adı
  2. ServerType ---> FTP sunucunuzun çalışma modu
  3. DeferWelcome ---> Kullanıcı yetkilendirilmeden önce Hoş geldin mesajı görünsünmü?
  4. MultilineRFC2228 ---> Çoklu satır kullanarak ecvap verme modu
  5. DefaultServer ---> Varsayılan FTP sunucusu olsunmu
  6. ShowSymlinks ---> Sembolik linkler görünsünmü
  7. TimeoutNoTransfer ---> Transfer işlemi olmadan bağlantı zaman aşımı
  8. TimeoutStalled ---> Transfer durduktan sonraki zmaan aşımı
  9. TimeoutIdle ---> Boş bağlantı zaman aşımı
  10. DisplayLogin ---> Giriş yapıldığında Hoş geldin mesajı olarak gösterilecek dosya
  11. DisplayChdir ---> Dizine girildiğinde gösterilecek mesaj dosyası
  12. ListOptions ---> Dizin listelenirken kullanılacak seçenekler
  13. DenyFilter ---> Düzenli ifade (Regular expression) ile komutlarda filtreleme
  14. Port ---> FTP sunucunuzun kullanacağı port numarası
  15. MaxInstances ---> Maksimum işlem sınırı
  16. AllowOverwrite ---> Dosyalar üzerine yazılabilir olsunmu
  17. TransferLog ---> Transfer işlemlerinin kayıt altına alınacağı dosya
  18. SystemLog ---> Sunucuyla yapılan bağlantıların kayıt altına alınacağı dosya
  19. RequireValidShell ---> Bağlanacak kullanıcılar geçerli bir komut sistemine sahipmi kontrolü
  20. RootLogin ---> Sistem yöneticisi (root) giriş yapabilsinmi
  21. UseFtpUsers ---> Bağlantısı bloke edilecek kullanıcıların listesi kullanılsınmı /etc/ftpusers
  22. DefaultRoot ---> Bağlanacak kullanıcılar için kök dizini
  23. <Limit parametre> ---> Verilen parametrelere göre filtre belirlenmesi
  24. <Directory dizin_yolu> ---> Belirtilen dizine ait özelliklerin belirtilmesi
  25. <Anonymous ~ftp> ---> Anonim bağlantıların ayarlarının yapılması
  26. MaxClients ---> Bağlantı yapabilecek maksimum istemci sayısı

Örnekler

Senaryo 1: Kurduğum FTP sunucusuna yalnızca Anonim bağlantı yapılmasını aktif etmek istiyorum

Cevap :
Yapılandırma dosyası içerisine aşağıdaki şekilde yönergeler yazılır, kaydedilir ve sunucu yeniden başlatılır

Dosya İçeriği
Dosya yolu:Yapılandırma Dosyası


<Anonymous ~ftp>
   User            ftp
   Group         nogroup
   UserAlias         anonymous ftp
   DirFakeUser      on    ftp
   DirFakeGroup    on    ftp
   RequireValidShell      off
   MaxClients         10
   DisplayLogin         welcome.msg
   DisplayChdir         .message

   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 </Anonymous>


Senaryo 2: Kurduğum FTP sunucusuna belirlediğim sistem kullanıcılarının bağlanmasını istiyorum fakat hiçbir kullanıcı diğer kullanıcıların dosyalarına erişemesin

Cevap : Yapılandırma dosyası içerisinde

DefaultRoot   ~

olarak belirtmek ve ayrıca eğer oluşturulan kullanıcılar /bin/false gibi bir komut kabuğunu kullanacak şekilde ayarlanmış ise

RequireValidShell      off

olarak ayarlanması ve kaydedilip sunucunun yeniden başlatılması yeterlidir.

Kaynakça