FTP (File Transfer Protocol) merupakan sebuah protocol yang memberikan kita akses untuk bertukar data baik itu mengirim maupun menerima. Protocol ini biasanya berjalan pada port 21 dan sering digunakan untuk melakukan transaksi data ke server karena prosesnya yang cukup mudah dan nyaman.
Pada artikel ini kita akan membahas bagaimana cara menginstall ftp server pada Redhat 8 dan panduan ini bisa digunakan juga untuk CentOS 8. Berikut kita bahas.
Contents
Installasi FTP Server (vsftpd)
Redhat sendiri menggunakan paket vsftpd untuk layanan ftpnya, tidak seperti yang lain yang menggunakan proftpd. Pertama kita install paket vsftpd.
sudo yum install vsftpd -y
Selanjutnya aktifkan service dan jalankan service vsftpd
sudo systemctl enable vsftpd
sudo systemctl start vsftpd
Setelah berjalan, kita konfigurasi firewall agar dapat mengijinkan service ftp berjalan pada server
sudo firewall-cmd --add-service=ftp --permanent
sudo firewall-cmd --reload
Pengujian FTP
Sebagai pengujian, kita bisa gunakan aplikasi file transfer seperti filezilla maupun winscp. Kalian bisa unduh langsung dari website resminya lalu install di komputer client kalian.
Disini saya menggunakan aplikasi Filezilla, buka aplikasinya lalu isikan informasi dari host, user dan password dari server Redhat yang kalian miliki lalu klik Quickconnect.

Setelah berhasil login kalian akan langsung diarahkan ke document root /home/user. Karena secara default lokasi tersebut menjadi location dari vsftpd ketika pertama kali login.
Mengubah port FTP
Secara default FTP berjalan pada port 21, pada beberapa kondisi kita perlu merubah port tersebut dengan alasan keamanan. Apabila kalian ingin mengubahnya maka kita perlu menambahkan bagian tersebut didalam konfigurasi vsftpd. Pertama buka file config.
sudo nano /etc/vsftpd/vsftpd.conf
Setelah itu kita modifikasi dan tambahakn script seperti dibawah ini,
# Berikan tanda pagar pada script dibawah ini, agar tidak dapat connect dengan port 20
connect_from_port_20=YES ------> #connect_from_port_20=YES
# Tambahkan listen_port dibagian baris paling bawah untuk menandakan port yang digunakan
listen_port=335
Jangan lupa untuk menambahkan port 335 kedalam filewall agar terbaca ketika di akses, karena port yang tidak didaftarkan tidak dapat diakses dari luar oleh system.
sudo firewall-cmd --add-port=335/tcp --permanent
sudo firewall-cmd --reload
Selanjutnya kita set SELinux untuk ftp agar dapat full access dengan perintah berikut.
sudo setsebool -P ftpd_full_access true
sudo setenforce 0
Setelah itu restart service dari vsftpd dan coba login kembali menggunakan port baru yang sudah diubah.
sudo systemctl start vsftpd
Mengubah direktory default FTP
Secara default, direktori yang akan muncul pada saat kita login adalah direktori home dari user yang kita gunakan login. Disini kita dapat mengubah directory tersebut menjadi mengarah ke tempat lain. Sebagai contoh kita akan pindahkan ke /var/www/html/
sudo nano /etc/vsftpd/vsftpd.conf
Untuk melakukan konfigurasi tersebut, tambahkan script dibawah ini di bagian paling bawah.
# Optional apabila mengubah port ftp
listen_port=335
# Arahkan ke direktori yang kita inginkan
chroot_local_user=YES
pam_service_name=vsftpd
local_root=/var/www/html
allow_writeable_chroot=YES
pasv_enable=NO
Simpan konfigurasi lalu restart service ftp
sudo systemctl start vsftpd
Jangan lupa untuk memberikan akses kepada direktori tersebut dengan username kita dan group apache agar dapat kita edit pada saat mengakses layanan ftp.
sudo chown warrior.apache -R /var/www/html/
Userlist FTP
Pada bagian ini akan menjelaskan konfigurasi userlist, nantinya userlist ini akan menyeleksi siapa saja yang dapat melakukan akses ftp. Ini bisa meningkatkan kemanan dimana user lain yang tidak terdaftar tidak dapat menggunakan layanan ftp ini.
Pertama kita buat file userlist dengan perintah berikut.
sudo touch /etc/vsftpd.userlist
Selanjutnya kita edit file userlist tersebut.
sudo nano /etc/vsftpd.userlist
Masukan list username yang akan kita izinkan untuk mengakses layanan ftp, disini saya memasukan satu user bernama warrior.
warrior
Simpan file userlist, kita berlanjut ke konfigurasi vsftpd.conf. Buka file tersebut.
sudo nano /etc/vsftpd/vsftpd.conf
Tambahkan script baru di bagian paling bawah untuk mengaktifkan fitur userlist.
# Optional apabila mengubah port ftp
listen_port=335
# Optional jika ingin direktori default diubah
chroot_local_user=YES
pam_service_name=vsftpd
local_root=/var/www/html
allow_writeable_chroot=YES
pasv_enable=NO
# Konfigurasi userlist ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
Setelah selesai, simpan konfigurasi dan restart service ftp.
sudo systemctl start vsftpd
Lakukan ujicoba userlist dengan melakukan login ke Filezilla dengan menggunakan user lain selain yang sudah didaftarkan. Apakah berhasil atau tidak.
Troubleshooting
Apabila service vsftpd terkendala pada saat melakukan restart dengan kondisi konfigurasi tidak ada yang berubah, maka kamu perlu menyesuaikan konfigurasi SELinux. Gunakan perintah dibawah ini.
sudo nano /etc/selinux/config
Setelah itu ubah script seperti penjelasan dibawah ini.
# Konfigurasi Sebelumnya
SELINUX=enforcing
#Ubah Konfigurasi menjadi
SELINUX=permissive
Simpan konfigurasi, perubahan ini baru akan terjadi pada saat server melakukan restart. Maka selanjutnya kamu bisa melakukan restart pada server. Apabila server belum perlu di restart maka kamu bisa jalanakan perintah SELinux permissive sementara dengan perintah dibawah.
sudo setenforce 0
Penutup
Sekian panduan yang bisa saya jelaskan mengenai installasi dan konfigurasi FTP Server yang berjalan di RedHat 8. Cukup banyak konfigurasi yang dapat dilakukan pada layanan ftp ini yang dapat memberikan pleksibilitas dan keamanan kepada kita sebagai admin yang menggunakannya.
Perlu diperhatikan bahwa OS RedHat cukup terkenal dengan tingkat keamanannya sehingga setiap konfigurasi layanan pasti dibarengi dengan konfigurasi firewall bahkan sampai ke SELinux. Selamat mencoba dan semoga berhasil !
Referensi
- https://www.tutupkurung.com/2019/07/cara-install-ftp-server-vsftpd-pada-redhat-8.html
- https://www.centlinux.com/2021/03/chroot-ftp-users-to-document-root-directory.html




