Panduan Installasi dan Konfigurasi FTP Server di RHEL 8

Photo of author
Publish in

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.

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