GNU/Linux >> Belajar Linux >  >> Linux

Cara Setup Server FTP dengan VSFTPD

Pernah lupa dokumen penting di komputer rumah Anda, dan Anda sedang bekerja di kantor? Atau apakah Anda hanya ingin berbagi file dengan seseorang yang duduk di sebelah Anda? Server FTP seperti Very Secure FTP Daemon (VSFTPD) adalah solusi sempurna.

Dalam tutorial ini, Anda akan mempelajari cara menginstal dan mengonfigurasi server FPT menggunakan VSFTPD di server Linux sehingga Anda dapat berbagi file antar komputer dengan aman.

Baca terus dan jangan biarkan file Anda menjadi captive di komputer rumah Anda lagi!

Prasyarat

Tutorial ini akan menjadi demonstrasi langsung. Jika Anda ingin mengikuti, pastikan Anda memiliki yang berikut ini.

  • Mesin Linux – Tutorial ini menggunakan Ubuntu 20.04 LTS, tetapi semua distribusi Linux akan berfungsi.
  • Pengguna non-root dengan hak istimewa sudo.

Menginstal VSFTPD di Ubuntu

VSFTPD adalah server FTP untuk sistem mirip Unix tetapi tidak diinstal secara default. Menginstal VSFTPD di Ubuntu mirip dengan cara Anda menginstal paket lain. Mulailah tutorial ini dengan memperbarui pengelola paket APT Anda sebelum menginstal VSFTPD.

1. Jalankan apt update perintah untuk memperbarui APT. Perintah ini mengambil daftar paket dari repositori yang dikonfigurasi dan memperbarui cache paket lokal.

sudo apt update -y

2. Selanjutnya, jalankan apt install perintah di bawah ini untuk menginstal VSFTPD pada mesin Anda. Perintah ini juga akan menarik semua dependensi yang diperlukan untuk layanan FTP.

Secara default, paket VSFTPD tersedia di sebagian besar distribusi modern berbasis Debian. Jadi Anda dapat menginstalnya tanpa repositori paket tambahan dan biarkan APT mengurus sisanya.

3. Terakhir, jalankan systemctl perintah di bawah ini untuk memverifikasi bahwa layanan VSFTPD berjalan dan dikonfigurasi dengan benar.

sudo systemctl status vsftpd 

Anda akan melihat output seperti di bawah ini, yang menunjukkan vsftpd.service aktif (berjalan) dan mendengarkan permintaan.

Membuka Port untuk Koneksi Klien FTP

Sekarang setelah Anda menginstal VSFTPD versi terbaru, Anda sekarang dapat mengonfigurasi firewall Anda. Anda akan menggunakan UFW, alat konfigurasi firewall default untuk Ubuntu, untuk menambahkan aturan firewall guna membuka port untuk koneksi klien FTP yang aman.

1. Jalankan ufw status perintah untuk melihat aturan firewall mana yang sedang aktif.

sudo ufw status

Di bawah, Anda dapat melihat bahwa firewall aktif tetapi tidak memiliki aturan untuk mengizinkan koneksi apa pun secara default.

2. Selanjutnya, jalankan ufw allow perintah di bawah ini untuk mengizinkan ketiga port melalui firewall. VSFTPD membutuhkan koneksi FTP pada port 20 , 21 , dan 990 .

sudo ufw allow 20,21,990/tcp

3. Jalankan ufw perintah di bawah ini untuk membuka 40000:50000 jangkauan pelabuhan.

VSFTPD membutuhkan rentang port 40000:50000 untuk dibuka sehingga klien FTP dapat membuat koneksi data ke server dalam mode pasif.

sudo ufw allow 40000:50000/tcp

4. Terakhir, jalankan ufw status verbose perintah di bawah ini untuk memverifikasi bahwa aturan firewall Anda aktif dan memeriksa kesalahan.

sudo ufw status verbose

Mengonfigurasi Server VSFTDP

Anda telah berhasil mengizinkan lalu lintas melalui firewall, tetapi Anda harus mengonfigurasi server VSFTPD Anda sebelum menggunakannya.

 /etc/vsftpd.conf file adalah file konfigurasi utama untuk VSFTPD. Tetapi Anda juga dapat mengkonfigurasi server FTP Anda melalui perintah lain jika Anda lebih suka melakukan sesuatu secara dinamis. Atau jika Anda lebih suka menentukan aturan yang tidak tersedia di file konfigurasi.

Selama mengedit file /etc/vsftpd.conf, batalkan komentar setiap direktif untuk mengaktifkannya dengan menghapus simbol # di depannya.

