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
)
/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
)
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.
Modülü Yükleme/Etkinleştirme:
Debian/Ubuntu'da genellikle
proftpd-mod-crypto
paketi ile gelir.Yapılandırma dosyasında (
modules.conf
veyaproftpd.conf
)LoadModule mod_tls.c
satırının aktif olduğundan emin olun.
TLS Yapılandırması (
proftpd.conf
veya ayrı birtls.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
)
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çindePassivePorts
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.
Last updated