Stránka 1 z 1

PHP + sluzby (ftp, www ...)

Napsal: pon 24. dub 2006, 16:53
od sheriff.wiggum
Nevite jak je to s php a vyuzivanim zdroju systemu? tzn zalozeni uzivatele prostrednictvim php frontendu (/bin/false), vytvoreni ftp uctu(aliasu do slozky), aliasu www atd. Zvladne to i php (idealni by bylo kdyby nekdo vedel jak) nebo je potreba software co bude prubezne porovnavat soubor <-> databaze? pripadne zvladne php ovladani iptables? nebo je to nemozne...

mensi howto ci tuna odkazu (anglictina, cestina) by vubec neuskodila :)

a jeste bych se chtel zeptat na monitoring (sit, zatez cpu atd -> jak tyto informace dostat do grafu)

diky :)

Napsal: pon 24. dub 2006, 18:01
od next_ghost
Když má PHP povolený používat exec(), tak umí všechno, co se dá udělat v terminálu. Jenom ten server nesmí běžet v chrootu, což je běžná praxe (bezpečnost).

Napsal: pon 24. dub 2006, 20:45
od sheriff.wiggum
a neco obklikou neznas? tzn ze php neco vyvola a provede to bash? ale predem definovany skript a ne psat do command lajny v php. je to dira :(

Napsal: pon 24. dub 2006, 21:56
od next_ghost
1) PHP umí pomocí exec() spustit cokoliv, co můžeš spustit v normálnim terminálu
2) V normálnim terminálu můžeš spouštět i shell skripty

1+2 = PHP umí pomocí exec() spouštět i shell skripty, jak prosté... :wink:

Napsal: pon 24. dub 2006, 22:35
od sheriff.wiggum
ano ale pokud by se nekdo dostal tam kam nemel a mohl vyuzivat tuto fci tak muze cokoliv napsat do command lajny. a to je prece spatne

Napsal: úte 25. dub 2006, 07:12
od NeMeM9aA
http://www.linuxsoft.cz/article.php?id_article=644 - je to urcite bezpecnostni mezera, ale php nebude mit root prava, takze to nebude az tak zle.

//edit: zmenen odkaz: puvodne jsem nalinkoval spatny dil serialu

Napsal: úte 25. dub 2006, 17:25
od next_ghost
Web serveru můžeš jednoduše omezit uživatelský práva a k řízení systému použít bezpečnou sadu shell skriptů vlastněnou třeba rootem, která bude mít nastavenej SetUID bit (při spuštění díky SetUID bitu skript získá uživatelský práva vlastníka). PHP samo tak nemůže vůbec nic kromě spouštění několika důvěryhodnejch skriptů, který udělaj veškerou práci.

Napsal: čtv 27. dub 2006, 10:10
od tosuja
next_ghost píše:Web serveru můžeš jednoduše omezit uživatelský práva a k řízení systému použít bezpečnou sadu shell skriptů vlastněnou třeba rootem, která bude mít nastavenej SetUID bit (při spuštění díky SetUID bitu skript získá uživatelský práva vlastníka). PHP samo tak nemůže vůbec nic kromě spouštění několika důvěryhodnejch skriptů, který udělaj veškerou práci.
SUID nefunguje na bashove skripty.... (aspon tak pravi dokumentace, ja jsem podobne zhuverilosti zatim nezkousel)

Napsal: čtv 27. dub 2006, 13:30
od sheriff.wiggum
tosuja píše:ja jsem podobne zhuverilosti zatim nezkousel
a nenapada te jak to udelat jinak? precejes stacilo by to napsat jednou (do php kodu) a opakovane nastaveni by slo naklikat pres browser misto prihlasovani na ssh atd.

Napsal: čtv 27. dub 2006, 15:16
od next_ghost
tosuja píše:SUID nefunguje na bashove skripty.... (aspon tak pravi dokumentace, ja jsem podobne zhuverilosti zatim nezkousel)
V tom případě stačí udělat prográmek, kterej bude SUID a bude spouštět ty skripty podle parametrů. Pracovat přímo s SUID kopií BASHe je zase bezpečnostní díra...

Napsal: pát 5. kvě 2006, 22:03
od Drom
sheriff.wiggum píše:a neco obklikou neznas? tzn ze php neco vyvola a provede to bash? ale predem definovany skript a ne psat do command lajny v php. je to dira :(
Pokud Tvuj ftp server podporuje autentizaci proti sql, tak se celkem jednoduse da udelat editovatko na ftp ucty, jen si musis dat do poradku prava, aby php nedelalo domovsky adresare k ftp uctum pod spatnyma pravama a tak...

jinak zminovany exec() a nebo ruzny bastly (generovani skriptu nekam pod pravama apache a jeho spousteni pod cronem jako root a tak :))