GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Mengatur Server FTP Aman dengan Pure-FTPd di Ubuntu

FTPd Murni adalah server FTP open-source gratis yang dirancang dengan mempertimbangkan keamanan. Dalam tutorial ini, kita akan melihat cara menyiapkan server FTP yang aman di server Ubuntu dengan Pure-FTPd dan cara menerapkan enkripsi TLS.

Catatan :Tutorial ini berfungsi pada semua rilis Ubuntu saat ini, termasuk Ubuntu 20.04, 18.04, dan 21.04.

Fitur FTPd Murni:

  • Mendukung enkripsi SSL/TLS sehingga sandi dan perintah dapat dilindungi.
  • Dapat berjalan di sebagian besar sistem mirip Unix:Linux, BSD, Solaris, Darwin, HPUX, AIX, dan bahkan iPhone.
  • Tersedia dalam 21 bahasa.
  • Memungkinkan Anda memantau sesi aktif.
  • Mendukung sistem kuota virtual.
  • Dan masih banyak lagi

Untuk daftar lengkap fitur, silakan kunjungi situs resmi Pure-FTPd.

Langkah 1:Instal Pure-FTPd di Server Ubuntu

Itu ada di repositori perangkat lunak, jadi jalankan perintah berikut untuk menginstal server FTP.

sudo apt install pure-ftpd

Setelah terinstal, Pure-FTPd akan dijalankan secara otomatis, seperti yang dapat dilihat dengan perintah ini:

systemctl status pure-ftpd

Keluaran:

● pure-ftpd.service
   Loaded: loaded (/etc/init.d/pure-ftpd; bad; vendor preset: enabled)
   Active: active (running) since Mon 2016-12-12 21:51:46 EST; 23s ago
     Docs: man:systemd-sysv-generator(8)
   CGroup: /system.slice/pure-ftpd.service
           └─3435 pure-ftpd (SERVER)

preset: enabled menunjukkan itu akan mulai otomatis pada waktu boot sistem. Jika tidak berjalan, beri bintang dengan:

sudo systemctl start pure-ftpd

Dan mendengarkan pada port TCP 21, yang merupakan port kontrol, seperti yang dapat dilihat dengan

sudo netstat -lnpt | grep pure-ftpd

Akses anonim dinonaktifkan secara default. Mulai sekarang Anda dapat menggunakan akun sistem Anda untuk masuk, tetapi FTP teks biasa tidak aman dan sangat tidak disarankan. Untuk memiliki server FTP yang aman, kita perlu mengenkripsi komunikasi dengan TLS.

Langkah 2:Terapkan Enkripsi TLS

Untuk mengaktifkan enkripsi teks biasa dan TLS, jalankan perintah berikut, yang membuat /etc/pure-ftpd/conf/TLS file dan masukkan nomor 1 ke dalam file.

echo 1 | sudo tee /etc/pure-ftpd/conf/TLS

Tetapi disarankan untuk menonaktifkan teks biasa dan hanya menggunakan enkripsi TLS, jadi letakkan nomor 2 pada file sebagai gantinya.

echo 2 | sudo tee /etc/pure-ftpd/conf/TLS

Sekarang kami menerapkan TLS, kami perlu mendapatkan sertifikat TLS yang valid. Sertifikat yang ditandatangani sendiri tidak disarankan karena pengguna akan melihat peringatan seperti tangkapan layar di bawah.

Langkah 3:Dapatkan Sertifikat TLS Tepercaya dari Let's Encrypt

Jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) dari repositori default Ubuntu.

sudo apt install certbot

Saya sarankan menggunakan standalone atau webroot plugin untuk mendapatkan sertifikat TLS untuk Pure-FTPd.

Plugin Mandiri

Jika tidak ada server web yang berjalan di server Ubuntu Anda, Anda dapat menggunakan plugin mandiri. Jalankan perintah berikut. Jangan lupa untuk mengatur catatan DNS A untuk sub-domain Anda.

sudo certbot certonly --standalone --preferred-challenges http --agree-tos --email [email protected] -d ftp.example.com

Dimana:

  • certonly :Dapatkan sertifikat tetapi jangan menginstalnya.
  • --standalone :Gunakan plugin mandiri untuk mendapatkan sertifikat
  • --preferred-challenges http :Lakukan tantangan http-01 untuk memvalidasi domain kami, yang akan menggunakan port 80.
  • --agree-tos :Setuju dengan persyaratan layanan Let's Encrypt.
  • --email :Alamat email digunakan untuk pendaftaran dan pemulihan akun.
  • -d :Tentukan nama domain Anda.

Seperti yang Anda lihat dari tangkapan layar berikut, saya berhasil mendapatkan sertifikat.

Menggunakan Plugin webroot

Jika server Ubuntu Anda memiliki server web, sebaiknya gunakan plugin webroot untuk mendapatkan sertifikat karena plugin webroot berfungsi dengan hampir semua server web dan kita tidak perlu menginstal sertifikat di server web.

Pertama, Anda perlu membuat virtual host untuk ftp.example.com .

Apache

Jika Anda menggunakan Apache, maka

sudo nano /etc/apache2/sites-available/ftp.example.com.conf

Dan rekatkan baris berikut ke dalam file.

