debian: apache +fcgi + suexec : rechtenprobleem?

Pagina: 1
Acties:

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
HoiHoi


Momenteel ben ik bezig om op een van mijn machines suexec+mod_fcgi aan de gang te krijgen, volgens deze howto:
http://blog.chty.org/post...cgi-suexec-on-debian-etch

Dit wil ik doen door middel van een simpele test-pagina, waarna ik later de echte spullen overzet.
Dit doe ik dus dmv test.X.nl waarin een index.php zit met phpsysinfo als enige inhoud.

Het pad naar die vhost is:
code:
1
/var/www/X.nl/devcorner/htdocs



Verder uiteraard ook php.fcgi aangemaakt:
code:
1
2
3
4
5
6
7
8
9
# cat /var/www/X.nl/devcorner/cgi-bin/php.fcgi
#!/bin/sh
PHPRC="/var/www/X.nl/devcorner/conf/"
export PHPRC
PHP_FCGI_CHILDREN=4
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=200
export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php5-cgi



En in mijn vhosts file van dat domein:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<VirtualHost *:80>
       ServerName devcorner.X.nl
       DocumentRoot /var/www/X.nl/devcorner/htdocs
       ScriptAlias /cgi-bin/ /var/www/X.nl/devcorner/cgi-bin/

       <Directory />
               Options FollowSymLinks
               AllowOverride None
       </Directory>

       <Directory "/var/www/X.nl/devcorner/cgi-bin/">
               AllowOverride None
               Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
               Order allow,deny
               Allow from all
       </Directory>

       AddHandler php-fastcgi .php
       AddType application/x-httpd-php .php
       DirectoryIndex index.html index.php
       Action php-fastcgi /cgi-bin/php.fcgi
</VirtualHost>


Okay, internal server error:
code:
1
[Fri Aug 28 00:26:38 2009] [error] [client 80.101.69.69] (13)Permission denied: exec of '/var/www/X.nl/devcorner/cgi-bin/php.fcgi' failed

chmod +x gedraaid.


apache herstart

Oeps, vergeten SuexecUserGroup toe te voegen aan de vhost, dit is boudewijn boudewijn geworden.
Dat is dus een policy violation van suexec.

suexec.log:
code:
1
2
[2009-08-28 00:38:59]: uid: (1000/boudewijn) gid: (1000/boudewijn) cmd: php.fcgi
[2009-08-28 00:38:59]: cannot stat directory: (/var/www/X.nl/devcorner/cgi-bin)


Echter bestaat die dir wel en heeft hij boudewijn:boudewijn als owner.

Kan iemand me vertellen wat ik fout doe?
php.fcgi die daarin staat is uiteraard ook door die user geowned.

Zelfs chown -R 777 /var/www/X.nl/devcorner werkt niet :/. (wat trouwens een doodzonde is op een productiedoos)


Edit:

Hmm, ik ben er wat verder mee gekomen (hoger niveau directory was niet leesbaar) ,maar toch:

code:
1
2
[2009-08-28 01:44:06]: uid: (1000/boudewijn) gid: (1000/boudewijn) cmd: php.fcgi
[2009-08-28 01:44:06]: directory is writable by others: (/var/www/X.nl/devcorner/cgi-bin)



RTFM:
# Is the directory NOT writable by anyone else?

We don't want to open up the directory to others; only the owner user may be able to alter this directories contents.
code:
1
2
www:/var/www/X.nl# ls -ld /var/www/X.nl/devcorner
drwxr-x--- 5 boudewijn boudewijn 4096 2009-08-28 00:20 /var/www/X.nl/devcorner


En ook na een chmod go-rwx devcorner -R werkt het dus niet.

Shit, wat doe ik fout?

Even de checklist afgelopen:
1. Is the user executing this wrapper a valid user of this system?

2. Was the wrapper called with the proper number of arguments?

3. Is this valid user allowed to run the wrapper?

4. Does the target CGI or SSI program have an unsafe hierarchical reference?

5. Is the target user name valid?

6. Is the target group name valid?

