Re: pld na hosting PHP - jak rozdzielacie klientów?

Jacek Osiecki joshua w hybrid.pl
Pią, 12 Gru 2008, 10:58:03 CET


On Fri, 12 Dec 2008, Wojciech Błaszkowski wrote:

> Dnia piątek 12 grudzień 2008, Jacek Osiecki napisał:
>> Witam,

>> Czy ktoś przerabiał temat zrobienia bezpiecznego hostingu php?
>> Chodzi o to, by uniemożliwić klientom zaglądanie do katalogów sąsiadów...

> Uzywam pure-ftpd. Loginy zakładane są przez interfejs php i trzymane w bazie
> danych. pure-ftpd pobiera sobie te dane i umozliwia logowanie.
> Flaga "ChrootEveryone" ustawiona na "yes".

To akurat nie problem, w vsftpd mam to samo :) Niedługo przesiądę się na
proftpd, bo tam mam już ładnie ujęte wszystkie konta ftp w mysqlu i obsługę
quoty również przy użyciu wpisów w mysql - wtedy bym mógł w ogóle
zrezygnować z różnych kont rzeczywistych dla poszczególnych userów.

>> Niby nie zabezpiecza to fizycznie przed wejściem do sąsiada, teoretycznie
>> "wystarczy" się wstrzelić w nazwę katalogu (oczywiście katalog w
>> /home/clients
>> jest generowany dla każdego klienta) ale biorąc pod uwagę ilość możliwych
>> kombinacji to jest to mało prawdopodobne.

> Bardziej martwiłbym się tym, że jeśli klient będzie marudził o safe_mode=off w
> php.ini bo nie może zainstalować sobie osCommerce (lub inny powód) to mu się
> to da. Jeśli już mu się da, to może sobie zrobić skrypt myszkujący
> po /home/vhosts/ który to skrypt będzie szukał config.php i zapisywał/wysyłał
> gdzieś jego zawartość.

O safe_mode nie ma mowy, bo po pierwsze wiążą się z nim dodatkowe problemy
a po drugie w php6 już nie będzie safe_mode (nie mogę się nigdzie doczytać co
chcą dać w zamian).

> Rozwiązanie AppArmor.

Ale co konkretnie da mi AppArmor - to, że apache nie będzie mógł odczytać
zawartości /home/clients? Przecież to mogę zrobić uprawnieniami 111 dla
/home/clients... Jak ktoś ma stronę duperele.pl i widzi że jest w
/home/clients/duperele, to domyśli się że bzdury.pl są w
/home/clients/bzdury - i "zabezpieczenie" na nic. Sprawę rozwiązuje moje
dodanie losowego katalogu po drodze - czyli /home/clients/<hash>/nazwa -
czy w takim układzie AppArmor może mi cokolwiek dać, poza zabronieniem
userowi apache dostępu do czegokolwiek poza /home/clients? Bo zakładam że
system sam w sobie jest bezpieczny i nie ma możliwości by ktoś skryptem PHP
namieszał gdziekolwiek...

Pozdrawiam,
-- 
Jacek Osiecki joshua w ceti.pl GG:3828944
"To nie logika, to polityka"
(c) Kabaret pod Wyrwigroszem 2006


Więcej informacji o liście dyskusyjnej pld-users-pl