Cara Menyiapkan VSFTPD di Debian

Cara Menyiapkan VSFTPD di Debian

VSFTPD adalah akronim Daemon FTP yang sangat selamat: ia adalah salah satu pelayan FTP yang paling banyak digunakan di Linux dan sistem operasi seperti Unix yang lain. Ia adalah sumber terbuka dan dikeluarkan di bawah lesen GPL, dan menyokong pengguna maya dan SSL untuk data
penyulitan. Dalam tutorial ini, kita akan melihat cara memasangnya dan mengkonfigurasinya di Linux.

Dalam tutorial ini anda akan belajar:

  • Cara memasang vsftpd pada debian 10
  • Cara mengkonfigurasi vsftpd
  • Cara Menyediakan Penggunaan Tanpa Nama
  • Cara menyiapkan log masuk dengan pengguna tempatan
  • Cara Menyiapkan Pengguna Maya
  • Cara Menyiapkan UFW untuk Membenarkan Lalu Lintas Masuk
Cara Menyiapkan VSFTPD di Debian

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Debian 10 (Buster)
Perisian vsftpd, openssl, libpam-pwdfile
Yang lain Kebenaran root untuk memasang dan mengkonfigurasi vsftpd
Konvensyen # - Memerlukan komando linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$-memerlukan komando Linux yang diberikan sebagai pengguna yang tidak berkadar biasa

Pemasangan

VSFTPD boleh didapati di repositori Debian rasmi, oleh itu untuk memasangnya, kami boleh menggunakan pengurus pakej kegemaran kami; hanya masalah menyegerakkan repositori dan memasang pakej. Kedua -dua perkara dapat dicapai oleh
Menjalankan arahan berikut:

$ sudo apt-get update & & sudo apt-get install vsftpd 


Beberapa saat dan pakej akan dipasang pada sistem Debian kami. Skrip pemasangan yang disertakan dalam pakej juga akan berhati -hati untuk memulakan vsftpd perkhidmatan secara automatik tetapi kita harus ingat untuk memulakan semula atau memuatkan semula perkhidmatan setiap kali kita menukar fail konfigurasi. Untuk dapat menggunakan Pengguna maya Ciri yang disediakan oleh VSFTPD kita juga perlu memasang pakej lain:

$ sudo apt-get memasang libpam-pwdfile 

Kami akan melihat penggunaannya di bahagian khusus tutorial ini.

Setelah pakej yang diperlukan dipasang, kami dapat meneruskan dan mengkonfigurasi vsftpd: kami akan melihat bagaimana untuk melakukannya di bahagian seterusnya tutorial ini.

VSFTPD Persediaan

Fail konfigurasi VSFTPD adalah /etc/vsftpd.Conf. Sekiranya kita membukanya kita dapat melihat pelbagai arahan yang ada di dalamnya. Mari kita lihat apa yang paling relevan untuk kes -kes yang paling biasa.

Dayakan log masuk tanpa nama

Akses yang tidak disahkan ke pelayan, sebagai pengguna tanpa nama, dilumpuhkan secara lalai. Untuk membolehkannya, kita mesti menggunakan Anonymous_enable arahan, yang pada fail konfigurasi diletakkan di talian 25. Yang harus kita lakukan hanyalah menetapkannya Ya:
mesti menukar arahan ke:

Anonymous_enable = Ya 

Satu lagi arahan yang mungkin kita mahu tukar adalah yang membolehkan kita menetapkan direktori dalam apa yang akan dicuba oleh VSFTPD selepas akses tanpa nama. Arahan yang membolehkan kita mengawal tetapan ini adalah anon_root. Katakan kita mahu pengguna tanpa nama mengakses /srv/ftp Direktori secara lalai, kami akan menulis:

anon_root =/srv/ftp 

Semua log masuk tanpa nama dipetakan secara dalaman kepada pengguna yang direka, yang, secara lalai adalah ftp. Untuk menukar pemetaan ini, kita mesti menggunakan ftp_username pilihan dan tetapkannya kepada nama pengguna yang kami mahu memetakan pengguna tanpa nama.

Secara lalai pengguna tanpa nama tidak akan dibenarkan menulis apa -apa di pelayan, atas alasan keselamatan yang jelas. Sekiranya anda ingin mengubah tingkah laku ini (tidak disyorkan) terdapat beberapa pilihan yang perlu diubah. Pertama sekali jeneral write_enable Arahan mesti ditetapkan ke Ya. Arahan ini dikomentari dalam talian 31 dari fail konfigurasi, jadi yang perlu anda lakukan ialah membuang komen.

# Uncomment ini untuk membolehkan sebarang bentuk perintah menulis ftp. write_enable = ya 


