Bagaimana saya menghentikan Apache agar tidak berjalan sebagai root?

8

Baru di tempat kerja, tempat kecil, dan barang-barang keamanan baru saja mendarat di meja saya. Saya disewa untuk menjadi pengembang front-end. Senang belajar hal-hal baru, tetapi tidak pernah melakukan hal-hal sysadmin sebelumnya.

Saya mulai menggali dan tampaknya apache, situs, dan semuanya berjalan di root. Tidak ada grup atau pengguna lain. ACK!

Langkah apa yang harus saya ambil untuk mengubah ini? Saya tahu bahwa ini adalah no-no besar ...

Poin bonus jika ada yang bisa tolong tunjuk saya ke tutorial dasar 101 yang bagus tentang keamanan apache / php.

r00tAcc3ss
sumber

Jawaban:

12

Tidak biasa menemukan Apache berjalan seperti rootpada konfigurasi stok apa pun. Bagaimana Anda menentukan bahwa Apache berjalan sebagai root? Perhatikan bahwa Apache harus memulai sebagai root untuk mengikat ke port yang diistimewakan, tetapi biasanya melepaskan haknya di kemudian hari.

Anda dapat melihat dalam konfigurasi Apache Anda (sering dalam /etc/httpdatau /etc/apache2, tergantung pada distribusi Anda) untuk arahan Userdan Group(didokumentasikan di sini ). Kedua arahan ini mengontrol apa yang dijalankan oleh id pengguna yang dijalankan Apache.

Juga tidak biasa menemukan sistem yang "tidak memiliki grup atau pengguna lain". Apa yang ditunjukkan getent passwddan getent groupditunjukkan? Apakah benar-benar tidak ada pengguna atau grup lain selain root? Sebagian besar distribusi dikirimkan dengan apacheatau www-datapengguna atau semacamnya dan konfigurasi yang cocok yang akan menjalankan Apache sebagai pengguna itu.

Ada berbagai panduan pengantar di luar sana untuk konfigurasi dan keamanan Apache. Pencarian Google sederhana menghasilkan banyak hasil pencarian. Panduan Penyebaran RedHat / CentOS adalah tempat yang baik untuk memulai (jika Anda menggunakan sistem RedHat / CentOS).

larsks
sumber
Terima kasih, ya, itu tidak kehabisan root, tetapi tampaknya semuanya telah dilakukan dengan menggunakan root. semua folder, file, dll. Saya harus memikirkan cara mengubahnya.
r00tAcc3ss
Ya ... belum tentu. Anda tidak ingin file dimiliki oleh pengguna yang sama dengan proses Apache yang sedang berjalan. Idealnya, kompromi di server web tidak akan mengakibatkan penyerang dapat mengubah konfigurasi Apache Anda atau konten web.
larsks
0

Anda dapat menjalankan Apache sebagai pengguna mana pun dengan nomor port lebih besar dari nomor port istimewa 1024+. Kemudian gunakan penerusan port untuk meneruskan lalu lintas dari port 80 dan 443 ke port spesifik Anda.

Chase T.
sumber