apache配置黑名单和白名单及账户权限控制

apache配置黑名单和白名单的两个方法

为项目需要,部署之后客户需要实现白名单功能。以前一般使用iis服务器或者是网上的DZ或CP面板,而且也仅仅操作过黑名单。百度搜索,基本都是黑名单的操作方法,本文章主要是讲使用apache来规则实现黑白名单,从程序角度实现的就不在陈述,PHP程序可以直接获取客户端IP在初始化class或者login方法实现禁止或仅允许区段IP通过访问。

方法1:通过apache的虚拟主机配置文件httpd.conf来控制,本方法适用于自己架设的服务器,一般虚拟主机是不能接触到httpd.conf文件的。
    
#白名单,仅允许192.168.0.1以及192.168.1.1-192.168.1.255访问
<Directory "D:/htdocs">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    #以下为关键代码
    Order Deny,Allow
    Allow from 192.168.0.1
    Allow from 192.168.1.0/24
    Deny from All
</Directory>
 
#黑名单,禁止192.168.0.1以及192.168.1.1-192.168.1.255访问
<Directory "D:/htdocs">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    #以下为关键代码
    order allow,deny  
    allow from all  
    deny from 192.168.0.1
    deny from 192.168.1.
</Directory>

方法2:通过apache的虚拟主机的伪静态文件.htaccess来控制,本方法适用于支持.htaccess的所有主机。

#白名单,仅允许192.168.0.1以及192.168.1.1-192.168.1.255访问
Order Deny,Allow
Allow from 192.168.0.1
Allow from 192.168.1.0/24
Deny from All
#黑名单,禁止192.168.0.1以及192.168.1.1-192.168.1.255访问
order allow,deny  
allow from all  
deny from 192.168.0.1
deny from 192.168.1.

PS:192.168.1.0/24与192.168.1. 等价,仅为不同书写格式。

apache层的账户权限控制,以及apache黑名单白名单过滤功能

1. 修改虚拟主机配置

<Directory /var/www>#目录路径
                ...
                AllowOverride All #允许.htaccess覆盖配置文件,使.htaccess生效
                ...
</Directory(允许)

2.在需要权限控制的目录下创建.htaccess

#比如要控制 /var/www/quanxian 目录,在/var/www/quanxian目录中创建.htaccess文件,填写如下内容

AuthUserFile /var/www/quanxian/.htpwd #[权限控制文件]
AuthType Basic
AuthName "[描述信息]"
ErrorDocument 401 /var/www/err_401.html #这句话是可以没有的
require valid-user #认证方式:用户认证(valid-user)或组认证(valid-group).

3.生成加密文件

sudo htpasswd -bc /var/www/quanxian/.htpwd wangdatestuser wangdatestpwd #

