r00m Posted November 22, 2011 Report Share Posted November 22, 2011 (edited) Sveiki vīri! Man ir kaste no kuras servēju pāris domēnus. Līdz šim visi domēni bija mani, tāpēc īpaši neuztraucos par drošību, bet tagad man ir nākuši klāt ārēji domēni un nu ir radušās aizdomas par visa pasākuma drošību. Situācija pašlaik: Apacis "skrien" zem apache:apache proftpd jailo jūzeri iekš viņa home diras Kad izveido jūzeri kā mājas diru ierāda /foo/bar/userx chown userx:apache /foo/bar/userx chmod g+s /foo/bar/userx Mērķi ir šādi: Lai jūzeri tiek pie saviem projektiem no ftp un apacim nav problēmu lasīt/rakstīt tajā dirā Lai jūzeris pats (vai uzlaušanas gadījumā) nevar lasīt cita jūzera failus Ja ir iespējams, tad home dirā izveidot userim nedzēšamu diru "htdocs" (vai arī viņai ir jābūt dzēšamai?) $ ls -al /foo/bar drwxr-xr-x 7 root root 4096 Nov 5 13:26 ./ drwxr-xr-x 7 userx apache 4096 Nov 7 21:56 domain1/ ... Kā jau saprotams no teksta tad katras mapes (domēna) owneris ir pats jūzeris un grupa ir apache. Lai atļautu apacim rakstīt domain1/ man atliek tikai chmod g+w domain1/ ? Edited November 22, 2011 by r00m Quote Link to comment Share on other sites More sharing options...
nemakuphp Posted November 22, 2011 Report Share Posted November 22, 2011 Lai netiktu klāt cita usera failiem izmanto open_basedir Quote Link to comment Share on other sites More sharing options...
marrtins Posted November 22, 2011 Report Share Posted November 22, 2011 ... ir radušās aizdomas par visa pasākuma drošību. ... Lai atļautu apacim rakstīt domain1/ man atliek tikai chmod g+w domain1/ ? Nu tāds variants var nostrādāt, bet drošība nekāda. Gribi drošību, laid caur CGI/FastCGI katru lapu ar savu useri un tiesības failiem piešķir tikai userim (rwx------) Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 22, 2011 Report Share Posted November 22, 2011 Lai jūzeri tiek pie saviem projektiem no ftp un apacim nav problēmu lasīt/rakstīt tajā dirā Lai jūzeris pats (vai uzlaušanas gadījumā) nevar lasīt cita jūzera failus Ja ir iespējams, tad home dirā izveidot userim nedzēšamu diru "htdocs" (vai arī viņai ir jābūt dzēšamai?) nu kas par problēmām? Apache *.INI failā katram domēnam izdali savu home_dir. kur ir: doc_root un LOG_dir FTP izdali dotajiem useriem piekļuvi tikai šaj direktorijai. Automātiski cits (ne PHP nekas cits) tālāk netiks Quote Link to comment Share on other sites More sharing options...
marrtins Posted November 22, 2011 Report Share Posted November 22, 2011 Automātiski cits (ne PHP nekas cits) tālāk netiks Kā ta, kā ta. Šīs "aizsardzības" vēsi var apiet - izmantojot cauru lapu iestādīt executabli iekš rakstāma foldera un attiecīgi palaist. Dragās pa visām apache lasāmām/rakstāmām vietām ka nemetas. Quote Link to comment Share on other sites More sharing options...
Maris-S Posted November 22, 2011 Report Share Posted November 22, 2011 (edited) Informācijai, paskaties šos te. http://hostingfu.com...-shared-hosting http://httpd.apache....2.0/suexec.html http://www.alain.kna...howto/PhpSuexec http://www.suphp.org http://httpd.apache....urrent/dso.html Tālāk jau pats skaties kurš labāk der un papildus informācijai google. Ņem vērā ka daži raksti jau ir diezgan novecojuši, tāpēc pārliecinies vai aprakstītās tehnoloģijas vēl tiek uzturētas. Edited November 22, 2011 by Maris-S Quote Link to comment Share on other sites More sharing options...
marcis Posted November 22, 2011 Report Share Posted November 22, 2011 (edited) Lai netiktu klāt cita usera failiem izmanto open_basedir ar ini_set() šo var smuki overridot (liekas, ka .htaccess arī?) Apache *.INI failā katram domēnam izdali savu home_dir. Varētu linku? Man kaut kā neizdevās atrast tādu variabli iekš apache.org Manuprāt vienīgais patiešām derīgais risinājums ir Jailkit. Edited November 22, 2011 by marcis Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 22, 2011 Report Share Posted November 22, 2011 (edited) Varētu linku? Man kaut kā neizdevās atrast tādu variabli iekš apache.org tas ir pie VirtualHost vari ne tikai katram savu home direktoriju, bet arii daudzus citus parametrus piem ALIAS utt Primitivakais piemers ir: <VirtualHost *:88> ServerName www.xxxx.lv DocumentRoot ...........htdocs/xxxx ServerAlias *xxxx.lv ErrorLogs ...........htdocs/Logs/xxxx ... Un citas direktivas ... </VirtualHost> + turpat visus revraite ruļus; log failus (konkretam domenam).. tik japliek pasha *.nix arii , skjiet ka host.??? failaa .. tad neko talak neizdariisi Katra zinja dokumentcijas pietiek, nedomaju ka lai izveidotu , naksies meklet google par paris minuteem ... Edit: shis piemers ir ja tiek izmantots 88 ports (man majas uz viena kompja normali 80 uz otra 88) un rūteris ar PortMapingu saskjiro.. Edited November 22, 2011 by Grey_Wolf Quote Link to comment Share on other sites More sharing options...
r00m Posted November 22, 2011 Author Report Share Posted November 22, 2011 (edited) Paldies par atbildēm. CGI neizmantoju tāpēc to iekš httpd.conf atslēgšu. Lasot iedotās saites nonācu pie secinājuma, ka atļaušu apacim rakstīt/lasīt userx folderī, faili piederēs domēna ownerim un iestatīšu open_basedir sekojoši "/foo/bar/userx/:/tmp/" kā arī aizliegšu apacim lasīt ārpus web roota ar sekojošu direktīvu: <Directory /foo/bar Order Allow,Deny Allow from all </Directory> Kā izskatās? Grey_Wolf, tā man ir pašlaik! Edited November 22, 2011 by r00m Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 22, 2011 Report Share Posted November 22, 2011 a kāpec spītigi negribi veidot Virtual host ? ja normali to pastāstīsi arī serverim, tad neviens tālāk par norādīto direktoriju netiks .. Jākonfigurē ne tikai apachis bet arī pats serveris + FTP klients + ?SQL serveris (kur normāli jaizdala tiesības ) Quote Link to comment Share on other sites More sharing options...
r00m Posted November 22, 2011 Author Report Share Posted November 22, 2011 Man ir virtualhosti! Tie domēni par kuriem runāju katrs ir iekš sava <Virtualhost>. Pag tad sanāk, ja es virtualhostā esmu pateicis, ka tev ir būt šeit, tad ja lietotājs vēlas atvērt piemēram '../domain2/secret.txt' vai '../../etc/passwd' viņam tas neizdosies? Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 22, 2011 Report Share Posted November 22, 2011 vēlas atvērt piemēram '../domain2/secret.txt' vai '../../etc/passwd' viņam tas neizdosies? No web puses protams ka nevarēs.. Vel jau jaizliedz piekļuve pašam serverim. izņemot FTP serverī norādītajai direktorijai, + Neizmirsti piereģistrēt tos VirtualHost * host *.* failā ( nezinu kurš precīzi tas ir, jo nezinu kas tev par OS , bet pieļauju ka gan jau HOST satur , palsi docus par konkreto OS ... Quote Link to comment Share on other sites More sharing options...
Maris-S Posted November 22, 2011 Report Share Posted November 22, 2011 (edited) Grey_Wolf, vai tad nav tā ka visi šie paņēmieni neļaus tikai apache serverim piekļūt citu failiem, bet ar php tiks cauri? Php process palaižas ar apache lietotāju un tātad ar pieeju visur kur ir pieeja tam lietotājam, tātad ar php varēs nolasīt citu failus, kaut vai norādot tiešo ceļu līdz failam iekš fread(), vai tomēr nē? Man liekās tieši tāpēc arī tika izveidotas tādas iespējas kā suPHP un tam līdzīgas. Edited November 22, 2011 by Maris-S Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 22, 2011 Report Share Posted November 22, 2011 palaižas ar apache lietotāju un tātad ar pieeju visur kur ir pieeja tam lietotājam, Bet tu taču viņu palaid no konkrēta apache lietotāja (domena), attiecīgi apache neļus PHP tālakāku piekļuvi + kā jau minēju jānorāda arī OS (iekš *host.* faila) kuram domēnam kur ir atļauts piekļūt , pārejo jau paveiks OS procesi .. Respektīvi tik tālu cik būsi atļāvis .. --- Ja, tik brīvi, ar PHP, varētu piekļūt citiem failiem, tad neviens neturētu N-tos domenus uz viena servera. -- Jakonfigurē ir gan Apche, gan pats OS.. (abi divi) .. -- Vienkārši, katram konkretajam OS risinājums būs nedaudz atšķirīgs (nu es runāju par *nix, jo Win jau īsti nestrādā kā droša sistema) Quote Link to comment Share on other sites More sharing options...
marrtins Posted November 22, 2011 Report Share Posted November 22, 2011 Grey_wolf, ko tu pīpē? o_O Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.