FTP Nedir?
FTP, File Transfer Protocol (dosya transfer protokolü) anlamına gelir. 21 portu üzerinden iki bilgisayar arasında dosya transfer etmemizi sağlar.
vSFTP Nedir ?
vsftpd (very secure FTP daemon), Linux dahil Unix benzeri sistemler için bir FTP sunucusudur. Bir çok FTP sunucusunda eksik olan birçok özelliği desteklemektedir. Aşağıda bir kaç örnek görebilirsiniz.
- Çok yüksek güvenlik gereksinimleri
- band genişlği sınırlandırma
- sanal kullanıcı oluşturma olanağı
- yüksek hız vs.
1- vsftpd Kurulumu
yum install vsftpd -y # komutu ile gerekli vsftpd paketi kurulumu yapılır.
2- vsftpd Yapılandırma
İlk olarak mevcut default konfigürasyon dosyasını yedekleyelim.
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.org
echo "" > vsftpd.conf # conf dosyasının içeriğini temizleyelim.
xferlog_file=/var/log/xferlog
xferlog_enable=YES # upload/download hakkında detaylı bilgi veren log oluşmasını sağlar.
dual_log_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES # YES olduğu için izinli kullanıcı listesi belirtilmeli
userlist_deny=NO
tcp_wrappers=NO
pasv_enable=YES
ssl_enable=YES
allow_anon_ssl=NO # YES olarak ayarlanırsa anonim kullanıcıların SSL bağlantı yapmalarına izin verir.
force_local_data_ssl=NO
force_local_logins_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
pasv_max_port=65535
pasv_min_port=64000
reverse_lookup_enable=NO
### detaylı bilgi ve açıklamaya buradan erişebilirsiniz.
3- FTP kullanıcı tanımlarının yapılması
FTP yapmasını istediğimiz kullanıcı bilgilerini aşağıdaki dosya içerisine ekliyoruz.
vim /etc/vsftpd/userlist
FTP yapmasını istemediğimiz kullanıcı bilgilerini de aşağıdaki dosya içerisine ekliyoruz.
vim /etc/vsftpd/ftpusers
4- Servisin Başlatılması
Tanımlarımızı yaptıktan sonra aşağıdaki komutlar ile servisimizi çalıştırıyoruz.
systemctl enable vsftpd.service # reboot sonrası servisin otomatik çalışması için
Servisi çalıştırdığımız da sertifika dosyasını bulamadığına dair hata alırsanız aşağıdaki komutla sertifikanızı oluşturabilirsiniz.
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem # sertifika geçerlilik süresini 365 değerini değiştirerek ayarlayabilirsiniz.
5- Firewall Tanımları
Sunucuda firewall çalışıyorsa ftp servisi ve 21 portu için gereken izinleri aşağıdaki şekilde veriyoruz.
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
6- Selinux Tanımları
Dosya transferi noktasında herhangi bir sıkıntı yaşarsanız SELINUX u disable yapabilirsiniz.
vim /etc/selinux/config # dosya içeriğindeki SELINUX parametresini “SELINUX=disabled” şeklinde değiştirip sunucuyu yeniden başlattığınızda SELINUX kaynaklı hatalardan kurtulmuş olursunuz.
7- Oluşturulan kullanıcıların sadece sizin belirttiğiniz klasör dışındaki yerlere bağlanamaması için gereken tanımların yapılması
İlk olarak grup tanımını yapıyoruz.
groupadd sftpgroup
Oluşturduğumuz gruba ftp yapmasını istediğimiz kullanıcıları ekliyoruz.
useradd -M -g sftpgroup -s /usr/sbin/nologin ftpuser1
useradd -M -g sftpgroup -s /usr/sbin/nologin ftpuser2
Oluşturduğumuz kullanıcıların şifresini belirliyoruz.
passwd ftpuser1
passwd ftpuser2
FTP ana dizinimizi oluşturalım.
oluşturduğumuz ftpuser1 ve ftpuser2 kullanıcıların home dizin tanımlarını değiştirelim.
vim /etc/passwd # dosyası açılarak aşağıdaki gibi düzenlenir.
ftpuser1:x:1002:1000::/ftproot/user1:/usr/sbin/nologin
sshd tanımlarının yapılması;
vim /etc/ssh/sshd_config # dosyası açılarak aşağıdaki gibi düzenlenir.
ilk olarak “Subsystem sftp /usr/libexec/openssh/sftp-server” ifadesi “#” ile yorum satırına çevrilir ve aşağıdaki tanımlar eklenir.
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match Group sftpgroup
ChrootDirectory /ftproot/
PermitTunnel no
AllowAgentForwarding no
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Tanımlar bittikten sonra sshd ve vsftpd servisleri yeniden başlatılır.
bağlantının testi
Hiç yorum yok:
Yorum Gönder