Pengaturan apache virtual host dengan banyak pengguna

15

Terima kasih sebelumnya atas bantuan yang Anda berikan. Saya telah belajar sendiri menggunakan linux (ubuntu), apache, virtual host dan beberapa bit berkaitan dengan keamanan, meskipun saya belum menyatukan semuanya dengan mulus.

Saya juga telah belajar cara yang sulit dari kesalahan yang dilakukan di masa lalu sehubungan dengan tidak mengatur akun pengguna dan situs / virtualhosts dengan benar. Saya ssh ke server sebagai root (saya tahu, sangat buruk), dan membuat semua host virtual dan file secara manual, sehingga semua dimiliki oleh root. Saya telah mengeksploitasi versi lama joomla dan kode spam jahat di semua host virtual saya yang lain.

Saya sedang dalam proses pindah ke server baru dan saya sedang mencari langkah yang benar untuk mengikuti sehubungan dengan pengaturan virtual host dan akun pengguna yang dapat mengaksesnya. Karena kami menggunakan perangkat lunak pihak ke-3, kami terkadang membutuhkan orang lain untuk masuk ke situs untuk menyelidiki file situs web mereka.

Server kami saat ini adalah versi 10.04, namun server baru adalah versi 12.04. Semua file situs web disiapkan di bawah

/home/www/site1.com

/home/www/site2.com

/home/www/site3.com

dll

Singkatnya, saya kira inilah yang saya cari.

  1. Bagaimana cara saya mengatur host dan pengguna virtual dengan benar, sehingga hanya memiliki akses ke file sendiri, dan bukan virtual host lain di server. Misalnya, jika situs tersebut dieksploitasi dengan kode berbahaya, ia tidak dapat menginfeksi situs lain di server

  2. Bagaimana saya mengatur pengguna sehingga mereka hanya dapat memasukkan file yang diberikan dan tidak mengakses situs lain mana pun.

Seperti disebutkan sebelumnya, ada banyak artikel yang merinci bagaimana melakukan salah satu dari langkah-langkah ini, tetapi tidak ada yang menyatukan mereka dengan mulus.

Sangat menghargai bantuan yang bisa ditawarkan oleh siapa pun. Jangan sungkan untuk meminta informasi tambahan yang mungkin perlu Anda berikan saran. Saya saat ini mengikuti tutorial untuk mengatur chroot, namun saya khawatir saya tidak melakukan ini dengan benar karena saya telah mengambil beberapa inkonsistensi di sepanjang jalan. Saya juga menyelidiki jailkit.

pengguna249729
sumber

Jawaban:

6

Karena pertanyaan adalah hasil pencarian teratas di google ketika ditanya "apache virtual host terpisah pengguna", saya ingin memberikan jawaban yang lebih rumit berdasarkan jawaban ini . Jawaban saya tidak mencakup usecase PHP dan CGI (Anda akan menggunakan suPHP). Ini berfokus pada PHP ketika digunakan sebagai modul apache.

Anda dapat menggunakan modul apache apache2-mpm-itk . Ini tersedia untuk versi apache 2.4 saat ini. Itu datang dengan arahan AssignUserID. Arahan ini mendefinisikan pengguna dan grup permintaan host virtual ditangani. Ini adalah contoh konfigurasi situs apache yang akhirnya saya buat:

<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot /home/www/site1.com
AssignUserID site1 www-data
php_admin_value open_basedir /home/www/site1.com
...
</VirtualHost>

Tentu saja, ini hanya meningkatkan keamanan selama masing-masing DocumentRoot dimiliki oleh pengguna masing-masing dan tidak dapat diakses oleh grup. Untuk keamanan terkait PHP lebih lanjut, skrip dipenjara DocumentRootdengan pembatasan open_basedir. Sedangkan untuk akses file backend, saya lebih suka SFTP dengan chroot .

Catatan: apache2-mpm-itk saat ini tidak kompatibel dengan modul http2 Apache.

Hermann
sumber
1

Saya sendiri tidak menganggap ini jawaban untuk pertanyaan Anda. Tetapi karena saya belum bisa berkomentar, saya harus menulis di area "jawaban". Secara musiman saya melakukan manajemen web, salah satu cara bagi saya untuk menguji dan mencoba berbagai hal dengan cara yang aman adalah dengan mengatur lingkungan pengujian di mesin virtual (yaitu VirtualBox) atau komputer desktop "lama". Salah satu masalah yang paling umum dari admin host web pemula adalah untuk memahami bagaimana program server web bekerja. Dalam hal ini saya menganggap Anda perlu memahami cara kerja Apache dan setidaknya memahami file konfigurasi. Saya menemukan bahwa Webmin adalah alat yang sangat membantu - untuk pemula - untuk mengelola Apache dan layanan lainnya. Anda harus meluangkan waktu untuk mencoba berbagai hal di lingkungan pengujian Anda sehingga semuanya menjadi lebih jelas bagi Anda.

Kembali pertanyaan Anda, saya pikir jawabannya bisa berupa artikel tutorial atau buku kecil. Lihat artikel ini sebagai permulaan:

https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts

http://www.servermom.org/build-ubuntu-server-a-complete-guide/

biocyberman
sumber
Terima kasih biocyberman. Ini cukup banyak langkah dasar yang saya ikuti dan saya cukup akrab dengannya. Satu-satunya perbedaan adalah bahwa saya belum chown'd setiap situs web ke pengguna yang berbeda, yang merupakan sesuatu yang akan saya coba berikutnya, namun apakah ini mengamankan folder virtualhosts dari satu sama lain? Jailkit tampaknya menjadi bagian dari solusi, tetapi saya tidak 100% yakin. Saya telah bermain dengan webmin di masa lalu sehingga akan kembali dan melihat apakah itu akan membantu dengan pertanyaan yang saya miliki.
user249729