eine eigene partition mit read only würde nicht gehen, weil es wie du schon gesagt hast, es u.a. auch ein tmp odner gibt, der beschrieben werden muss von dem webserver user "www-data".
also fasse ich nochmal zusammen:
rechte richtig vergeben bzw entziehen, als eigentümer "root" und gruppe "www-data".
Code: Select all
chown -R root:www-data /var/www/
chmod 550 /var/www/default/
chmod 550 /var/www/test.com/
chmod 440 /var/www/test.com/test.php
chmod 0770 /var/www/tmp/
lighttpd default (unabhänig vom vhost) ein ordner höher setzen als /var/www/, damit niemand über die server ip in falsche ordner gehen kann, oder auch zb mod_auth umgehen könnte!
Code: Select all
server.document-root = "/var/www/default/"
außerdem in php selbst das leben schwer machen. z.b. bekommt jede vhost eigene open_basedir pfade.
Code: Select all
open_basedir = /var/www/test.com/:/var/www/tmp/
upload_tmp_dir = /var/www/tmp/
disable_functions = file_get_contents,symlink,debug_backtrace,fsockopen,pfsockopen,proc_open,proc_nice,proc_terminate,proc_close,proc_get_status,shell_exec,exec,passthru,system,popen,highlight_file,diskfreespace,disk_free_space,disk_total_space,show_source,php_uname,ini_alter,ini_restore,ini_set,getrusage,get_current_user,set_time_limit,getmyuid,getmypid,dl,leak,stream_socket_accept,stream_socket_client,stream_socket_get_name,stream_socket_recvfrom,stream_socket_sendto,stream_socket_server,proc_nice,pcntl_getpriority,pcntl_wait,get_headers,headers_list,memory_get_peak_usage,stream_socket_shutdown,escapeshellcmd,url_fopen
viel mehr sicherheit ist wohl nicht möglich, oder?
danke.