Ubuntu Server 18.04.1. Настройка и установка FTP-сервера vsftpd
İçindekiler:
- Ön şartlar
- Ubuntu 18.04'e vsftpd kurulumu
- Vsftpd'yi yapılandırma
- 1. FTP Erişimi
- 2. Yüklemeleri etkinleştirme
- 3. Chroot Hapishanesi
- 4. Pasif FTP Bağlantıları
- 5. Kullanıcı Girişini Sınırlama
- 6. SSL / TLS ile İletimlerin Güvenliğini Sağlama
- Vsftpd Hizmetini yeniden başlatın
- Güvenlik Duvarını Açma
- FTP Kullanıcısı Oluşturma
- Kabuk Erişimini Devre Dışı Bırakma
- Sonuç
FTP (Dosya Aktarım Protokolü), uzak bir ağa ve uzak ağdan dosya aktarmak için kullanılan standart bir ağ protokolüdür. Daha güvenli ve daha hızlı veri aktarımı için SCP veya SFTP kullanın.
Linux için birçok açık kaynaklı FTP sunucusu vardır. En popüler ve yaygın olarak kullanılan PureFTPd, ProFTPD ve vsftpd'dir. Bu derste vsftpd (Çok Güvenli Ftp Daemon) kurulumunu yapacağız. Kararlı, güvenli ve hızlı bir FTP sunucusudur. Ayrıca, vsftpd'yi kullanıcıları ana dizinleriyle sınırlamak ve tüm aktarımı SSL / TLS ile şifrelemek için nasıl yapılandıracağınızı göstereceğiz.
Bu öğretici Ubuntu 18.04 için yazılmış olmasına rağmen, Ubuntu 16.04 ve Debian, Linux Mint ve Elementary OS dahil olmak üzere Debian tabanlı dağıtımlar için aynı talimatlar geçerlidir.
Ön şartlar
Bu eğiticiye devam etmeden önce sudo ayrıcalıklarına sahip bir kullanıcı olarak oturum açtığınızdan emin olun.
Ubuntu 18.04'e vsftpd kurulumu
Vsftpd paketi Ubuntu depolarında bulunur. Yüklemek için aşağıdaki komutları çalıştırın:
sudo apt update
sudo apt install vsftpd
vsftpd hizmeti, yükleme işlemi tamamlandıktan sonra otomatik olarak başlayacaktır. Servis durumunu yazdırarak doğrulayın:
sudo systemctl status vsftpd
Çıktı aşağıdaki gibi görünecek ve vsftpd hizmetinin etkin ve çalışır durumda olduğunu gösterecektir:
* vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-10-15 03:38:52 PDT; 10min ago Main PID: 2616 (vsftpd) Tasks: 1 (limit: 2319) CGroup: /system.slice/vsftpd.service `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf
Vsftpd'yi yapılandırma
/etc/vsftpd.conf
sunucusu
/etc/vsftpd.conf
dosyası düzenlenerek yapılandırılabilir. Ayarların çoğu yapılandırma dosyasının içinde iyi belgelenmiştir. Mevcut tüm seçenekler için resmi vsftpd sayfasını ziyaret edin.
Aşağıdaki bölümlerde güvenli bir vsftpd yüklemesi yapılandırmak için gereken bazı önemli ayarları inceleyeceğiz.
Vsftpd yapılandırma dosyasını açarak başlayın:
1. FTP Erişimi
FTP sunucusuna yalnızca yerel kullanıcılara erişime izin vereceğiz,
local_enable
ve
local_enable
yönergelerini
local_enable
ve yapılandırmanızın aşağıdaki satırlarla eşleştiğini doğrulayacağız:
anonymous_enable=NO local_enable=YES
2. Yüklemeleri etkinleştirme
Dosya sisteminde dosya yükleme ve silme gibi değişikliklere izin vermek için
write_enable
ayarını
write_enable
.
3. Chroot Hapishanesi
FTP kullanıcılarının ana dizinlerinin dışındaki dosyalara erişmesini önlemek için,
chroot
ayarını kaldırın.
chroot_local_user=YES
Varsayılan olarak bir güvenlik açığını önlemek için, chroot etkinleştirildiğinde vsftpd, kullanıcıların kilitli olduğu dizin yazılabilirse dosyaları yüklemeyi reddeder.
Chroot etkinleştirildiğinde yüklemelere izin vermek için aşağıdaki yöntemlerden birini kullanın.
-
Yöntem 1. - Yüklemeye izin vermek için önerilen yöntem, chroot'u etkin durumda tutmak ve FTP dizinlerini yapılandırmaktır. Bu öğreticide, kullanıcı evinde, chroot işlevi görecek bir
/etc/vsftpd.confftpdizini ve dosyaları yüklemek için yazılabilir biruploadsdizini oluşturacağız.user_sub_token=$USER local_root=/home/$USER/ftpYöntem 2. - Başka bir seçenek vsftpd yapılandırma dosyasına aşağıdaki yönergeyi eklemektir. Kullanıcının ana dizinine yazılabilir erişim izni vermeniz gerekiyorsa bu seçeneği kullanın.
/etc/vsftpd.confallow_writeable_chroot=YES
4. Pasif FTP Bağlantıları
vsftpd pasif FTP bağlantıları için herhangi bir portu kullanabilir. Minimum ve maksimum bağlantı noktası aralığını belirleyeceğiz ve daha sonra güvenlik duvarımızda aralığı açacağız.
Yapılandırma dosyasına aşağıdaki satırları ekleyin:
/etc/vsftpd.conf
pasv_min_port=30000 pasv_max_port=31000
5. Kullanıcı Girişini Sınırlama
FTP sunucusunda yalnızca belirli kullanıcıların oturum açmasına izin vermek için dosyanın sonuna aşağıdaki satırları ekleyin:
userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
Bu seçenek etkinleştirildiğinde,
/etc/vsftpd.user_list
dosyasına (her satıra bir kullanıcı) kullanıcı adlarını ekleyerek hangi kullanıcıların oturum açabileceğini açıkça belirtmeniz gerekir.
6. SSL / TLS ile İletimlerin Güvenliğini Sağlama
FTP aktarımlarını SSL / TLS ile şifrelemek için bir SSL sertifikanız olması ve FTP sunucusunu kullanacak şekilde yapılandırmanız gerekir.
Güvenilen bir Sertifika Yetkilisi tarafından imzalanmış mevcut bir SSL sertifikasını kullanabilir veya kendinden imzalı bir sertifika oluşturabilirsiniz.
openssl
komutunu kullanarak kendinden imzalı bir SSL sertifikası oluşturacağız.
Aşağıdaki komut, 1048 geçerli 2048 bit özel anahtar ve kendinden imzalı bir sertifika oluşturur. Hem özel anahtar hem de sertifika aynı dosyaya kaydedilir:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
SSL sertifikası oluşturulduktan sonra vsftpd yapılandırma dosyasını açın:
sudo nano /etc/vsftpd.conf
rsa_cert_file
ve
rsa_private_key_file
yönergelerini bulun, değerlerini
pam
dosyası yoluna değiştirin ve
ssl_enable
yönergesini
YES
:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES
Aksi belirtilmedikçe, FTP sunucusu güvenli bağlantılar kurmak için yalnızca TLS kullanır.
Vsftpd Hizmetini yeniden başlatın
Düzenlemeyi bitirdiğinizde, vsftpd yapılandırma dosyası (yorumlar hariç) şöyle görünmelidir:
/etc/vsftpd.conf
listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
Dosyayı kaydedin ve değişikliklerin etkili olması için vsftpd hizmetini yeniden başlatın:
Güvenlik Duvarını Açma
Bağlantı noktası
21
(FTP komut bağlantı noktası), bağlantı noktası
20
(FTP veri bağlantı noktası) ve
30000-31000
(Pasif bağlantı noktası aralığı)
30000-31000
için aşağıdaki komutları çalıştırın:
sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp
Kilitlenmeyi önlemek için
22
bağlantı noktasını açın:
sudo ufw allow OpenSSH
UFW'yi devre dışı bırakarak ve yeniden etkinleştirerek UFW kurallarını yeniden yükleyin:
sudo ufw disable
sudo ufw enable
Değişiklikleri çalıştırmak için:
sudo ufw status
Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
FTP Kullanıcısı Oluşturma
FTP sunucumuzu test etmek için yeni bir kullanıcı oluşturacağız.
- FTP erişimi vermek istediğiniz bir kullanıcınız varsa 1. adımı
allow_writeable_chroot=YESayarladıysanız 3. adımı atlayın.
-
newftpuseradlı yeni bir kullanıcı oluşturun:sudo adduser newftpuserKullanıcıyı izin verilen FTP kullanıcıları listesine ekleyin:
echo "newftpuser" | sudo tee -a /etc/vsftpd.user_listFTP dizin ağacını oluşturun ve doğru izinleri ayarlayın:
sudo mkdir -p /home/newftpuser/ftp/uploadsudo chmod 550 /home/newftpuser/ftpsudo chmod 750 /home/newftpuser/ftp/uploadsudo chown -R newftpuser: /home/newftpuser/ftpÖnceki bölümde tartışıldığı gibi kullanıcı dosyalarını
ftp/uploaddizinineftp/upload.
Bu noktada, FTP sunucunuz tamamen işlevseldir ve FileZilla gibi TLS şifrelemesi kullanmak üzere yapılandırılabilen herhangi bir FTP istemcisi kullanarak sunucunuza bağlanabilmeniz gerekir.
Kabuk Erişimini Devre Dışı Bırakma
Varsayılan olarak, bir kullanıcı oluştururken, açıkça belirtilmezse, kullanıcının sunucuya SSH erişimi olur.
Kabuk erişimini devre dışı bırakmak için, kullanıcıya hesaplarının yalnızca FTP erişimi ile sınırlı olduğunu bildiren bir ileti yazdıracak yeni bir kabuk oluşturacağız.
/bin/ftponly
kabuğunu oluşturun ve çalıştırılabilir yapın:
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
sudo chmod a+x /bin/ftponly
Yeni kabuğu
/etc/shells
dosyasındaki geçerli kabuklar listesine ekleyin:
echo "/bin/ftponly" | sudo tee -a /etc/shells
Kullanıcı kabuğunu
/bin/ftponly
:
sudo usermod newftpuser -s /bin/ftponly
Yalnızca FTP erişimi vermek istediğiniz tüm kullanıcıların kabuğunu değiştirmek için aynı komutu kullanın.
Sonuç
Bu öğreticide, Ubuntu 18.04 sisteminize güvenli ve hızlı bir FTP sunucusunun nasıl kurulacağını ve yapılandırılacağını öğrendiniz.
ftp ubuntuUbuntu 18.04 Üzerinde NFS Sunucusu Nasıl Kurulur ve Yapılandırılır
Ağ Dosya Sistemi (NFS), uzak dizinleri ağ üzerinden paylaşmanızı sağlayan dağıtılmış bir dosya sistemi protokolüdür. Bu öğreticide, Ubuntu 18.04'te NFSv4 Sunucusunun nasıl kurulacağını ele alacağız.
Centos 7'de VSFTPD ile ftp sunucusu nasıl kurulur
Bu derste vsftpd'yi kuracağız. Kararlı, güvenli ve hızlı bir FTP sunucusudur. Ayrıca, vsftpd'yi kullanıcıları ana dizinleriyle sınırlamak ve tüm aktarımı SSL / TLS ile şifrelemek için nasıl yapılandıracağınızı göstereceğiz.
Debian 9'da ftft sunucusu vsftpd ile nasıl kurulur
Bu derste vsftpd'yi kuracağız. Kararlı, güvenli ve hızlı bir FTP sunucusudur. Ayrıca, vsftpd'yi kullanıcıları ana dizinleriyle sınırlamak ve tüm aktarımı SSL / TLS ile şifrelemek için nasıl yapılandıracağınızı göstereceğiz.







