DigitalOcean 101 – vsftpd ile FTP Sunucu Kurulumu

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

digitalocean-101-19

vsftpd’de önce kullanıcı adı yarattık sonrasında da bu kullanıcı için şifre belirledik.

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.

digitalocean-101-20

WinSCP’yi açtıktan sonra bağlantı kurmak için gerekli bilgileri giriyoruz…

digitalocean-101-21

vsftpd ile bağlantı kuruluyor…

digitalocean-101-22

İşlem tamamdır! vsftpd sunucumuza SSH üzerinden başarıyla bağlandık…

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