Apa tingkat pengguna dan izin yang paling tepat untuk situs Drupal di hosting bersama?


14

Meskipun situs Drupal menjelaskan secara rinci tentang izin dan keamanan, hanya ada referensi samar / tidak jelas tentang shared hosting. Dari sudut pandang Drupal, pengaturan apa yang paling aman (tingkat kepemilikan dan izin) untuk situs di hosting bersama?

Sebagai contoh dari jenis info yang saya cari, WordPress menyarankan pengaturan hosting bersama berikut:

  • Semua file harus dimiliki oleh akun pengguna yang sebenarnya, bukan akun pengguna yang digunakan untuk proses httpd.
  • Kepemilikan grup tidak relevan, kecuali ada persyaratan grup khusus untuk pemeriksaan izin proses server web. Ini biasanya tidak demikian.
  • Semua direktori harus berukuran 755 atau 750.
  • Semua file harus 644 atau 640. Pengecualian: wp-config.php harus 600 untuk mencegah pengguna lain di server membacanya.
  • Tidak ada direktori yang seharusnya diberikan 777, bahkan mengunggah direktori. Karena proses php berjalan sebagai pemilik file, ia mendapatkan izin pemilik dan dapat menulis bahkan ke direktori 755.

2
Saya pikir Anda telah bertemu dengan beberapa Peretasan di Wordpress;) Ada sedikit kemungkinan hal-hal semacam itu di Drupal.
niksmac


Masih tidak terlalu mengerti. Jika nama Anda adalah Johnny dan penyedia hosting bersama Anda telah memberi Anda nama pengguna johnny99 apakah itu berarti Anda harus menandai file-file tersebut menjadi "johnny99: www-data" sebelum mengunggah? Atau itu tidak relevan pada shared hosting?
Simon Hoare

Jawaban:


9

Opsi hosting

Opsi hosting untuk situs web umumnya adalah salah satu dari yang berikut:

  • dedicated server
  • server pribadi virtual (VPS)
  • shared hosting

Dengan server khusus, hanya satu situs di-host di komputer fisik, dan konfigurasinya seaman komputer itu sendiri.

Dengan VPS, perangkat lunak Anda berjalan pada komputer fisik yang sama dengan mesin virtual pengguna lain. Namun, secara fungsional setara dengan server khusus. Yang terpenting, VPS memiliki privasi dan keamanan server khusus.

Dengan shared hosting, situs web Anda berada pada sistem file yang dibagikan dengan pengguna lain. Sayangnya, hal ini membuatnya kurang aman dibandingkan saat dijalankan di server khusus atau VPS. Sisa dari artikel ini membahas keamanan WCMS di lingkungan hosting bersama.

Lingkungan Hidup

Lingkungan hosting bersama dapat dianggap terdiri dari server web, sistem file, file pengaturan, database, dan beberapa pengguna.

Dalam contoh berikut, diasumsikan bahwa akun pemilik adalah "tom", dan bahwa file pengaturan (memegang kredensial basis data) dinamai "settings.php".

Proses server web dapat berjalan dengan izin pengguna dari akun pemilik "tom", atau dengan izin grup dari grup "www", tergantung pada konfigurasi.

Juga, lingkungan standar Gnu / Linux atau Unix diasumsikan, dan diasumsikan bahwa pembaca memahami sistem kontrol akses Unix dengan baca (r), tulis (w) dan eksekusi / akses direktori (x) yang terpisah dibagi menjadi tiga blok (pengguna, grup, lainnya).

Sebelum saya melanjutkan untuk membahas pengaturan tertentu, mungkin ada baiknya untuk membuat daftar kondisi yang ingin kami penuhi:

  1. Agar situs web dapat beroperasi, server web harus memiliki akses baca ke semua file yang membentuk situs, dan mengakses akses direktori ke semua direktori yang membentuk situs.
  2. Untuk operasi yang aman, server web tidak boleh memiliki akses tulis ke semua file yang ditangani.
  3. Untuk operasi yang aman, skrip web yang dijalankan oleh pengguna jahat tidak boleh memiliki akses baca ke file yang dimiliki oleh pengguna lain.
  4. Agar pemilik dapat bekerja di situsnya sendiri menggunakan CLI, pengguna harus telah membaca dan menulis akses ke file-nya sendiri.
  5. Untuk melindungi file agar tidak diakses oleh pengguna lain menggunakan CLI, blok "lain" seharusnya tidak memiliki izin yang ditetapkan.

Sayangnya, pada host bersama, Anda hanya dapat memiliki 4 dari 5. Saya tahu tidak ada cara Anda dapat memenuhi semua lima kondisi pada host bersama.

Sejauh yang saya tahu, dua konfigurasi berbeda digunakan oleh penyedia host bersama. Keduanya dibahas di bawah ini, bersama dengan izin yang digunakan untuk melindungi file dan direktori, dan kondisi apa yang gagal dipenuhi oleh konfigurasi.

Konfigurasi 1: Server web berjalan sebagai pemilik

Ini adalah AFAIK konfigurasi yang paling banyak digunakan. Server web berjalan sebagai pemilik file. Ini berarti bahwa pengguna jahat tidak dapat menggunakan pengguna server webnya untuk menjalankan skrip untuk membaca file pengguna lain. Jenis konfigurasi ini juga melindungi pengguna dari satu sama lain di CLI.

