sumber : https://www.hostinger.co.id/tutorial/cara-membuat-ftp-server/
Pengenalan
Tutorial kali ini akan menjelaskan cara membuat FTP server di Ubuntu VPS. Server vsftpd akan digunakan, yang secara luas dianggap sebagai server FTP tercepat dan teraman untuk sistem seperti UNIX.
FTP atau File Transfer Protocol berfungsi untuk mengirim dan menerima file melalui koneksi jaringan. Dengan memanfaatkan framework klien/server dan keamanan SSL/TLS, FTP memperbolehkan pengguna berbagi file untuk (dan menerima dari) remote komputer melalui transfer data yang aman, efisien, dan dapat diandalkan (menggunakan protokol TCP/IP).
FTP berfungsi seperti halnya HTTP atau SMTP; hanya saja FTP bertanggung jawab atas keamanan pengiriman file dari pengirim ke penerima, bukan halaman web dari server ke pengguna atau surat elektronik melalui internet. Tutorial ini akan membantu pengguna memahami dan membuat FTP server di Ubuntu 16.04.
Catatan: Tutorial ini ditulis berdasarkan pada penggunaan Ubuntu 16.04. Namun, Anda dapat melakukan langkah-langkah berikut ini pada saat membuat FTP server di Ubuntu 14.04.
Isi
Langkah 1 – Menginstall Vsftpd
Lakukan update terlebih dulu sebelum melakukan langkah selanjutnya, yaitu penginstall vsftpd daemon. Untuk memulainya, jalankan perintah di bawah ini:
sudo apt-get update
Tunggu sampai prosesnya selesai. Anda akan melihat konfirmasi segera setelah update selesai.
Setelah itu, install vsftpd daemon menggunakan perintah di bawah ini:
sudo apt-get install vsftpd
Pesan konfirmasi akan muncul dan meminta Anda untuk mengetikkan Y dan tekan Enter untuk melanjutkan penginstallan.
Setelah penginstallan selesai, buat backup dari file agar kita bisa memulai dengan file konfigurasi kosong:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original
Sekarang kita sudah siap ke langkah selanjutnya dan konfigurasikan firewall.
Langkah 2 – Memperbolehkan FTP traffic dari firewall
Agar server FTP dapat berkomunikasi dengan dunia luar, maka Anda harus membuat jalan melalui firewall. Pertama-tama, cari tahu apakah firewall diaktifkan pada mesin atau tidak. Jalankan perintah di bawah ini untuk memverifikasi status:
sudo ufw status
Jika Anda melihat pesan berikut ini:
ufw: command not found
Maka itu berarti firewall tidak terinstall dan Anda bisa melanjutkan langkah berikutnya.
Hanya saja, apabila output menunjukkan aturan yang telah dibuat atau pesan yang menyatakan bahwa status firewall aktif, maka Anda harus memverifikasi apakah FTP traffic akan berfungsi. Buka port 20 dan 21 untuk FTP traffic; port 40000-50000 akan disimpan untuk kisaran port pasif yang pada akhirnya akan diatur di dalam file konfigurasi, dan port 990 akan digunakan ketika TLS diaktifkan. Jalankan perintah di bawah ini:
sudo ufw allow 20/tcp sudo ufw allow 21/tcp sudo ufw allow 990/tcp sudo ufw allow 40000:50000/tcp
Lihat kembali status:
sudo ufw status
Seharusnya output akan terlihat seperti ini:
Output Status: active To Action From -- ------ ---- 990/tcp ALLOW Anywhere 20/tcp ALLOW Anywhere 21/tcp ALLOW Anywhere 40000:50000/tcp ALLOW Anywhere 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)
Langkah 3 – Membuat direktori pengguna
Karena langkah ketiga adalah membuat FTP server di Ubuntu, maka kita akan memilih pengguna yang hendak memanfaatkan akses FTP. Agar lebih mudah, kami akan menambahkan pengguna baru. Untuk melakukannya, gunakan perintah di bawah ini:
sudo adduser alex
Jika diminta, masukkan password untuk pengguna dan lengkapi semua informasi yang dibutuhkan. Idealnya, FTP harus dibatasi pada satu direktori khusus karena alasan keamanan. Vsftpd menggunakan chroot jails untuk melakukannya. Dengan mengaktifkan chroot, pengguna lokal dibatasi pada direktori home mereka (secara default). Akan tetapi, karena keamanan vsftpd, bisa jadi pengguna tidak dapat menulis pada direktori. Kami tidak akan menghapus hak menulis dari folder utama, melainkan kami hendak membuat direktori FTP yang akan berfungsi sebagai chroot bersamaan dengan direktori file yang dapat ditulisi yang akan bertanggung jawab untuk menyimpan file terkait. Gunakan perintah di bawah ini untuk membuat folder FTP:
sudo mkdir /home/alex/ftp
Buat kepemilikan dengan menggunakan:
sudo chown nobody:nogroup /home/alex/ftp
Terakhir, hapus izin menulis:
sudo chmod a-w /home/alex/ftp
Sekarang, gunakan perintah berikut ini untuk memverifikasi izin:
sudo ls -la /home/alex/ftp
Output seharusnya terlihat seperti ini:
total 8 dr-xr-xr-x 2 nobody nogroup 4096 Jun 29 11:32 . drwxr-xr-x 3 alex alex 4096 Jun 29 11:32 ..
sudo mkdir /home/alex/ftp/files sudo chown alex:alex /home/alex/ftp/files
echo "vsftpd sample file" | sudo tee /home/alex/ftp/files/sample.txt
Langkah 4 – Mengonfigurasikan vsftpd
Sebagai langkah berikutnya untuk setup server FTP di VPS Ubuntu, kita akan mengonfigurasikan vsftpd dan akses FTP kami. Di tutorial ini, kita akan memperbolehkan satu pengguna untuk terhubung degan FTP menggunakan akun shell lokal. Dua kunci konfigurasi yang dibutuhkan dalam langkah ini telah dibuat di dalam file konfigurasi (vsftpd.conf). Lakukan verifikasi terlebih dulu bahwa file konfigurasi memiliki pengaturan yang sesuai dengan apa yang disebutkan di bawah ini menggunakan nano command:
sudo nano /etc/vsftpd.conf
. . . # Allow anonymous FTP? (Disabled by default). anonymous_enable=NO # # Uncomment this to allow local users to log in. local_enable=YES . . .
. . . write_enable=YES . . ..
Chroot juga tidak akan bisa dikomentari untuk memastikan bahwa pengguna yang terhubung via FTP hanya bisa mengakses file di dalam direktori yang diizinkan:
. . . chroot_local_user=YES . . .
user_sub_token=$USER local_root=/home/$USER/ftp
pasv_min_port=40000 pasv_max_port=50000
userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
Flag userlist_deny berfungsi untuk mengalihkan (toggling) logika; ketika diatur ke “NO”, hanya pengguna yang sudah ada dalam daftar yang diberikan izin untuk mengakses. Setelah itu, klik CTR+X dan konfirmasi perubahan file.
Kita akan lanjut pada langkah berikutnya, yaitu pembuatan dan penambahan pengguna ke file:
echo "alex" | sudo tee -a /etc/vsftpd.userlist
Jalankan perintah di bawah ini untuk memverifikasi bahwa pengguna benar-benar aktif:
cat /etc/vsftpd.userlist
sudo systemctl restart vsftpd
Langkah 5 – Mengamankan FTP
Secara standar, FTP tidak melakukan enkripsi data mana pun. Karena itulah, kita akan menggunakan TTL/SSL agar segalanya lebih cepat. Sebagai langkah pertama, kita harus membuat sertifikat SSL dan menggunakannya untuk mengamankan FTP server Ubuntu. Untuk memulainya, gunakan perintah di bawah ini:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Flag -days membuat sertifikat tersebut valid untuk setahun dan kita telah menyertakan 2048-bit private RSA key di dalam perintah yang sama. Ketika diminta, masukkan infomasi pribadi yang bersangkutan pada kolom yang telah disediakan.
Setelah membuat sertifikat, buka konfigurasi file sekali lagi:
sudo nano /etc/vsftpd.conf
Akhir dari file tersebut harus memuat dua bari yang diawali dengan “_rsa“. Beri komentar pada kedua baris tersebut:
# rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem # rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES
ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO
require_ssl_reuse=NO ssl_ciphers=HIGH
sudo systemctl restart vsftpd
Langkah 6 – Mengetes koneksi dengan FileZilla
Sekarang ini, sebagian besar aplikasi FTP mendukung konfigurasi enkripsi TLS. Oleh karena itu, akan lebih baik jika Anda mengetes apakah server FTP Ubuntu Anda berfungsi sebagaimana mestinya. Kami akan menggunakan aplikasi FTP FileZilla untuk mengetes koneksi. Buka FileZilla, klik pada ikon Site Manager.
Klik tombol New Site pada jendela yang dituju untuk memasukkan informasi server FTP Ubuntu.
Lengkapi semua informasi yang dibutuhkan dengan rincian server FTP Ubuntu yang baru saja dibuat. Karena kita mengonfigurasikannya untuk menggunakan TLS, maka kita juga akan menandakan enkripsi tersebut ke explicit FTP over TLS. Konfigurasi akhir akan terlihat seperti ini:
Setelah itu, klik Connect dan layar yang meminta Anda untuk memasukkan password pengguna FTP akan muncul.
Anda harus melakukan verifikasi sertifikat SSL server FTP Anda pada VPS Ubuntu.
Setelah mengonfirmasi, direktori root dengan file tes akan tampil di layar Anda.
Selesai! Sekarang Anda sudah bisa mentransfer berbagai file dari komputer ke server FTP Ubuntu dan sebaliknya.
Kesimpulan
Kami telah menyajikan langkah demi langkah dalam tutorial ini agar pengguna lokal dapat mentransfer file dengan aman melalui FTP dengan SSL/TLS pada server FTP Ubuntu. Kami juga telah menyediakan cara mengetes koneksi menggunakan FileZilla untuk memastikan bahwa semuanya berfungsi normal.
Komentar Terbaru