GNU/Linux >> Belajar Linux >  >> Debian

Cara Mengatur Server FTP Aman di Debian 10 dengan Pure-FTPd

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

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 Debian 10

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; generated)
   Active: active (running) since Wed 2021-06-16 13:15:52 UTC; 23s ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 1 (limit: 558)
   Memory: 972.0K
   CGroup: /system.slice/pure-ftpd.service
           └─9223 pure-ftpd (SERVER)

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 ss -lnpt | grep pure-ftpd

Port lainnya adalah port data (TCP port 20), yang akan digunakan saat pengguna mentransfer file melalui FTP.

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 pesan 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 Debian 10.

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 Debian 10 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 Debian 10 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.

sudo su -

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

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

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.

Langkah 5:Buka Port FTP di Firewall

Jika Anda menggunakan firewall UFW, jalankan perintah berikut untuk membuka port TCP 20 dan 21.

sudo ufw allow 20,21/tcp

Langkah 6:Hubungkan ke Server FTP

Jika Anda menggunakan Nautilus pengelola file 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 perhatikan 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

Perlu memuat ulang pure-ftpd untuk membuatnya mengambil sertifikat dan kunci pribadi baru.


Debian
  1. Cara Menginstal Server FTP vsftpd dan Mengamankannya dengan TLS di Debian 11

  2. Cara mengatur server SFTP di Server Debian 11

  3. Cara Mengatur Server OpenVPN di Debian 10

  1. Cara Mengatur Firewall dengan UFW di Debian 10

  2. Cara Mengatur Firewall dengan UFW di Debian 9

  3. Siapkan Server Mail dengan PostfixAdmin di Debian 9

  1. Cara Setup Server FTP dengan VSFTPD di Debian 9

  2. Cara Mengatur Server OpenVPN di Debian 9

  3. Cara Mengatur Server Minecraft di Debian 10