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/proftpd/proftpd.conf)
  • FTPS Yapılandırması (mod_tls)
  • Servis Yönetimi (systemctl)
  • Güvenlik Duvarı (Firewall)
  1. İnternet Servisleri
  2. FTP/FTPS/SFTP

ProFTPD

ProFTPD, yüksek düzeyde yapılandırılabilir, modüler ve yaygın olarak kullanılan bir açık kaynaklı FTP ve FTPS sunucusudur. Yapılandırma sözdizimi Apache web sunucusuna oldukça benzer, bu da Apache'ye aşina olan yöneticiler için öğrenmeyi kolaylaştırır.

Uyarı: Standart FTP güvensizdir. Mümkünse, dosya transferi için ProFTPD'yi FTPS modunda (mod_tls ile) 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

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

  • RHEL Tabanlı (dnf): (EPEL deposu gerekebilir)

    sudo dnf install proftpd proftpd-utils -y 
    # FTPS için openssl gerekebilir (genellikle kuruludur)
  • Debian Tabanlı (apt):

    sudo apt update
    sudo apt install proftpd-basic -y 
    # FTPS için: sudo apt install proftpd-mod-crypto -y (veya proftpd-basic içinde olabilir)

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

Ana yapılandırma dosyası genellikle /etc/proftpd/proftpd.conf veya /etc/proftpd.conf'tur. Ek yapılandırma dosyaları /etc/proftpd/conf.d/ veya /etc/proftpd/modules.conf gibi yerlerde bulunabilir.

Aşağıda bazı temel direktifler ve güvenlik ayarları bulunmaktadır:

# Sunucu Adı ve Tipi
ServerName                      "ProFTPD Sunucusu"
ServerType                      standalone # xinetd yerine kendi başına çalışır
DefaultServer                   on

# Port
Port                            21

# Çalıştırılacak Kullanıcı ve Grup
User                            proftpd
Group                           nogroup # veya proftpd

# Maksimum Eşzamanlı Bağlantı
MaxInstances                    30

# Kullanıcıları Ev Dizinlerine Hapsetme (Chroot)
DefaultRoot                     ~   # Kullanıcıyı kendi ev dizinine kilitler
# Belirli bir grup dışındakileri kilitlemek için:
# DefaultRoot ~ !admin_group 

# Geçerli bir kabuğu olmayan kullanıcıların girişine izin ver (örn. /sbin/nologin)
RequireValidShell               off

# Anonim girişi engelle (ÖNEMLİ!)
<Anonymous ~ftp>
  User                          ftp
  Group                         nogroup
  UserAlias                     anonymous ftp
  # Anonim girişi tamamen kapatmak için bu bloğu silin veya:
  <Limit LOGIN>
    DenyAll
  </Limit>
</Anonymous>

# Yükleme/Değiştirme İzinleri
<Directory />
  AllowOverwrite                on
</Directory>
# Daha kısıtlı izinler için <Directory> veya <Limit> blokları kullanılabilir

# Loglama
TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

# Pasif mod için port aralığı (güvenlik duvarında izin verilmeli)
# PassivePorts                  49152 65534

FTPS Yapılandırması (mod_tls)

ProFTPD'de FTPS desteği mod_tls modülü ile sağlanır. Bu modülün yüklenmesi ve yapılandırılması gerekir.

  1. Modülü Yükleme/Etkinleştirme:

    • Debian/Ubuntu'da genellikle proftpd-mod-crypto paketi ile gelir.

    • Yapılandırma dosyasında (modules.conf veya proftpd.conf) LoadModule mod_tls.c satırının aktif olduğundan emin olun.

  2. TLS Yapılandırması (proftpd.conf veya ayrı bir tls.conf):

    <IfModule mod_tls.c>
        # TLS'i etkinleştir
        TLSEngine               on
        # Loglama
        TLSLog                  /var/log/proftpd/tls.log
        # Sadece güvenli protokolleri kullan (TLSv1.2 ve sonrası)
        TLSProtocol             TLSv1.2 TLSv1.3 
        # Sertifika ve anahtar dosyaları
        TLSRSACertificateFile     /etc/ssl/certs/proftpd.crt # Kendi sertifika dosyanız
        TLSRSACertificateKeyFile  /etc/ssl/private/proftpd.key # Kendi özel anahtarınız
        # TLSCACertificateFile    /etc/ssl/certs/myca.crt # İstemci sertifikası doğrulaması için (isteğe bağlı)
        # TLSVerifyClient off # İstemci sertifikası isteme (genellikle off)
        
        # Bağlantı gereksinimleri
        TLSRequired             on # Hem kontrol hem veri bağlantısı için TLS zorunlu
        # veya TLSRequired ctrl+data
        
        # Diğer seçenekler
        TLSOptions              NoCertRequest NoSessionReuseRequired # İstemci sertifikası isteme, oturum yeniden kullanımı zorunlu değil
        TLSRenegotiate          none # Yeniden anlaşmayı kapat
    </IfModule>

    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 proftpd servisini yeniden başlatmanız gerekir:

# Yapılandırmayı kontrol et
sudo proftpd -t

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

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

# Servisin durumunu kontrol et
sudo systemctl status proftpd.service

Servis adı dağıtıma göre proftpd veya proftpd-basic olabilir.

Güvenlik Duvarı (Firewall)

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

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

  • Pasif Port Aralığı (TCP): /etc/proftpd/proftpd.conf içinde PassivePorts ile tanımlanan aralık (Pasif mod - FTPS için de gereklidir).

  • 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=49152-65534/tcp # Pasif port aralığı
sudo firewall-cmd --reload

ProFTPD, esnek yapılandırmasıyla güçlü bir FTP/FTPS sunucusudur, ancak yapılandırması vsftpd'ye göre biraz daha karmaşık olabilir. Güvenlik için FTPS'i etkinleştirmek veya SFTP kullanmak önemlidir.

PreviousvsftpdNextSFTP

Last updated 1 month ago