Namun, itu juga berarti bahwa kami tidak dapat memiliki izin terpisah untuk pemilik dan server web. Untuk memenuhi persyaratan 2 dengan jenis pengaturan ini, Anda perlu membatasi izin menulis untuk pemilik agar mencegah akses tulis untuk server web ke semua hal kecuali direktori unggahan.

Izin:

Directories:  500 r-x --- --- tom.tom
Files:        400 r-- --- --- tom.tom
settings.php: 400 r-- --- --- tom.tom
Upload Dir.:  700 rwx --- --- tom.tom

Sayangnya, ini berarti bahwa kondisi 4 tidak dapat dipenuhi. Yaitu situs tidak dapat dikelola melalui CLI. Pemilik akan dibatasi untuk menggunakan semacam dasbor berbasis web untuk mengakses situs (rekomendasi saya adalah bahwa pemilik menyimpan salinan pada beberapa server pementasan di mana ia memiliki akses tidak terbatas, dan perubahan mirror dibuat pada server pementasan ke host bersama) ).

Konfigurasi 2: Server web berjalan sebagai anggota grup www

Konfigurasi ini digunakan oleh beberapa (IMHO) penyedia kurang profesional dari solusi host bersama. Server web berjalan sebagai anggota grup www, dan diberi akses baca yang diperlukan melalui blok grup:

Izin:

Directories:  750 rwx r-x --- tom.www
Files:        640 rw- r-- --- tom.www
settings.php: 640 rw- r-- --- tom.www
Upload Dir.:  770 rwx rwx --- tom.www

Pengaturan ini memiliki keuntungan memberikan pemilik akses penuh ke file-nya melalui CLI, dan membatasi server web untuk membaca akses saja.

Namun, itu juga gagal memenuhi syarat 3. Yaitu memungkinkan pengguna jahat pada host bersama (atau hacker yang sebagai kompromi situs pengguna lain yang berbagi host) untuk menjalankan skrip untuk membaca file apa saja yang dapat dibaca oleh server web. Ini memberi skrip nakal akses ke file settings.php dengan kredensial basis data, yang membuatnya sepele untuk sepenuhnya mengambil alih situs.

Rekomendasi saya adalah untuk menghindari jenis konfigurasi ini.

Tambahan: Seberapa berbahaya menggunakan host bersama?

Saya tentu tidak akan menaruh sesuatu yang sensitif, seperti nomor kartu kredit atau catatan medis, pada host bersama. Tetapi shared hosting itu murah, dan ada daya tarik dalam hal itu. Saya menggunakan shared hosting sendiri untuk beberapa situs saya. Saya belum diretas, tetapi saya tahu bahwa risikonya ada dan saya siap untuk hari ketika itu terjadi. Jika saya diretas, saya hanya akan menghapus semua yang ada di host bersama, dan menginstal ulang situs dari salinan mirror yang saya simpan di server staging yang aman.

Dengan "config 2", masalah utama adalah yang lain . Jika beberapa situs web lain yang Anda bagikan hosti dikompromikan, situs web Anda juga makan siang. Membuat keamanan bergantung pada pihak lain yang tidak Anda kenal dan tidak memiliki kendali atas bukanlah ide yang baik. Inilah sebabnya rekomendasi saya adalah untuk menghindari pengaturan hosting "config 2".

Dengan "config 1", Anda sendiri yang mengontrol keamanan situs web Anda. Ini lebih baik (khususnya jika Anda tahu apa yang Anda lakukan). Tapi itu bukan bukti bodoh. Tidak ada yang sempurna, dan jika Anda melakukan kesalahan dan situs Anda dikompromikan, penyerang akan memiliki akses ke setiap file yang disimpan di host yang milik Anda. Dengan kata lain, untuk meminimalkan damange saat Anda diretas, jangan simpan apa pun di host itu yang akan membahayakan jika orang lain mendapatkan akses ke sana. Secara khusus, jangan tidak menjaga email Anda pada host bersama. Biasanya ada banyak data sensitif dalam email, jadi Anda tidak ingin itu berada di dekat server web yang mengeksekusi sebagai "Anda".

Dan jika aplikasi web Anda menangani data sensitif, pastikan anggaran Anda memungkinkan untuk host khusus atau VPS.

Anda mungkin juga ingin melihat panduan ini untuk Mengamankan izin dan kepemilikan file di Drupal.org.


Ok, saya sudah memberi Anda 50 poin. Terima kasih atas jawaban terinci Anda. Apakah ini berarti bahwa shared hosting pada dasarnya harus dihindari, karena tidak dapat diamankan?
Simon Hoare

Sebenarnya sekarang saya membacanya lagi, Anda secara efektif mengatakan bahwa di bawah pengaturan ini file tidak boleh dimodifikasi / dimodifikasi dalam lingkungan hidup dan hanya bekerja di lingkungan panggung yang file yang dimodifikasi akan menggantikan orang-orang dari situs langsung ketika dan ketika diperlukan . Dengan kata lain, tidak ada yang bisa memodifikasi situs langsung.
Simon Hoare
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.