Cara Menyiapkan VSFTPD di Debian
- 2220
- 509
- Clarence Tromp
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
Keperluan perisian dan konvensyen yang digunakan
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