Android

Bagaimana untuk menyediakan pelayan ftp dengan vsftpd pada debian 9

Install FTP Server dengan vsftpd di Debian 9

Install FTP Server dengan vsftpd di Debian 9

Isi kandungan:

Anonim

FTP (Protokol Pemindahan Fail) adalah protokol rangkaian standard yang digunakan untuk memindahkan fail ke dan dari rangkaian jauh. Untuk pemindahan data yang lebih selamat dan cepat, gunakan SCP atau SFTP.

Terdapat banyak pelayan FTP sumber terbuka yang tersedia untuk Linux. Yang paling popular dan digunakan secara meluas adalah PureFTPd, ProFTPD, dan vsftpd.

Tutorial ini menerangkan cara memasang dan mengkonfigurasi vsftpd (Sangat Aman Ftp Daemon) pada Debian 9. vsftpd pelayan FTP yang stabil, selamat dan cepat. Kami juga akan menunjukkan kepada anda cara mengkonfigurasi vsftpd untuk menyekat pengguna ke direktori rumah mereka dan menyulitkan keseluruhan penghantaran dengan SSL / TLS.

Prasyarat

Pengguna yang anda log masuk mestilah mempunyai keistimewaan sudo untuk dapat memasang pakej.

Memasang vsftpd pada Debian 9

Pakej vsftpd boleh didapati di repositori Debian. Pemasangannya cukup mudah:

sudo apt update sudo apt install vsftpd

Perkhidmatan vsftpd secara automatik akan bermula selepas proses pemasangan selesai. Sahkannya dengan mencetak status perkhidmatan:

sudo systemctl status vsftpd

Output akan kelihatan seperti di bawah, menunjukkan bahawa perkhidmatan vsftpd aktif dan berjalan:

● vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-12-10 11:42:51 UTC; 53s ago Main PID: 1394 (vsftpd) CGroup: /system.slice/vsftpd.service └─1394 /usr/sbin/vsftpd /etc/vsftpd.conf

Mengkonfigurasi vsftpd

Pelayan vsftpd boleh dikonfigurasi dengan mengubah fail vsftpd.conf , yang terdapat dalam direktori /etc

Kebanyakan tetapan didokumenkan dengan baik di dalam fail konfigurasi. Untuk semua pilihan yang tersedia lawati halaman rasmi vsftpd.

Dalam seksyen yang berikut, kami akan membincangkan beberapa tetapan penting yang diperlukan untuk mengkonfigurasi pemasangan vsftpd selamat.

Mula dengan membuka fail konfigurasi vsftpd:

sudo nano /etc/vsftpd.conf

1. Akses FTP

Cari arahan anonymous_enable dan local_enable dan sahkan perlawanan konfigurasi anda ke garisan di bawah:

/etc/vsftpd.conf

anonymous_enable=NO local_enable=YES

Ini memastikan bahawa hanya pengguna tempatan boleh mengakses pelayan FTP.

2. Membolehkan muat naik

Uncomment the setting write_enable untuk membolehkan perubahan pada sistem fail seperti memuat naik dan memadam fail.

/etc/vsftpd.conf

write_enable=YES

3. Penjara Chroot

Untuk menghalang pengguna FTP mengakses sebarang fail di luar direktori laman web mereka, tidak chroot tetapan chroot .

/etc/vsftpd.conf

chroot_local_user=YES

Secara lalai untuk mengelakkan kelemahan keselamatan, apabila chroot diaktifkan vsftpd akan menolak untuk memuat naik fail jika direktori yang dikunci pengguna boleh ditulis.

Gunakan salah satu kaedah di bawah untuk membolehkan muat naik apabila chroot diaktifkan.

  • Kaedah 1. - Kaedah yang disyorkan untuk membolehkan muat naik adalah supaya chroot diaktifkan dan konfigurasi direktori FTP. Dalam tutorial ini, kami akan membuat direktori ftp di dalam rumah pengguna yang akan berfungsi sebagai chroot dan direktori uploads boleh ditulis untuk memuat naik fail.

    /etc/vsftpd.conf

    user_sub_token=$USER local_root=/home/$USER/ftp

    Kaedah 2. - Satu lagi pilihan adalah untuk menambah arahan berikut dalam fail konfigurasi vsftpd. Gunakan opsyen ini jika anda perlu memberikan akses yang boleh ditulis kepada pengguna anda ke direktori rumahnya.

    /etc/vsftpd.conf

    allow_writeable_chroot=YES

4. Sambungan FTP pasif

vsftpd boleh menggunakan sebarang port untuk sambungan FTP pasif. Kami akan menentukan julat port minimum dan maksimum dan kemudian buka julat dalam firewall kami.

Tambahkan baris berikut ke fail konfigurasi:

/etc/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. Mengehadkan Login Pengguna

Untuk membenarkan hanya pengguna tertentu untuk log masuk ke pelayan FTP tambahkan baris berikut pada akhir fail:

