Batasi akses pengguna ke folder rumah di Linux [duplikat]

1

Kemungkinan Gandakan:
Batasi setiap pengguna hanya di folder rumahnya sendiri

Saya memiliki server web yang menjalankan 10,04 LTS dan sebagai pemula di dunia administrasi server, saya terikat.

Saya mohon Anda tidak mengalihkan pertanyaan. Saya sadar ada beberapa hal yang salah seperti mengaktifkan root, tetapi bukan itu sebabnya saya memposting di sini. Terima kasih = d


Situasi

Saat ini, saya memiliki tiga pengguna. Root, yang jelas memiliki akses ke semuanya, dan dua pengguna lain yang masing-masing memiliki situs web.

Untuk dua pengguna ini, situs web mereka terletak di folder rumah masing-masing di folder tambahan yang masing-masing memiliki izin Baca, Tulis & Jalankan. Ini adalah satu-satunya folder yang dapat mereka tulis. Mereka tidak dapat menghapusnya, atau mengubah apa pun di luar folder.

Sejauh ini bagus, kecuali secara default, mereka juga dapat membaca file apa pun dalam sistem, yang berarti mereka dapat menavigasi ke folder situs web saya yang lain dan membaca, misalnya, kata sandi basis data dari file konfigurasi WordPress.

Ini jelas bermasalah.

Pengguna mengakses file dan folder mereka melalui SSH dengan FileZilla.

Pertanyaan

  • Bagaimana saya bisa mencegah para pengguna ini membaca data sensitif, yaitu bagaimana saya bisa membatasi akses mereka hanya ke folder rumah mereka?

Persyaratan

  1. Pengguna harus terus masuk melalui SSH dengan FileZilla (mis. Tidak ada solusi FTP)

  2. Apache masih harus dapat mengakses folder pengguna (yaitu tidak dapat chmod ke 750)

Masalah yang Diketahui

  • Folder yang berisi alat-alat baris perintah (/ bin / bash saya pikir) mungkin harus disinkronkan di folder home pengguna? Tolong jelaskan bagaimana melakukan ini.

Jika Anda memiliki jawaban, saya sangat menghargai jika Anda bisa menulisnya dengan asumsi saya tidak tahu apa-apa tentang baris perintah. Saya seperti pengguna ini yang tidak tahu cara menyalin tempel file di Windows, kecuali dengan baris perintah di Linux T_T

Terima kasih = d

Etienne Levesque Guitard
sumber

Jawaban:

1

Jangan biarkan konfigurasi basis data dapat dibaca dunia. Batasi hanya untuk www-datapengguna dan / atau grup. Sebenarnya, batasi seluruh direktori home untuk pemilik dan www-datagrupnya.

chgrp -R www-data /home/user
chmod -R u=rwX,g=rXs,o= /home/user

( g=sBit akan membuat semua file yang baru dibuat mewarisi www-datagrup.) Juga mengatur umask default (di /etc/profileatau melalui PAM) 027, yang menolak akses ke "orang lain" secara default.

Tentu saja, ini mudah untuk dilewati. Kita hanya perlu menulis halaman web (PHP atau serupa) yang membaca konfigurasi pengguna lain. Solusi yang lebih baik adalah menginstal suPHP , yang membuat halaman web CGI berjalan di akun pemiliknya; dengan suPHP Anda tidak perlu www-datakepemilikan grup - cukup batasi semua file untuk pemiliknya ( u=rwX,go=). Namun, ini mungkin dapat memperkenalkan celah keamanan yang berbeda - WordPress sekarang akan memiliki izin menulis ke seluruh situs web, dan mengingat sejarah keamanan WP, ini buruk.


Adapun sisa dari sistem - /var, /usr, /etc- sebagian besar adalah tidak sensitif. Potongan-potongan yang ada, sudah dilindungi oleh izin standar. Jangan repot-repot menyembunyikan sisanya.

grawity
sumber
Apakah grup data-www adalah default yang disertakan dengan Apache? Bagaimana jika saya menggunakan kepemilikan grup www-data dan suPHP, apakah saya menghilangkan lubang keamanan WP?
Etienne Levesque Guitard
@ Etienne: Saya pikir itu datang dengan Ubuntu sendiri ... setidaknya di Debian tentu saja. // Jika Anda menggunakan suPHP, maka grup www-data tidak pernah benar-benar digunakan - suPHP beralih sepenuhnya ke akun pemilik file.
grawity