全部产品
Search
文档中心

Simple Application Server:Membangun Server FTP (Linux)

更新时间:Jul 02, 2025

Very Secure FTP Daemon (vsftpd) adalah perangkat lunak server FTP yang ringan, aman, dan mudah digunakan untuk Linux. Dokumen ini menjelaskan cara menginstal dan mengonfigurasi vsftpd pada server aplikasi sederhana berbasis Linux serta cara menguji konektivitas ke server FTP.

Prasyarat

Sebuah server aplikasi sederhana berbasis Linux telah dibuat. Untuk informasi lebih lanjut, lihat Membuat server aplikasi sederhana.

Informasi latar belakang

FTP adalah protokol yang digunakan untuk mentransfer file. FTP didasarkan pada arsitektur model klien-server dan mendukung mode kerja berikut:

  • Mode aktif: Klien mengirimkan informasi port ke server FTP, dan server membuat koneksi ke port tersebut.

  • Mode pasif: Server FTP mengaktifkan port dan mengirimkan informasi port ke klien. Klien memulai koneksi ke port tersebut, dan server menerima koneksi.

FTP mendukung mode autentikasi berikut:

  • Mode pengguna anonim: Pengguna dapat masuk ke server FTP tanpa nama pengguna atau kata sandi. Ini merupakan mode autentikasi paling tidak aman. Dalam banyak kasus, mode ini digunakan untuk mentransfer file publik yang tidak penting. Kami menyarankan Anda untuk tidak menggunakan mode ini dalam lingkungan produksi.

  • Mode pengguna lokal: Sistem mengotentikasi pengguna dengan memeriksa apakah mereka adalah pengguna lokal Linux. Mode ini lebih aman daripada mode pengguna anonim.

  • Mode pengguna virtual: Sistem Linux mengotentikasi pengguna dengan memeriksa apakah mereka adalah pengguna virtual. Pengguna virtual hanya memiliki akses ke layanan FTP yang disediakan oleh sistem Linux kepada mereka, dan tidak memiliki akses ke sumber daya lain dari sistem. Mode pengguna virtual lebih aman daripada mode pengguna anonim dan lokal. Jika Anda memiliki persyaratan keamanan tinggi pada data server, kami sarankan Anda mengonfigurasi mode pengguna virtual di bawah bimbingan profesional.

Dokumen ini menjelaskan mode pengguna anonim yang mudah dikonfigurasi dan mode pengguna lokal yang lebih aman.

Langkah 1: Persiapan awal

FileZilla adalah alat klien FTP. Dalam contoh ini, FileZilla digunakan untuk menguji konektivitas ke server FTP. Anda harus melakukan persiapan berikut:

  1. Unduh dan instal FileZilla di komputer Anda.

    Untuk mengunduh FileZilla, kunjungi atau FileZilla.

  2. Tetapkan kata sandi untuk Server Linux.

    Untuk informasi lebih lanjut, lihat Atur atau reset kata sandi server.

Langkah 2: Instal dan konfigurasikan vsftpd

