Kali ini saya akan menulis cara memasang FTP yang Inshaa Alloh secara urut dan mudah dipahami. Dalam tulisan ini akan dibahas secara bertahap yaitu :
A. Persiapan Instal : Dalam tahap ini kita memerlukan aplikasi untuk mengakses dari client ke server. Saya sendiri menggunakan filezilla untuk aplikasinya.
B. Cara Instal : Karena ini adalah server, maka saya sengaja tidak memasang tampilan GUI. Untuk itu saya akan masuk ke server menggunakan protokol SSH.
C. Testing Akses : Pada tahap ini diharapkan tahap 1 dan 2 sukses di lakukan.
Sekarang coba kita mulai dengan urut :
A. PERSIAPAN INSTAL :
Langkah – langkah instalasi filezilla di client:
// Update dulu PC Client
$ sudo apt-get update
// Instal filezilla
$ sudo apt install filezilla
// Perintah untuk membuka filezilla
$ filezilla
B. CARA INSTAL :
Setelah sukses dengan tahap pertama, maka berikut langkah - langkah instalasi FTP di server. Untuk mengakses server saya menggunakan protokol ssh. Cara mengaksesnya adalah sebagai berikut :
// Perintah SSH, biasanya default portnya adalah 22
$ ssh userkamu@IPServerKamu -p portSSHkamu
1. Instal FTP nya. Saya disini menggunakan VSFTPD
// Instal FTP. Saya menggunakan vsftpd
$ sudo apt-get update
$ sudo apt-get install vsftpd
// Kita amankan dulu konfigurasi bawaan vsftpd.conf dengan cara mengkopinya
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orisinil
2. Membuka Firewall
// Aktifkan ufw(firewall) dan allow rule yang dikehendaki
$ sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
$ sudo ufw allow 9900/tcp
$ sudo ufw allow 40000:50000/tcp
// lalu cek kembali status ufw dengan perintah :
$ sudo ufw status
// sehingga status ufw akan tampak seperti ini :
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
20/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere
990/tcp ALLOW Anywhere
40000:50000/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
20/tcp (v6) ALLOW Anywhere (v6)
21/tcp (v6) ALLOW Anywhere (v6)
990/tcp (v6) ALLOW Anywhere (v6)
40000:50000/tcp (v6) ALLOW Anywhere (v6)
3. Membuat direktori yang akan digunakan untuk transaksi FTP
// Buat user khusus untuk FTP dulu. Kenapa khusus, karena saya hanya akan memberikan hak akses hanya untuk user yang saya buat ini saja selain user yang aktif di server.
$ sudo adduser userftpkamu
// Buat dan atur hak akses sekaligus hak milik direktori yang akan dipakai untuk transaksi FTP
$ sudo mkdir /home/userftpkamu/direktoriftpkamu
$ sudo chown nobody:nogroup /home/userftpkamu/direktoriftpkamu
$ sudo chmod a-w /home/userftpkamu/direktoriftpkamu
// Sekali lagi buat direktori dan beri hak milik khusus untuk userftpkamu
$ sudo mkdir /home/userftpkamu/direktoriftpkamu/direktoriftpfileskamu
$ sudo chown userftpkamu:userftpkamu /home/userftpkamu/direktoriftpkamu/direktoriftpfileskamu
// Cek hak akses direktori yang telah dibuat tadi.
$ sudo ls -la /home/userftpkamu/direktoriftpkamu
// Jika benar maka akan tampil seperti dibawah ini
Output
total 12
dr-xr-xr-x 3 nobody nogroup 4096 Aug 26 14:01 .
drwxr-xr-x 3 userlain userlain 4096 Aug 26 13:59 ..
drwxr-xr-x 2 userftpkamu userftpkamu 4096 Aug 26 14:01 files
// Sekarang kita coba memasukan file kedalam direktori yang telah dibuat
$ echo “ini tekt vsftpd yang akan dimasukan dalam file test.txt” | sudo tee /home/userftpkamu/direktoriftpkamu/direktoriftpfileskamu/test.txt
4. Konfigurasi FTP Akses
// Edit file vsftpd.conf, hilangkan tanda kres #
$ sudo nano /etc/vsftpd.conf
# Cari dan kondisikan konfigurasi menjadi seperti ini :
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
#Tambahkan perintah ini jika tidak ada
user_sub_token=$userftpkamu
local_root=/home/$userftpkamu/direktoriftpkamu
# Tambahkan batas range port
pasv_min_port=40000
pasv_max_port=50000
# Tambahkan konfigurasi untuk mengambil file user list akses
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.userlist
// Setelah selesai tekan Ctrl+X lalu tekan Y (enter)
// Sekarang kamu bikin file vsftpd.userlist yang isinya userftpkamu
$ echo “userftpkamu” | sudo tee -a /etc/vsftpd.userlist
// Untuk melihat isi file vsftpd.userlist
$ cat /etc/vsftpd.userlist
// Jika berhasil maka akan seperti ini :
Output
userftpkamu
// Restart FTP
$ sudo systemctl restart vsftpd
5. Testing FTP via command line
$ ftp -p IPServerKamu
// contoh tampilan gagal jika memakai userlain
Output
Connected to IPServerKamu.
220 (vsFTPd 3.0.3)
Name (IPServerKamu:default): userlain
530 Permission denied.
ftp: Login failed.
Ftp> bye
// contoh tampilan berhasil dengan memakai userftpkamu
Output
Connected to IPServerKamu.
220 (vsFTPd 3.0.3)
Name (IPServerKamu.0:default): userftpkamu
331 Please specify the password.
Password: passwote_sekarepmu
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
Ftp> cd direktoriftpfileskamu
Ftp> get test.txt
Output
227 Entering Passive Mode (IPServerKamu,169,12).
150 Opening BINARY mode data connection for test.txt (16 bytes).
226 Transfer complete.
16 bytes received in 0.0101 seconds (1588 bytes/s)
Ftp> put test.txt upload.txt
Output
227 Entering Passive Mode (IPServerKamu,164,71).
150 Ok to send data.
226 Transfer complete.
16 bytes sent in 0.000894 seconds (17897 bytes/s)
Ftp> bye
6. Mengamankan transaksi data FTP
// Dalam hal ini saya menggunakan openssl untuk membuat sertifikat
$ sudo open ssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/namakeykamu.pem -out /etc/ssl/certs/namacertificatekamu.pem
// Lalu sesuaikan sesuai kebutuhanmu
Generating a 2048 bit RSA private key
......................................................+++
.+++
writing new private key to '/etc/ssl/private/namakeykamu.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:Jawa Tengah
Locality Name (eg, city) []:Semarang
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nama Organisasi Kamu
Organizational Unit Name (eg, section) []:Nama Unit Kamu
Common Name (e.g. server FQDN or YOUR name) []:Nama server FQDN kamu
Email Address []:email@kamudotkom
// Kemudian kembali lagi edit file vsftpd.conf
$ sudo nano /etc/vsftpd.conf
// Sesuaikan isinya seperti ini dan simpan
rsa_cert_file=/etc/ssl/certs/namacertificatekamu.pem
rsa_private_key_file=/etc/ssl/private/namakeykamu.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
require_ssl_reuse=NO
ssl_ciphers=HIGH
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
// tekan Ctrl+X, lalu tekan Y untuk simpan dan keluar
// Restart VSFTPD
$ sudo systemctl restart vsftpd
C. TESTING AKSES :
Sekarang silahkan kamu coba test koneksi FTP Server (IPServerKamu) dengan filezilla yang ada di client (IPCLientKamu).
Kemudian isi seperti dibawah ini :
Host : IPServerKamu
Username: userftpkamu
Password: passwordftpkamu
Port: kosongkan
Setelah itu klik button Quickconnect. Jika berhasil maka tampilan filezilla akan seperti atas.
Sekian dulu ulasan dari saya, selamat mencoba dan semoga bermanfaat.
Catatan :
• Silahkan komen, kopi atau bagikan artikel ini. Jangan lupa sertakan link ya Gan.
• Jika menemui masalah, mari kita bahas bersama di Forum.
• Untuk menggunakan Forum, silahkan registrasi dahulu.
• Untuk referensi lain, silahkan kunjungi channel youtube saya.
Regard's