Sebaik sahaja arahan ini diaktifkan, yang perlu kita lakukan ialah bekerja pada dua pilihan lain: anon_upload_enable dan anon_mkdir_write_enable. Apabila bekas ditetapkan ke Ya pengguna tanpa nama akan dapat muat naik fail, tetapi hanya jika pengguna di mana ia dipetakan ke (seperti yang kita katakan, ftp, secara lalai) mempunyai kebenaran menulis di direktori destinasi. Untuk mengaktifkan pilihan ini, yang perlu kita lakukan ialah mengeluarkan komen dari baris 40 dari fail konfigurasi:

# Uncomment ini untuk membolehkan pengguna FTP tanpa nama memuat naik fail. Ini hanya # mempunyai kesan jika Enable Write Global di atas diaktifkan. Juga, anda akan # jelas perlu membuat direktori yang boleh ditulis oleh pengguna FTP. anon_upload_enable = ya 

The anon_mkdir_write_enable arahan, sebaliknya, apabila ditetapkan ke Ya Membolehkan pengguna tanpa nama untuk membuat direktori baru di pelayan, pada keadaan yang sama yang kita lihat di atas (pengguna yang mendasari di pelayan mesti mempunyai kebenaran menulis di direktori induk). Arahan ini terletak di talian 44 dari fail konfigurasi:

# Uncomment ini jika anda mahu pengguna FTP tanpa nama dapat membuat # direktori baru. ANON_MKDIR_WRITE_ENABLE = YA 

Sekali lagi, kerana pemboleh ubah sudah ditetapkan Ya, untuk menjadi relevan, yang perlu kita lakukan ialah membuang komen daripadanya.

Untuk membolehkan pengguna tanpa nama untuk melaksanakan juga jenis operasi menulis lain, sebagai contoh Menamakan semula atau memadam direktori, kita mesti menggunakan arahan lain yang tidak hadir dalam fail konfigurasi, anon_other_write_enable dan menetapkannya ke Ya Jika yang di atas adalah tingkah laku yang kita inginkan:

ANON_OTHER_WRITE_ENABLE = YA 

Log masuk yang disahkan

Untuk membolehkan pengguna sistem tempatan mengakses pelayan FTP dengan kata laluan sistem mereka, local_enable Arahan mesti ditetapkan ke Ya: ini adalah lalai pada sistem debian. Arahan ini boleh didapati dalam talian 28 Daemon
Fail Konfigurasi:

# Uncomment ini untuk membolehkan pengguna tempatan log masuk. local_enable = ya 

Secara lalai, apabila pengguna tempatan berjaya mengesahkan, dia akan mempunyai direktori rumah sendiri sebagai root. Walau bagaimanapun, adalah mungkin untuk menentukan titik permulaan alternatif dengan menggunakan local_root arahan. Arahan ini tidak hadir dalam fail konfigurasi, jadi kita mesti menambahkannya jika kita mahu menggunakan. Untuk menetapkan /srv/ftp Direktori sebagai akar tempatan, sebagai contoh, kita akan menulis:

local_root =/srv/ftp 

Pengguna tempatan Chroot

Sebagai langkah keselamatan, mungkin ada chroot setiap pengguna yang disahkan dalam direktori rumahnya sendiri. Untuk melaksanakan tugas ini, kita mesti menggunakan chroot_local_user Arahan:

chroot_local_user = ya 

Apabila ciri ini diaktifkan, adalah mungkin untuk menentukan senarai pengecualian, (senarai pengguna yang tidak seharusnya dikritik) menggunakan arahan berikut:

chroot_list_enable = ya chroot_list_file =/etc/vsftpd.chroot_list 


Arahan pertama diperlukan untuk mengaktifkan ciri tersebut, yang lain untuk menentukan lokasi fail yang mengandungi Senarai Pengecualian. Fail mesti dibuat jika belum wujud, jika tidak, log masuk akan gagal.

Sebagai langkah keselamatan, apabila pengguna dipecat, ia tidak sepatutnya dapat menulis ke direktori peringkat tertinggi chroot. Sekiranya berlaku, dalam versi terbaru VSFTPD, pengguna tidak akan dapat log masuk, dan pelayan akan bertindak balas dengan mesej berikut:

500 oops: vsftpd: enggan berlari dengan akar yang boleh ditulis di dalam chroot () 

Masalah ini dapat diselesaikan pada dasarnya dua cara. Yang pertama ini jelas terdiri daripada Memperbaiki keizinan, menafikan pengguna menulis akses ke direktori peringkat atas chroot dan membiarkan mereka menulis hanya di sub-direktori.
Cara kedua untuk menyelesaikan masalah ini, jika anda tidak peduli dengan kemungkinan implikasi keselamatan, adalah untuk memintas sekatan ini, Menggunakan arahan berikut:

