Linux

Cara Setup Server FTP dengan VSFTPD di Ubuntu 20.04

Cara Setup Server FTP dengan VSFTPD di Ubuntu 20.04

Artikel ini menjelaskan cara menginstal dan mengkonfigurasi server FTP di Ubuntu 20.04 yang Anda gunakan untuk berbagi file antar perangkat Anda.

FTP (File Transfer Protocol) adalah protokol jaringan standar yang digunakan untuk mentransfer file ke dan dari jaringan jarak jauh. Ada beberapa server FTP open-source yang tersedia untuk Linux. Yang paling dikenal dan banyak digunakan adalah PureFTPd , ProFTPD , dan vsftpd . Kami akan menginstal vsftpd (Very Secure Ftp Daemon), server FTP yang stabil, aman, dan cepat. Kami juga akan menunjukkan cara mengkonfigurasi server untuk membatasi pengguna ke direktori home mereka dan mengenkripsi seluruh transmisi dengan SSL/TLS.

Meskipun FTP adalah protokol yang sangat populer, untuk transfer data yang lebih aman dan lebih cepat, Anda harus menggunakan SCP atau SFTP .

Menginstal vsftpd di Ubuntu 20.04 #

Paket vsftpd tersedia di repositori Ubuntu. Untuk menginstalnya, jalankan perintah berikut:

sudo apt updatesudo apt install vsftpd

Layanan ftp akan otomatis dimulai setelah proses instalasi selesai. Untuk memverifikasinya, cetak status layanan:

sudo systemctl status vsftpd

Output harus menunjukkan bahwa layanan vsftpd aktif dan berjalan:

● vsftpd.service - server FTP vsftpd Dimuat: dimuat (/ lib/systemd/system/vsftpd.layanan; diaktifkan; preset vendor: diaktifkan) Aktif: aktif (berjalan) sejak Sel 2021-03-02 15:17:22 UTC; 3 detik yang lalu… 

Konfigurasi vsftpd #

Konfigurasi server vsftpd disimpan di /etc/vsftpd.konf mengajukan.

Sebagian besar pengaturan server didokumentasikan dengan baik di dalam file. Untuk semua opsi yang tersedia, kunjungi halaman dokumentasi vsftpd.

Di bagian berikut, kita akan membahas beberapa pengaturan penting yang diperlukan untuk mengonfigurasi instalasi vsftpd yang aman.

Mulailah dengan membuka file konfigurasi vsftpd:

sudo nano /etc/vsftpd.konf

1. Akses FTP#

Kami akan mengizinkan akses ke server FTP hanya untuk pengguna lokal. Cari anonim_aktifkan dan lokal_aktifkan arahan dan verifikasi konfigurasi Anda cocok dengan baris di bawah ini:

/etc/vsftpd.konf
anonim_enable=TIDAK local_enable=YA 

2. Mengaktifkan unggahan #

Temukan dan batalkan komentar pada tulis_aktifkan arahan untuk mengizinkan perubahan sistem file, seperti mengunggah dan menghapus file:

/etc/vsftpd.konf
write_enable=YA 

3. Penjara chroot #

Untuk mencegah pengguna FTP lokal mengakses file di luar direktori home mereka, batalkan komentar pada baris yang dimulai dengan chroot_local_user:

/etc/vsftpd.konf
chroot_local_user=YA 

Secara default, untuk alasan keamanan, saat chroot diaktifkan, vsftpd akan menolak untuk mengunggah file jika direktori tempat pengguna terkunci dapat ditulis.

Gunakan salah satu solusi di bawah ini untuk mengizinkan unggahan saat chroot diaktifkan:

4. Koneksi FTP Pasif #

Secara default, vsftpd menggunakan mode aktif. Untuk menggunakan mode pasif, atur rentang port minimum dan maksimum:

/etc/vsftpd.konf
pasv_min_port=30000 pasv_max_port=31000 

Anda dapat menggunakan port apa saja untuk koneksi FTP pasif. Ketika mode pasif diaktifkan, klien FTP membuka koneksi ke server pada port acak dalam rentang yang Anda pilih.

5. Membatasi Login Pengguna #

Anda dapat mengonfigurasi vsftpd untuk mengizinkan hanya pengguna tertentu yang masuk. Untuk melakukannya, tambahkan baris berikut di akhir file:

/etc/vsftpd.konf
userlist_enable=YA userlist_file=/etc/vsftpd.user_list userlist_deny=TIDAK 

Ketika opsi ini diaktifkan, Anda perlu secara eksplisit menentukan pengguna mana yang dapat masuk dengan menambahkan nama pengguna ke /etc/vsftpd.Daftar pengguna file (satu pengguna per baris).

6. Mengamankan Transmisi dengan SSL/TLS #

Untuk mengenkripsi transmisi FTP dengan SSL/TLS, Anda harus memiliki sertifikat SSL dan mengkonfigurasi server FTP untuk menggunakannya.

Anda dapat menggunakan sertifikat SSL yang sudah ada yang ditandatangani oleh Otoritas Sertifikat tepercaya atau membuat sertifikat yang ditandatangani sendiri.

Jika Anda memiliki domain atau subdomain yang menunjuk ke alamat IP server FTP, Anda dapat dengan cepat membuat sertifikat SSL Let's Encrypt gratis.

