Veri aktarımı, dosya ve klasörlerle çalışmak için bir FTP sunucusu kurmak gereklidir. Sunucu olarak Ubuntu 20.04 ve hizmet olarak vsftpd seçtik. Bu FTP sunucusu, popüler proftpd’den farklı olarak basit ve hızlı kurulumu ile bilinir. İstemci olarak filezilla, total commander veya mc gibi herhangi birini kullanabilirsiniz.
Kurulumları root kullanıcısı üzerinden yapıyoruz, eğer normal bir kullanıcıysanız komutlardan önce sudo ekleyin.
1. Hizmeti Kuralım
apt update
apt install vsftpd
systemctl start vsftpd
systemctl enable vsftpd
2. Yapılandırma İşlemleri
Özgün ayarların yedeğini alalım:
cp /etc/vsftpd.conf /etc/vsftpd.conf_default
Kullanıcı ekleyelim ve şifresini belirleyelim:
useradd -m testuser
passwd testuser
Güvenlik duvarını yapılandıralım, örneğimizde iptables kullanıyoruz:
iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
/sbin/iptables-save > /etc/iptables/rules.v4
Çoğu durumda kullanıcıya yazma yetkisi gereklidir, bunu sunucu ayarlarında izin verelim:
nano /etc/vsftpd.conf
write_enable=YES
Ayar dosyasını Ctrl + O ve Enter ile kaydedip, Ctrl + X ile çıkalım. Hizmeti yeniden başlatalım:
systemctl restart vsftpd.service
Temel yapılandırma tamamlandı, ancak çoğu durumda belirli bir klasör için FTP erişimi yapılandırmak gerekebilir, örneğin bir alan adına (siteye) ait klasör için. Bunun için varsayılan kullanıcı dizinini değiştirmemiz, kullanıcıyı www-data grubuna eklememiz ve klasör ve dosyalarda grup için yazma izni vermemiz gerekmektedir. Varsayılan olarak, yazma izni sadece kullanıcı içindir.
usermod -d /var/www/ testuser
usermod -a -G www-data testuser
find /var/www -type d -exec chmod 775 {} \;
find /var/www -type f -exec chmod 664 {} \;
Tamamlandı, artık kullanıcı belirtilen yol içerisindeki dosya ve klasörlerle çalışabilir. Birden fazla siteniz varsa, her biri için FTP kullanıcısı ekleyebilirsiniz. Varsayılan olarak kullanıcı yalnızca belirtilen klasör ve alt klasörlere erişim sağlar, üst dizine geçemez.