GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara mengkonfigurasi FTP dengan TLS di Ubuntu

FTP (File Transfer Protocol) terutama digunakan untuk mentransfer file antar komputer. FTP bekerja pada arsitektur client-server, di mana klien meminta file dari server dan server mengembalikan file yang diperlukan ke klien. Pada mesin klien, aplikasi klien FTP digunakan untuk berkomunikasi dengan server. Dimungkinkan juga untuk mengakses server FTP melalui browser. Secara default, FTP berkomunikasi melalui saluran yang tidak aman, tetapi dimungkinkan untuk mengonfigurasi FTP untuk mentransfer data melalui saluran yang aman. Dalam tutorial ini Anda akan mempelajari cara mengkonfigurasi server FTP dengan TLS dan kemudian menggunakan FileZilla sebagai aplikasi klien untuk terhubung ke server FTP.

Instal VSFTPD

VSFTPD (Very Secure FTP Daemon) adalah program perangkat lunak untuk mengkonfigurasi FTP di server. Tutorial ini menggunakan VSFTPD untuk mengkonfigurasi server FTP di komputer. Sebelum menginstal VSFTPD, perbarui repositori di server Anda dengan menjalankan perintah berikut.

[dilindungi email]:~$ sudo apt-get-update -and

Selanjutnya, instal VSFTPD dengan perintah berikut.

[dilindungi email]:~$ sudo apt-get install vsftpd -dan

Terakhir, verifikasi instalasi dengan memeriksa versi vsftpd dengan perintah berikut.

[dilindungi email]:~$ vsftpd -v

Perintah di atas mencetak versi vsftpd jika instalasi berhasil.

FTP dalam mode aktif

Dalam mode aktif, klien FTP memulai sesi dengan membuat koneksi kontrol TCP dari port mana pun di mesin klien ke port 21 di server. Kemudian klien mulai mendengarkan koneksi data pada port X acak dan menginformasikan server melalui koneksi kontrol TCP bahwa klien mendengarkan koneksi data pada port X. Server kemudian membuat koneksi data dari port 20 ke port X pada komputer klien.

Masalah dapat terjadi ketika klien berada di belakang firewall dan port X diblokir. Dalam hal ini, server tidak dapat membuat sambungan data ke klien. Sebagian besar waktu, untuk menghindari masalah ini, server FTP digunakan dalam mode pasif, yang akan kita bicarakan nanti di artikel ini. Secara default VSFTPD menggunakan mode pasif, jadi kita perlu mengubahnya ke mode aktif.

Pertama, buka file konfigurasi VSFTPD.

[dilindungi email]:~$ sudo Nano /etc/vsftpd.conf

Tambahkan baris berikut di akhir file.

pasv_enable=TIDAK

Pastikan juga opsi 'connect_from_port_20' disetel ke 'YA'. Opsi ini memastikan bahwa koneksi data dibuat pada port 20 server.

Selanjutnya, buat direktori yang akan digunakan server FTP untuk menyimpan file. Untuk tutorial ini kita akan mengkonfigurasi '/home/ubuntu/ftp/' sebagai jalur root untuk server FTP.

[dilindungi email]:~$ sudo mkdir /home/ubuntu/ftp

Sekarang tentukan direktori ini di file konfigurasi dengan mengubah opsi 'local_root'. Parameter berikut mengonfigurasi jalur root server.

local_root=/home/ubuntu/ftp

Opsi 'write_enable' harus diaktifkan agar pengguna dapat menulis ke server FTP.

Selalu restart server saat mengubah file konfigurasi.

[dilindungi email]:~$ sudo systemctl restart vsftpd

Menetapkan kata sandi untuk pengguna

Klien FTP terhubung ke server dengan nama pengguna dan kata sandi. Setel kata sandi untuk pengguna Anda di perangkat menggunakan perintah berikut.

[dilindungi email]:~$ sudo passwd ubuntu

Perintah di atas meminta kata sandi untuk pengguna 'ubuntu'.