Kami akan menghasilkan kunci pribadi 2048-bit dan sertifikat SSL yang ditandatangani sendiri yang akan berlaku 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 pribadi dan sertifikat akan disimpan dalam file yang sama.

Setelah sertifikat SSL dibuat, buka file konfigurasi vsftpd:

sudo nano /etc/vsftpd.konf

Temukan rsa_cert_file dan rsa_private_key_file direktif, ubah nilainya menjadi pam jalur file dan atur ssl_aktifkan arahan ke IYA:

/etc/vsftpd.konf
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YA 

Jika tidak ditentukan sebaliknya, server FTP hanya akan menggunakan TLS untuk membuat koneksi yang aman.

Mulai ulang Layanan vsftpd #

Setelah Anda selesai mengedit, file konfigurasi vsftpd (tidak termasuk komentar) akan terlihat seperti ini:

/etc/vsftpd.konf
listen=TIDAK listen_ipv6=YA anonymous_enable=TIDAK local_enable=YA write_enable=YA dirmessage_enable=YA use_localtime=YA xferlog_enable=YA connect_from_port_20=YA chroot_local_user=YA secure_chroot_dir=/var/run/vsftpdspt pribadi/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YA user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YA userlist_file=/etc/vsftpd.user_list userlist_deny=TIDAK 

Simpan file dan mulai ulang layanan vsftpd agar perubahan diterapkan:

sudo systemctl restart vsftpd

Membuka Firewall#

Jika Anda menjalankan firewall UFW , Anda harus mengizinkan lalu lintas FTP.

Untuk membuka port 21 (port perintah FTP), port 20 (port data FTP), dan 30000-31000 (Rentang port pasif), jalankan perintah berikut:

sudo ufw izinkan 20:21/tcpsudo ufw izinkan 30000:31000/tcp

Untuk menghindari terkunci, pastikan port 22 terbuka:

sudo ufw izinkan OpenSSH

Muat ulang aturan UFW dengan menonaktifkan dan mengaktifkan kembali UFW:

sudo ufw nonaktifkansudo ufw aktifkan

Untuk memverifikasi perubahan, jalankan:

status sudo ufw
Status: aktif Untuk Bertindak Dari -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000: 31000/tcp (v6) Izinkan Di Mana Saja (v6) OpenSSH (v6) Izinkan Di Mana Saja (v6) 

Membuat Pengguna FTP#

Untuk menguji server FTP, kami akan membuat pengguna baru.

  1. Buat pengguna baru bernama pengguna baru:

    sudo adduser newftpuser
  2. Tambahkan pengguna ke daftar pengguna FTP yang diizinkan:

    echo "newftpuser" | sudo tee -a /etc/vsftpd.Daftar pengguna
  3. Buat pohon direktori FTP dan atur izin yang benar:

    sudo mkdir -p /home/newftpuser/ftp/uploadsudo chmod 550 /home/newftpuser/ftpsudo chmod 750 /home/newftpuser/ftp/uploadsudo chown -R newftpuser: /home/newftpuser/ftp

    Seperti yang dibahas di bagian sebelumnya, pengguna akan dapat mengunggah filenya ke to ftp/unggah direktori.

Pada titik ini, server FTP Anda berfungsi penuh. Anda harus dapat terhubung ke server menggunakan klien FTP apa pun yang dapat dikonfigurasi untuk menggunakan enkripsi TLS, seperti FileZilla .

Menonaktifkan Akses Shell #

Secara default, saat membuat pengguna, jika tidak ditentukan secara eksplisit, pengguna akan memiliki akses SSH ke server. Untuk menonaktifkan akses shell, buat shell baru yang akan mencetak pesan yang memberi tahu pengguna bahwa akun mereka terbatas hanya untuk akses FTP.

Jalankan perintah berikut untuk membuat /bin/ftponly file dan membuatnya dapat dieksekusi:

echo -e'#!/bin/sh\necho "Akun ini terbatas hanya untuk akses FTP."' | sudo tee -a /bin/ftponlysudo chmod a+x /bin/ftponly

Tambahkan shell baru ke daftar shell yang valid di /etc/shells mengajukan:

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

Ubah shell pengguna menjadi /bin/ftponly:

sudo usermod newftpuser -s /bin/ftponly

Anda dapat menggunakan perintah yang sama untuk mengubah shell semua pengguna yang hanya ingin Anda berikan akses FTP FTP.

Kesimpulan #

Kami telah menunjukkan kepada Anda cara menginstal dan mengonfigurasi server FTP yang aman dan cepat di Ubuntu 20.04 sistem.

Jika Anda memiliki pertanyaan atau umpan balik, jangan ragu untuk meninggalkan komentar.

Port Sumber Terbuka dari Mesin Game Komersial
Rekreasi mesin game gratis, open source, dan lintas platform dapat digunakan untuk bermain lama serta beberapa judul game yang cukup baru. Artikel ini...
Game Baris Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar Anda saat menggunakan Linux-ini juga dapat menjadi sumber hiburan karena Anda dapat menggunakannya untuk me...
Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Jika Anda suka bermain game di Linux dengan gamepad alih-alih sistem input keyboard dan mouse biasa, ada beberapa aplikasi yang berguna untuk Anda. Ba...