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:
Verder uiteraard ook php.fcgi aangemaakt:
En in mijn vhosts file van dat domein:
Okay, internal server error:
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:
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:
RTFM:
En ook na een chmod go-rwx devcorner -R werkt het dus niet.
Shit, wat doe ik fout?
Even de checklist afgelopen:
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
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 ]