apache服务器URL访问管理,apache服务器url
个人的云服务器好久没有管理过了,今天看了看服务器的安全情况,把我吓了一跳。
虽然我注重安全,更改了端口,
php文件也进行了相对严格的防注入措施,但是我的apache代理...已经不想说什么了...
不仅没有对url进行严格的过滤和重写...就连indexes功能都没有关闭...可怕,没注意到这块。
果断重写配置了一下服务器,对apache的简单管理主要通过修改Apache配置文件httpd.conf来实现的,
我这里就简单总结一些常用的规则。
对外显示网站目录是很可怕的事情,首先我们要关闭apache服务器的目录浏览功能
一般情况下在服务器搭建的所有网站都没有启用目录浏览的需求,那么我们可以通过修改httpd文件一步到位
打开httpd文件搜索Options 找到indexes一项,在前面添加-号即可。
当然如果你不想统一关闭目录浏览功能也可以写在vhosts里面,在vhost网站跟目录配置项里面添加Options -Indexes就可以了。
虽然禁止了apache服务器的目录浏览功能,但是你的常用目录名称文件名称还有你的配置文件、私有资源可能会被猜到
这时候就需要禁止访问敏感文件了
首先我们可以在vhost网站配置项里面增加一个Files选项
<Files ~ ".inc$">
Order allow,deny
Deny from all
</Files>
这样就可以禁止访问inc配置文件
当然你也可以用更为强大的 <FilesMatch regex> ... </FilesMatch>
他支持正则匹配,写起来就十分便捷
如果你不想让你的私有图片被访问可以用他实现
<FilesMatch .(?i:gif|jpe?g|png)$>
Order allow,deny
Deny from all
</FilesMatch>
我只是禁止了常见的图片格式,当然你也可以继续添加其他图片格式,除了图片,也可以添加txt inc conf这种配置文件一步到位~
还有就是目录,如果某些目录不想被访问可以用Directory,DirectoryMatch选项更为强大,加入了正则功能方法同理
<Directory ~ "^/www/text">
Order allow,deny
Deny from all
</Directory>
还有一种就是对url的过滤,效果基本等同于directory,
<Location /jw/>
Order allow,deny
Deny from all
</Location>
这样可以禁止所有出现/jw/的url请求,jw字段支持简单的正则/(jw|j|w)/这样就同时禁止了三个~
<Proxy http://csdn.net/*>
Order allow,deny
Deny from all
</Proxy>
#这个可以针对代理方式禁止对某些目标的访问
Deny from 10.0.0.1 #阻止一个IP
Deny from 192.168.0.0/24 #阻止一个IP段
<Directory "/var/www/web/">
Order deny,allow
Deny from all
All from example.com #允许某个域名
All from 10.0.0.1 #允许一个iP
All from 10.0.0.1 10.0.0.2 #允许多个iP
Allow from 10.1.0.0/255.255.0.0 #允许一个IP段,掩码对
All from 10.0.1 192.168 #允许一个IP段,后面不填写
All from 192.168.0.0/24 #允许一个IP段,网络号
</Directory>
以上方法可以禁止某些IP访问或者只允许某些IP访问 (这个是我网上抄的...我没这个需求,在这里写了以便以后需要的时候使用)
好啦剩下的就是我将要总结的url重写了,我放在下一篇来写吧~
评论暂时关闭