İçindekiler
FTP Nedir, Neden Hala Kullanılıyor?
Dosya transferi denince akla ilk gelen protokollerden biri şüphesiz FTP’dir. 1970’lerden beri aktif olarak kullanılan FTP (File Transfer Protocol), hem sadeliği hem de geniş destek almasıyla sistem yöneticilerinin ve web geliştiricilerinin vazgeçilmez araçlarından biri olmayı sürdürüyor. Özellikle dosya paylaşımı, site yayına alma ve veri yedekleme gibi işlemler için FTP sıkça tercih ediliyor. Ancak FTP sunucularını güvenli ve düzenli tutmanın en önemli yollarından biri, her kullanıcının yalnızca kendisine ayrılan dizinle sınırlı kalmasını sağlamaktır. İşte tam burada “chroot” (kök dizin sınırlandırması) ve “local_root” ayarları devreye giriyor.
FTP’de Kök Dizin (Chroot) Mantığı Nedir?
1. Kullanıcıya Özel Kök Dizin Neden Gerekli?
Bir FTP sunucusunda birden fazla kullanıcı olduğunda, güvenliğin temel koşulu, her kullanıcının sadece kendi dosyalarını görmesi ve yönetmesidir. Eğer kullanıcılar sunucunun tüm dizinlerine erişirse, istenmeyen veri kayıpları, gizlilik ihlalleri veya yanlışlıkla dosya silme gibi riskler artar.
İşte chroot özelliği, yani kullanıcıyı bir dizine “kilitlemek”, bu tür riskleri en aza indirir. Kullanıcı, sanki sunucunun kök dizini orasıymış gibi kendi alanında çalışır ve sistemin geri kalanına ulaşamaz.
Örnek:
Örneğin,
root1
adlı bir kullanıcı oluşturduğunuzda, ona/home/root1
dizini atanır. FTP sunucusu, chroot ile root1’i bu dizine hapseder; root1, örneğin başka bir kullanıcının dizinini göremez.
2. Kök Dizin (Chroot) Nasıl Belirlenir?
a) Kullanıcı Home Dizinine Chroot
Çoğu FTP sunucusu (ör: vsftpd, proftpd, Pure-FTPd), kullanıcıya varsayılan olarak kendi home dizinini kök (chroot) olarak tanımlar. Yani, user1
adında bir kullanıcı varsa, bu kullanıcının kök dizini genellikle /home/user1
olur.
b) Farklı Bir Kök Dizin Tanımlama
Bazı durumlarda, home dizini yerine başka bir klasör (ör: /var/ftp/pub
) kök dizin olarak atanabilir. Bu, FTP sunucu konfigürasyonunda local_root parametresiyle yapılır.
vsftpd örneği:
local_root=/var/ftp/pub
Kullanıcıya FTP ile Dosya Gönderme: Adım Adım
1. Kullanıcıya Ait Kök Dizini Tespit Etme
Herhangi bir kullanıcı için (örneğin, ftpuser
, john
, veya örneğimizdeki root1
), home dizini şu komutla bulunur:
getent passwd kullanıcı_adı
Çıktı şu şekilde olur:
root1:x:1001:1001::/home/root1:/bin/bash
Buradaki /home/root1
, root1 kullanıcısının home dizinidir. FTP’de kök dizini genellikle burasıdır.
Neden bu kadar önemli?
Çünkü kullanıcı FTP’ye bağlandığında ilk olarak bu dizini görecek, başka bir dizine erişemeyecek. Aktarmak istediğiniz dosyanın bu dizinde olması gerekir.
2. Dosya Transferi: Doğru Klasöre Kopyalama
Hazırladığınız dosyayı, ilgili kullanıcının home dizinine ya da FTP sunucu konfigürasyonunda belirttiğiniz kök dizine kopyalamanız gerekir. Bu işlemi cp komutuyla yapabilirsiniz:
cp /path/to/olusturdugum_dosya.ext /home/root1/
Dosya Sahipliği ve İzinleri Ayarlamak
Dosyanın doğru şekilde erişilebilmesi için, hem dosya sahibi hem de dosya izinleri uygun şekilde ayarlanmalıdır:
chown root1:root1 /home/root1/olusturdugum_dosya.ext
chmod 644 /home/root1/olusturdugum_dosya.ext
Bu komutlar, dosyanın sahibi olarak root1’i ve root1 grubunu ayarlar; ardından dosyanın okunabilir olmasını sağlar. Böylece kullanıcı, dosyayı FTP’den rahatça indirebilir.
FTP Sunucusunda local_root ve chroot_local_user Ayarlarını Kontrol Etme
1. vsftpd ile Kök Dizin Yönetimi
Popüler FTP sunucusu vsftpd’de, kullanıcıların kök diziniyle ilgili iki önemli parametre vardır:
- chroot_local_user=YES: Bütün yerel kullanıcıları kendi home dizinlerine kilitler.
- local_root=/var/ftp/pub: Kullanıcının kök dizini olarak farklı bir klasör atar.
Örnek bir vsftpd.conf dosyası:
chroot_local_user=YES
local_root=/var/ftp/pub
Eğer local_root atanmışsa, dosyanızı bu dizine kopyalamanız gerekir:
cp /path/to/olusturdugum_dosya.ext /var/ftp/pub/
chown ftp:ftp /var/ftp/pub/olusturdugum_dosya.ext
chmod 644 /var/ftp/pub/olusturdugum_dosya.ext
Böylece kullanıcı, FTP’ye bağlandığında /var/ftp/pub
klasörünü kök dizini olarak görür.
FTP Üzerinden Dosya İndirme: Adım Adım Test Etmek
Her şey doğru yapıldı mı? Bunu test etmenin en pratik yolu, FTP istemcisiyle sunucuya bağlanmaktır. Aşağıdaki adımlarla dosya aktarımını kontrol edebilirsiniz:
- FTP istemcisiyle sunucuya bağlanın:
ftp sunucu_adresi
Kullanıcı adı olarak ilgili FTP kullanıcısını (örneğin, root1
) girin.
Şifrenizi yazın.
Dosyaları listeleyin:
ftp> ls
Dosyayı indirin:
ftp> get olusturdugum_dosya.ext
Artık dosyanız başarıyla transfer edilmiş olmalı!
FTP Kök Dizininde Dosya Yönetimi: Sık Yapılan Hatalar
1. Yanlış Dizin Hedefi
Çok sık yapılan bir hata, dosyayı yanlış bir klasöre kopyalamaktır. Özellikle local_root parametresi değiştirilmişse, dosyanızı kullanıcı home dizinine değil, ayarlanan yeni kök dizine atmanız gerekir.
2. Sahiplik ve İzinler Eksikliği
Dosya yanlış izinlerle yüklenirse, kullanıcı dosyayı göremez veya indiremez. Her zaman chown
ve chmod
ile sahipliği ve izinleri kontrol edin.
3. Chroot Hataları
Bazı FTP sunucuları, chroot edilen dizinde bazı alt dizinlerin veya dosyaların varlığını zorunlu kılar. Özellikle vsftpd, bazen “500 OOPS: cannot change directory” hatası verebilir. Bunun çözümü, doğru izin ve dizin yapısı kurmaktır.
FTP Sunucu Güvenliği: En İyi Uygulamalar
- Her kullanıcıya ayrı kök dizin tanımlayın.
- Sadece gerekli izinleri verin. (Dosya ve dizinler için genellikle 644 ve 755 yeterlidir.)
- Gereksiz kullanıcıların FTP erişimini kapatın.
- Mümkünse FTPS veya SFTP gibi güvenli protokollere geçin.
- Düzenli olarak logları ve erişimleri kontrol edin.
Sıkça Sorulan Sorular
1. Birden fazla kullanıcı için farklı kök dizinler belirleyebilir miyim?
Evet. Her kullanıcının kendi home dizini olabilir veya sunucu konfigürasyonunda kullanıcı bazında farklı kök dizinler ayarlanabilir.
2. FTP yerine SFTP kullansam aynı adımlar geçerli mi?
Temel mantık aynıdır, ancak SFTP SSH üzerinden çalıştığı için izinler ve güvenlik seviyeleri farklıdır. SFTP ile chroot yapılandırması biraz daha farklıdır.
3. Dosya izinleri ne olmalı?
Genellikle 644 (sahibi yazabilir, herkes okuyabilir) dosyalar için uygundur. Daha hassas dosyalar için izinleri daraltabilirsiniz.
4. FTP’de dizin görünmüyorsa ne yapmalıyım?
Öncelikle doğru dizine dosyayı kopyalayıp kopyalamadığınızı ve sahiplik/izinleri kontrol edin. Sorun devam ederse sunucu loglarını inceleyin.
FTP’de Dosya Paylaşımının Püf Noktaları
Özetle, FTP üzerinden bir kullanıcıya dosya göndermek ya da onunla paylaşmak için ilk ve en önemli adım, o kullanıcının göreceği kök (chroot) dizini doğru tespit etmektir. Bu dizini bulduktan sonra dosyayı oraya kopyalamak, sahiplik ve izinlerini düzgün ayarlamak ve FTP istemcisiyle test etmek gerekir. Sunucu konfigürasyonunu ve güvenliğini düzenli olarak kontrol etmek, olası veri sızıntılarının ve erişim hatalarının önüne geçer.
FTP hâlâ birçok kurumda yaygın olarak kullanılıyor; ama güvenlik ve yönetim açısından yukarıdaki adımlara dikkat etmek büyük önem taşır.