虚拟服务器添加用户白名单,apache配置黑名单和白名单及账户权限控制

本文详细介绍了在Apache服务器上配置IP白名单和黑名单的方法,包括通过httpd.conf和.htaccess文件进行设置,并提供了账户权限控制的步骤,涉及Apache的Order指令、Allow与Deny规则以及htpasswd命令的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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访问

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

#黑名单,禁止192.168.0.1以及192.168.1.1-192.168.1.255访问

Options Indexes FollowSymLinks Includes ExecCGI

AllowOverride All

#以下为关键代码

order allow,deny

allow from all

deny from 192.168.0.1

deny from 192.168.1.

方法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. 修改虚拟主机配置

#目录路径

...

AllowOverride All #允许.htaccess覆盖配置文件,使.htaccess生效

...

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 的概念   基础知识不牢固。

最后结果:

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]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值