Toon posts:

[Apache] Rechten voor subdomeinen van elkaar afscheiden*

Pagina: 1
Acties:

Verwijderd

Topicstarter
K'heb sinds kort een probleem,
Ik heb momenteel 2 virtual hosts platenkamp.mine.nu en kamerling.mine.nu beide worden naar de zelfde server/ip gestuurt en de server stuurt de platenkamp.mine.nu naar /var/www/html/Platenkamp/ en de kamerling.mine.nu naar je begrijpt het al /var/www/html/Kamerling/

Dit werk mooi en naar behoren, aleen zit ik nu met een probleem dat ik van uit een php file die ik in /var/www/html/Kamerling/ heb staan met include('../Platenkamp/Scrip/hoi.php'); hoi.php kan gebruiken dit is natuurlijk niet wat ik wil. van mij mag hij niet files uit ../Platenkamp kunnen halen en al helemaal niet zonder ge-parsed te worden.

Extra info:
drwxr-xr-x 19 root root 4096 May 26 18:22 var
drwxr-xr-x 6 root root 4096 Feb 25 00:18 www
drwxr-xr-x 4 root apache 4096 May 26 20:00 html
drwxr-x--- 6 Bas apache 4096 May 26 20:47 Kamerling
drwxr-x--- 7 Website apache 4096 May 26 21:13 Platenkamp

php -> user: apache group: apache

Mocht meer invo nodig zijn dan hoor ik het graag.
Wat ik dus wil is eigenlijk dat apache niet door de dir kan gaan van Kamerling <-> Platenkamp en andersom.

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

voeg aan je vhost config de volgende regel toe:

code:
1
php_admin_value open_basedir /var/www/html/Platenkamp


nu kan je met PHP als het goed is niet meer buiten die directory komen (hetzelfde geld natuurlijk ook voor je andere vhost)

Verwijderd

Topicstarter
Vriendelijk bedankt Erkens, ook voor de snelle reply. _/-\o_

ps. zijn er nog meer dingen waar ik rekening mee moet houden m.b.t. beveiliging?
Ik heb nl. niet de zelfde ervaring/kennis op het gebied van beveiliging als jullie.

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Om te beginnen zijn deze linkjes wel interessant :)
http://www.php.net/manual/en/security.php
http://httpd.apache.org/docs/misc/security_tips.html

edit:
owja, nog even een toevoeging:

die ene regel is nog niet genoeg, je kan namelijk nog steeds bij die andere files komen met bijvoorbeeld de system()/shell_exec() functies van php:

PHP:
1
echo system('cat /etc/passwd');


om ook dit tegen te gaan moet je PHP in safe_mode draaien:
code:
1
2
php_admin_flag safe_mode on
php_admin_value safe_mode_exec_dir /var/www/html/Platenkamp

[ Voor 59% gewijzigd door Erkens op 26-05-2005 23:58 ]


Verwijderd

Topicstarter
Wederom vriendelijk bedankt,

De links die u mij gaf zal ik door lezen.
De code in de httpd.conf
php_admin_flag safe_mode on
php_admin_value safe_mode_exec_dir /var/www/html/Kamerling heb ik aan gepast.

Ik zelf ben nl. de enige die /Platenkamp beheer dus vond ik het niet nodig deze in save mode te draaien, tenzij u mij dit afraad. (/var/www/html/Kamerling draait nu wel in savemode)

momenteel is /Kamerling zo geconfiureerd:
<VirtualHost *:80>
ServerAdmin *knip*
DocumentRoot /var/www/html/Kamerling/
ServerName kamerling.mine.nu
php_admin_value open_basedir /var/www/html/Kamerling
php_admin_flag safe_mode on
php_admin_value safe_mode_exec_dir /var/www/html/Kamerling
</VirtualHost>

[ Voor 6% gewijzigd door Verwijderd op 27-05-2005 00:21 . Reden: e-mail. ]


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

offtopic:
haal even dat email adres weg, ivm spambotjes etc ;)


