Linux ­Kurulu­m ve Y­onetim­i
  • Döküman Hakkında
  • Linux ve GNU'nun Geçmişi
    • CentOS, Debian ve FreeBSD Ana Sürümlerin Farkları
  • Temel Komutlar
    • Temel Terminal Komutları
    • Yardım Dosyaları
    • Dosya İzinleri, Yetkiler, Kullanıcılar ve Gruplar
    • Dosya Düzenleme Araçları
      • nano ve pico
      • vi
    • Sıkıştırılmış Dosyalar
  • Standart Girdi ve Çıktı
    • Standart Çıktı
    • Standart Girdi
    • UNIX Pipeline
    • Olmazsa Olmaz: stdio.h
    • Standart Hata ve File Descriptor
    • Forkbomb
    • Named Pipe
  • Gelişmiş Terminal Komutları
    • Tarih ve Saat Ayarlama
    • Sistem Yükünü İzleme
    • patch ve diff
    • xargs
    • awk ve sed
    • egrep ve Regular Expressions
    • rename
    • Imagemagick ve Görüntü Dosyaları
    • wget
    • Python ile Dosya Sunuculuğu
  • Temel Dağıtımlar
    • RHEL Tabanlı (CentOS, Rocky, Alma)
      • rpm Paketleri
      • DNF Paket Yöneticisi
      • Repo Ayarları
      • Network Ayarları
    • Debian
      • deb Paketleri
      • apt Paket Yöneticisi
      • Repo Ayarları
      • Network Ayarları
    • FreeBSD
      • Ports ve pkg Yönetimi
      • Güncelleme Teknikleri
      • Network Ayarları
    • Arch Linux
      • pacman ve AUR
      • Network Ayarları
    • Ortak Network Dosyaları
  • SSH
    • Uzak Sunucuya Bağlanma
    • sshd Sunucu Ayarları
    • Private ve Public Anahtarlar
    • Güvenli Dosya Aktarımı
    • sshfs
  • Kernel Boot
    • Sunucu Başlangıcına Genel Bakış
    • Çekirdeğin Yüklenmesi ve Boot Seçenekleri
    • Çekirdek Parametreleri
    • Bootloader Nedir?
  • User Space
    • Başlangıç: Init
    • Init Versiyonunu Belirlemek
    • System V
      • Servislerin Yönetimi
      • Çalışma Seviyeleri (Run Levels)
      • Örnek System V Servis Oluşturma
    • systemd
      • Servislerin Yönetimi
      • Birimler ve Birim Tipleri
      • Örnek systemd Servis Oluşturma
    • Acil Durumlar ve Tek Kullanıcı Modu
  • BASH Programlama
    • Döngüler ve Diğer Kontrol Yöntemleri
    • Menüler
  • Log Dosyaları
    • Log İnceleme ve Filtreleme
  • İnternet Servisleri
    • Bir sayfanın İnternetteki Serüveni
    • Nameserver Servisleri
    • Apache
    • PHP-FPM
    • FTP/FTPS/SFTP
      • vsftpd
      • ProFTPD
      • SFTP
      • Komut Satırından ftp Kullanımı
  • Zamanlanmış Görevler
    • crontab
    • at
  • Veritabanı
    • MySQL
      • MySQL Kurulumu
      • MySQL Servisini Çalıştırmak
      • Veritabanı ve Tablo oluşturmak
      • SQL Tablosuna Veri Eklemek
      • Temel SQL Sorgularına Giriş
        • Birinci bölüm
      • mysqldump ile yedekleme
      • Replikasyon teknikleri
      • Yedekleri içeri alma
    • PostgreSQL
      • PostgreSQL Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
    • MongoDB
      • MongoDB Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
    • Redis
      • Redis Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
  • Temel Network Yapılandırması
  • Gelişmiş Network Komutları
    • ip
    • ifconfig
    • route
    • ping
    • traceroute
    • dig
    • nslookup
    • netcat
    • nmap
    • tcpdump
    • Wireshark (Giriş)
    • Bantgenişliği Ölçümü
  • Güvenlik
    • Firewalld
    • IPTables
      • Temel İzinler
      • IP ve Port Engelleme
    • selinux
  • Disk Sistemleri
    • ext
    • zfs
    • lvm
  • RAID
    • RAID Biçimleri
    • Verinin Disklere Yayılması
    • Cache
    • Terimler ve Tavsiyeler
  • Örnek Kurulumlar ve Modern Yaklaşımlar
    • CentOS 7 Tam Sistem Kurulumu (Arşiv)
    • AlmaLinux ile Hosting Ortamı Kurulumu
    • Ubuntu ile Hosting Ortamı Kurulumu
    • Modern Hosting Yaklaşımları (PaaS, Coolify vb.)
  • Konteynerleştirme (Docker / Podman)
  • Yapılandırma Yönetimi (Ansible)
  • İzleme ve Uyarı (Prometheus / Grafana)
  • Nginx Web Sunucusu
  • Kubernetes (Giriş)
  • PCI-DSS ve Linux Sistemleri
  • İndeks
  • Kaynaklar
Powered by GitBook
On this page
  • Kurulum
  • Temel Yapılandırma (/etc/vsftpd.conf)
  • FTPS Yapılandırması (TLS/SSL)
  • Servis Yönetimi (systemctl)
  • Güvenlik Duvarı (Firewall)
  1. İnternet Servisleri
  2. FTP/FTPS/SFTP

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:

# SSL/TLS'i etkinleştir
ssl_enable=YES

# Anonim kullanıcılar için SSL'i zorunlu kılma (zaten anonim kapalı)
allow_anon_ssl=NO
# Yerel kullanıcılar için hem login hem de veri transferinde SSL'i zorunlu kıl
force_local_data_ssl=YES
force_local_logins_ssl=YES

# Kullanılacak TLS/SSL protokol sürümleri (Sadece modern TLS önerilir)
ssl_tlsv1_2=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_tlsv1=NO
ssl_tlsv1_1=NO

# SSL sertifikası ve özel anahtar dosyalarının yolu
# (Genellikle bir SSL sertifikası oluşturmanız veya almanız gerekir, örn. Let's Encrypt)
rsa_cert_file=/etc/ssl/certs/vsftpd.pem # Kendi sertifika dosyanızın yolu
rsa_private_key_file=/etc/ssl/private/vsftpd.pem # Kendi özel anahtar dosyanızın yolu

# Güçlü şifreleme algoritmalarını tercih et
ssl_ciphers=HIGH

# SSL oturumlarının yeniden kullanımıyla ilgili uyumluluk ayarı
require_ssl_reuse=NO 

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:

# Yapılandırmayı kontrol et (bazı dağıtımlarda bu komut olmayabilir)
# vsftpd -olisten=NO /etc/vsftpd.conf 

# Servisi yeniden başlat
sudo systemctl restart vsftpd.service

# Sistem başlangıcında otomatik çalışmasını sağla
sudo systemctl enable vsftpd.service

# Servisin durumunu kontrol et
sudo systemctl status vsftpd.service

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):

sudo firewall-cmd --permanent --add-service=ftp
# veya belirli portlar:
# sudo firewall-cmd --permanent --add-port=21/tcp
# sudo firewall-cmd --permanent --add-port=40000-40100/tcp # Pasif port aralığı
sudo firewall-cmd --reload

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.

PreviousFTP/FTPS/SFTPNextProFTPD

Last updated 1 month ago