1. Jalankan sudo cp perintah di bawah ini untuk mencadangkan file konfigurasi asli (/etc/vsftpd.conf /etc/vsftpd.conf.bak ).

Anda harus selalu mencadangkan file konfigurasi penting apa pun sebelum bermain-main.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

2. Selanjutnya, buka /etc/vsftpd.conf file di editor teks favorit Anda. Demo ini menggunakan nano untuk mengedit file konfigurasi.

sudo nano /etc/vsftpd.conf

3. Cari dan ubah anonymous_enable nilai arahan ke TIDAK. Pengguna anonim biasanya digunakan untuk berbagi file publik. Anda tidak ingin pengguna anonim itu di server Anda. Sebagai gantinya, Anda ingin server FPT Anda aman.

Setel nilai direktif local_enable ke YA untuk memungkinkan orang dengan akun di server Anda mentransfer file melalui FTP. Dengan konfigurasi ini, hanya pengguna yang berwenang yang dapat masuk ke server FTP Anda.

4. Sekarang, ubah write_enable arahan ke YA sehingga pengguna Anda dapat mengunggah dan menyimpan file ke server FTP Anda. Arahan ini adalah yang paling penting, karena mengontrol akses ke fungsi unggah.

5. Ubah chroot_local_user arahan ke YA karena pengguna FPT Anda tidak boleh dijalankan sebagai root. Membuat pengguna baru yang mungkin memiliki hak istimewa untuk digunakan oleh layanan FTP jauh lebih aman (Anda akan mempelajari cara membuat pengguna khusus nanti).

Jika arahan ini tidak diaktifkan, pengguna FPT akan memiliki akses ke semua yang ada di server, bahkan direktori root. Perilaku ini bisa menjadi masalah keamanan BESAR.

Dengan konfigurasi ini, pengguna Anda hanya dapat mengakses folder yang Anda tentukan (direktori beranda pengguna dalam banyak kasus).

Namun ketika nilai direktif chroot_local_user disetel ke YES, direktif write_enable (langkah empat) tidak akan berfungsi karena syscall chroot() menolak akses penulisan (bila diaktifkan).

Sebagai solusi, tambahkan arahan di bawah ini ke vsftpd.conf . Anda file, sehingga arahan write_enable akan berfungsi terlepas dari nilai arahan chroot_local_user.

allowed_writeable_chroot=YES

6. Selanjutnya, tambahkan arahan di bawah ini ke vsftpd.conf . Anda file untuk mengaktifkan koneksi FTP pasif.

VSFTPD dapat menggunakan port apa pun di atas 1024 yang tidak ditempati oleh layanan lain untuk koneksi FTP pasif. Demo ini menggunakan rentang port yang Anda atur di bagian “Membuka Port untuk Koneksi Klien FTP” (langkah ketiga).

pasv_min_port=35000
pasv_max_port=40000

7. Tambahkan baris berikut di bagian bawah vsftpd.conf file untuk mengizinkan hanya pengguna yang berwenang untuk masuk ke server FTP.

userlist_enable=YES
# Add the user to the vsftpd.userlist to allow a specific user 
# to use the system login account to access your FTP service.
userlist_file=/etc/vsftpd.userlist
# NO - anyone can log in with an anonymous account.
# YES - the user will be denied to login when their name exists in this file. 
userlist_deny=NO

8. Terakhir, simpan dan tutup vsftpd.conf file, dan jalankan perintah di bawah ini ke restart vsftpd . Anda server untuk menerapkan perubahan.

sudo service vsftpd restart

Membuat Pengguna Khusus untuk Menggunakan Layanan FTP

Anda sekarang telah mengonfigurasi server VSFTPD Anda, tetapi Anda memerlukan pengguna khusus untuk menggunakan layanan FTP alih-alih pengguna root. Anda akan membuat direktori di dalam direktori home pengguna sehingga direktori tersebut mudah diakses.

1. Jalankan adduser perintah di bawah ini untuk membuat pengguna baru. Anda dapat memilih nama pengguna yang Anda inginkan, tetapi demo ini membuat pengguna bernama ata . Tapi ingat untuk tidak menduplikasi pengguna di tempat lain di server Anda.

sudo adduser ata

Berikan kata sandi yang aman dan catat itu. Anda akan menggunakan kata sandi ini untuk terhubung ke server FTP Anda.

Anda juga harus memberikan beberapa detail untuk pengguna baru atau menyimpan detail default dengan menekan ENTER. Ketik Y dan tekan ENTER untuk mengonfirmasi informasi pengguna.

