分享下apache的每个站单独分配一个用户,先假设下,系统 /data 目录下 有www.abc.com 和www.bbs.com ,要实现的目的就是比如www.abc.com被入侵,入侵者看不到并且修改不了www.bbs.com站内的文件。www.abc.om 用abc用户,www.bbs.com用bbs用户。
apache装完都有www-data用户www-data用户组,所以网站都是以这个用户用户组运行,要权限单独出来先建两个用户。
useradd -g www-data -d /dev/null -s /usr/sbin/nologin abc
useradd -g www-data -d /dev/null -s /usr/sbin/nologin bbs
然后 apt-get install apache2-mpm-itk (安全权限分离的安全模块)
再添加虚拟主机时候添加下指定用户
<VirtualHost *:80>
DocumentRoot “/var/www/www.abc.com”
ServerName www.abc.com
CustomLog /var/log/apache2/www.abc.com.log combined
AssignUserId abc www-data
<Directory “/var/www/www.abc.com”>
allow from all
Options -Indexes
</Directory>
</VirtualHost>
然后重启下apache,这样每个网站运行用户就分离出来了,然后就是设置目录以及文件权限了,
chown root.root /data
chmod 751 /data (这样就可以禁止其它组查看该目录的权限,入侵者就看不到/data下有那些网站目录,当然你可以来个711 什么的)
cd /data
chown abc.www-data www.abc.com
chmod 500 www.abc.com
cd www.abc.com
chmod -R 700 upload 因为这个目录要上传,所以要给写人的权限
chmod -R 500 images 图片目录给500就可以,不需要写入,400也应该可以
chmod -R 500 *.php 防止php或者html被挂马,给个500或者400就行
就这些,就算自己做了个笔记,以后这块的安全设置还是用的着。
后续一:
经过几天的运行感觉这模块会限制流量,服务器只能跑到10M的流量,怎么都不会超过这个值,然后网站打开很慢,开始以为机房限速了,网线和接口都换 了还是不能超过10M,再怀疑网卡问题,服务器两个网卡对换下还是不行,因为前面是LVS,我就把这台后端给切掉,用另外一台4G内存没装这个模块的服务 器跑,到到10多M速度照样很快,开始真有点想不通,不可能是系统问题,再说也是8G内存,比4G大了一倍,过了一天才想到这个问题,后来 aptitude purge apache2-mpm-itk 后才恢复,看样子 apt-get的确实有问题,即使网站没AssignUserId abc www-data 没调用这个模块都会限速。所以这个模块需要编译安装试下。
后续二:
过了几天,去GG搜了搜,发现国外很多论坛关于apache这模块,有这样的设置:
<IfModule itk.c>
AssignUserID www-data www-data
StartServers 5
MinSpareServers 10
MaxSpareServers 20
ServerLimit 1500
MaxClients 1500
MaxRequestsPerChild 10000
</IfModule>
这才让我恍然大悟,apache2ctl -l 查看下,发现还是用的 itk.c 模块,所以 aptitude purge apache2-mpm-itk 后才让他恢复默认的 mpm_prefork 模式。
# apache2ctl -l
Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
itk.c
http_core.c
mod_so.c
发表于: 2011-07-12,修改于: 2011-07-12 15:13
from http://blogold.chinaunix.net/u/26257/showart_2597688.html
0 条评论。