membenarkan_writeable_chroot = ya 

Bercakap mengenai keizinan, penting untuk diingat bahawa Umask lalai untuk pengguna setempat ditetapkan 077. Sekiranya tetapan ini dianggap terlalu ketat, adalah mungkin untuk mengubahnya menggunakan local_umask arahan. Arahan ini dikomentari di barisan 35 dari fail konfigurasi:

# Umask lalai untuk pengguna tempatan ialah 077. Anda mungkin ingin mengubahnya menjadi 022, # jika pengguna anda mengharapkan bahawa (022 digunakan oleh kebanyakan ftpd lain) # local_umask = 022 

Log masuk dengan pengguna maya

Satu ciri bagus yang ditawarkan oleh vsftpd adalah kemungkinan untuk log masuk menggunakan Pengguna maya. Pengguna maya adalah pengguna yang tidak benar -benar wujud pada sistem, tetapi hanya dalam konteks aplikasi SFTPD. Untuk membolehkan ciri ini kita perlu menggunakan arahan berikut:

Guest_enable = ya 

Apabila ciri ini aktif, semua log masuk yang tidak dikenali (jadi pengguna sebenar/tempatan) dipetakan kepada pengguna yang ditentukan dengan Guest_username arahan, yang secara lalai, seperti yang telah kita lihat adalah ftp.

Langkah seterusnya adalah untuk membuat fail yang mengandungi nama pengguna dan kata laluan pengguna maya. Untuk menjana kata laluan hashed, kita boleh menggunakan OpenSSL dan mengeluarkan arahan berikut:

$ OpenSSL Passwd -1 Kata Laluan: Mengesahkan - Kata Laluan: $ 1 $ PFWH3JOU $ DQBINJW8BBTDQYS7EZTPR. 

The Passwd arahan OpenSSL digunakan untuk menghasilkan kata laluan hashed (MD5). Dalam contoh di atas, kami diminta kata laluan untuk diketepikan dan pengesahannya. Akhirnya kata laluan hashed dihasilkan dan dipaparkan di skrin.

Nama pengguna, bersama dengan kata laluan, mesti dimasukkan ke dalam fail, katakanlah /etc/virtual_users.PWD, Dalam format berikut:

Nama pengguna: hashed_password 

Oleh itu, anggap pengguna maya kami dipanggil "linuxconfig" yang akan kami tulis:

linuxconfig: $ 1 $ pfwh3jou $ dqbinjw8bbtdqys7eztpr. 

Operasi mesti diulang untuk setiap pengguna maya yang ingin kami konfigurasikan.

Sekarang kita mesti membuat Pam perkhidmatan yang akan digunakan oleh VSFTPD untuk mengesahkan pengguna maya. Kami akan menamakan fail vsftpd_virtual dan letakkan di /etc/Pam.d direktori. Kandungannya akan menjadi seperti berikut:

#%PAM-1.0 auth diperlukan PAM_PWDFILE.jadi pwdfile/etc/vsftpd/virtual_users.Akaun PWD diperlukan PAM_PERMIT.Jadi 

Seperti yang anda lihat, kami menetapkan laluan fail yang mengandungi nama pengguna dan kata laluan pengguna maya pada baris pertama. Yang perlu kita lakukan, sekarang, adalah untuk mengarahkan vsftpd untuk menggunakan PAM ini "Perkhidmatan". Kita boleh melakukannya dengan PAM_SERVICE_NAME Arahan:

PAM_SERVICE_NAME = VSFTPD_VIRTUAL 

Pada ketika ini kita dapat menyimpan fail konfigurasi, mulakan semula daemon dan sahkan bahawa kami dapat log masuk dengan pengguna maya yang baru saja kami buat.

Membolehkan sokongan SSL untuk penyulitan data

Secara lalai sokongan SSL dilumpuhkan pada vsftpd, jadi data yang dipindahkan tidak akan disulitkan. Untuk membolehkan sokongan SSL kita mesti menggunakan arahan berikut, yang terletak di baris 149 ke 151 dari fail konfigurasi:

# Pilihan ini menentukan lokasi sijil RSA untuk digunakan untuk sambungan SSL # yang disulitkan. rsa_cert_file =/etc/ssl/certs/ssl-cert-snakeoil.PEM RSA_PRIVATE_KEY_FILE =/etc/ssl/swasta/ssl-cert-snakeoil.kunci ssl_enable = ya 


