Linux下PHP+Apache的26个必知的安全设置(7)
确保在/var/www/html/下,所有目录权限设成了0445:
#find/var/www/html/ -type d -print0 |xargs-0 -I {} chmod 0445 {}
关于设置合适文件权限的补充
chown和chmod命令确保:不管在什么情况下,文件根目录或文件根目录里面的文件都可以被Web服务器用户apache写入。请注意:你需要设置对你网站的开发模型最合理的权限,所以可以根据自身需要,随意调整chown和chmod命令。在这个示例中,Apache服务器以apache用户的身份来运行。这可以在你的httpd.conf文件中用User和Group命令来配置。apache用户需要对文件根目录下的所有内容享有读取访问权,但是不应该享有写入访问权。
确保httpd.conf有以下命令,实现限制性配置:
Options None
AllowOverride None
Order allow,deny
你只要在需要时才应该授予写入访问权。WordPress等一些Web应用程序及其他应用程序可能需要缓存目录。你可以使用以下命令,授予写入到缓冲目录的访问权:
# chmod a+w/var/www/html/blog/wp-content/cache ### block access to all ### #echo'deny from all' > /var/www/html/blog/wp-content/cache/.htaccess
第19个设置项:写保护Apache、PHP和MySQL配置文件
使用chattr命令来写保护配置文件:
# chattr +i /etc/php.ini # chattr +i /etc/php.d/* # chattr +i /etc/my.ini # chattr +i /etc/httpd/conf/httpd.conf # chattr +i /etc/chattr
命令还可以写保护/var/www/html目录中的一个php文件或多个文件:
# chattr +i /var/www/html/file1.php # chattr +i /var/www/html/
第20个设置项:使用Linux安全加载模块(如SELinux)
Linux自带各种安全补丁,可以用来防护配置不当或受到危及的服务器程序。可能的话,使用SELinux及其他Linux安全加载模块,对网络及其他程序实行限制。比如说,SELinux为Linux内核和Apache Web服务器提供了众多安全策略。要列出所有的Apache SELinux保护变量,请输入:
# getsebool -a | grep httpd
示例输出:
allow_httpd_anon_write --> off allow_httpd_mod_auth_ntlm_winbind --> off allow_httpd_mod_auth_pam --> off allow_httpd_sys_script_anon_write --> off httpd_builtin_scripting --> on httpd_can_check_spam --> off httpd_can_network_connect --> off httpd_can_network_connect_cobbler --> off httpd_can_network_connect_db --> off httpd_can_network_memcache --> off httpd_can_network_relay --> off httpd_can_sendmail --> off httpd_dbus_avahi --> on httpd_enable_cgi --> on httpd_enable_ftp_server --> off httpd_enable_homedirs --> off httpd_execmem --> off httpd_read_user_content --> off httpd_setrlimit --> off httpd_ssi_exec --> off httpd_tmp_exec --> off httpd_tty_comm --> on httpd_unified --> on httpd_use_cifs --> off httpd_use_gpg --> off httpd_use_nfs --> off
内容版权声明:除非注明,否则皆为本站原创文章。