Android

Centos 7'de VSFTPD ile ftp sunucusu nasıl kurulur

Установка и настройка CentOS в VirtualBox

Установка и настройка CentOS в VirtualBox

İçindekiler:

Anonim

FTP (Dosya Aktarım Protokolü), kullanıcıların uzak bir ağa ve uzak ağdan dosya aktarmalarına izin veren standart bir istemci-sunucu ağ protokolüdür.

Linux için birkaç açık kaynaklı FTP sunucusu vardır. En popüler ve yaygın olarak kullanılan PureFTPd, ProFTPD ve vsftpd'dir.

Bu yazıda CentOS 7'ye vsftpd (Çok Güvenli Ftp Daemon) yükleyeceğiz. Bu, 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.

Daha güvenli ve daha hızlı veri aktarımı için SCP veya SFTP kullanın.

Ö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.

CentOS 7'ye vsftpd kurulumu

Vsftpd paketi varsayılan CentOS depolarında bulunur. Yüklemek için aşağıdaki komutu verin:

sudo yum install vsftpd

Paket yüklendikten sonra, vsftpd arka plan programını başlatın ve önyükleme zamanında otomatik olarak başlamasını sağlayın:

sudo systemctl start vsftpd sudo systemctl enable vsftpd

Vsftpd hizmetinin çalıştığını durumunu yazdırarak doğrulayabilirsiniz:

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 daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Vsftpd'yi yapılandırma

/etc/vsftpd/vsftpd.conf yapılandırılması /etc/vsftpd/vsftpd.conf yapılandırma dosyasının düzenlenmesini içerir. 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 kurulumu 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/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/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/vsftpd.conf

write_enable=YES

3. Chroot Hapishanesi

chroot yönergesini kaldırarak FTP kullanıcılarının ev dizinlerinin dışındaki dosyalara erişmesini engelleyin.

/etc/vsftpd/vsftpd.conf

chroot_local_user=YES

Varsayılan olarak, chroot etkinleştirildiğinde vsftpd, kullanıcıların kilitlendiği dizin yazılabilirse dosyaları yüklemeyi reddeder. Bunun amacı bir güvenlik açığını önlemektir.

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/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/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/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. Kullanıcı Girişini Sınırlama

Yalnızca belirli kullanıcıların FTP sunucusunda oturum userlist_enable=YES izin vermek için userlist_enable=YES satırından sonra aşağıdaki satırları ekleyin:

/etc/vsftpd/vsftpd.conf

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ı 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.

Bu öğreticide, 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/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

SSL sertifikası oluşturulduktan sonra vsftpd yapılandırma dosyasını açın:

sudo nano /etc/vsftpd/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/vsftpd.conf

rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/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/vsftpd.conf

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 chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES

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ı noktaları aralığı) 30000-31000 için aşağıdaki komutları verin:

sudo firewall-cmd --permanent --add-port=20-21/tcp sudo firewall-cmd --permanent --add-port=30000-31000/tcp

Yazarak güvenlik duvarı kurallarını yeniden yükleyin:

firewall-cmd --reload

Bir 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

    Ardından, kullanıcı şifresini ayarlamanız gerekir:

    sudo passwd 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 sunucunuza FileZilla gibi TLS şifrelemesi kullanacak şekilde yapılandırılabilen herhangi bir FTP istemcisi ile 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şturmak ve yürütülebilir yapmak için aşağıdaki komutları çalıştırı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 diğer kullanıcılar için kabuğu değiştirmek üzere aynı komutu kullanın.

Sonuç

Bu öğreticide, CentOS 7 sisteminize güvenli ve hızlı bir FTP sunucusunun nasıl kurulacağını ve yapılandırılacağını öğrendiniz.

ftp centos