FTP Nedir?
File Transfer Protocol’ün kısaltması olan FTP adından da anlaşılabileceği gibi internetin ilk standartları arasında yer alan dosya transfer protokolüdür. İstemci-sunucu mimarisinde çalışarak ağ üzerinden kolaylıkla dosya alma ve gönderme işlemlerinin yapılmasına olanak sağlar. FTP sunucularından dosya transferi işlemlerini gerçekleştirmek için Windows kullanıcıları WinSCP‘yi Mac OS kullanıcıları da FileZilla‘yı tercih edebilirler.
vsftpd Nedir?
Başta FTP üzerindeki veri trafiğinin şifrelenmemesi, bounce saldırıları ve packet capture gibi çeşitli açıklardan dolayı güvenlik amacıyla SSL / TLS ile güçlendirilmiş FTPS veya SSH kullanarak transfere izin veren SFTP gibi daha güvenli dosya transfer protokollerinin kullanımı önerilmektedir. vsftpd (very secure FTP daemon) ise güvenlik, performans ve kararlılık açısından kabul görerek yaygın bir şekilde Unix tabanlı sistemlerde kullanılan bir FTP sunucusudur. Özellikle isminin de belirtmiş olduğu üzere güvenlik alanına odaklanarak diğer FTP sunucuları tarafından sunulmayan pek çok özelliği desteklemektedir.
vsftpd’nin Kurulumu ve Yapılandırılması
CentOS için hazırladığım bu rehberde kurulum için ilk olarak aşağıdaki komutu çalıştırıyoruz:
sudo yum install vsftpd
Oldukça basit olan kurulum işleminden sonra vsftpd’i yapılandırmak için “/etc/vsftpd/” konumu altında yer alan “vsftpd.conf” dosyasını açarak aşağıda yer alan parametreleri güvenlik amacıyla sırasıyla güncelliyoruz:
vi /etc/vsftpd/vsftpd.conf
FTP sunucunuz sadece belirli kullanıcılara hizmet vermesi için anonim opsiyonunu kapatıyoruz:
anonymous_enable=NO
Anonim yerine kullanıcı adıyla giriş yapılabilmesi için aşağıdaki parametreyi değiştiriyoruz:
local_enable=YES
Son olarak her kullanıcının kendi dizininde işlem yapması için aşağıdaki değişikliği yaparak dosyayı kaydediyoruz:
chroot_local_user=YES
vsftpd’yi sunucunun her yeniden başlatma işleminden sonra tekrar çalışması için yapılandırmayı unutmayalım:
sudo chkconfig vsftpd on
vsftpd’de Kullanıcı Ekleme ve Şifre İşlemleri
vsftpd’nin CentOS 6.4 ve üzeri sürümlerinde kullanıcı eklemek için aşağıdaki komutu kullanabilirsiniz:
sudo adduser kullaniciadi
Benzer şekilde eklediğimiz kullanıcı için şifre belirlemek için aşağıdaki komuttan yararlanabiliriz:
sudo passwd kullaniciadi
SFTP ile İlk Bağlantının Gerçekleştirilmesi
vsftpd’nin kurulum sonrasında da kullanıcı ekleme işlemlerini gerçekleştirdikten sonra Windows kullanıcıları WinSCP‘yi Mac OS kullanıcıları da FileZilla‘yı kullanarak sunucularına erişebilir. Windows kullanıcıları için WinSCP üzerinden örnek verecek olursak uygulamayı açtıktan sonra sol taraftaki “New Site” seçeneğine gelerek “File protocol” altından SFTP seçimini yapıp sonrasında da IP adresi ve kullanıcı adı bilgilerini doldurarak SFTP üzerinden sunucularına bağlanabilirler. Buradaki “Save” opsiyonu ile bu yapılandırmayı kaydederek uygulamayı daha sonra açtığınızda da kolaylıkla bağlantı kurabilirsiniz. FileZilla kullanıcıları da benzer şekilde uygulama üzerinden ilk bağlantılarını gerçekleştirebilir.
vsftpd’de SSL/TSL Ayarları
SFTP yerine FTPS’yi tercih edecek olursanız vsftpd’deki SSL / TSL için gerekli olan yapılandırmayı aşağıdaki adımları izleyerek gerçekleştirebilirsiniz. İlk olarak sertifika dosyasını yaratacağımız alt klasörü oluşturalım:
sudo mkdir /etc/ssl/private
Sonrasında ise aşağıdaki komut ile sertifika ve anahtarı yaratabilirsiniz. Yalnız bu komutu çalıştırdıktan sonra istenen bilgileri doldurmanız gerekiyor burada en son çıkan “Common Name” bölümüne mutlaka sunucunuzun IP adresini yazmayı unutmayın aksi takdirde hata alacaksınız:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
FTP sunucusunu SSL / TSL’i destekleyecek şekilde yapılandırmak için aşağıdaki dosyayı açalım:
vi /etc/vsftpd/vsftpd.conf
Dosyanın sonuna inerek sertifika ve anahtar bilgilerinin hangi dosyada bulunduğunu belirtmek için aşağıdaki satırları ekliyoruz:
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
Sonrasında ise dosya içerisine aşağıdaki parametreleri ekliyoruz:
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
SSL yerine TLS’in kullanımı için aşağıdaki satırları dosyaya kopyalıyoruz:
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
Son olarak aşağıdaki parametreleri de dosyaya ekleyerek kayıt ediyoruz:
require_ssl_reuse=NO
ssl_ciphers=HIGH
Yaptığımız değişikliklerin geçerli olması için vsftpd’yi yeniden başlatalım:
sudo /etc/init.d/vsftpd restart