Konfigurasikan firewall untuk mode aktif

Ketika FTP digunakan dalam mode aktif, server FTP menggunakan dua port untuk berkomunikasi dengan klien, port 21 dan 22. Port 21 digunakan untuk meneruskan perintah ke klien dan port 20 digunakan untuk mengirim data ke port . untuk mentransfer pelanggan. Kami akan menggunakan ufw untuk mengkonfigurasi firewall di server. Instal ufw dengan perintah berikut.

[dilindungi email]:~$ sudo apt-get install ufw

Sekarang kita buka port 20, 21 dan 22 (untuk koneksi SSH) di sisi server.

[dilindungi email]:~$ sudo ufw izinkan proto tcp dari siapa pun ke port mana pun

Aktifkan dan periksa status ufw dengan perintah berikut.

[dilindungi email]:~$ aktifkan sudo ufw

[dilindungi email]:~$ status sudo ufw

CATATAN: Jika Anda mengonfigurasi server FTP di cloud, Anda juga harus mengizinkan port 20, 21, dan 22 di grup keamanan.

PERINGATAN: Selalu aktifkan port 22 bersama dengan port yang diperlukan sebelum mengaktifkan ufw pada sistem jarak jauh. Secara default, jika Anda mengaktifkan ufw tanpa mengizinkan lalu lintas port 22, UFW akan memblokir lalu lintas port 22, sehingga Anda tidak akan dapat mengakses server jarak jauh melalui SSH.

Instal klien FTP

Sekarang server kami dikonfigurasi dalam mode aktif dan kami dapat mengaksesnya dari sisi klien. Untuk aplikasi klien kami menggunakan FileZilla, aplikasi klien FTP. Instal FileZilla dengan perintah berikut.

[dilindungi email]:~$ sudo apt-get install filezilla -dan

Buka aplikasi klien FTP dan masukkan alamat IP publik server FTP dan kredensial lainnya.

Saat Anda mengklik "Quickconnect", Anda terhubung ke server FTP dan secara otomatis diarahkan ke direktori yang ditentukan dalam opsi "local_root" di file konfigurasi "/home/ubuntu/ftp".

Masalah mode aktif

Menggunakan FTP dalam mode aktif menyebabkan masalah ketika klien berada di belakang firewall. Jika, setelah memasukkan perintah kontrol awal, server membuat koneksi data dengan klien pada port acak, port mungkin diblokir oleh firewall klien, menyebabkan transfer data gagal. FTP dapat digunakan dalam mode pasif untuk memperbaiki masalah firewall ini.

FTP dalam mode pasif

Dalam mode pasif, klien membuat koneksi kontrol dengan server pada port 21 server. Klien kemudian mengirimkan perintah 'PASV' khusus untuk menginformasikan server bahwa koneksi data sedang dibuat oleh klien, bukan server. Sebagai tanggapan, klien mendapatkan IP server dan nomor port acak (nomor port ini dikonfigurasi di server). Klien menggunakan IP dan nomor port ini untuk membuat koneksi data dengan server. Dalam mode pasif, koneksi data dan kontrol dibuat oleh klien sehingga firewall tidak mengganggu komunikasi antara klien dan server.

Buka file konfigurasi FTP di editor favorit Anda.

[dilindungi email]:~$ sudo Nano /etc/vsftpd.conf

Setel opsi 'pasv_enable' dalam file ke 'YA' untuk memungkinkan server berkomunikasi dengan klien dalam mode pasif. Setel juga opsi 'local_root' untuk menentukan direktori root server dan setel opsi 'write_enable' ke 'YA' untuk mengizinkan pengguna mengunggah file ke server.

Seperti disebutkan sebelumnya, koneksi data dibuat oleh klien dan server mengirimkan IP publiknya dan port acak ke klien untuk membuat koneksi data. Port acak di server ini dapat ditentukan dari berbagai port dalam file konfigurasi.

