Membuat FTP Server di Linux VPS

 

VPS adalah server virtual yang berfungsi untuk menyimpan data dan file pada website. VPS digunakan pada website yang membutuhkan sumber daya besar. Karena penggunanya tidak perlu berbagi sumber daya dengan website lain seperti halnya pada shared hosting.

Keuntungan membuat FTP server di VPS

  • Dapat menyimpan beberapa file di dalam server dan dapat diakses menggunakan internet dimanapun berada. Sedangkan jika menggunakan server lokal, maka akses hanya sebatas di jaringan itu saja.
  • Bisa dengan mudah mengunggah file situs web ke server sehingga dapat diakses melalui jaringan internet.
  • Tidak perlu khawatir dengan pertukaran data yang berukuran besar, karena jika menggunakan FTP file-file yang berukuran besar dapat dikirim dan diunggah dengan mudah.

Install FTP Server di Ubuntu, Centos, dan Manjaro

Very Secure FTP Daemon (VSFTPD) adalah perangkat lunak yang berfungsi sebagai FTP server dan dapat berjalan di hampir semua sistem operasi Linux. VSFTPD dapat dikonfigurasi sesuai dengan kebutuhan pengguna dengan cukup mudah. Berikut adalah langkah-langkahnya:

1. Install VSFTPD

Langkah pertama adalah menginstal VSFTPD menggunakan Terminal. Buka Terminal dan ketikkan perintah berikut.

Ubuntu$ sudo apt-get install vsftpd

CentOS$ sudo yum install vsftpd

Manjaro$ sudo pacman -S vsftpd

2. Konfigurasi VSFTPD

Cara konfigurasi FTP server menggunakan VSFTPD hanya menggunakan satu file saja. 

Note : Sebelum mengubah konfigurasi di file VSFTPD lakukan backup. Sehingga jika terjadi masalah yang tidak bisa diselesaikan dapat menggunakan file backup yang sudah ada.

Ketikkan perintah berikut untuk membackup file konfigurasi VSFTPD gunakan perintah cp ‘untuk menyalin’.

$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_backup

Konfigurasi VSFTPD ada di file vsftpd.conf yang berada di folder etc:

$ sudo nano /etc/vsftpd.conf

Sesuaikan konfigurasi dengan kebutuhan atau dapat mengikuti konfigurasi berikut.

SCRIPT

KETERANGAN

  • anonymous_enable=NO
Digunakan untuk mengatur hak akses user anonim yang ingin mengakses FTP.
  • local_enable=YES
Digunakan untuk mengatur izin akses dari user lokal.
  • write_enable=YES
Digunakan untuk mengatur segala bentuk perintah write ‘tulis’ FTP.
  • local_umask=022
Digunakan untuk mengatur nilai umask dari user lokal.
  • dirmessage_enable=YES
Digunakan untuk mengatur pesan direktori ‘pesan yang diberikan kepada pengguna jarak jauh ketika yang ingin masuk ke direktori tertentu’.
  • xferlog_enable=YES
Digunakan untuk mengaktifkan pencatatan kegiatan unggah (uploads)/unduh (downloads).
  • connect_from_port_20=YES
Digunakan untuk mengatur port yang digunakan untuk akses FTP.
  • xferlog_std_format=YES
Digunakan untuk mengatur format log yang ingin dipakai.
  • chroot_local_user=YES
Digunakan untuk menentukan daftar eksplisit pengguna lokal untuk chroot () ke home direktori.
  • listen=NO
Ketika “listen” direktif diaktifkan, vsftpd berjalan dalam mode mandiri dan listen pada soket IPv4.
  • listen_ipv6=YES
Jika listen_ipv6 diaktifkan, ini digunakan untuk listen pada IPv6.

Dapat juga menambah beberapa konfigurasi seperti:

  • pam_service_name=vsftpd
  • userlist_enable=YES
  • tcp_wrappers=YES

3. Buat User FTP

Langkah selanjutnya adalah membuat user untuk FTP. Gunakan beberapa perintah berikut untuk mengatur user tambahan yang digunakan untuk mengakses FTP.

$ sudo useradd -m akunftp 

$ sudo passwd akunftp

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully 

Perintah diatas membuat user bernama akunftp dan membuat folder di /home bernama “akunftp”.

Pengujian dapat dilakukan dengan cara menambahkan file ke dalam folder “akunftp” di home menggunakan perintah berikut.

$ sudo bash -c “echo Ini melakukan akses FTP > /home/akunftp/akses_ftp”

Perintah di atas akan membuat file akses_ftp dengan isi teks “Ini melakukan akses FTP”.

4. Ubah Pengaturan User Jail

Dapat menggunakan user yang sudah ada, tetapi perlu merubah beberapa pengaturan untuk mengatasi jail (pencegahan user mengakses direktori yang bukan haknya) atau yang biasa muncul dengan erorr “500 OOPS: vsftpd: refusing to run with writable root inside chroot()”. Seperti di bawah ini:

proses mengubah pengaturan user jail
Error 550 VSFTPD

Error muncul ketika mencoba untuk terhubung dengan VSFTPD FTP server yang dikonfigurasi ke jail (mencegah akses ke direktori lain) setiap user FTP. Di bawah ini langkah sederhana untuk membuat user di Linux agar tidak dapat login menggunakan SSH dan hanya bisa menggunakan FTP.

$ sudo usermod -s /sbin/nologin testuser

Perintah tersebut belum menyelesaikan error yang muncul. Untuk mengatasinya, perlu membuat direktori home read only ‘hanya bisa dibaca’. Misalnya username yang dipakai adalah akunftp dan direktori home berada di /home/akunftp, gunakan perintah berikut.

$ sudo chmod a-w /home/testuser

Kemudian restart VSFTPD.

$ sudo systemctl restart vsftpd

Dapat menggunakan Altenatif (Opsional) lain 

Gunakan perintah berikut untuk melewati writable check.

$ sudo echo ‘allow_writeable_chroot=YES’ >> /etc/vsftpd.conf

 

Pengujian Akses FTP

Pengujian server FTP dapat menggunakan Terminal dan FileZilla.

Terminal:

Ketikkan perintah berikut. $ ftp host_name

Host_name dapat berupa nama domain atau alamat IP dari server.

Masukkan username dan password untuk masuk ke akun FTP.

pengujuan akses ftp pada panduan cara membuat server ftp di linux
Akses FTP server menggunakan user yang sudah dibuat.

FileZilla:

pengujian akses ftp di filezilla
Akses FTP menggunakan FileZilla

Browser:

Cara mengakses FTP dari browser, ketikkan ftp://host_name pada kolom URL dan akses. Masukkan username dan password. Jika berhasil, maka akan muncul list file yang ada di akun FTP tersebut.

cara membuat server ftp di linux (4)
Akses FTP menggunakan browser.