RHEL 8'de FTP Sunucusu Nasıl Kurulur, Yapılandırılır ve Güvenli Hale Getirilir


FTP (“Dosya Aktarım Protokolü” anlamına gelir), bilgisayar ağındaki bir istemci ile sunucu arasında dosya aktarımı için kullanılan standart ve eski bir ağ protokolüdür. Dosyaları sunucuya yüklemek ve sunucudan dosya indirmek için bir FTP istemcisi aracılığıyla dosyalara ve dizinlere erişim sağlayan bir istemci-sunucu modeli mimarisi üzerine kurulmuştur.

Önceki yazımızda, bilgisayar ağındaki istemci ve sunucu arasında bilgisayar dosyalarının aktarımı için CentOS/RHEL 7'de FTP Sunucusunun nasıl kurulacağını, yapılandırılacağını ve güvenli hale getirileceğini anlatmıştık.

Bu makalede, bilgisayarlar arasında temel dosya paylaşımı için RHEL 8 üzerinde bir FTP sunucusunun nasıl kurulacağını, yapılandırılacağını ve güvenliğinin nasıl sağlanacağını açıklayacağız.

FTP Sunucusunu RHEL 8'e yükleyin

1. Güvenli FTP paketini yüklemek için aşağıdaki dnf komutunu kullanın.

dnf install vsftpd

2. Kurulum tamamlandığında, bu arada vsftpd hizmetini başlatmanız, sistem önyüklemesinde otomatik olarak başlamasını etkinleştirmeniz ve ardından aşağıdaki systemctl komutlarını kullanarak durumu doğrulamanız gerekir.

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3. Daha sonra, harici sistemlerden FTP hizmetlerine erişime izin vermek için sistem güvenlik duvarında 21 FTP bağlantı noktasını açmanız gerekir.

firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --zone=public --permanent --add-port=45073/tcp
firewall-cmd --reload

RHEL 8'de FTP Sunucusunu Yapılandırma

4. Bir FTP sunucusu yapılandırmak için, aşağıdaki kopyalama komutunu kullanarak ana FTP yapılandırma dosyasının /etc/vsftpd/vsftpd.conf yedeğini almanız gerekir.

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig

5. Ardından favori komut satırı düzenleyicinizi kullanarak yapılandırma dosyasını açın.

vi /etc/vsftpd/vsftpd.conf

Aşağıdaki parametreleri bu karşılık gelen değerlerle ayarlayın (yapılandırma parametrelerinin anlamları için man vsftpd.conf'a bakın):

anonymous_enable=NO             
local_enable=YES		
write_enable=YES		
local_umask=022		        
dirmessage_enable=YES	        
xferlog_enable=YES		
connect_from_port_20=YES        
xferlog_std_format=YES          
listen=NO   			
listen_ipv6=YES		        
pam_service_name=vsftpd        

6. Ardından, /etc/vsftpd.userlist kullanıcı listesi dosyasına göre kullanıcıların FTP hizmetlerine erişimine izin vermek/reddetmek için FTP'yi yapılandırmanız gerekir.

Varsayılan olarak, /etc/vsftpd.userlist dosyasında listelenen kullanıcıların erişimi, userlist_deny seçeneği userlist_enable ise YES olarak ayarlanarak reddedilir. =YES, erişimi etkinleştirir.

Ancak, userlist_deny=NO parametresinin ayarlanması ayarı değiştirir; bu, yalnızca userlist_file=/etc/vsftpd.userlist'te açıkça listelenen kullanıcıların oturum açmasına izin verileceği anlamına gelir.

Bu nedenle, vsftpd.conf yapılandırma dosyanıza aşağıdaki satırları ekleyin (veya zaten varsa, açıklamalarını kaldırın ve değerlerini gösterildiği gibi ayarlayın):

userlist_enable=YES                   # allow access to list of usernames from the userlist_file
userlist_file=/etc/vsftpd.userlist    # stores usernames.
userlist_deny=NO   

7. FTP kullanıcılarını Ana dizinleriyle sınırlamak için şimdi vsftpd.conf yapılandırma dosyanıza aşağıdaki satırları ekleyin.

chroot_local_user=YES		#means local users will be placed in a chroot jail, their home directory after login by default settings.
user_sub_token=$USER         	
local_root=/home/$USER/ftp   	

Değişiklikleri dosyaya kaydedin ve kapatın.

8. FTP'nin kullanıcının ana dizinindeki dosyaları okumasını/yazmasını etkinleştirmek için aşağıdaki SELinux boole kuralını ayarlayın.

semanage boolean -m ftpd_full_access --on

9. Yukarıda şu ana kadar yaptığımız tüm değişiklikleri etkilemek için son olarak vsftpd hizmetini yeniden başlatın:

systemctl restart vsftpd

RHEL 8'de FTP Sunucusunu Test Etme

10. Yukarıdaki FTP kurulumunun düzgün çalışıp çalışmadığını test etmek için useradd komutuyla bir FTP kullanıcısı oluşturarak başlayın ve bu kullanıcı için bir şifre oluşturun.

useradd -m -c "Tecmint HowTos" -s /bin/bash tecmint
passwd tecmint

11. Daha sonra aşağıdaki gibi echo komutunu kullanarak tecmint kullanıcısını /etc/vsftpd.userlist dosyasına ekleyin.

echo "tecmint" | tee -a /etc/vsftpd.userlist
cat /etc/vsftpd.userlist

12. Ardından kullanıcı için alternatif yerel kök dizini oluşturun (tecmint, sizinki muhtemelen farklıdır) ve bu dizinde uygun izinleri ayarlayın.

mkdir -p /home/tecmint/ftp
chown nobody:nobody /home/tecmint/ftp
chmod a-w /home/tecmint/ftp

13. Ardından, yerel kök konumda kullanıcının dosyalarını tutacağı bir dizin oluşturun.

mkdir /home/tecmint/ftp/files
chown tecmint:tecmint /home/tecmint/ftp/files
chmod 0700 /home/tecmint/ftp/files/

14. Şimdi herhangi bir FTP istemcisini kullanarak aşağıdaki gibi FTP sunucusuna bağlanın.

ftp [email 
Örnek Çıktı
Connected to 192.168.56.100
220 Welcome to TecMint.com FTP service.
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

Bu kadar! Bu makalede, RHEL 8'de bir FTP sunucusunun nasıl kurulacağını, yapılandırılacağını ve güvenliğinin nasıl sağlanacağını açıkladık. Bir sonraki yazımızda SSL/TLS bağlantılarını kullanarak FTP sunucusunun güvenliğinin nasıl sağlanacağını göstereceğiz. O zamana kadar bizimle kalın.