Android

Ubuntu 18.04'te vsftpd ile ftp sunucusu nasıl kurulur

Ubuntu Server 18.04.1. Настройка и установка FTP-сервера vsftpd

Ubuntu Server 18.04.1. Настройка и установка FTP-сервера vsftpd

İçindekiler:

Anonim

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:

sudo nano /etc/vsftpd.conf

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:

/etc/vsftpd.conf

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 .

/etc/vsftpd.conf

write_enable=YES

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.

/etc/vsftpd.conf

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 ftp dizini ve dosyaları yüklemek için yazılabilir bir uploads dizini oluşturacağız.

    /etc/vsftpd.conf

    user_sub_token=$USER local_root=/home/$USER/ftp

    Yö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.conf

    allow_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:

/etc/vsftpd.conf

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 :

/etc/vsftpd.conf

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:

sudo systemctl restart vsftpd

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=YES ayarladıysanız 3. adımı atlayın.
  1. newftpuser adlı yeni bir kullanıcı oluşturun:

    sudo adduser newftpuser

    Kullanıcıyı izin verilen FTP kullanıcıları listesine ekleyin:

    echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list

    FTP dizin ağacını oluşturun ve doğru izinleri ayarlayın:

    sudo mkdir -p /home/newftpuser/ftp/upload sudo chmod 550 /home/newftpuser/ftp sudo chmod 750 /home/newftpuser/ftp/upload sudo chown -R newftpuser: /home/newftpuser/ftp

    Önceki bölümde tartışıldığı gibi kullanıcı dosyalarını ftp/upload dizinine ftp/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 ubuntu