Tja, het staat eigenlijk al beschreven in die Security Tips van Apache:
Always remember that you must trust the writers of the CGI script/programs or your ability to spot potential security holes in CGI, whether they were deliberate or accidental.
En dat geldt dus ook voor PHP scripts:
Embedded scripting options which run as part of the server itself, such as mod_php, mod_perl, mod_tcl, and mod_python, run under the identity of the server itself (see the User directive), and therefore scripts executed by these engines potentially can access anything the server user can. Some scripting engines may provide restrictions, but it is better to be safe and assume not.
PHP heeft een dergelijke beveiliging in de vorm van die open_basedir en safemode, bij scripts die je voor 100% vertrouwt heb je ze in principe niet nodig, maar kwaad kan het nooit (hoewel safemode soms problemen geeft)

Verwijderd

Topicstarter
Maar nu heb ik het probleem dat ik de mail(); funcite van php niet meer werkt
php.net zecht:
PHP must have access to the sendmail binary on your system during compile time.

Hoe nou te controleren dat dit wel het geval is?
ik heb al chmod 755 -R /var/ gedaan dit alles zonder suc6

Ook heb ik de virtual host tijdelijk uit gezet en mijn oude site /var/www/html/
weer terug gezet, ook dit zonder suc6.

[ Voor 18% gewijzigd door Verwijderd op 27-05-2005 12:35 . Reden: virtual host ]


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

The additional_parameters parameter is disabled in safe_mode and the mail() function will expose a warning message and return FALSE when used.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

* NMe ziet geen programmeerproblemen in dit topic. Je hebt problemen met de configuratie van je webserver, en niet zozeer met PHP. Bovendien gaat het probleem in je laatste post over rechtenconfiguratie in Linux/UNIX. Ik zal dit topic even op een plaats zetten waar meer mensen er iets vanaf zullen weten: Non-Windows Operating Systems

PW>>NOS

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Nou, dit begint raar te worden,

Ik heb de site terug rezet zo als het was voor dat ik virtual hosts had, en de mail(); het gewoon deed.
K'heb het pad gevolgd van de mail /ect/mail

drwxr-xr-x 58 root root 4096 May 27 12:52 etc
drwxr-xr-x 2 root root 4096 May 27 12:34 mail
en in mail zelf
-rw-r--r-- 1 root root 58080 Mar 26 14:09 sendmail.cf
-rw-r--r-- 1 root root 6745 Sep 1 2004 sendmail.mc

en ook /usr/bin/sendmail
drwxr-xr-x 14 root root 4096 Feb 24 21:03 usr
drwxr-xr-x 2 root root 12288 Mar 24 12:28 sbin
lrwxrwxrwx 1 root root 21 Feb 24 21:10 sendmail -> /etc/alternatives/mta

alles heeft read access dus zou apache.apache er bij moeten kunnen
toch geeft de bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] )
een false terug.

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Zo te zien is /usr/bin/sendmail een link naar /etc/alternatives/mta.

Maar gebruik je in je PHP code die 'additonal_parameters' want zoals je ziet is dat niet mogelijk met safe_mode.

Verwijderd

Topicstarter
Erkens, de server draait moneteel niet meer in safe_mode.
Als er dingen zijn die ik even moet proberen laat het me dan even weten.
K'heb de server ook al een reboot gegeven, helaas ook geen effect.

[ Voor 3% gewijzigd door Verwijderd op 27-05-2005 13:22 . Reden: * safe_mode ]


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

offtopic:
Waarom zou je voor zoiets je server rebooten :X

Mijn vraag was toch heel duidelijk? En de oplossing ook, je moet met mail() in safe_mode niet die 'additonal_parameters' gebruiken, want dat kan niet.
Wil je toch geen safe_mode maar ook niet dat een "kwaadwillend" script bij je files kan komen, dan zit je met die open_basedir al vrij goed, alleen hoef je dan nog maar de functies shell_exec() en system() te blokkeren:

.htaccess:
code:
1
php_admin_value disable_functions shell_exec,system

Verwijderd

