Sertifikalar Kariyer Projeler Blog Araçlar İletişim $ iletisime_gec
← Tüm yazılar

Rocky Linux'ta Güvenli FTP Sunucusu Kurulumu: vsftpd + FTPS

Düz FTP kullanmak 2025'te kabul edilemez — şifreler ve dosyalar açık metin aktarılıyor. Rocky Linux'ta vsftpd ile TLS şifreli FTPS sunucusu kurun. SELinux, firewalld ve chroot izolasyonuyla tam güvenli yapı anlattım.

Rocky Linux'ta Güvenli FTP Sunucusu Kurulumu: vsftpd + FTPS

Düz FTP protokolü 1971'de tasarlandı — şifreleme diye bir kavram yoktu. Kullanıcı adı, şifre ve dosya içeriği ağ üzerinde açık metin olarak aktarılıyor. Kurumsal ortamda böyle bir yapı kullanmak ciddi güvenlik riski.

Rocky Linux'ta vsftpd ile TLS şifreli FTPS sunucusu kurarak bu sorunu çözüyorum. SELinux ve firewalld entegrasyonuyla tam güvenli bir yapı elde ediyorsunuz.

FTPS vs SFTP: Fark Ne?

İki terim sık karıştırılıyor:

Her ikisi de güvenli. Kurumsal uygulamalar genellikle FTPS bekliyor. SFTP ise Linux yöneticileri için daha pratik.

1. vsftpd Kurulumu

dnf install -y vsftpd
systemctl enable --now vsftpd

2. SSL Sertifikası Oluşturma

Self-signed sertifika oluşturun (üretim için Let's Encrypt öneriyorum):

openssl req -x509 -nodes -days 3650   -newkey rsa:2048   -keyout /etc/vsftpd/vsftpd.pem   -out /etc/vsftpd/vsftpd.pem   -subj "/C=TR/ST=Izmir/L=Izmir/O=SirketAdi/CN=ftp.sirketiniz.com"

chmod 600 /etc/vsftpd/vsftpd.pem

3. vsftpd Yapılandırması

/etc/vsftpd/vsftpd.conf dosyasını düzenleyin:

# Temel ayarlar
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022

TLS/SSL ayarları

ssl_enable=YES rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_tlsv1_2=YES ssl_sslv2=NO ssl_sslv3=NO allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES require_ssl_reuse=NO ssl_ciphers=HIGH

Kullanici izolasyonu (chroot)

chroot_local_user=YES allow_writeable_chroot=YES local_root=/home/ftp/$USER

Pasif mod

pasv_enable=YES pasv_min_port=40000 pasv_max_port=50000 pasv_address=SUNUCU_IP

Log

xferlog_enable=YES xferlog_file=/var/log/vsftpd.log log_ftp_protocol=YES

systemctl restart vsftpd

4. FTP Kullanıcısı Oluşturma

Shell erişimi olmayan FTP kullanıcısı oluşturun:

useradd -m -d /home/ftp/ftpkullanici -s /sbin/nologin ftpkullanici
passwd ftpkullanici

mkdir -p /home/ftp/ftpkullanici/upload chown -R ftpkullanici:ftpkullanici /home/ftp/ftpkullanici

5. SELinux Yapılandırması

Rocky Linux'ta SELinux varsayılan olarak aktif. FTP için gerekli politikaları etkinleştirin:

setsebool -P ftp_home_dir on
setsebool -P ftpd_full_access on

SELinux etiketi ekleyin:

semanage fcontext -a -t var_log_t "/var/log/vsftpd.log"
restorecon -v /var/log/vsftpd.log

Hata alıyorsanız kontrol edin:

ausearch -m AVC -ts recent | grep vsftpd
sealert -a /var/log/audit/audit.log | grep vsftpd

6. Firewalld Yapılandırması

firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=40000-50000/tcp
firewall-cmd --reload
firewall-cmd --list-all

Pasif mod için kernel modülünü yükleyin:

modprobe nf_conntrack_ftp
echo "nf_conntrack_ftp" >> /etc/modules-load.d/ftp.conf

7. Bağlantı Testi

FileZilla ile test edin:

Komut satırından test:

curl -v --ssl-reqd ftp://ftp.sirketiniz.com/   --user ftpkullanici:sifre --insecure

Sık Karşılaşılan Sorunlar

500 OOPS: refusing to run with writable root inside chroot: vsftpd.conf'a şunu ekleyin:

allow_writeable_chroot=YES

Pasif mod bağlantısı başarısız: pasv_address değerinin sunucunun public IP adresi olduğunu kontrol edin.

SELinux izin reddi: Özel politika oluşturun:

ausearch -m AVC | audit2allow -M vsftpd_custom
semodule -i vsftpd_custom.pp

Sonuç

vsftpd ile Rocky Linux üzerinde TLS şifreli, SELinux korumalı ve chroot izolasyonlu güvenli bir FTP sunucusu kurdunuz. Kullanıcılar sadece kendi klasörlerini görebiliyor, tüm bağlantılar TLS ile şifreli aktarılıyor. Kurulum veya yapılandırma konusunda sorularınız varsa iletişim formundan ulaşabilirsiniz.

İK
İdris Koç
Linux Engineer · IT Manager @ KRK Holding · linux.ist Kurucusu
linux.ist AI
● Gemini 1.5 Flash · Aktif
Merhaba! Linux, sunucu yönetimi veya ağ güvenliği hakkında sorularınızı yanıtlayabilirim. 👋