Arahan pertama, rsa_cert_file digunakan untuk menunjukkan jalan sijil RSA untuk digunakan untuk sambungan yang disulitkan SSL. Yang kedua, RSA_PRIVATE_KEY, Sebaliknya, digunakan untuk menentukan lokasi kunci peribadi RSA. Akhirnya, ssl_enable Arahan digunakan untuk membolehkan penggunaan penyulitan SSL.

Contohnya menggunakan /etc/ssl/certs/ssl-cert-snakeoil.PEM dan /etc/ssl/swasta/ssl-cert-snakeoil.kunci fail, tetapi anda hampir pasti mahu menggunakan yang berdedikasi.

Menentukan julat port untuk mod pasif

Mod pasif FTP adalah lalai pada pemasangan baru VSFTPD, tetapi jika kita mahu membolehkannya secara eksplisit kita boleh menggunakan arahan berikut:

# Tetapkan ke Tidak jika anda ingin tidak membenarkan kaedah PASV untuk mendapatkan sambungan data # (mod pasif). Lalai: ya pasv_enable = ya 

Apabila pelayan beroperasi di mod pasif, ia menghantar kepada pelanggan alamat IP dan port yang harus didengarkan untuk sambungan. Pelabuhan ini secara lalai dipilih secara rawak, bagaimanapun, kerana kita mesti menggunakan firewall di pelayan kita, kita mesti tahu pelabuhan apa yang kita harus membenarkan trafik teliti. Pelbagai pelabuhan untuk digunakan boleh ditentukan dengan pasv_min_port dan PASV_MAX_PORT Arahan, sebagai contoh:

# Port minimum untuk memperuntukkan sambungan data gaya PASV. Boleh digunakan untuk # menentukan julat pelabuhan sempit untuk membantu firewalling. pasv_min_port = 10090 # port maksimum untuk memperuntukkan sambungan data gaya PASV. Boleh digunakan untuk # menentukan julat pelabuhan sempit untuk membantu firewalling. Lalai: 0 (Gunakan mana -mana port) PASV_MAX_PORT = 10100 

Dengan konfigurasi berikut, pelayan akan menggunakan pelbagai port yang pergi dari 10090 ke 10100.

Persediaan Firewall

Untuk pelayan VSFTPD kami untuk berfungsi dengan betul, kami mesti membenarkan trafik melalui port yang diperlukan, sesetengahnya kami mesti menetapkan peraturan yang sesuai untuk firewall kami. Dalam tutorial ini saya akan menganggap penggunaan ufw Pengurus Firewall (firewall tidak rumit).

Pelabuhan pertama yang kita mahu membenarkan lalu lintas adalah pelabuhan 21, yang merupakan port standard yang digunakan oleh protokol FTP:

$ sudo ufw membenarkan dalam 21/tcp 


Sebagai perkara kedua, kita mesti membenarkan lalu lintas masuk melalui julat port yang ditentukan yang kita persediaan di bahagian sebelumnya. Untuk menentukan pelbagai pelabuhan yang boleh kita jalankan:

$ sudo ufw membenarkan di 10090: 10100/tcp 

Kesimpulan

Dalam artikel ini kita melihat cara memasang dan mengkonfigurasi VSFTPD di Debian 10 Buster. Kami melihat bagaimana untuk menyediakan penggunaan tanpa nama dan penggunaan pengguna tempatan, dan bagaimana kami dapat memanfaatkan Pengguna maya ciri yang disediakan oleh perkhidmatan. Oleh kerana FTP tidak menyediakan penyulitan data, kami melihat bagaimana untuk membolehkan sokongan SSL, dan akhirnya bagaimana untuk menyediakan firewall untuk membolehkan trafik masuk melalui pelabuhan yang diperlukan. Untuk senarai lengkap arahan yang mungkin boleh digunakan dalam fail konfigurasi VSFTPD, sila lihat vsftpd.Conf Manpage (vsftpd.Conf (5)). Ingin tahu cara bekerja secara pemrograman dengan pelayan FTP? Lihat artikel kami mengenai cara menyambung ke pelayan FTP menggunakan Python.

Tutorial Linux Berkaitan:

  • Setup Server FTP di Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Cara Menyiapkan Pelayan dan Pelayan FTP/SFTP di Almalinux
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Senarai dan Pemasangan Pelanggan FTP di Ubuntu 22.04 Linux ..
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Cara menyambung ke pelayan FTP menggunakan python
  • Ubuntu 20.04 Trik dan Perkara yang Anda Tidak Tahu
  • Senarai dan Pemasangan Pelanggan FTP di Ubuntu 20.04 Linux ..
  • Ubuntu 20.04: WordPress dengan pemasangan nginx