Artikel ini menerangkan cara memasang dan mengkonfigurasi pelayan FTP di Ubuntu 20.04 yang anda gunakan untuk berkongsi fail antara peranti anda.
FTP (File Transfer Protocol) adalah protokol rangkaian standard yang digunakan untuk memindahkan fail ke dan dari rangkaian jauh. Terdapat beberapa pelayan FTP sumber terbuka yang tersedia untuk Linux. Yang paling terkenal dan banyak digunakan adalah PureFTPd, ProFTPD, dan vsftpd . Kami akan memasang vsftpd (Very Secure Ftp Daemon), pelayan FTP yang stabil, selamat dan pantas. Kami juga akan menunjukkan kepada anda cara mengkonfigurasi pelayan untuk membatasi pengguna ke direktori rumah mereka dan mengenkripsi keseluruhan penghantaran dengan SSL / TLS.
Walaupun FTP adalah protokol yang sangat popular, untuk pemindahan data yang lebih selamat dan cepat, anda harus menggunakan SCP atau SFTP .
Memasang vsftpd pada Ubuntu 20.04 #
Pakej vsftpd boleh didapati di repositori Ubuntu. Untuk memasangnya, jalankan perintah berikut:
sudo apt kemas kini
sudo apt install vsftpd
Perkhidmatan ftp akan bermula secara automatik setelah proses pemasangan selesai. Untuk mengesahkannya, cetak status perkhidmatan:
status sudo systemctl vsftpd
Hasilnya harus menunjukkan bahawa perkhidmatan vsftpd aktif dan berjalan:
● vsftpd.perkhidmatan - pelayan FTP vsftpd Dimuat: dimuat (/ lib / systemd / sistem / vsftpd.perkhidmatan; didayakan; pratetap vendor: diaktifkan) Aktif: aktif (berjalan) sejak Sel 2021-03-02 15:17:22 UTC; 3s yang lalu ..
Mengkonfigurasi vsftpd #
Konfigurasi pelayan vsftpd disimpan di / etc / vsftpd.pengesahan
fail.
Sebilangan besar tetapan pelayan didokumentasikan dengan baik di dalam fail. Untuk semua pilihan yang ada, lawati halaman dokumentasi vsftpd.
Pada bahagian berikut, kami akan membahas beberapa tetapan penting yang diperlukan untuk mengkonfigurasi pemasangan vsftpd yang selamat.
Mulakan dengan membuka fail konfigurasi vsftpd:
sudo nano / etc / vsftpd.pengesahan
1. Akses FTP #
Kami akan membenarkan akses ke pelayan FTP hanya untuk pengguna tempatan. Cari untuk tanpa nama_dapatkan
dan tempatan_dapatkan
arahan dan sahkan konfigurasi anda sesuai dengan baris di bawah:
anonymous_enable = TIADA local_enable = YA
2. Mendayakan muat naik #
Cari dan tanggalkan tulis_daya
arahan untuk membenarkan perubahan sistem fail, seperti memuat naik dan membuang fail:
write_enable = YA
3. Penjara Chroot #
Untuk mengelakkan pengguna FTP tempatan mengakses fail di luar direktori kediaman mereka, tanggalkan dulu chroot_local_user
:
chroot_local_user = YA
Secara lalai, atas alasan keselamatan, apabila chroot diaktifkan, vsftpd akan menolak untuk memuat naik fail jika direktori yang dikunci oleh pengguna dapat ditulis.
Gunakan salah satu penyelesaian di bawah ini untuk membolehkan muat naik apabila chroot diaktifkan:
Kaedah 1. - Pilihan yang disyorkan adalah memastikan ciri chroot diaktifkan dan mengkonfigurasi direktori FTP. Dalam contoh ini, kita akan membuat
/ etc / vsftpd.pengesahankaki
direktori di dalam rumah pengguna, yang akan berfungsi sebagai chroot dan dapat ditulismemuat naik
direktori untuk memuat naik fail:user_sub_token = $ USER local_root = / rumah / $ USER / ftp
Kaedah 2. - Pilihan lain ialah mengaktifkan
/ etc / vsftpd.pengesahanizinkan_tulis_chroot
arahan:allow_writeable_chroot = YA
Gunakan pilihan ini hanya jika anda mesti memberikan akses yang boleh ditulis kepada pengguna anda ke direktori asalnya.
4. Sambungan FTP Pasif #
Secara lalai, vsftpd menggunakan mod aktif. Untuk menggunakan mod pasif, tetapkan jarak minimum dan maksimum port:
/ etc / vsftpd.pengesahanpasv_min_port = 30000 pasv_max_port = 31000
Anda boleh menggunakan mana-mana port untuk sambungan FTP pasif. Apabila mod pasif diaktifkan, klien FTP membuka sambungan ke pelayan pada port rawak dalam julat yang telah anda pilih.
5. Mengehadkan Log Masuk Pengguna #
Anda boleh mengkonfigurasi vsftpd untuk membenarkan pengguna tertentu sahaja log masuk. Untuk melakukannya, tambahkan baris berikut di akhir fail:
/ etc / vsftpd.pengesahanuserlist_enable = YES userlist_file = / etc / vsftpd.user_list userlist_deny = TIDAK
Apabila pilihan ini diaktifkan, anda perlu secara jelas menentukan pengguna mana yang boleh log masuk dengan menambahkan nama pengguna ke / etc / vsftpd.senarai_pengguna
fail (satu pengguna setiap baris).
6. Menjamin Penghantaran dengan SSL / TLS #
Untuk mengenkripsi transmisi FTP dengan SSL / TLS, anda perlu mempunyai sijil SSL dan mengkonfigurasi pelayan FTP untuk menggunakannya.
Anda boleh menggunakan sijil SSL yang ada yang ditandatangani oleh Lembaga Perakuan yang dipercayai atau membuat sijil yang ditandatangani sendiri.
Sekiranya anda mempunyai domain atau subdomain yang menunjuk ke alamat IP pelayan FTP, anda dapat dengan cepat menghasilkan sijil Let's Encrypt SSL percuma.
Kami akan menghasilkan kunci peribadi 2048-bit dan sijil SSL yang ditandatangani sendiri yang akan sah selama sepuluh tahun:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa: 2048 -keyout / etc / ssl / private / vsftpd.pem -out / etc / ssl / private / vsftpd.pem
Kunci peribadi dan sijil akan disimpan dalam fail yang sama.
Setelah sijil SSL dibuat, buka fail konfigurasi vsftpd:
sudo nano / etc / vsftpd.pengesahan
Cari rsa_cert_file
dan rsa_private_key_file
arahan, ubah nilainya menjadi pam
jalan fail dan tetapkan ssl_daya
arahan untuk YA
:
rsa_cert_file = / etc / ssl / private / vsftpd.pem rsa_private_key_file = / etc / ssl / private / vsftpd.pem ssl_enable = YA
Sekiranya tidak dinyatakan sebaliknya, pelayan FTP hanya akan menggunakan TLS untuk membuat sambungan yang selamat.
Mulakan semula Perkhidmatan vsftpd #
Setelah selesai mengedit, fail konfigurasi vsftpd (tidak termasuk komen) akan kelihatan seperti ini:
/ etc / vsftpd.pengesahanlisten = NO listen_ipv6 = YES anonymous_enable = TIDAK local_enable = YES write_enable = YES dirmessage_enable = YES use_localtime = YES xferlog_enable = YES connect_from_port_20 = YES chroot_local_user = YES safe_chroot_dir = s / v_rt / s / v / v / v / s / v / v / s / v / s / v / v / s / v / s / v / s / v / s / v / s / v / s / v / s / v / s / v / v / s / v / s / v / s / v / s / v / s / v / s / v / s / v / s / v / s / v / s / v / s / s / v peribadi / 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 = TIDAK
Simpan fail dan mulakan semula perkhidmatan vsftpd agar perubahan berlaku:
sudo systemctl mulakan semula vsftpd
Membuka Firewall #
Sekiranya anda menjalankan firewall UFW, anda perlu membenarkan trafik FTP.
Untuk membuka port 21
(Port arahan FTP), port 20
(Port data FTP), dan 30000-31000
(Julat port pasif), jalankan arahan berikut:
sudo ufw membenarkan 20: 21 / tcp
sudo ufw membenarkan 30000: 31000 / tcp
Untuk mengelakkan terkunci, pastikan port 22
ia terbuka:
sudo ufw membenarkan OpenSSH
Muat semula peraturan UFW dengan melumpuhkan dan mengaktifkan semula UFW:
sudo ufw lumpuhkan
sudo ufw aktifkan
Untuk mengesahkan perubahan dijalankan:
status sudo ufw
Status: aktif Untuk Bertindak Dari - ------ ---- 20: 21 / tcp ELAUN Di Mana Saja 30000: 31000 / tcp BENARKAN Di Mana Saja OpenSSH ELAUN Di Mana-mana sahaja 20: 21 / tcp (v6) Bolehkan Di Mana sahaja (v6) 30000: 31000 / tcp (v6) BENARKAN Di mana sahaja (v6) OpenSSH (v6) Bolehkan di mana sahaja (v6)
Membuat # Pengguna FTP
Untuk menguji pelayan FTP, kami akan membuat pengguna baru.
- Sekiranya pengguna yang ingin anda berikan akses FTP sudah ada, lewati langkah pertama.
- Sekiranya anda menetapkan
allow_writeable_chroot = YA
dalam fail konfigurasi anda, langkau langkah ke-3.
Buat pengguna baru bernama
newftpuser
:sudo adduser newftpuser
Tambahkan pengguna ke senarai pengguna FTP yang dibenarkan:
echo "newftpuser" | sudo tee -a / etc / vsftpd.senarai_pengguna
Buat pohon direktori FTP dan tetapkan kebenaran yang betul:
sudo mkdir -p / home / newftpuser / ftp / muat naik
sudo chmod 550 / rumah / newftpuser / ftp
sudo chmod 750 / home / newftpuser / ftp / muat naik
sudo chown -R newftpuser: / rumah / newftpuser / ftp
Seperti yang telah dibincangkan di bahagian sebelumnya, pengguna akan dapat memuat naik failnya ke
ftp / muat naik
direktori.
Pada ketika ini, pelayan FTP anda berfungsi sepenuhnya. Anda seharusnya dapat menyambung ke pelayan menggunakan klien FTP mana pun yang dapat dikonfigurasi untuk menggunakan enkripsi TLS, seperti FileZilla .
Melumpuhkan Akses Shell #
Secara lalai, ketika membuat pengguna, jika tidak ditentukan secara eksplisit, pengguna akan memiliki akses SSH ke pelayan. Untuk melumpuhkan akses shell, buat shell baru yang akan mencetak pesan yang memberitahu pengguna bahawa akaun mereka terhad untuk akses FTP sahaja.
Jalankan arahan berikut untuk membuat / bin / ftponly
fail dan membuatnya boleh dilaksanakan:
echo -e '#!/ bin / sh \ necho "Akaun ini terhad untuk akses FTP sahaja."'| sudo tee -a / bin / ftponly
sudo chmod a + x / bin / ftponly
Tambahkan shell baru ke senarai shell yang sah di / dll / tempurung
fail:
echo "/ bin / ftponly" | sudo tee -a / etc / shells
Tukar shell pengguna menjadi / bin / ftponly
:
sudo usermod newftpuser -s / bin / ftponly
Anda boleh menggunakan perintah yang sama untuk mengubah cangkang semua pengguna yang ingin anda berikan hanya akses FTP.
Kesimpulan #
Kami telah menunjukkan kepada anda cara memasang dan mengkonfigurasi pelayan FTP yang selamat dan pantas di Ubuntu 20 anda.Sistem 04.
Sekiranya anda mempunyai pertanyaan atau maklum balas, jangan ragu untuk memberikan komen.