Cara mengatur vsftpd di debian

Cara mengatur vsftpd di debian

VSFTPD adalah akronim dari daemon FTP yang sangat aman: ini adalah salah satu server FTP yang paling banyak digunakan di Linux dan sistem operasi seperti Unix lainnya. Ini adalah sumber terbuka dan dirilis di bawah lisensi GPL, dan mendukung pengguna virtual dan SSL untuk data
enkripsi. Dalam tutorial ini kita akan melihat cara menginstalnya dan mengonfigurasinya di Linux.

Dalam tutorial ini Anda akan belajar:

  • Cara menginstal vsftpd di debian 10
  • Cara mengkonfigurasi vsftpd
  • Cara mengatur penggunaan anonim
  • Cara mengatur login dengan pengguna lokal
  • Cara mengatur pengguna virtual
  • Cara mengatur UFW untuk memungkinkan lalu lintas yang masuk
Cara mengatur vsftpd di debian

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Debian 10 (Buster)
Perangkat lunak vsftpd, openssl, libpam-pwdfile
Lainnya Root Izin Untuk Menginstal dan Mengkonfigurasi VSFTPD
Konvensi # - mensyaratkan Linux -Commands untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$-mensyaratkan Linux-Commands untuk dieksekusi sebagai pengguna reguler yang tidak istimewa

Instalasi

VSFTPD tersedia di repositori resmi Debian, oleh karena itu untuk menginstalnya, kami dapat menggunakan manajer paket favorit kami; Ini hanya masalah menyinkronkan repositori dan instal paket. Kedua hal dapat dicapai dengan
Menjalankan perintah berikut:

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


Beberapa detik dan paket akan diinstal pada sistem Debian kami. Skrip instalasi yang termasuk dalam paket juga akan berhati -hati untuk memulai vsftpd Layanan secara otomatis tetapi kita harus ingat untuk memulai kembali atau memuat ulang layanan setiap kali kita mengubah file konfigurasi. Untuk dapat menggunakan Pengguna Virtual Fitur yang disediakan oleh VSFTPD kami juga perlu menginstal paket lain:

$ sudo apt-get install libpam-pwdfile 

Kita akan melihat penggunaannya di bagian khusus tutorial ini.

Setelah paket yang dibutuhkan diinstal, kami dapat melanjutkan lebih lanjut dan mengkonfigurasi VSFTPD: Kita akan melihat bagaimana melakukannya di bagian selanjutnya dari tutorial ini.

Pengaturan VSFTPD

File konfigurasi vsftpd adalah /etc/vsftpd.conf. Jika kita membukanya, kita dapat melihat berbagai arahan yang sudah terkandung di dalamnya. Mari kita lihat apa yang paling relevan untuk kasus yang paling umum.

Aktifkan login anonim

Akses yang tidak ditekankan ke server, sebagai pengguna anonim, dinonaktifkan secara default. Untuk mengaktifkannya, kita harus menggunakan anonymous_enable Petunjuk, yang pada file konfigurasi ditempatkan pada baris 25. Yang harus kita lakukan adalah mengaturnya YA:
harus mengubah instruksi menjadi:

anonymous_enable = ya 

Petunjuk lain yang mungkin ingin kami ubah adalah yang memungkinkan kami mengatur direktori di mana VSFTPD akan mencoba menavigasi setelah akses anonim. Petunjuk yang memungkinkan kami mengontrol pengaturan ini anon_root. Katakanlah kami ingin pengguna anonim mengakses /srv/ftp Direktori secara default, kami akan menulis:

anon_root =/srv/ftp 

Semua login anonim dipetakan secara internal ke pengguna yang dirancang, yang, secara default adalah ftp. Untuk mengubah pemetaan ini, kami harus menggunakan ftp_username opsi dan atur ke nama pengguna yang ingin kami peta pengguna anonim.

Secara default, pengguna anonim tidak akan diizinkan untuk menulis apa pun di server, untuk alasan keamanan yang jelas. Jika Anda ingin mengubah perilaku ini (tidak disarankan) ada beberapa opsi yang perlu diubah. Pertama -tama Jenderal write_enable Petunjuk harus diatur ke YA. Petunjuk ini dikomentari secara online 31 dari file konfigurasi, jadi yang harus Anda lakukan adalah menghapus komentar.