Sambungan data antara server dan klien dibuat pada port antara 1024 dan 1048. Mulai ulang server FTP setelah mengubah file konfigurasi.

[dilindungi email]:~$ sudo systemctl restart vsftpd

Konfigurasikan firewall dalam mode pasif

Jika kita menggunakan FTP dalam mode pasif, koneksi data akan dilakukan melalui port mana saja dari 1024 hingga 1048, jadi semua port ini harus diizinkan di server FTP.

[dilindungi email]:~$ sudo ufw izinkan proto tcp dari siapa pun ke port mana pun

Setelah mengizinkan semua port di firewall, aktifkan ufw dengan menjalankan perintah berikut.

[dilindungi email]:~$ aktifkan sudo ufw

Selalu izinkan port di server sebelum mengaktifkan firewall; Jika tidak, Anda tidak akan dapat mengakses server Anda melalui SSH karena ufw yang memblokir port 22 secara default.

Menguji koneksi

Sekarang kita telah menyiapkan server FTP dalam mode pasif, kita dapat memeriksa koneksi FTP dengan aplikasi klien. Untuk melakukannya, buka FileZilla di sistem Anda.

Setelah memasukkan host, username, password dan port, Anda sekarang dapat terhubung ke server Anda. Sekarang setelah Anda terhubung ke server FTP yang berjalan dalam mode pasif, Anda dapat mengunggah file ke server.

Konfigurasikan sertifikat SSL dengan server FTP

Secara default, server FTP membuat koneksi antara klien dan server melalui saluran yang tidak aman. Jenis komunikasi ini tidak boleh digunakan jika Anda ingin bertukar data sensitif antara klien dan server. Untuk berkomunikasi melalui saluran yang aman, sertifikat SSL harus digunakan.

Membuat Sertifikat SSL

Kami menggunakan sertifikat SSL untuk mengatur komunikasi yang aman antara klien dan server. Kami akan menghasilkan sertifikat ini menggunakan openssl. Perintah berikut menghasilkan sertifikat SSL untuk server Anda.

[dilindungi email]:~$ sudo openssl request -x509 -node -tag 365 -new key rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -aus /etc/ssl/private/vsftpd.pem

Ketika Anda menjalankan perintah di atas, Anda akan ditanyai beberapa pertanyaan. Setelah menjawab pertanyaan-pertanyaan ini, sertifikat akan dibuat. Anda dapat menelusuri sertifikat di terminal.

[dilindungi email]:~$ sudo ls /etc/SSL/private/

Menggunakan sertifikat dalam file konfigurasi

Sekarang sertifikat kami siap digunakan. Kami akan mengkonfigurasi file 'vsftpd.conf' untuk menggunakan sertifikat SSL untuk komunikasi. Buka file konfigurasi dengan perintah berikut.

[dilindungi email]:~$ sudo Nano /etc/vsftpd.conf

Tambahkan baris berikut ke akhir file. Perubahan ini memastikan bahwa server FTP menggunakan sertifikat SSL yang baru dibuat untuk berkomunikasi secara aman dengan klien.

ssl_enable=YA
force_local_data_ssl=TIDAK
force_local_logins_ssl=TIDAK
ssl_tlsv1=YA
ssl_sslv2=TIDAK
ssl_sslv3=TIDAK
rsa_cert_file=/etc/SSL properti /vsftpd.pem
rsa_private_key_file=/etc/SSL/Private/vsftpd.pem

Mulai ulang server FTP agar perubahan ini diterapkan.

[dilindungi email]:~$ sudo systemctl restart vsftpd

Setelah server restart, coba sambungkan ke server Anda menggunakan aplikasi klien FileZilla. Kali ini, aplikasi klien akan menanyakan apakah Anda harus memercayai sertifikat ini.

Jika Anda memiliki sertifikat dari CA tepercaya, peringatan ini seharusnya tidak muncul. Kami membuat sertifikat kami menggunakan openssl, yang bukan CA tepercaya, itulah sebabnya ia meminta otentikasi sertifikat dalam kasus kami. Sekarang kita dapat berkomunikasi antara klien dan server melalui saluran yang aman.