/etc/vsftpd.conf

userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

Apabila pilihan ini diaktifkan, anda perlu menyatakan secara jelas mana pengguna boleh log masuk dengan menambahkan nama pengguna ke fail /etc/vsftpd.user_list (satu pengguna setiap baris).

6. Mengekalkan Penghantaran dengan SSL / TLS

Untuk menyulitkan penghantaran FTP dengan SSL / TLS, anda perlu mempunyai sijil SSL dan mengkonfigurasi pelayan FTP untuk menggunakannya.

Anda boleh menggunakan sijil SSL sedia ada yang ditandatangani oleh Pihak Berkuasa Sijil yang dipercayai atau membuat sijil ditandatangani sendiri.

Dalam tutorial ini, kami akan menghasilkan sijil SSL yang ditandatangani sendiri menggunakan perintah openssl .

Perintah berikut akan membuat kunci persendirian dan sijil tandatangan peribadi 2048-bit yang sah selama 10 tahun. Kedua-dua kunci persendirian dan sijil akan disimpan dalam fail yang sama:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Setelah sijil SSL dibuat buka fail konfigurasi vsftpd:

sudo nano /etc/vsftpd.conf

Cari arahan rsa_private_key_file dan rsa_private_key_file , tukar nilai mereka ke laluan fail pam dan tetapkan arahan ssl_enable ke YES :

/etc/vsftpd.conf

rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES

Jika tidak dinyatakan sebaliknya, pelayan FTP hanya akan menggunakan TLS untuk membuat sambungan selamat.

Mulakan semula perkhidmatan vsftpd

Sebaik sahaja anda selesai mengedit, fail konfigurasi vsftpd (tidak termasuk komen) sepatutnya kelihatan seperti ini:

/etc/vsftpd.conf

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

Simpan fail dan mulakan semula perkhidmatan vsftpd untuk perubahan yang berlaku:

sudo systemctl restart vsftpd

Membuka Firewall

Untuk membuka port 21 (port arahan FTP), port 20 (port data FTP) dan 30000-31000 (pelbagai port pasif), jalankan arahan berikut:

sudo ufw allow 20:21/tcp sudo ufw allow 30000:31000/tcp

Untuk mengelakkan terkunci, kami juga akan membuka port 22 :

sudo ufw allow OpenSSH

Muat semula peraturan UFW dengan melumpuhkan dan menghidupkan semula UFW:

sudo ufw disable sudo ufw enable

Untuk mengesahkan perubahan berjalan:

sudo ufw status

Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)

Mewujudkan Pengguna FTP

Untuk menguji pelayan FTP kami, kami akan mencipta pengguna baharu.

  • Jika anda sudah mempunyai pengguna yang anda mahu memberikan akses FTP melangkau langkah pertama.Jika anda menetapkan allow_writeable_chroot=YES dalam fail konfigurasi anda melangkau langkah ke-3.
  1. Buat pengguna baru bernama newftpuser :

    sudo adduser newftpuser

    Tambah pengguna ke senarai pengguna FTP yang dibenarkan:

    echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list

    Buat pohon direktori FTP dan tetapkan kebenaran yang betul:

    sudo mkdir -p /home/newftpuser/ftp/upload sudo chmod 550 /home/newftpuser/ftp sudo chmod 750 /home/newftpuser/ftp/upload sudo chown -R newftpuser: /home/newftpuser/ftp

    Seperti yang dibincangkan di bahagian sebelumnya, pengguna akan dapat memuat naik failnya ke direktori ftp/upload .

Pada ketika ini, pelayan FTP anda berfungsi sepenuhnya dan anda sepatutnya dapat menyambung ke pelayan anda menggunakan mana-mana klien FTP yang boleh dikonfigurasikan untuk menggunakan penyulitan TLS seperti FileZilla.

Melumpuhkan Akses Shell

Secara lalai, semasa membuat pengguna, jika tidak secara jelas menyatakan pengguna akan mempunyai akses SSH ke pelayan.

Untuk melumpuhkan akses shell, kami akan membuat shell baru yang akan mencetak mesej yang memberitahu pengguna bahawa akaun mereka hanya terhad kepada akses FTP sahaja.

Buat shell /bin/ftponly dan /bin/ftponly boleh laku:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly sudo chmod a+x /bin/ftponly

Tambahkan tempurung baru ke senarai cengkerang yang sah dalam fail /etc/shells :

echo "/bin/ftponly" | sudo tee -a /etc/shells

Tukar shell pengguna ke /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

Gunakan perintah yang sama untuk menukar shell semua pengguna yang anda mahu hanya memberi akses FTP.

Kesimpulannya

Dalam tutorial ini, anda belajar cara memasang dan mengkonfigurasi pelayan FTP selamat dan cepat pada sistem Debian 9 anda.

debian ftp