# Uncomment ini untuk mengaktifkan segala bentuk perintah write ftp. write_enable = ya 


Setelah arahan ini diaktifkan, yang harus kita lakukan adalah mengerjakan dua opsi lain: anon_upload_enable Dan anon_mkdir_write_enable. Saat yang pertama diatur ke YA Pengguna anonim akan dapat mengunggah file, tetapi hanya jika pengguna yang dipetakan ke (seperti yang kami katakan, ftp, secara default) memiliki izin menulis di direktori tujuan. Untuk mengaktifkan opsi ini, yang harus kami lakukan adalah menghapus komentar dari baris 40 dari file konfigurasi:

# Uncomment ini untuk memungkinkan pengguna FTP anonim mengunggah file. Ini hanya # memiliki efek jika Global Write Enable di atas diaktifkan. Juga, Anda akan # jelas perlu membuat direktori yang dapat ditulis oleh pengguna FTP. anon_upload_enable = ya 

Itu anon_mkdir_write_enable Petunjuk, sebaliknya, saat diatur ke YA memungkinkan pengguna anonim untuk membuat direktori baru di server, pada kondisi yang sama yang kami lihat di atas (pengguna yang mendasarinya di server harus memiliki izin menulis pada direktori induk). Petunjuk terletak di barisan 44 dari file konfigurasi:

# Uncomment Ini Jika Anda ingin pengguna FTP anonim dapat membuat # direktori baru. anon_mkdir_write_enable = ya 

Sekali lagi, karena variabel sudah diatur ke YA, Agar relevan, yang harus kita lakukan adalah menghapus komentar darinya.

Untuk mengizinkan pengguna anonim juga melakukan operasi penulisan jenis lain, seperti misalnya ganti nama atau menghapus Direktori, kita harus menggunakan arahan lain yang tidak ada dalam file konfigurasi, anon_other_write_enable dan atur ke YA Jika yang di atas adalah perilaku yang kami inginkan:

anon_other_write_enable = ya 

Login yang diautentikasi

Untuk mengizinkan pengguna sistem lokal mengakses server FTP dengan kata sandi sistem mereka, local_enable Petunjuk harus diatur ke YA: Ini adalah default pada sistem Debian. Petunjuk dapat ditemukan secara online 28 Daemon
File Konfigurasi:

# Uncomment Ini untuk memungkinkan pengguna lokal masuk. local_enable = ya 

Secara default, ketika pengguna lokal berhasil mengotentikasi, ia akan memiliki direktori rumah sendiri sebagai root. Namun, adalah mungkin untuk menentukan titik awal alternatif dengan menggunakan local_root pengarahan. Petunjuk ini tidak ada dalam file konfigurasi, jadi kami harus menambahkannya jika kami ingin menggunakan. Untuk mengatur /srv/ftp Direktori sebagai root lokal, misalnya, kami akan menulis:

local_root =/srv/ftp 

Pengguna Lokal Chroot

Sebagai tindakan keamanan, mungkin saja chroot Setiap pengguna yang diautentikasi di direktori rumahnya sendiri. Untuk menyelesaikan tugas ini, kita harus menggunakan chroot_local_user pengarahan:

chroot_local_user = ya 

Ketika fitur ini diaktifkan, dimungkinkan untuk menentukan daftar pengecualian, (daftar pengguna yang tidak boleh di -chrooted) menggunakan arahan berikut:

chroot_list_enable = ya chroot_list_file =/etc/vsftpd.chroot_list 


Petunjuk pertama diperlukan untuk mengaktifkan fitur, yang lain untuk menentukan lokasi file yang berisi Daftar pengecualian. File harus dibuat jika belum ada, jika tidak login akan gagal.

Sebagai tindakan keamanan, ketika pengguna dibarung, seharusnya tidak dapat menulis ke direktori tingkat atas chroot. Jika demikian, dalam versi terbaru dari VSFTPD, pengguna tidak akan dapat masuk, dan server akan merespons dengan pesan berikut:

500 oops: vsftpd: menolak untuk berjalan dengan root yang dapat ditulis di dalam chroot () 

Masalah ini pada dasarnya dapat diselesaikan dengan dua cara. Yang pertama ini jelas terdiri dari Memperbaiki izin, Menyangkal pengguna menulis akses ke direktori tingkat atas chroot dan membiarkan mereka menulis hanya di sub-direktori.
Cara kedua untuk menyelesaikan masalah, jika Anda tidak peduli dengan implikasi keamanan yang mungkin, adalah dengan melewati batasan ini, Menggunakan arahan berikut:

izin_writable_chroot = ya 

Berbicara tentang izin, penting untuk diingat bahwa Umask default untuk pengguna lokal diatur 077. Jika pengaturan ini dianggap terlalu ketat, dimungkinkan untuk mengubahnya menggunakan local_umask pengarahan. Petunjuk ini dikomentari dengan baris 35 dari file konfigurasi:

# Umask default untuk pengguna lokal adalah 077. Anda mungkin ingin mengubah ini menjadi 022, # Jika pengguna Anda mengharapkan (022 digunakan oleh sebagian besar ftpd lainnya) # local_umask = 022 

Masuk dengan pengguna virtual

Salah satu fitur bagus yang ditawarkan oleh VSFTPD adalah kemungkinan login menggunakan Pengguna Virtual. Pengguna virtual adalah pengguna yang tidak benar -benar ada di sistem, tetapi hanya dalam konteks aplikasi SFTPD. Untuk mengaktifkan fitur ini, kami harus menggunakan arahan berikut:

guest_enable = ya 

Saat fitur aktif, semua login non-anonim (jadi pengguna nyata/lokal) dipetakan ke pengguna yang ditentukan dengan Guest_username arahan, yang secara default, seperti yang sudah kita lihat ftp.

Langkah selanjutnya adalah membuat file yang berisi nama pengguna dan kata sandi pengguna virtual. Untuk menghasilkan kata sandi hashed, kami dapat menggunakan openssl dan mengeluarkan perintah berikut:

$ openssl passwd -1 kata sandi: memverifikasi - kata sandi: $ 1 $ pfwh3jou $ dqbinjw8bbtdqys7eztpr. 

Itu passwd perintah dari openssl digunakan untuk menghasilkan kata sandi hashed (MD5). Dalam contoh di atas, kami diminta kata sandi untuk hash dan konfirmasi. Akhirnya kata sandi hash yang dihasilkan dan ditampilkan di layar.

Nama pengguna, bersama dengan kata sandi, harus dimasukkan ke dalam file, katakanlah itu /etc/virtual_users.PWD, Dalam format berikut:

Nama pengguna: hashed_password 

Jadi seandainya pengguna virtual kami disebut "linuxconfig" kami akan menulis:

linuxconfig: $ 1 $ pfwh3jou $ dqbinjw8bbtdqys7eztpr. 

Operasi harus diulang untuk setiap pengguna virtual yang ingin kami konfigurasi.

Sekarang kita harus membuat Pam Layanan yang akan digunakan oleh VSFTPD untuk mengotentikasi pengguna virtual. Kami akan memberi nama file vsftpd_virtual dan letakkan di /etc/pam.D direktori. Kontennya akan menjadi sebagai berikut:

#%PAM-1.0 auth diperlukan Pam_pwdfile.jadi pwdfile/etc/vsftpd/virtual_users.Akun PWD diperlukan Pam_permit.Jadi 

Seperti yang Anda lihat, kami menentukan jalur file yang berisi nama pengguna dan kata sandi pengguna virtual di baris pertama. Yang perlu kita lakukan, sekarang, adalah menginstruksikan vsftpd untuk menggunakan PAM "layanan" ini. Kita bisa melakukannya dengan PAM_SERVICE_NAME pengarahan:

PAM_SERVICE_NAME = vsftpd_virtual 

Pada titik ini kami dapat menyimpan file konfigurasi, restart daemon dan verifikasi bahwa kami dapat masuk dengan pengguna virtual yang baru saja kami buat.

Mengaktifkan dukungan SSL untuk enkripsi data

Secara default dukungan SSL dinonaktifkan di VSFTPD, jadi data yang ditransfer tidak akan dienkripsi. Untuk mengaktifkan dukungan SSL, kita harus menggunakan arahan berikut, yang terletak di jalur 149 ke 151 dari file konfigurasi:

# Opsi ini menentukan lokasi sertifikat RSA yang akan digunakan untuk SSL # koneksi terenkripsi. rsa_cert_file =/etc/ssl/certs/ssl-cert-snakeoil.PEM rsa_private_key_file =/etc/ssl/private/ssl-cert-snakeoil.kunci ssl_enable = ya 