Dokumen ini menggunakan CentOS 7 sebagai contoh. Prosedurnya bervariasi berdasarkan sistem operasi. Untuk informasi lebih lanjut, lihat Membangun situs FTP pada instance ECS.

  1. Hubungkan ke Server Linux.

    Untuk informasi lebih lanjut, lihat Hubungkan ke Server Linux.

  2. Jalankan perintah berikut untuk memeriksa apakah vsftpd sudah terinstal di server:

    Beberapa server aplikasi sederhana yang diterapkan menggunakan gambar aplikasi memiliki vsftpd yang sudah terinstal sebelumnya. Jika Anda menginstal vsftpd lagi, konflik mungkin terjadi.

    vsftpd -v

    Jika informasi berikut dikembalikan, vsftpd sudah terinstal di server aplikasi sederhana. Anda tidak perlu menginstal vsftpd lagi. Anda bisa mendapatkan nama pengguna dan kata sandi server FTP dengan merujuk pada dokumentasi gambar aplikasi terkait. Kemudian, Anda dapat mengonfigurasi firewall dan menggunakan klien FTP untuk menguji konektivitas ke server FTP. Untuk informasi lebih lanjut, lihat bagian Langkah 4: Konfigurasikan firewall server Linux dan Langkah 5: Periksa apakah Anda dapat mengakses server FTP dari klien FTP dari dokumen ini.

    [admin@iZ2579sxicu**** ~]$ vsftpd -v
    vsftpd: version 3.0.2
  3. Jalankan perintah berikut untuk menginstal vsftpd:

    sudo yum install -y vsftpd

    Jika pesan berikut muncul, vsftpd berhasil diinstal. 轻量-安装ftp

  4. Jalankan perintah berikut untuk mengaktifkan layanan FTP agar otomatis mulai saat startup sistem:

    sudo systemctl enable vsftpd.service
  5. Jalankan perintah berikut untuk memulai layanan FTP:

    sudo systemctl start vsftpd.service
    Catatan

    Jika layanan FTP tidak dapat dimulai dan sistem mengembalikan pesan kesalahan Job for vsftpd.service failed because the control process exited with error code, periksa apakah port 21 digunakan oleh layanan lain dan atasi masalah tersebut.

    1. Jalankan perintah lsof -i:21 untuk memeriksa apakah proses ada.

    2. Jika proses ada, jalankan perintah kill -9 <Nomor proses> untuk menghentikan proses.

  6. Jalankan perintah berikut untuk menanyakan nomor port layanan FTP:

    sudo netstat -antup | grep ftp

    Jika Anda dapat melihat nomor port layanan FTP, seperti yang ditunjukkan pada gambar berikut, layanan FTP telah dimulai.轻量-FTP状态

Langkah 3: Konfigurasikan mode akses server FTP

Anda dapat mengonfigurasi mode pengguna anonim atau lokal untuk server FTP. Kami menyarankan Anda menggunakan mode pengguna lokal yang lebih aman.