2. Selanjutnya, jalankan perintah di bawah ini untuk menambahkan ata pengguna ke vsftpd.userlist mengajukan.

Seperti yang Anda ingat, file ini menentukan pengguna mana yang diizinkan untuk masuk melalui FTP ketika nilai direktif userlist_deny disetel ke NO. Pada titik ini, hanya pengguna ata yang dapat masuk ke server FTP Anda, dan semua pengguna anonim lainnya akan ditolak aksesnya.

echo "ata" | sudo tee -a /etc/vsftpd.userlist

3. Jalankan perintah berikut untuk mengatur izin yang tepat untuk /home/ata/ftp new yang baru direktori.

Perintah di bawah ini memastikan bahwa hanya pengguna FTP khusus Anda yang memiliki akses ke direktori /home/ata/ftp, dan mengizinkan pengguna untuk mentransfer file ke/dari direktori tersebut.

# Sets the owner of the /home/ata/ftp directory to be nobody.
sudo chown nobody:nogroup /home/ata/ftp
# Ensures that only the owner (your FTP user) 
# has write(w) access(a) to the /home/ata/ftp directory.
sudo chmod a-w /home/ata/ftp

4. Sekarang, jalankan chown perintah untuk mengatur pemilik dan grup /home/ata/ftp/upload direktori ke pengguna FTP Anda (ata ). Perintah juga menetapkan izin yang benar untuk /home/ata/ftp/upload direktori.

sudo chown ata:ata /home/ata/ftp/upload

5. Jalankan echo perintah di bawah ini untuk membuat file pengujian dasar bernama ata.txt .

Perintah di bawah ini membuat file baru bernama ata.txt di direktori FTP Anda dan menyertakan beberapa teks (file uji vsftpd) dalam file teks.

echo "vsftpd test file" | sudo tee /home/ata/ftp/upload/ata.txt

Pada titik ini, Anda telah sepenuhnya mengonfigurasi server FPT Anda, dan pengguna Anda dapat terhubung ke sana.

Menghubungkan ke Server FTP

Setelah mengonfigurasi pengguna FTP khusus, akhirnya tiba saatnya untuk terhubung ke server FTP Anda. Namun pertama-tama Anda akan mencoba menghubungkan ke server FTP Anda menggunakan pengguna anonim untuk menguji apakah server FTP Anda aman.

1. Jalankan ftp -p perintah di bawah ini untuk terhubung ke server FTP Anda. Ganti your-server-ip dengan alamat IP server Anda yang sebenarnya.

ftp -p your-server-ip

Coba masuk sebagai pengguna anonim, dan Anda akan melihat pesan kesalahan berikut. Output ini mengkonfirmasi bahwa server FTP Anda aman karena hanya pengguna FTP khusus Anda yang dapat mengakses server Anda.

2. Jalankan bye perintah untuk keluar dari klien FTP.

bye

3. Jalankan kembali ftp perintah di bawah ini seperti yang Anda lakukan pada langkah pertama. Tapi kali ini, login sebagai pengguna FTP khusus Anda (ata).

ftp -p your-server-ip

Anda akan mendapatkan pesan 230 Login berhasil seperti yang ditunjukkan di bawah ini, yang mengonfirmasi bahwa server FTP Anda berfungsi sebagaimana mestinya.

4. Sekarang, jalankan setiap perintah di bawah ini untuk mengonfirmasi ata.txt file ada di ftp/upload direktori.

ata.txt file yang Anda buat sebelumnya di bagian “Membuat Pengguna Khusus untuk Menggunakan Layanan FTP” (langkah lima).

# Change to the ftp/upload directory as the working directory.
cd ftp/upload
# List all files in the working directory.
ls

5. Jalankan get perintah di bawah ini untuk mengunduh file (ata.txt ) dari server FTP Anda dan simpan ke mesin lokal Anda.

 get ata.txt

Di bawah, Anda dapat melihat pesan konfirmasi yang mengatakan Transfer selesai.

6. Selanjutnya, jalankan put perintah di bawah ini untuk mengunggah ata.txt file dari mesin lokal Anda sebagai file baru bernama ata2.txt ke server FTP Anda.

put ata.txt ata2.txt

7. Terakhir, jalankan kembali ls perintah untuk membuat daftar semua file di direktori saat ini dan memverifikasi bahwa ata2.txt telah berhasil diunggah oleh pengguna Anda.

ls

Jika transfer file sebelumnya (langkah tujuh hingga delapan) berhasil, Anda akan melihat dua file teks:satu bernama ata.txt dan lainnya bernama ata2.txt, seperti yang ditunjukkan di bawah ini.

