Jump to content
php.lv forumi

Apache virtualhost konfigurācija, ftp un failu tiesības


r00m

Recommended Posts

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 by r00m
Link to comment
Share on other sites

...

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------)

Link to comment
Share on other sites

  • 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

Link to comment
Share on other sites

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 by Maris-S
Link to comment
Share on other sites

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 by marcis
Link to comment
Share on other sites

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 by Grey_Wolf
Link to comment
Share on other sites

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 by r00m
Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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 ...

Link to comment
Share on other sites

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 by Maris-S
Link to comment
Share on other sites

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)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...