Topicstarter
Dat begrijp ik, alleen draait hij niet meer in safe_mode (starks wel weer)

maar alleen code:
mail(rudy <*knip*>','subject','message');
vertikt het om de mail te sturen.

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

ik zat even verkeerd te kijken :o

code:
1
php_admin_value safe_mode_exec_dir /var/www/html/Kamerling


dat heeft natuurlijk niet veel nut, zo kan je alleen executables uitvoeren die in die dir staan, wat dus helemaal niet handig is :X

Wat je kan doen is die regel weer weghalen, safe_mode wel aanlaten en dan deze functies blokkeren met die disable_functions die ik hiervoor noemde.

Verwijderd

Topicstarter
Erkens, zo als je ziet gebruik ik niet de additional parameters bij het verzenden van de mail.
code:
PHP:
1
 <? mail('rudy <*knip*>','subject','message'); ?> 

file /etc/php.ini
code:
1
2
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = /usr/sbin/sendmail -t -i

code:
1
2
3
4
5
6
[root@localhost ~]# ll /usr/bin/sendmail
lrwxrwxrwx 1 root root 21 Feb 24 21:10 sendmail -> /etc/alternatives/mta
[root@localhost ~]# ll /etc/alternatives/mta
lrwxrwxrwx  1 root root 27 Feb 24 21:10 /etc/alternatives/mta -> /usr/sbin/sendmail.sendmail
[root@localhost ~]# ll /usr/sbin/sendmail.sendmail
-rwxr-sr-x  1 root smmsp 732356 Sep  1  2004 /usr/sbin/sendmail.sendmail


/etc/httpd/conf/httpd.conf
code:
1
2
3
4
5
6
7
NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin m.r.platenkamp@student.utwente.nl
    DocumentRoot /var/www/html/Platenkamp/
    ServerName platenkamp.mine.nu
    php_admin_flag safe_mode on
</VirtualHost>
telnet localhost 25
code:
1
2
3
4
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 platenkamp.mine.nu ESMTP Sendmail 8.13.1/8.13.1; Fri, 27 May 2005 14:47:30


Hopelijk zo duidelijker met ubb-codes, alleen heeft het me probleem nog niet op gelost :+
offtopic:
lol @ +110% re-edit

[ Voor 118% gewijzigd door Verwijderd op 27-05-2005 15:46 . Reden: listing toegevoegd, mail name knip ]


  • Zwerver
  • Registratie: Februari 2001
  • Niet online
Hoi r.platenkamp, zou je de Overzicht van UBB-codes eens doorwillen nemen? Want je gebruikt die tags helemaal verkeerd, waardoor het onduidelijk wordt wat waar staat

Woonachtig Down Under. Ik negeer je insults niet, maar tegen de tijd dat ik ze lees zijn ze meestal niet relevant meer


Verwijderd

Topicstarter
K'ben na een tijd zoeken, ten einde raad toch nog maar eens de rechten van de directoy's gaan bekijken, wat nu gelukig is gelukt :)

Erkens, vriendelijk bedankt voor al uw hulp.

  • M-ThijZ
  • Registratie: Maart 2003
  • Laatst online: 16:11

M-ThijZ

Riding on Rails

Misschien een beetje offtopic, maar is het niet beter om voor elke virtual host een user aan te maken?

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

M-ThijZ schreef op vrijdag 27 mei 2005 @ 16:32:
Misschien een beetje offtopic, maar is het niet beter om voor elke virtual host een user aan te maken?
ehm, je wilt dus per vhost een nieuwe instantie van Apache draaien? Waarvoor je ook nog eens per vhost/user een IP nodig hebt?

Verwijderd

Topicstarter
Voor de tweaker die ook een beetje moeite heet met hoe de rechtjes moeten staan voor sendmail.
http://gathering.tweakers...ueue&data%5Bboolean%5D=OR

This worked for me. ;)
offtopic:
Er mag slot op :9

[ Voor 8% gewijzigd door Verwijderd op 27-05-2005 18:51 ]

Pagina: 1