<VirtualHost *:80>        
        ServerName ftp.example.com

        DocumentRoot /var/www/Pure-FTPd
</VirtualHost>

Simpan dan tutup file. Kemudian buat direktori root web.

sudo mkdir /var/www/Pure-FTPd

Tetapkan www-data (pengguna Apache) sebagai pemilik root web.

sudo chown www-data:www-data /var/www/Pure-FTPd -R

Aktifkan host virtual ini.

sudo a2ensite ftp.example.com

Muat ulang Apache agar perubahan diterapkan.

sudo systemctl reload apache2

Setelah virtual host dibuat dan diaktifkan, jalankan perintah berikut untuk mendapatkan sertifikat Let's Encrypt menggunakan plugin webroot.

sudo certbot certonly --webroot --agree-tos --email [email protected] -d ftp.example.com -w /var/www/Pure-FTPd

Nginx

Jika Anda menggunakan Nginx, maka

sudo nano /etc/nginx/conf.d/ftp.example.com.conf

Rekatkan baris berikut ke dalam file.

server {
      listen 80;
      listen [::]:80;
      server_name ftp.example.com;

      root /var/www/Pure-FTPd/;

      location ~ /.well-known/acme-challenge {
         allow all;
      }
}

Simpan dan tutup file. Kemudian buat direktori root web.

sudo mkdir -p /var/www/Pure-FTPd

Tetapkan www-data (pengguna Nginx) sebagai pemilik root web.

sudo chown www-data:www-data /var/www/Pure-FTPd -R

Muat ulang Nginx agar perubahan diterapkan.

sudo systemctl reload nginx

Setelah virtual host dibuat dan diaktifkan, jalankan perintah berikut untuk mendapatkan sertifikat Let's Encrypt menggunakan plugin webroot.

sudo certbot certonly --webroot --agree-tos --email [email protected] -d ftp.example.com -w /var/www/Pure-FTPd

Langkah 4:Instal Sertifikat

Pure-FTPd mengharuskan sertifikat dan kunci pribadi digabungkan menjadi satu file bernama pure-ftpd.pem dan disimpan di bawah /etc/ssl/private/ direktori.

Ubah ke /etc/letsencrypt/live/ftp.example.com/ direktori.

cd /etc/letsencrypt/live/ftp.example.com/

Anda dapat menggunakan cat perintah untuk menggabungkan dua file menjadi satu seperti di bawah ini.

sudo cat fullchain.pem privkey.pem | sudo tee /etc/ssl/private/pure-ftpd.pem

Pastikan hanya pengguna root yang dapat membaca file.

sudo chmod 600 /etc/ssl/private/pure-ftpd.pem

kita perlu membuat parameter Diffie-Hellman dengan:

sudo openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 4096

Jika server Anda memiliki satu inti CPU, ini akan memakan waktu lama (sekitar 10 menit).

Setelah selesai, mulai ulang Pure-FTPd.

sudo systemctl restart pure-ftpd

Periksa statusnya untuk melihat apakah itu berjalan.

systemctl status pure-ftpd

Sekarang Anda dapat terhubung ke server FTP Anda melalui TLS.

Jika Anda menggunakan pengelola file Nautilus untuk terhubung ke server FTP melalui teks biasa ftp:// protokol

Sambungan akan ditolak.

Alih-alih ftp:// , Anda harus menggunakan ftps:// .

Secara default, pengguna FTP akan dibawa ke / direktori root di server.

Harap dicatat bahwa Filezilla tidak mempercayai sertifikat apa pun (ditandatangani sendiri atau ditandatangani CA) secara default. Pengguna harus memilih untuk memercayai sertifikat untuk diri mereka sendiri.

FileZilla Peringatan Sertifikat Tidak Dikenal

Dan Anda perlu menggunakan protokol TLS eksplisit FTP (ftpes://ftp.example.com ) di Filezilla.

Perpanjang Otomatis Sertifikat TLS

Anda dapat membuat pekerjaan Cron untuk memperbarui sertifikat TLS secara otomatis. Cukup buka file crontab pengguna root.

sudo crontab -e

Tambahkan baris berikut di bagian bawah file.

@daily certbot renew --quiet && cd /etc/letsencrypt/live/ftp.example.com/ && cat fullchain.pem privkey.pem | tee /etc/ssl/private/pure-ftpd.pem && systemctl reload pure-ftpd

Pure-ftpd perlu dimuat ulang agar dapat mengambil sertifikat dan kunci pribadi baru.


Ubuntu
  1. Cara Mengatur Server FTP di Raspberry Pi Anda

  2. Cara Mengamankan Nginx dengan Letsencrypt di Ubuntu 20.04

  3. Cara Menginstal Server FTP di Ubuntu 20.04

  1. Cara Menginstal Server FTP Di Ubuntu dengan vsftpd

  2. Cara Mengatur Server FTP dengan VSFTPD di Ubuntu 20.04

  3. Cara Mengatur Server FTP dengan VSFTPD di Ubuntu 18.04

  1. Cara Mengatur Server OpenVPN di Ubuntu 18.04

  2. Cara Mengatur Firewall dengan UFW di Ubuntu 20.04

  3. Cara Mengatur Blok Server Nginx di Ubuntu 20.04