(Direkomendasikan) Mode pengguna lokal

  1. Jalankan perintah berikut untuk membuat pengguna Linux untuk layanan FTP.

    Dalam contoh ini, nama pengguna ftptest digunakan.

    sudo adduser ftptest
  2. Jalankan perintah berikut untuk mengubah kata sandi pengguna ftptest:

    sudo passwd ftptest

    Ikuti petunjuk baris perintah untuk mengubah kata sandi pengguna.

  3. Jalankan perintah berikut untuk membuat direktori file untuk layanan FTP:

    sudo mkdir /var/ftp/test
  4. Jalankan perintah berikut untuk mengubah pemilik direktori /var/ftp/test menjadi ftptest:

    sudo chown -R ftptest:ftptest /var/ftp/test
  5. Ubah file konfigurasi vsftpd.conf.

    1. Jalankan perintah berikut untuk mengubah file konfigurasi /etc/vsftpd/vsftpd.conf.

      Jika Anda menjalankan perintah apt install vsftpd saat menginstal vsftpd, jalur ke file konfigurasi adalah /etc/vsftpd.conf.

      sudo vim /etc/vsftpd/vsftpd.conf
    2. Tekan tombol I untuk masuk ke mode edit.

    3. Aktifkan mode pasif untuk server FTP.

      Konfigurasikan parameter berikut dan pertahankan nilai default parameter lainnya.

      Penting

      Sebelum Anda menyalin parameter berikut dan menempelkannya ke file konfigurasi server Linux, pastikan bahwa parameter tersebut tidak dikomentari dengan tanda pagar (#). Pastikan bahwa parameter tersebut ditentukan dalam format yang valid. Sebagai contoh, spasi tambahan dapat menyebabkan layanan gagal memulai ulang.

      Ubah nilai parameter berikut:

      #Nonaktifkan pengguna anonim untuk masuk ke server FTP.
      anonymous_enable=NO
      #Izinkan pengguna lokal untuk masuk ke server FTP.
      local_enable=YES
      #Dengarkan pada soket IPv4.
      listen=YES

      Tambahkan tanda pagar (#) di awal baris untuk mengomentari parameter berikut dan menonaktifkan pendengaran pada soket IPv6:

      #listen_ipv6=YES

      Tambahkan parameter berikut ke akhir file konfigurasi. Ganti nilai parameter pasv_address dengan alamat IP publik server aplikasi sederhana.

      #Tentukan direktori pengguna lokal setelah pengguna lokal masuk.
      local_root=/var/ftp/test
      #Batasi semua pengguna ke direktori home setelah mereka masuk.
      chroot_local_user=YES
      #Gunakan daftar untuk menentukan pengguna pengecualian. Pengguna pengecualian adalah pengguna yang tidak dibatasi ke direktori home setelah mereka masuk.
      chroot_list_enable=YES
      #Tentukan file yang berisi daftar pengguna pengecualian.
      chroot_list_file=/etc/vsftpd/chroot_list
      #Aktifkan mode pasif.
      pasv_enable=YES
      allow_writeable_chroot=YES
      #Masukkan alamat IP publik server aplikasi sederhana.
      pasv_address=39.105.xx.xx
      #Tentukan nomor port minimum dari rentang port yang dapat digunakan untuk mentransfer data dalam mode pasif.
      #Kami menyarankan Anda menggunakan port dari rentang angka tinggi, seperti 50000 hingga 50010. Port ini memberikan akses yang lebih aman ke server FTP.
      pasv_min_port=50000
      #Tentukan nomor port maksimum dari rentang port yang dikirim ke klien FTP untuk koneksi mode pasif.
      pasv_max_port=50010

      Untuk informasi tentang parameter lainnya, lihat Lampiran.

    4. Tekan tombol Esc untuk keluar dari mode edit. Masukkan :wq dan tekan tombol Enter untuk menyimpan dan menutup file.

  6. Buat file chroot_list, dan tulis daftar pengguna pengecualian ke file tersebut.

    1. Jalankan perintah berikut untuk membuat file chroot_list:

      sudo vim /etc/vsftpd/chroot_list
    2. Tekan tombol I untuk masuk ke mode edit.

    3. Tentukan pengguna pengecualian. Pengguna pengecualian tidak dibatasi ke direktori home dan memiliki akses ke direktori lain.

      Penting

      Anda harus membuat file chroot_list meskipun tidak ada pengguna pengecualian. File tersebut dapat kosong.

    4. Tekan tombol Esc untuk keluar dari mode edit. Masukkan :wq dan tekan tombol Enter untuk menyimpan dan menutup file.

  7. Jalankan perintah berikut untuk menonaktifkan firewall:

    sudo systemctl stop firewalld
  8. Ubah file konfigurasi.

    1. Jalankan perintah berikut untuk membuka file /etc/ssh/sshd_config:

      sudo vi /etc/ssh/sshd_config
    2. Ubah nilai PasswordAuthentication menjadi yes di akhir file.asdas

    3. Tekan tombol Esc untuk keluar dari mode edit. Masukkan :wq! dan tekan tombol Enter untuk menyimpan dan menutup file konfigurasi.

  9. Jalankan perintah berikut untuk memulai ulang layanan FTP:

    sudo systemctl restart vsftpd.service

Mode pengguna anonim

  1. Jalankan perintah berikut untuk mengubah file konfigurasi /etc/vsftpd/vsftpd.conf.

    Jika Anda menjalankan perintah apt install vsftpd saat menginstal vsftpd, jalur ke file konfigurasi adalah /etc/vsftpd.conf.

    sudo vim /etc/vsftpd/vsftpd.conf
  2. Tekan tombol I untuk masuk ke mode edit.

  3. Temukan parameter anonymous_enable yang menentukan mode anonim, dan parameter anon_upload_enable yang menentukan izin unggah anonim.

    Pengaturan default dalam file konfigurasi mungkin bervariasi berdasarkan distribusi Linux dari server aplikasi sederhana. Pastikan bahwa nilai kedua parameter adalah YES setelah Anda mengubah parameter.

    anonymous_enable=YES
    anon_upload_enable=YES
    listen=YES
    listen_ipv6=NO 
  4. Tambahkan parameter berikut ke akhir file:

    Penting

    Sebelum Anda menyalin parameter berikut dan menempelkannya ke file konfigurasi server Linux, pastikan bahwa parameter tersebut tidak dikomentari dengan tanda pagar (#). Pastikan bahwa parameter tersebut ditentukan dalam format yang valid. Sebagai contoh, spasi tambahan dapat menyebabkan layanan gagal memulai ulang.

    #Aktifkan mode pasif.
    pasv_enable=YES
    #Tentukan nomor port minimum dari rentang port yang dapat digunakan untuk mentransfer data dalam mode pasif.
    #Kami menyarankan Anda menggunakan port dari rentang angka tinggi, seperti 50000 hingga 50010. Port ini memberikan akses yang lebih aman ke server FTP.
    pasv_min_port=50000
    #Tentukan nomor port maksimum dari rentang port yang dikirim ke klien FTP untuk koneksi mode pasif.
    pasv_max_port=50010                   
    #Masukkan alamat IP publik server aplikasi sederhana.                
    pasv_address=39.105.xx.xx    
  5. Tekan tombol Esc untuk keluar dari mode edit. Masukkan :wq dan tekan tombol Enter untuk menyimpan dan menutup file.

  6. Jalankan perintah berikut untuk mengubah izin pada direktori /var/ftp/pub dan memberikan izin tulis pada direktori tersebut kepada pengguna FTP:

    /var/ftp/pub adalah direktori file default layanan FTP.

    sudo chmod o+w /var/ftp/pub/
  7. Jalankan perintah berikut untuk memulai ulang layanan FTP:

    sudo systemctl restart vsftpd.service

Langkah 4: Konfigurasikan firewall server Linux

Setelah server FTP dibangun, Anda harus menambahkan aturan di firewall server Linux untuk mengaktifkan port yang tercantum dalam tabel berikut. Untuk informasi lebih lanjut, lihat Kelola firewall.

Dalam mode pasif, Anda harus mengaktifkan port 21 dan semua port yang termasuk dalam rentang port yang ditentukan oleh pasv_min_port dan pasv_max_port dalam file konfigurasi /etc/vsftpd/vsftpd.conf. Tabel berikut menjelaskan detail konfigurasi.

Jenis aplikasi

Protokol

Rentang port

FTP

TCP

21

Kustom

TCP

pasv_min_port/pasv_max_port. Contoh: 50000/50010.

Setelah aturan firewall ditambahkan, aturan tersebut akan muncul di halaman Firewall, seperti yang ditunjukkan pada gambar berikut:

image.png

Langkah 5: Periksa apakah Anda dapat mengakses server FTP dari klien FTP

    Lampiran

    File konfigurasi vsftpd dan parameter

    Berikut ini menjelaskan file dalam direktori /etc/vsftpd:

    • /etc/vsftpd/vsftpd.conf adalah file konfigurasi inti vsftpd.

    • /etc/vsftpd/ftpusers adalah file daftar hitam. Pengguna yang ditentukan dalam file ini tidak diizinkan mengakses server FTP.

    • /etc/vsftpd/user_list adalah file daftar putih. Pengguna yang ditentukan dalam file ini diizinkan mengakses server FTP.

    Tabel berikut menjelaskan parameter yang digunakan dalam file konfigurasi vsftpd.conf.

    • Tabel berikut menjelaskan parameter untuk kontrol login.

      Parameter

      Deskripsi

      anonymous_enable=YES

      Menerima pengguna anonim.

      no_anon_password=YES

      Mengizinkan pengguna anonim masuk ke server FTP tanpa perlu memasukkan kata sandi.

      anon_root=(none)

      Menentukan direktori home pengguna anonim.

      local_enable=YES

      Menerima pengguna lokal.

      local_root=(none)

      Menentukan direktori home pengguna lokal.

    • Tabel berikut menjelaskan parameter yang digunakan untuk mengelola izin pengguna.

      Parameter

      Deskripsi

      write_enable=YES

      Mengizinkan semua pengguna mengunggah file.

      local_umask=022

      Memberikan izin kepada pengguna lokal untuk mengunggah file.

      file_open_mode=0666

      Menggunakan umask untuk memberikan izin mengunggah file.

      anon_upload_enable=NO

      Mengizinkan pengguna anonim mengunggah file.

      anon_mkdir_write_enable=NO

      Mengizinkan pengguna anonim membuat direktori.

      anon_other_write_enable=NO

      Mengizinkan pengguna anonim memodifikasi dan menghapus file.

      chown_username=lightwiter

      Menentukan kepemilikan file yang diunggah oleh pengguna anonim.