Linux

Cara Menyiapkan Pelayan FTP dengan VSFTPD di Ubuntu 20.04

Cara Menyiapkan Pelayan FTP dengan VSFTPD di Ubuntu 20.04

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

/ etc / vsftpd.pengesahan
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:

/ etc / vsftpd.pengesahan
write_enable = YA 

3. Penjara Chroot #

Untuk mengelakkan pengguna FTP tempatan mengakses fail di luar direktori kediaman mereka, tanggalkan dulu chroot_local_user:

/ etc / vsftpd.pengesahan
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:

4. Sambungan FTP Pasif #

Secara lalai, vsftpd menggunakan mod aktif. Untuk menggunakan mod pasif, tetapkan jarak minimum dan maksimum port:

/ etc / vsftpd.pengesahan
pasv_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.pengesahan
userlist_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:

/ etc / vsftpd.pengesahan
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.pengesahan
listen = 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 / tcpsudo 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 lumpuhkansudo 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.

  1. Buat pengguna baru bernama newftpuser:

    sudo adduser newftpuser
  2. Tambahkan pengguna ke senarai pengguna FTP yang dibenarkan:

    echo "newftpuser" | sudo tee -a / etc / vsftpd.senarai_pengguna
  3. Buat pohon direktori FTP dan tetapkan kebenaran yang betul:

    sudo mkdir -p / home / newftpuser / ftp / muat naiksudo chmod 550 / rumah / newftpuser / ftpsudo chmod 750 / home / newftpuser / ftp / muat naiksudo 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 / ftponlysudo 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.

Cara memuat turun dan Mainkan Sid Meier's Civilization VI di Linux
Pengenalan permainan Civilization 6 adalah konsep moden mengenai konsep klasik yang diperkenalkan dalam siri permainan Age of Empires. Idea itu cukup ...
Cara Memasang dan Memainkan Doom di Linux
Pengenalan Doom Seri Doom berasal dari tahun 90an selepas pembebasan Doom yang asal. Ini adalah hit seketika dan sejak saat itu dan seterusnya siri pe...
Vulkan untuk Pengguna Linux
Dengan setiap kad grafik generasi baru, kami melihat pembangun permainan mendorong had kesetiaan grafik dan semakin dekat dengan fotorealisme. Tetapi ...