Translate
idarzh-TWen

Instal vsFTPd di Ubuntu Server 18.04 LTS dan mengamankannya dengan SSL Certificate

FTP? Sekilas yang terlintas dibenak saya adalah salah satu protokol yang disediakan untuk transfer data berbasis client server. Namun yang paling menyita perhatian dari protokol ini adalah dari segi keamanan. Seringkali para penjahat siber memanfaatkan celah pada protokol ini untuk masuk dengan mudahnya jika protokol ini diaktifkan sesuai bawaan instalasi. Jadi jika kita akan mengaktifkan protokol tersebut, mau tidak mau kita juga harus mengamankannya.

( 0 / 0 votes)
Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 

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

  • Latest News

  • Jobs Vacancy

Loading
Loading

Wordpress Hosting

Banner IDwebhost