modul mod_become memungkinkan server web untuk mengambil hak akses dari pengguna & kelompok, sehingga ~ pengguna dapat membuat file yang tersedia untuk web tanpa harus membuat mereka dibaca oleh dunia pada sistem file lokal. Hal ini dapat berguna untuk situs dengan sejumlah besar pengguna yang ingin menerapkan kontrol akses file di antara mereka sendiri. Modul ini juga dapat diterapkan untuk virtual host, direktori, dan lokasi.
Ketika server dikonfigurasi dengan "root Pengguna" (lihat Keamanan), maka modul ini akan berperilaku seolah-olah direktif "MaxRequestsPerChild 1" yang ditetapkan untuk server dan "KeepAlive off" yang ditetapkan untuk server dan setiap virtual host di mana mod_become sebuah direktif muncul, yang pada dasarnya membatasi server dan host-host virtual untuk HTTP / 1.0 perilaku.
Oleh karena itu, untuk setiap permintaan, modul ini akan setuid () dan setgid () proses penanganan permintaan berdasarkan salah satu kebijakan yang diuraikan di bawah. Setelah permintaan selesai, proses ini akan mengakhiri. Server induk akan bertanggung jawab untuk pemijahan proses anak baru untuk menangani setiap permintaan di masa mendatang.
Sumber tersebut dapat dikompilasi menggunakan seteuid () dan setegid () bukan setuid () dan setgid () (lihat bagian atas Makefile), tetapi tidak default. Penggunaan seteuid () dan setegid () dapat meningkatkan dalm dengan menghindari kebutuhan untuk membunuh proses anak Apache antara permintaan, tetapi memang memiliki masalah keamanan yang signifikan. Misalnya modul seperti mod_php atau mod_perl yang menyediakan API untuk seteuid () dan setegid (), dapat digunakan untuk menjadi root sekali lagi dan melakukan apa pun yang mereka inginkan.
Pada dasarnya setiap modul yang merupakan bagian dari ruang proses Apache bisa kembali ke akar pengguna jika mereka memanfaatkan seteuid () dan setegid (). Disarankan bahwa dalam mod_php, mod_perl, dan modul bahasa lain yang API ini dinonaktifkan. CGIS yang diluncurkan sebagai proses yang terpisah oleh Apache harus, dalam teori, aman, karena pengguna dan kelompok ID efektif menjadi pengguna nyata dan kelompok ID dari proses anak dan karena itu tidak dapat kembali ke akar (jika saya mengerti hal-hal dengan benar) .
Konfigurasi
Perintah di bawah ini dapat ditambahkan ke file konfigurasi Apache umum, httpd.conf.
Identitas pengguna
Konteks: global,
Ini bukan bagian dari mod_become, tapi digunakan untuk mengaktifkan atau menonaktifkan perilaku mod_become, karena mod_become hanya berfungsi bila "root Pengguna" ditentukan untuk konfigurasi server utama. Anda perlu mengkompilasi Apache dengan -DBIG_SECURITY_HOLE untuk melakukan hal ini.
Menjadi id user
Menjadi kelompok id
Konteks: Server,
Tentukan pengguna atau kelompok yang akan digunakan secara default. Ketika BecomePolicy adalah user-kelompok, maka ini akan selalu digunakan. Jika konfigurasi server utama gagal untuk mengatur pengguna default dan kelompok, maka kesalahan 503 Service Unavailable dan log masuk kesalahan mungkin terjadi harus nilai-nilai ini diperlukan.
Kebijakan BecomePolicy
Konteks: global,
Tentukan kebijakan yang digunakan untuk mengatur pengguna & kelompok id dari proses anak:
berkas
Pengguna & kelompok file yang diminta digunakan. Tidak merekomendasikan.
user-kelompok
Default pengguna & kelompok tertentu yang digunakan. Hal ini mirip dalam perilaku dengan Apache arahan inti Pengguna dan Grup. Ini adalah kebijakan default.
Dokumen-root
Pengguna & kelompok virtual host root dokumen server atau digunakan.
orang tua-direktori
Pengguna & kelompok direktori induk permintaan itu digunakan. Ketika permintaan sesuai dengan direktori, maka digunakan sebagai pengganti induknya.
BecomeRoot boolean
Konteks: global,
Ketika benar, mod_become akan memungkinkan proses untuk beroperasi sebagai user root atau kelompok; jika tidak error 403 Forbidden dan log masuk error akan terjadi jika proses mencoba untuk menjadi user root atau kelompok. Secara default ini diatur palsu
Persyaratan :.
- Apache 1.3.x
Komentar tidak ditemukan