htpasswd的命令详解网上有好多,copy一个过来(http://hi.baidu.com/luoxiandong99/item/bd14b7462fe61ef7bdf45140)

##################################################################################################

apache htpasswd命令选项参数说明

-c 创建一个加密文件
-n 不更新加密文件,只将apache htpasswd命令加密后的用户名密码显示在屏幕上
-m 默认apache htpassswd命令采用MD5算法对密码进行加密
-d apache htpassswd命令采用CRYPT算法对密码进行加密
-p apache htpassswd命令不对密码进行进行加密,即明文密码
-s apache htpassswd命令采用SHA算法对密码进行加密
-b 在apache htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码
-D 删除指定的用户

apache htpasswd命令用法实例

1、利用htpasswd命令添加用户

htpasswd -bc D:\licang\passwd yingzi 1234

2、在原有密码文件中增加下一个用户

htpasswd -b D:\licang\passwd ludi 1234

3、如何不更新密码文件,只显示加密后的用户名和密码

htpasswd -nb yingzi 1234

4、利用htpasswd命令删除用户名和密码

htpasswd -D D:\licang\passwd yingzi

5、利用htpasswd命令修改密码

htpasswd -D D:\licang\passwd yingzi

htpasswd -b D:\licang\passwd yingzi 5678

##################################################################################################

4.以上就配置完整体的基于apache层的账户访问权限控制,

a.创建白名单,只有(192.168.1.1, 和 192.168.1.2)能访问这个目录

在.htaccess中加入下面的内容

Order Deny,Allow#(1)
Allow from 192.168.1.1 192.168.1.2#(2)
Deny from All#(3)
#注意(1)的顺序,它很重要,(2),(3)的顺序不重要,意思是先拒绝所有的访问,再看看是否在Allow的明白里,如果在的话,就通过

b.创建黑名单,(192.168.1.1, 和 192.168.1.2)不能能访问这个目录

在.htaccess中加入下面的内容

Order Allow,Deny #(1)
Allow from all#(2)
Deny from 192.168.1.1 192.168.1.2#(3)
#注意(1)的顺序,它很重要,道理同白名单

apache rewrite规则实现白名单

今天弄了半天apache 的rewrite 规则,还是没有配置出符合的规则。后一同事,研究了半个小时弄出来,很是惭愧。

需求:
    六个文件的入口,其他都重定向到index

自己的思路:
    正则找出不是六个文件的URL的模式,进行过滤。

对比同事的结果,自己思路的问题:
    1. 想找出所有不符合规则的,越想越多,无法下手。----------------   思路错误,应该 制定白名单,
    2. 概念错误, 弄错 REQUEST_URI 和 REQUEST_STRING 的概念   基础知识不牢固。

最后结果:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^/(.*) /index.asp$1 [L]
RewriteCond %{REQUEST_URI} ^/index.asp [NC,OR]
RewriteCond %{REQUEST_URI} ^/o.asp [NC,OR]
RewriteCond %{REQUEST_URI} ^/s.asp [NC,OR]
RewriteCond %{REQUEST_URI} ^/error.asp [NC,OR]
RewriteCond %{REQUEST_URI} ^/favicon.ico [NC,OR]
RewriteCond %{REQUEST_URI} ^/status.taobao [NC,OR]
RewriteCond %{REQUEST_URI} ^/app/thirdparty/webbox.asp [NC,OR]
RewriteCond %{REQUEST_URI} ^/static/ [NC]
RewriteRule ^.* - [L]
RewriteCond %{REQUEST_URI} !^/index.asp$
RewriteRule ^.* ? [F,L]
</IfModule>

时间: 2024-10-01 06:00:25

apache配置黑名单和白名单及账户权限控制的相关文章

centOS7 下利用iptables配置IP地址白名单的方法_Linux

编辑iptables配置文件,将文件内容更改为如下,则具备了ip地址白名单功能 #vim /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -N whitelist -A whitelist -s 1.2.3.0/24 -j ACCEPT -A whitelist -s 4.5.6.7 -j ACCEPT -A INPUT -m state --state

Google谷歌黑名单与白名单

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断淘宝客 站长团购 云主机 技术大厅 全球最大的搜素引擎Google谷歌对于搜索结果实行的一直是"黑名单"制度,即对于一些谷歌认定的"不守规矩"的网站实行特别的政策,以促使搜索结果更加符合谷歌的规则;但在某些特殊地区,实行特别的"白名单"政策,特别的政策,给特别的"你". 谷歌实行的搜索结果&

apache rewrite规则实现白名单_Linux

需求: 六个文件的入口,其他都重定向到index 自己的思路: 正则找出不是六个文件的URL的模式,进行过滤. 对比同事的结果,自己思路的问题: 1. 想找出所有不符合规则的,越想越多,无法下手.----------------   思路错误,应该 制定白名单, 2. 概念错误, 弄错 REQUEST_URI 和 REQUEST_STRING 的概念   基础知识不牢固. 最后结果: 复制代码 代码如下: <IfModule mod_rewrite.c> RewriteEngine on Re

Linux服务器安全配置实例(二)用户账户权限配置

没有绝对的安全 在上一篇文章<linux服务器安全配置实例(一)>中介绍了我对ssh服务的一些常用的安全配置和性能优化. 其实ssh服务是我们进入服务器的一扇大门,这扇大门是提供正常人使用钥匙打开后进屋的.而对于一些恶意的小伙伴,他们会使用一些非法的方式,比如走窗户.暴力开锁等去不经过我们的同意就进屋大肆破坏. 走窗户:通过一些系统的0day漏洞或者第三方服务以及软件的漏洞溢出或者注入,在服务器中运行恶意的代码来得到登陆权限. 暴力开锁:通过一些暴力破解软件,暴力破解我们的ssh服务.网站管理

中国网络管理或将普及白名单 前所未有的整顿

中介交易 SEO诊断淘宝客 站长团购 云主机 技术大厅 "白名单"制度似乎正在成为一种趋势.本报22日报道了安徽最大的IDC(互联网数据中心)接入商"炎黄网络"启用机房域名白名单制度,没进名单的网站一律无法访问,上万网站随即关闭.记者了解到,面对"互联网前所未有的清理整顿工作",全国各地多家IDC接入商都在出台类似政策,以一刀切的白名单制度来避免损失. 中国域名管理正在发生变化,从规定哪些域名不能访问的黑名单制度,向规定只有哪些域名才能访问的白名

网易闪电邮白名单与黑名单怎么设置

  如果您不信任一个地址或一个域,您希望完全不提示您就拒收来自这个地址或域的邮件,那么,您可以选择将它添加到黑名单.同样,如果您信任一个地址或一个域,您可以选择将它添加到白名单.

php实现ip白名单黑名单功能

 本文给大家分享了2个php用于实现黑白名单的实用函数,分别是安全IP检测函数和获取客户端IP函数,注释里解释的非常清楚,这里我就不多废话了.     这个是一个检测ip是否非法的php函数,适应于白名单,黑名单功能开发,主要场景应用于:api来源限制,访问限制等.   代码如下: /** * 安全IP检测,支持IP段检测 * @param string $ip 要检测的IP * @param string|array $ips 白名单IP或者黑名单IP * @return boolean tr

php实现ip白名单黑名单功能_php技巧

这个是一个检测ip是否非法的php函数,适应于白名单,黑名单功能开发,主要场景应用于:api来源限制,访问限制等. 复制代码 代码如下: /**  * 安全IP检测,支持IP段检测  * @param string $ip 要检测的IP  * @param string|array $ips  白名单IP或者黑名单IP  * @return boolean true 在白名单或者黑名单中,否则不在  */ function is_safe_ip($ip="",$ips="&q

DevOps实践 - 白名单二三事

为何加白名单是一件痛苦的事? 白名单的需求,即我们的部分应用,出于数据的敏感性与安全性,需要让指定的外包公司能访问,但其他外网用户不能访问的一种需求. 需求已明确,再看下我们之前的架构是否是天然支持这种需求. 一个域名接入阿里环境的应用,无非走VIP或者是统一接入层. VIP: 内网给机器间调用,办公网给办公环境访问,互联网给所有外部用户访问,跨域给7网分离的网络间调用,可以看到VIP并不天然支持外包公司的精细接入需求. 统一接入层: 最早统一接入层只有主站集群,给所有外部用户访问,只是随着架构