Arahan pertama, rsa_cert_file digunakan untuk menunjukkan jalur sertifikat RSA untuk digunakan untuk koneksi terenkripsi SSL. Yang kedua, rsa_private_key, Sebaliknya, digunakan untuk menentukan lokasi kunci pribadi RSA. Akhirnya, ssl_enable Petunjuk digunakan untuk memungkinkan penggunaan enkripsi SSL.

Contohnya menggunakan /etc/ssl/certs/ssl-cert-snakeoil.PEM Dan /etc/ssl/private/ssl-cert-snakeoil.kunci file, tetapi Anda hampir pasti ingin menggunakan yang khusus.

Menentukan rentang port untuk mode pasif

Mode Pasif FTP adalah default pada instalasi baru VSFTPD, tetapi jika kita ingin mengaktifkannya secara eksplisit, kita dapat menggunakan arahan berikut:

# Setel ke tidak jika Anda ingin melarang metode PASV untuk mendapatkan koneksi data # (mode pasif). Default: ya pasv_enable = ya 

Saat server beroperasi mode pasif, itu mengirimkan ke klien alamat IP dan port yang harus didengarkan untuk koneksi. Namun, port ini secara default dipilih secara acak, karena kita harus menggunakan firewall di server kita, kita harus tahu port apa yang harus kita izinkan lalu lintas menyeluruh. Kisaran port yang akan digunakan dapat ditentukan dengan pasv_min_port Dan pasv_max_port Arahan, misalnya:

# Port minimum untuk dialokasikan untuk koneksi data gaya PASV. Dapat digunakan untuk # menentukan rentang port sempit untuk membantu firewalling. pasv_min_port = 10090 # port maksimum untuk dialokasikan untuk koneksi data gaya pasv. Dapat digunakan untuk # menentukan rentang port sempit untuk membantu firewalling. Default: 0 (Gunakan port apa saja) pasv_max_port = 10100 

Dengan konfigurasi berikut, server akan menggunakan berbagai port yang berasal dari 10090 ke 10100.

Pengaturan Firewall

Agar server VSFTPD kami bekerja dengan benar, kami harus mengizinkan lalu lintas melalui port yang diperlukan, beberapa kami harus mengatur aturan yang sesuai untuk firewall kami. Dalam tutorial ini saya akan menganggap penggunaan UFW Firewall Manager (firewall tanpa komplikasi).

Port pertama yang ingin kami izinkan lalu lintas adalah port adalah 21, yang merupakan port standar yang digunakan oleh protokol FTP:

$ sudo ufw memungkinkan dalam 21/tcp 


Sebagai hal kedua, kita harus mengizinkan lalu lintas yang masuk melalui rentang port yang ditentukan, kami mengatur di bagian sebelumnya. Untuk menentukan berbagai port yang dapat kami jalankan:

$ sudo UFW memungkinkan di 10090: 10100/TCP 

Kesimpulan

Di artikel ini kami melihat cara menginstal dan mengonfigurasi VSFTPD di Debian 10 Buster. Kami melihat cara mengatur penggunaan anonim dan penggunaan pengguna lokal, dan bagaimana kami dapat memanfaatkan Pengguna Virtual fitur yang disediakan oleh Layanan. Karena FTP tidak memberikan enkripsi data, kami melihat cara mengaktifkan dukungan SSL, dan akhirnya cara mengatur firewall untuk memungkinkan lalu lintas yang masuk melalui port yang diperlukan. Untuk daftar lengkap arahan yang mungkin dapat digunakan dalam file konfigurasi VSFTPD, silakan lihat vsftpd.conf Manpage (vsftpd.Conf (5)). Ingin tahu cara bekerja secara terprogram dengan server FTP? Lihatlah artikel kami tentang cara terhubung ke server FTP menggunakan python.

Tutorial Linux Terkait:

  • Mengatur server FTP di Linux
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Cara mengatur server ftp/sftp dan klien di almalinux
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Daftar dan Instalasi Klien FTP di Ubuntu 22.04 Linux…
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Cara Terhubung ke Server FTP Menggunakan Python
  • Ubuntu 20.04 trik dan hal -hal yang mungkin tidak Anda ketahui
  • Daftar dan Instalasi Klien FTP di Ubuntu 20.04 Linux…
  • Ubuntu 20.04: WordPress dengan instalasi nginx