Konfigurasi Anonim

Anda juga dapat mengaktifkan login anonim di server FTP Anda. Ketika konfigurasi ini diaktifkan, setiap pengguna dapat masuk ke server FTP dengan nama pengguna dan kata sandi apa pun. Parameter berikut dalam file konfigurasi membuat server FTP dapat diakses secara anonim.

Konfigurasi di atas menyetel jalur root untuk pengguna anonim ke '/home/ubuntu/ftp/anon' dan tidak meminta kata sandi saat pengguna anonim masuk.

CATATAN: Pastikan jalur '/home/ubuntu/ftp/anon' ada di server FTP.

Sekarang restart server FTP.

[dilindungi email]:~$ sudo systemctl restart vsftpd

Setelah restart server, kami mencoba untuk terhubung ke server melalui browser Google Chrome. Buka URL berikut.

ftp://3.8.12.52

URL di atas membawa Anda ke root server FTP seperti yang ditentukan dalam file konfigurasi. Jika login anonim dinonaktifkan, mencoba untuk menyambung ke server FTP dari browser pertama-tama akan meminta Anda untuk otentikasi dan kemudian mengarahkan Anda ke root server.

Konfigurasikan akses lokal

Kami juga dapat mengizinkan atau memblokir akses lokal ke server FTP dengan memodifikasi file konfigurasi. Saat ini kami dapat mengakses server FTP kami secara lokal tanpa menggunakan aplikasi klien FTP, tetapi kami dapat memblokir akses ini. Untuk melakukan ini, kita perlu mengubah parameter 'local_enable'.

Pertama, restart server FTP.

[dilindungi email]:~$ sudo systemctl restart vsftpd

Setelah server dimulai ulang, coba akses server FTP secara lokal menggunakan antarmuka baris perintah. Login ke server jarak jauh Anda menggunakan SSH.

[dilindungi email]:~$ ssh [email protected] -i

Sekarang ketik perintah berikut untuk masuk ke server FTP secara lokal menggunakan antarmuka baris perintah.

[dilindungi email]:~$ ftp localhost

Menjalankan perintah di atas akan menimbulkan kesalahan 500.

Penyelesaian

File Transfer Protocol telah digunakan selama bertahun-tahun untuk mentransfer file dan dokumen melalui Internet. VSFTPD adalah salah satu paket yang digunakan sebagai server FTP di komputer Anda. VSFTPD hadir dengan berbagai konfigurasi yang dapat Anda gunakan untuk menyesuaikan server FTP Anda. Tutorial ini menunjukkan cara mengkonfigurasi server FTP dengan TLS untuk meningkatkan keamanan. Untuk mempelajari lebih lanjut tentang konfigurasi FTP, kunjungi tautan berikut.

https://vsftpd.beasts.org/vsftpd_conf.html


Ubuntu

Cara Menginstal phpMyAdmin di Ubuntu 20.04

  1. Bagaimana Cara Membaca Hasil “service –status-all”?

  2. Cara Menginstal LimeSurvey di Ubuntu 18.04 LTS

  3. Bagaimana Cara Menentukan Mengapa Sublime-text 2 Tidak Lagi Mulai Untuk Saya?

Cara Mendaftar Pengguna Linux di Ubuntu

  1. Bagaimana Cara Menggunakan Dua Versi Anggur Yang Berbeda Pada Instalasi Yang Sama?

  2. Cara Mengunggah Foto ke Instagram dari PC Ubuntu Anda

  3. Cara Memasang dan Menggunakan Layar Linux, Dengan Perintah

Hapus dan Buang File dengan Benar di Ubuntu Dengan Rusak.

  1. Perintah lsblk di Linux

  2. Cara Install Zoom di Ubuntu (Cara Termudah)

  3. Cara Menginstal KeeWeb Password Manager di Ubuntu 20.04