Android

Bagaimana untuk menyediakan pelayan ftp dengan vsftpd pada centos 7

#7 Konfigurasi FTP Server - Centos 7 Server

#7 Konfigurasi FTP Server - Centos 7 Server

Isi kandungan:

Anonim

FTP (Protokol Pemindahan Fail) adalah protokol rangkaian pelayan klien standard yang membolehkan pengguna memindahkan fail ke dan dari rangkaian jauh.

Terdapat beberapa pelayan FTP sumber terbuka yang tersedia untuk Linux. Yang paling popular dan digunakan secara meluas adalah PureFTPd, ProFTPD, dan vsftpd.

Dalam tutorial ini, kami akan memasang vsftpd (Sangat Secure Ftp Daemon) pada CentOS 7. Ia adalah pelayan FTP yang stabil, selamat dan cepat. Kami juga akan menunjukkan kepada anda cara mengkonfigurasi vsftpd untuk menyekat pengguna ke direktori rumah mereka dan menyulitkan keseluruhan penghantaran dengan SSL / TLS.

Untuk pemindahan data yang lebih selamat dan cepat, gunakan SCP atau SFTP.

Prasyarat

Sebelum meneruskan tutorial ini, pastikan anda log masuk sebagai pengguna dengan keistimewaan sudo.

Memasang vsftpd pada CentOS 7

Pakej vsftpd boleh didapati di repositori CentOS lalai. Untuk memasangnya, mengeluarkan arahan berikut:

sudo yum install vsftpd

Setelah pakej dipasang, mulailah daemon vsftpd dan aktifkannya secara automatik pada saat boot:

sudo systemctl start vsftpd sudo systemctl enable vsftpd

Anda boleh mengesahkan perkhidmatan vsftpd sedang berjalan dengan mencetak statusnya:

sudo systemctl status vsftpd

Output akan kelihatan seperti di bawah, menunjukkan bahawa perkhidmatan vsftpd aktif dan berjalan:

● 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

Mengkonfigurasi vsftpd

Mengkonfigurasi perkhidmatan vsftpd melibatkan penyuntingan fail konfigurasi /etc/vsftpd/vsftpd.conf . Kebanyakan tetapan didokumenkan dengan baik di dalam fail konfigurasi. Untuk semua pilihan yang tersedia lawati halaman rasmi vsftpd.

Dalam seksyen yang berikut, kami akan menemui beberapa tetapan penting yang diperlukan untuk mengkonfigurasi pemasangan vsftpd selamat.

Mula dengan membuka fail konfigurasi vsftpd:

sudo nano /etc/vsftpd/vsftpd.conf

1. Akses FTP

Kami akan membenarkan akses kepada pelayan FTP hanya pengguna setempat, cari arahan anonymous_enable dan local_enable dan sahkan perlawanan konfigurasi anda ke baris di bawah:

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES

2. Membolehkan muat naik

Uncomment the setting write_enable untuk membolehkan perubahan pada sistem fail seperti memuat naik dan memadam fail.

/etc/vsftpd/vsftpd.conf

write_enable=YES

3. Penjara Chroot

Cegah pengguna FTP untuk mengakses mana-mana fail di luar direktori rumah mereka dengan tidak chroot arahan chroot .

/etc/vsftpd/vsftpd.conf

chroot_local_user=YES

Secara lalai, apabila chroot diaktifkan vsftpd akan menolak untuk memuat naik fail jika direktori yang dikunci pengguna boleh ditulis. Ini adalah untuk mengelakkan kelemahan keselamatan.

Gunakan salah satu kaedah di bawah untuk membolehkan muat naik apabila chroot diaktifkan.

  • Kaedah 1. - Kaedah yang disyorkan untuk membolehkan muat naik adalah supaya chroot diaktifkan dan konfigurasi direktori FTP. Dalam tutorial ini, kami akan membuat direktori ftp di dalam rumah pengguna yang akan berfungsi sebagai chroot dan direktori uploads boleh ditulis untuk memuat naik fail.

    /etc/vsftpd/vsftpd.conf

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

    Kaedah 2. - Satu lagi pilihan adalah untuk menambah arahan berikut dalam fail konfigurasi vsftpd. Gunakan opsyen ini jika anda perlu memberikan akses yang boleh ditulis kepada pengguna anda ke direktori rumahnya.

    /etc/vsftpd/vsftpd.conf

    allow_writeable_chroot=YES

4. Sambungan FTP pasif

vsftpd boleh menggunakan sebarang port untuk sambungan FTP pasif. Kami akan menentukan julat port minimum dan maksimum dan kemudian buka julat dalam firewall kami.

Tambahkan baris berikut ke fail konfigurasi:

/etc/vsftpd/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. Mengehadkan Login Pengguna

Untuk membenarkan hanya pengguna tertentu untuk log masuk ke pelayan FTP tambahkan baris berikut selepas userlist_enable=YES line:

/etc/vsftpd/vsftpd.conf

userlist_file=/etc/vsftpd/user_list userlist_deny=NO

Apabila pilihan ini diaktifkan, anda perlu menyatakan secara jelas mana pengguna boleh log masuk dengan menambahkan nama pengguna ke fail /etc/vsftpd/user_list (satu pengguna setiap baris).

6. Mengekalkan Penghantaran dengan SSL / TLS

Untuk menyulitkan penghantaran FTP dengan SSL / TLS, anda perlu mempunyai sijil SSL dan mengkonfigurasi pelayan FTP untuk menggunakannya.

Anda boleh menggunakan sijil SSL sedia ada yang ditandatangani oleh Pihak Berkuasa Sijil yang dipercayai atau membuat sijil ditandatangani sendiri.

Dalam tutorial ini, kami akan menghasilkan sijil SSL yang ditandatangani sendiri menggunakan perintah openssl .

Perintah berikut akan membuat kunci persendirian dan sijil tandatangan peribadi 2048-bit yang sah selama 10 tahun. Kedua-dua kunci persendirian dan sijil akan disimpan dalam fail yang sama:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

Setelah sijil SSL dibuat buka fail konfigurasi vsftpd:

sudo nano /etc/vsftpd/vsftpd.conf

Cari arahan rsa_private_key_file dan rsa_private_key_file , tukar nilai mereka ke laluan fail pam dan tetapkan arahan ssl_enable ke YES :

/etc/vsftpd/vsftpd.conf

rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES

Jika tidak dinyatakan sebaliknya, pelayan FTP hanya akan menggunakan TLS untuk membuat sambungan selamat.

Mulakan semula perkhidmatan vsftpd

Sebaik sahaja anda selesai mengedit, fail konfigurasi vsftpd (tidak termasuk komen) sepatutnya kelihatan seperti ini:

/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

Simpan fail dan mulakan semula perkhidmatan vsftpd untuk perubahan yang berlaku:

sudo systemctl restart vsftpd

Membuka Firewall

Untuk membuka port 21 (port perintah FTP), port 20 (port data FTP) dan 30000-31000 (pelbagai port pasif), mengeluarkan arahan berikut:

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

Muat semula peraturan firewall dengan menaip:

firewall-cmd --reload

Mewujudkan Pengguna FTP

Untuk menguji pelayan FTP kami, kami akan mencipta pengguna baharu.

  • Jika anda sudah mempunyai pengguna yang anda mahu memberikan akses FTP melangkau langkah pertama.Jika anda menetapkan allow_writeable_chroot=YES dalam fail konfigurasi anda melangkau langkah ke-3.
  1. Buat pengguna baru bernama newftpuser :

    sudo adduser newftpuser

    Seterusnya, anda perlu menetapkan kata laluan pengguna:

    sudo passwd newftpuser

    Tambah pengguna ke senarai pengguna FTP yang dibenarkan:

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

    Buat pohon direktori FTP dan tetapkan kebenaran yang betul:

    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

    Seperti yang dibincangkan di bahagian sebelumnya, pengguna akan dapat memuat naik failnya ke direktori ftp/upload .

Pada ketika ini pelayan FTP anda berfungsi sepenuhnya dan anda sepatutnya dapat menyambung ke pelayan anda dengan mana-mana klien FTP yang boleh dikonfigurasikan untuk menggunakan penyulitan TLS seperti FileZilla.

Melumpuhkan Akses Shell

Secara lalai, semasa membuat pengguna, jika tidak secara jelas menyatakan pengguna akan mempunyai akses SSH ke pelayan.

Untuk melumpuhkan akses shell, kami akan membuat shell baharu yang akan mencetak mesej yang memberitahu pengguna bahawa akaun mereka hanya terhad kepada akses FTP sahaja.

Jalankan perintah berikut untuk mencipta shell /bin/ftponly dan menjadikannya dapat dilaksanakan:

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

Tambahkan tempurung baru ke senarai cengkerang yang sah dalam fail /etc/shells :

echo "/bin/ftponly" | sudo tee -a /etc/shells

Tukar shell pengguna ke /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

Gunakan arahan yang sama untuk menukar shell untuk pengguna lain yang anda mahu hanya memberi akses FTP.

Kesimpulannya

Dalam tutorial ini, anda belajar cara memasang dan mengkonfigurasi pelayan FTP yang selamat dan pantas pada sistem CentOS 7 anda.

centos ftp