Install FTP Server dengan vsftpd di Debian 9
Isi kandungan:
- Prasyarat
- Memasang vsftpd pada Debian 9
- Mengkonfigurasi vsftpd
- 1. Akses FTP
- 2. Membolehkan muat naik
- 3. Penjara Chroot
- 4. Sambungan FTP pasif
- 5. Mengehadkan Login Pengguna
- 6. Mengekalkan Penghantaran dengan SSL / TLS
- Mulakan semula perkhidmatan vsftpd
- Membuka Firewall
- Mewujudkan Pengguna FTP
- Melumpuhkan Akses Shell
- Kesimpulannya
FTP (Protokol Pemindahan Fail) adalah protokol rangkaian standard yang digunakan untuk memindahkan fail ke dan dari rangkaian jauh. Untuk pemindahan data yang lebih selamat dan cepat, gunakan SCP atau SFTP.
Terdapat banyak pelayan FTP sumber terbuka yang tersedia untuk Linux. Yang paling popular dan digunakan secara meluas adalah PureFTPd, ProFTPD, dan vsftpd.
Tutorial ini menerangkan cara memasang dan mengkonfigurasi vsftpd (Sangat Aman Ftp Daemon) pada Debian 9. vsftpd 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.
Prasyarat
Pengguna yang anda log masuk mestilah mempunyai keistimewaan sudo untuk dapat memasang pakej.
Memasang vsftpd pada Debian 9
Pakej vsftpd boleh didapati di repositori Debian. Pemasangannya cukup mudah:
sudo apt update
sudo apt install vsftpd
Perkhidmatan vsftpd secara automatik akan bermula selepas proses pemasangan selesai. Sahkannya dengan mencetak status perkhidmatan:
sudo systemctl status vsftpd
Output akan kelihatan seperti di bawah, menunjukkan bahawa perkhidmatan vsftpd aktif dan berjalan:
● vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-12-10 11:42:51 UTC; 53s ago Main PID: 1394 (vsftpd) CGroup: /system.slice/vsftpd.service └─1394 /usr/sbin/vsftpd /etc/vsftpd.conf
Mengkonfigurasi vsftpd
Pelayan vsftpd boleh dikonfigurasi dengan mengubah fail
vsftpd.conf
, yang terdapat dalam direktori
/etc
Kebanyakan tetapan didokumenkan dengan baik di dalam fail konfigurasi. Untuk semua pilihan yang tersedia lawati halaman rasmi vsftpd.
Dalam seksyen yang berikut, kami akan membincangkan beberapa tetapan penting yang diperlukan untuk mengkonfigurasi pemasangan vsftpd selamat.
Mula dengan membuka fail konfigurasi vsftpd:
1. Akses FTP
Cari arahan
anonymous_enable
dan
local_enable
dan sahkan perlawanan konfigurasi anda ke garisan di bawah:
anonymous_enable=NO local_enable=YES
Ini memastikan bahawa hanya pengguna tempatan boleh mengakses pelayan FTP.
2. Membolehkan muat naik
Uncomment the setting
write_enable
untuk membolehkan perubahan pada sistem fail seperti memuat naik dan memadam fail.
3. Penjara Chroot
Untuk menghalang pengguna FTP mengakses sebarang fail di luar direktori laman web mereka, tidak
chroot
tetapan
chroot
.
chroot_local_user=YES
Secara lalai untuk mengelakkan kelemahan keselamatan, apabila chroot diaktifkan vsftpd akan menolak untuk memuat naik fail jika direktori yang dikunci pengguna boleh ditulis.
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
/etc/vsftpd.confftp
di dalam rumah pengguna yang akan berfungsi sebagai chroot dan direktoriuploads
boleh ditulis untuk memuat naik fail.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.confallow_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.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 pada akhir fail:
userlist_enable=YES 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/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Setelah sijil SSL dibuat buka fail konfigurasi vsftpd:
sudo nano /etc/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
:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/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.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/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key 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
Simpan fail dan mulakan semula perkhidmatan vsftpd untuk perubahan yang berlaku:
Membuka Firewall
Untuk membuka port
21
(port arahan FTP), port
20
(port data FTP) dan
30000-31000
(pelbagai port pasif), jalankan arahan berikut:
sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp
Untuk mengelakkan terkunci, kami juga akan membuka port
22
:
sudo ufw allow OpenSSH
Muat semula peraturan UFW dengan melumpuhkan dan menghidupkan semula UFW:
sudo ufw disable
sudo ufw enable
Untuk mengesahkan perubahan berjalan:
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)
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.
-
Buat pengguna baru bernama
newftpuser
:sudo adduser 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 menggunakan 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 baru yang akan mencetak mesej yang memberitahu pengguna bahawa akaun mereka hanya terhad kepada akses FTP sahaja.
Buat shell
/bin/ftponly
dan
/bin/ftponly
boleh laku:
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 perintah yang sama untuk menukar shell semua pengguna yang anda mahu hanya memberi akses FTP.
Kesimpulannya
Dalam tutorial ini, anda belajar cara memasang dan mengkonfigurasi pelayan FTP selamat dan cepat pada sistem Debian 9 anda.
debian ftpBagaimana untuk menyediakan dan menggunakan pelayan ftp di android
Mahu memindahkan fail dari peranti Android anda ke PC tanpa kabel USB? Cuba kaedah pelayan FTP untuk berkongsi fail antara Android dan PC secara wayarles.
Bagaimana untuk menyediakan pelayan ftp dengan vsftpd pada centos 7
Dalam tutorial ini kita akan memasang vsftpd. Ia adalah pelayan FTP stabil, selamat dan cepat. Kami juga akan menunjukkan kepada anda bagaimana mengkonfigurasi vsftpd untuk menyekat pengguna ke direktori rumah mereka dan menyulitkan seluruh penghantaran dengan SSL / TLS.
Bagaimana untuk menyediakan pelayan ftp dengan vsftpd pada ubuntu 18.04
Dalam tutorial ini kita akan memasang vsftpd. Ia adalah pelayan FTP stabil, selamat dan cepat. Kami juga akan menunjukkan kepada anda bagaimana mengkonfigurasi vsftpd untuk menyekat pengguna ke direktori rumah mereka dan menyulitkan seluruh penghantaran dengan SSL / TLS.