EDYCJA nr 2, 23 lipca 2015 r .: Szukając nowej odpowiedzi, która identyfikuje ważny element bezpieczeństwa pominięty w poniższej konfiguracji lub może dać powód, by sądzić, że wszystko jest objęte gwarancją.
EDYCJA nr 3 29 lipca 2015 r .: Szczególnie szukam możliwej błędnej konfiguracji, takiej jak nieumyślne zezwolenie na coś, co można wykorzystać do obejścia ograniczeń bezpieczeństwa lub jeszcze gorzej, pozostawiając coś szeroko otwartego.
Jest to konfiguracja hostingu obejmująca wiele witryn / hostowania współdzielonego. Chcemy korzystać ze współużytkowanej instancji Apache (tzn. Działającej pod jednym kontem użytkownika), ale z PHP / CGI uruchomionym jako użytkownik każdej witryny, aby żadna strona nie mogła uzyskać dostępu do plików innej witryny, i chcemy upewnij się, że nic nie zostanie pominięte (np. jeśli nie wiedzieliśmy o zapobieganiu atakom z użyciem dowiązań symbolicznych).
Oto co mam do tej pory:
- Upewnij się, że skrypty PHP działają jako konto użytkownika i grupa Linuksa na stronie internetowej i są albo uwięzione (na przykład przy użyciu CageFS), albo przynajmniej odpowiednio ograniczone przy użyciu uprawnień systemu plików Linux.
- Użyj suexec, aby upewnić się, że skrypty CGI nie mogą być uruchamiane jako użytkownik Apache.
- Jeśli potrzebujesz obsługi po stronie serwera (np. W plikach shtml), użyj,
Options IncludesNOEXEC
aby uniemożliwić uruchomienie CGI, gdy nie jest to oczekiwane (chociaż nie powinno to stanowić większego problemu, jeśli używasz suexec). - Włącz ochronę przed atakami dowiązań symbolicznych, aby haker nie mógł nakłonić Apache'a do serwowania plików innej witryny w postaci zwykłego tekstu i ujawniania możliwych do wykorzystania informacji, takich jak hasła DB.
- Skonfiguruj
AllowOverride
/AllowOverrideList
zezwalaj tylko na te dyrektywy, których haker nie mógłby wykorzystać. Myślę, że to mniej niepokoi, jeśli powyższe elementy są wykonane poprawnie.
Wybrałbym MPM ITK, jeśli nie byłby tak wolny i nie działałby jako root, ale szczególnie chcemy korzystać z udostępnionego Apache, ale upewnij się, że jest bezpiecznie.
Znalazłem http://httpd.apache.org/docs/2.4/misc/security_tips.html , ale nie było wyczerpujące na ten temat.
Jeśli warto wiedzieć, planujemy używać CloudLinux z CageFS i mod_lsapi.
Czy jest coś jeszcze do zrobienia lub o czym wiedzieć?
EDYCJA 20 lipca 2015 r .: Ludzie przesłali kilka dobrych alternatywnych rozwiązań, które są ogólnie cenne, ale pamiętaj, że to pytanie dotyczy tylko bezpieczeństwa wspólnej konfiguracji Apache. W szczególności, czy jest coś, czego nie wymieniono powyżej, co mogłoby pozwolić jednej witrynie uzyskać dostęp do plików innej witryny lub w jakiś sposób narazić inne witryny na szwank?
Dzięki!