vsftpd

vsftpd, güvenlik ve performansa odaklanan, yaygın olarak kullanılan bir FTP ve FTPS sunucusudur. Yapılandırması genellikle diğer FTP sunucularına göre daha basit kabul edilir.

Uyarı: Standart FTP güvensizdir. Mümkünse, dosya transferi için vsftpd'yi FTPS modunda yapılandırın veya daha modern ve genellikle daha kolay yapılandırılan SFTP (OpenSSH sshd tarafından sağlanır) kullanın.

Kurulum

vsftpd genellikle dağıtımların standart depolarında bulunur.

  • RHEL Tabanlı (dnf):

    sudo dnf install vsftpd -y
  • Debian Tabanlı (apt):

    sudo apt update
    sudo apt install vsftpd -y

Temel Yapılandırma (/etc/vsftpd.conf)

Ana yapılandırma dosyası genellikle /etc/vsftpd.conf'tur. Aşağıda bazı temel ve güvenlik açısından önemli ayarlar bulunmaktadır (dosyayı sudo ile düzenleyin):

# Anonim girişi engelle (ÖNEMLİ!)
anonymous_enable=NO

# Yerel sistem kullanıcılarının giriş yapmasına izin ver
local_enable=YES

# Kullanıcıların dosya yüklemesine/değiştirmesine izin ver (gerekliyse)
write_enable=YES

# Yerel kullanıcıları kendi ev dizinlerine hapset (chroot) (ÖNEMLİ!)
chroot_local_user=YES
# Eğer chroot edilen ev dizini kullanıcı tarafından yazılabilir ise, 
# güvenlik nedeniyle vsftpd hata verebilir. Bunu aşmak için (dikkatli olun):
allow_writeable_chroot=YES 
# Alternatif olarak, chroot için yazma izni olmayan ayrı bir dizin kullanılabilir.

# Standalone modda çalıştır (xinetd yerine)
listen=YES
# IPv6 dinlemesi için (gerekliyse)
listen_ipv6=YES 

# Yüklemeler için varsayılan umask (022 -> dosyalar 644, dizinler 755)
local_umask=022

# ASCII modunda transferi etkinleştir (bazı eski sistemlerle uyumluluk için gerekebilir)
# ascii_upload_enable=YES
# ascii_download_enable=YES

# Zaman damgalarını GMT olarak göster
use_localtime=NO 

# Bağlantı ve transfer loglarını etkinleştir
xferlog_enable=YES
xferlog_std_format=YES # Standart log formatını kullan
xferlog_file=/var/log/vsftpd.log # Log dosyasının yeri

# Boşta kalma süresi (saniye)
idle_session_timeout=600

# Veri bağlantısı zaman aşımı (saniye)
data_connection_timeout=120

# Banner göster (isteğe bağlı)
ftpd_banner=FTP Sunucusuna Hos Geldiniz.

# Pasif mod için port aralığı (güvenlik duvarında bu portlara izin verilmeli)
# pasv_min_port=40000
# pasv_max_port=40100

# Kullanıcı listesi dosyaları (gerekirse belirli kullanıcılara izin vermek/engellemek için)
# userlist_enable=YES
# userlist_file=/etc/vsftpd.userlist
# userlist_deny=NO # userlist_file'daki kullanıcılara izin ver (YES ise engelle)

FTPS Yapılandırması (TLS/SSL)

FTPS'i etkinleştirmek için /etc/vsftpd.conf dosyasına aşağıdaki gibi direktifler eklenir:

Not: FTPS için bir SSL sertifikası ve özel anahtar gereklidir. openssl komutu ile kendinden imzalı (self-signed) bir sertifika oluşturabilir veya Let's Encrypt gibi bir otoriteden ücretsiz sertifika alabilirsiniz. Dosya yollarını kendi sertifika konumlarınıza göre ayarlayın.

Servis Yönetimi (systemctl)

Yapılandırma dosyasında değişiklik yaptıktan sonra vsftpd servisini yeniden başlatmanız gerekir:

Güvenlik Duvarı (Firewall)

vsftpd'nin çalışması için güvenlik duvarınızda ilgili portlara izin vermeniz gerekir:

  • Port 21 (TCP): FTP kontrol bağlantısı.

  • Port 20 (TCP): FTP veri bağlantısı (Aktif mod - nadiren kullanılır).

  • Pasif Port Aralığı (TCP): /etc/vsftpd.conf içinde pasv_min_port ve pasv_max_port ile tanımlanan aralık (Pasif mod - yaygın olarak kullanılır).

  • Port 990 (TCP): Implicit FTPS (eğer yapılandırıldıysa).

Örnek (firewalld kullanarak):

vsftpd, doğru yapılandırıldığında güvenli bir FTP/FTPS sunucusu olabilir, ancak SFTP'nin genellikle daha basit ve standart bir güvenli dosya transfer çözümü sunduğunu unutmayın.

Last updated