pld na hosting PHP - jak rozdzielacie klientów?

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


Witam,

Czy ktoś przerabiał temat zrobienia bezpiecznego hostingu php?
Chodzi o to, by uniemożliwić klientom zaglądanie do katalogów sąsiadów...
Na razie mam to rozwiązane tak:
  - vsftpd, klient po zalogowaniu ma HOME jako /
  - każdy klient ma HOME w katalogu:
    /home/clients/4c4712a4141d261ec0ca8f9037950685/nazwaklienta,
    przy czym /home/clients ma usera root.root i 711

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.
Pierwszy problem to to że samo rozwiązanie nie jest zbyt eleganckie, jak
ktoś chce sobie podawać ścieżki bezwzględne to będzie miał problem
(oczywiście klienci nie dostają shella).
Drugi problem to mała wygoda dla mnie - co prawda jak jestem zalogowany na
serwerze to wystarczy wejść cd ~nazwaklienta, ale jak np. mam uniwersalnego
usera ftp do wuwy to nijak nie dotrę do katalogu klienta - muszę najpierw
sprawdzić jego $HOME w /etc/passwd...
Najfajniej by było zrobić tak, żeby php widziało $HOME jako / - tak jak to
jest rozwiązane bodajże w home.pl... tylko że oni mają własnoręcznie
napisany serwer www :)

Jak Wy to robicie? Wiem że można np. zrobić wszędzie uruchamianie PHP jako
CGI i ustawienie takich uprawnień żeby jeden user nie miał szans zajrzeć do
innego, ale to się wiąże ze znacznym spowolnieniem działania PHPa na co
raczej
nie mogę sobie pozwolić.

Jakieś inne pomysły?

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