Menonaktifkan Akses Shell

Saat Anda membuat pengguna FTP baru, server FTP Anda secara otomatis mengizinkan pengguna tersebut untuk masuk dan menjalankan shell. Akibatnya, selain mengunggah dan mengunduh file, pengguna Anda juga dapat menjalankan perintah sistem yang berpotensi berbahaya di server FTP Anda.

Saat Anda tidak menggunakan server FTP, Anda dapat menonaktifkan akses shell untuk mencegah pengguna masuk menggunakan SSH. Melakukannya sangat penting jika Anda mengaktifkan login tanpa kata sandi untuk pengguna FTP khusus Anda.

1. Buka terminal lain di server Anda, dan jalankan perintah di bawah ini ke ssh ke server FPT menggunakan pengguna FTP khusus (ata ).

ssh [email protected]

Seperti yang ditunjukkan di bawah ini, Anda dapat berhasil masuk menggunakan nama pengguna ata dengan kata sandi yang Anda buat sebelumnya di bagian “Membuat Pengguna Khusus untuk Menggunakan Layanan FTP”.

Perilaku ini menunjukkan bahwa pengguna ata dapat menjalankan perintah apa pun di server Anda, termasuk mengubah konfigurasi server. Pengguna FTP yang disusupi dapat melakukan lebih banyak kerusakan daripada pengguna anonim.

2. Selanjutnya, jalankan perintah di bawah ini untuk membuat skrip shell baru bernama ftponly.sh di /bin direktori server FPT Anda. Skrip ini menonaktifkan login FTP apa pun dari pengguna FTP khusus Anda untuk server FTP Anda. Script kemudian mencetak (echo ) pesan peringatan ke layar yang mengatakan This account is limited to FTP access only .

 echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a  /bin/ftponly .sh 

3. Jalankan chmod di bawah ini perintah untuk mengatur izin yang benar pada skrip shell baru ini (/bin/ftponly ). Perintah ini membuat skrip dapat dieksekusi dan memungkinkan pengguna FTP Anda (ata) untuk menjalankannya.

sudo chmod a+x /bin/ftponly

4. Sekarang, jalankan perintah di bawah ini untuk menambahkan jalur skrip shell baru (ftponly ) di /etc/shells . Anda mengajukan. Tindakan ini memastikan bahwa setiap login yang Anda coba dengan pengguna ata Anda ditolak sejak /bin/ftponly skrip akan dieksekusi sebagai gantinya.

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

5. Jalankan usermod perintah di bawah ini untuk mengubah shell pengguna FTP Anda (ata) saat ini menjadi /bin/ftponly kerang.

sudo usermod ata -s /bin/ftponly 

6. Terakhir, jalankan perintah di bawah ini ke SSH ke server FPT Anda menggunakan pengguna FTP Anda (ata ).

ssh [email protected]

Seperti yang ditunjukkan di bawah ini, pengguna FTP khusus Anda tidak dapat SSH ke server FTP Anda. Perilaku ini diharapkan karena /bin/ftponly skrip shell mencetak pesan peringatan dan menutup koneksi SSH (tertutup).

Kesimpulan

Dalam tutorial ini, Anda telah belajar cara menginstal dan mengkonfigurasi server FTP di Ubuntu Linux menggunakan VSFTPD. Anda juga telah mempelajari cara mengonfigurasi pengguna FTP dengan akses terbatas dan membatasi akses shell pengguna FTP.

Pada titik ini, Anda harus memiliki server FTP yang berfungsi dengan akses terbatas.

Dengan pengetahuan baru ini, Anda sekarang dapat mengonfigurasi server FTP Anda di AWS EC2, atau Anda dapat mulai menyiapkan Server FTP di Raspberry Pi Anda. Mana yang akan Anda pilih untuk mulai dikerjakan?


Linux
  1. Cara Menginstal Server FTP di CentOS 7 Dengan VSFTPD

  2. Cara Menginstal Server FTP di Rocky Linux 8 Dengan VSFTPD

  3. Menyiapkan server FTP dengan vsFTPd di Raspberry Pi

  1. Cara Menginstal Server FTP Di Ubuntu dengan vsftpd

  2. Cara setup vsftpd FTP file Server di Redhat 7 Linux

  3. Cara mengatur server FTP di Ubuntu 20.04 Focal Fossa Linux

  1. Cara Mengatur Server FTP dengan VSFTPD di Ubuntu 20.04

  2. Cara Mengatur Server FTP dengan VSFTPD di Ubuntu 18.04

  3. Cara Setup Server FTP dengan VSFTPD di CentOS 7