7. Is the target user NOT superuser?

8. Is the target userid ABOVE the minimum ID number?

9. Is the target group NOT the superuser group?

10. Is the target groupid ABOVE the minimum ID number?

11. Can the wrapper successfully become the target user and group?

12. Can we change directory to the one in which the target CGI/SSI program resides?

13. Is the directory within the Apache webspace?

14. Is the directory NOT writable by anyone else?

15. Does the target CGI/SSI program exist?

16. Is the target CGI/SSI program NOT writable by anyone else?

17. Is the target CGI/SSI program NOT setuid or setgid?

18. Is the target user/group the same as the program's user/group?

19. Can we successfully clean the process environment to ensure safe operations?

20. Can we successfully become the target CGI/SSI program and execute?


1: Yep.
2: Lijkt me snor zitten. boudewijn:x:1000:1000:boudewijn,,,:/home/boudewijn:/bin/bash
3: Lijkt me ook okay: -rwsr-xr-- 1 root www-data 13392 2009-07-14 22:47 /usr/lib/apache2/suexec
4: Lijkt me gezien de error ook niet waarschijnlijk.
5+6+7+8: Check.
8: Ja, -D AP_UID_MIN=100 --> Mijn id is 1000.
9: Check.
10: Check.
grep boudewijn /etc/group
boudewijn:x:1000:
11: Ik zie niet in waarom niet, maar kan dit niet staven.
12: $ pwd; whoami --> /var/www/X.nl/devcorner/cgi-bin boudewijn
13: Yep , het zit in /var/www
14:
boudewijn@www:/var/www/X.nl/devcorner$ pwd ; ls -l
/var/www/X.nl/devcorner
total 12
drwx------ 2 boudewijn boudewijn 4096 2009-08-28 00:21 cgi-bin
drwx------ 2 boudewijn boudewijn 4096 2009-08-28 00:20 conf
drwx------ 2 boudewijn boudewijn 4096 2009-08-28 00:27 htdocs

15: check.
boudewijn@www:/var/www/X.nl/devcorner$ ls cgi-bin/ -l
total 4
-rwx------ 1 boudewijn boudewijn 197 2009-08-28 00:21 php.fcgi

16: Check, zie 15.

17: Check, zie 15.

18: Check, zie 15.

19: Lijkt me wel, en sowieso zou dat een andere error moeten geven.

20: Idem

[ Voor 41% gewijzigd door Boudewijn op 19-03-2013 23:03 ]


Verwijderd

Boudewijn misschien helpt dit je verder:

http://www.howtoforge.com...d-and-php5-on-debian-etch

  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 22:22
Als je gewoon PHP files wil runnen als de user van de php file: libapache2-mod-suphp. Suphp is ongeveer hetzelfde als de omslachtige oplossing met alles handmatig doen.

[ Voor 42% gewijzigd door gertvdijk op 28-08-2009 13:51 ]

Kia e-Niro 2021 64kWh DynamicPlusLine. 3x Victron MP-II op 15kWh US5000 3f thuisbatterij met 3x25A→3x40A PowerAssist, Victron EVCS, 3200Wp HoyMiles zp. my GitHub, my blog


  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
Mja ik wil atm vooral gebruikers scheiden.
mod-suphp is leuk, maar werkt alleen voor php.


Ik wil ook een paar perl scriptjes goed hebben :).

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
Ik heb even naar howtoforge gekeken en ik zie niet in waar zij iets anders metde rechten doen dan ik.
php + fcgi werkt gewoon, heb ik bewezen (door een vhost zonder suexecgroup te maken , die een simpele php file draait).
het ligt dus puur aan suexec.

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
* Boudewijn geeft nog maar even een schopje.

  • silentsnake
  • Registratie: September 2003
  • Laatst online: 15-01 11:20
Echter bestaat die dir wel en heeft hij boudewijn:boudewijn als owner.
Zitten er op de bovenliggende folders ook read en execute rechten voor de boudewijn user?

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

Topicstarter
jep, dat was wel het eerste wat ik controleerde ja.
Pagina: 1