linux网站目录及Apache权限的设置
apache服务器访问权限设置
禁止所有访问:Options Indexes FollowSymLinks 改为 Option None
Apache单个或多个目录禁止访问方法
这种方法通常用来禁止访问者访问后台管理目录或者程序目录,方法如下 1、打开apache配置文件httpd.conf
2、创建Directory块,比如禁止访问某个类库目录,可以这样实现 <Directory /var/www/www.leapsoul.cn/inc> Order Deny,Allow Deny from all </Directory>
上述代码实现了禁止所有用户访问www.leapsoul.cn下inc目录的功能。如要实现禁止访问所有目录中inc目录的功能,只要将
<Directory /var/www/www.leapsoul.cn/inc> 更改为
<Directory /var/www/www.leapsoul.cn/*/inc> 即可
3、重启Apache服务器。
只允许某个域名进行目录访问
1 2 3 4 5 <Directory /var/www/www.leapsoul.cn/inc> Order Deny,Allow Deny from abc.com Allow from apache.org </Directory>
上述代码实现禁止abc.com域中主机访问inc目录,允许apache.org域中主机访问inc目录的功能。
只允许或禁止某个IP进行目录访问
<Directory /var/www/www.leapsoul.cn/inc> Order Deny,Allow
Deny from 10.1.1.2 Allow from 192.168.1.0/255.255.255.0 </Directory>
上述代码实现禁止IP10.1.1.2访问www.leapsoul.cn/inc目录,允许IP192.168.1子网中的主机访问www.leapsoul.cn/inc目录的功能。
注意:Allow from 192.168.1.0/255.255.255.0等同于Allow from 192.168.1或Allow from 192.168.1.0/24
至此,通过配置Apache服务器我们可以实现禁止目录访问(列出目录或文件列表),也可以实现禁止访问单个或者多个目录,更可以对访问者进行控制,比如允许或禁止某个IP或者域名对目录进行访问,这些功能对提高和优化WEB服务器的安全性能是必不可少的方法。
Apache Server基于主机的访问控制
Apache Server默认情况下的安全配置是拒绝一切访问。假定Apache Server内容存放在/usr/local/apache/share 目录下,下面的指令将实现这种设置: Deny from all
Allow Override None
则禁止在任一目录下改变认证和访问控制方法。
同样,可以用特有的命令Deny、Allow指定某些用户可以访问,哪些用户不能访问,提供一定的灵活性。当Deny、Allow一起用时,用命令Order决定Deny和Allow合用的顺序,如下所示:
拒绝某类地址的用户对服务器的访问权(Deny)
如:Deny from all
Deny from test.cnn.com Deny from 204.168.190.13
Deny from 10.10.10.0/255.255.0.0
允许某类地址的用户对服务器的访问权(Allow)
如:Allow from all
Allow from test.cnn.com Allow from 204.168.190.13
Allow from 10.10.10.0/255.255.0.0
Deny和Allow指令后可以输入多个变量。
简单配置实例:
Order Allow, Deny Allow from all
Deny from www.test.com
指想让所有的人访问Apache服务器,但不希望来自www.test.com的任何访问。 Order Deny, Allow Deny from all
Allow from test.cnn.com
指不想让所有人访问,但希望给test.cnn.com网站的来访。
-----------------------------------------------------------------------
Linux下Apache网站目录读写权限的设置
网站目录文件权限的设置对网站的安全至关重要,下面简单介绍网站目录文件权限的基本设定。
我们假设http服务器运行的用户和用户组是www,网站用户为centos,网站根目录是/home/centos/web。
1、我们首先设定网站目录和文件的所有者和所有组为centos,www,如下命令:
chown -R centos:www /home/centos/web
2、设置网站目录权限为750,750是centos用户对目录拥有读写执行的权限,这样centos用户可以在任何目录下创建文件,用户组有有读执行权限,这样才能进入目录,其它用户没有任何权限。
find -type d -exec chmod 750 {} \;
3、设置网站文件权限为640,640指只有centos用户对网站文件有更改的权限,http服务器只有读取文件的权限,无法更改文件,其它用户无任何权限。
find -not -type d -exec chmod 640 {} \;
4、针对个别目录设置可写权限。比如网站的一些缓存目录就需要给http服务有写入权限。例如discuz x2的/data/目录就必须要写入权限。
find data -type d -exec chmod 770 {} \;