apache完全控制访问(禁止部分Ip或密码验证的访问许可)的配置方法

发布时间:2019-12-28编辑:脚本学堂
本文介绍下,在apache中进行访问控制的方法,比如禁止部分Ip的访问,某些用户访问必须提供认证信息等。有需要的朋友,参考下吧。

apache发布内部站点:
环境:公司内部网络,通过专线上网,其中一台发布一些公司信息,

要求:
1,公司内部网段192.168.*.* 全部允许访问站点,不需要认证。
2,外网分公司同时能使用站点,但需要提供用户名与密码信息。

首先,在httpd.conf 中修改设置如下:
 

复制代码 代码示例:
alias /forum "/home/httpd/forum/"
<Directory "/home/httpd/forum">
    Options Indexes FollowSymLinks
    AllowOverride AuthConfig
    Order allow,deny
    Allow from 192.168
    Satisfy all
</Directory>

然后,在需要发布信息的站点下编辑.htaccess文件,更改后内容如下:
 

复制代码 代码示例:
AuthName "Login ... ..."
AuthType Basic
AuthUserFile /home/httpd/forum_passwd
require valid-user
satisfy any

使用htpasswd生成用户名密码存放在forum_passwd下。

附:有关apache用户认证的配置实例。

一,基本的Apache用户认证方法:

若对某一目录下的文件如/home/ftp/pub需要做到用户认证,则在httpd.conf中加入:
 

复制代码 代码示例:
options indexes followsymlinks
allowoverride authconfig
order allow,deny
allow from all

在目录/home/ftp/pub下放文件.htaccess,如下:
 

复制代码 代码示例:
authname "shared files"
authtype basic
authuserfile /etc/.passwd
require valid-user

随Apache来的程序htpasswd 生成文件/etc/.passwd,每行一个用户名:密码

只要能提供正确的用户名和密码对,就允许登录访问,这是针对任何地址来的请求都要求提供用户名和密码认证。

二,针对部分网段或地址要求认证。

若公司LAN所在网段为192.168.0.0/24,且有一防火墙专线接入Internet,内部网卡的地址为192.168.0.1/32,希望所有通过拨本地163通过防火墙上的apache反向代理向LAN
上的另一WWW服务器访问时需要认证,而本地LAN上的用户不需认证。

可以在httpd.conf中放入:
 

复制代码 代码示例:
<Directory /home/ftp/pub>
Options Indexes FollowSymLinks
AllowOverride AuthConfig
order deny,allow
deny from 192.168.0.1
</Directory>

且在/home/ftp/pub/.htaccess中放入:
 

复制代码 代码示例:
AuthName "shared files"
AuthType Basic
AuthUserFile /etc/.passwd
require valid-user
satisfy any

三,对同一目录及其下的子目录有不同的权限,仅某些人可以存取一目录下的子目录。
如有一目录/home/ftp/pub/sales,有三个用户user1,user2,user3都需要用户名和密码进入/home/ftp/pub,但仅user1,user2能进入/home/ftp/pub/sales。
则在文件httpd.conf中添加如下的内容:
 

复制代码 代码示例:

<Directory /home/ftp/pub>
Options Indexes
AllowOverride AuthConfig
order allow,deny
allow from all
</Directory>

<Directory /home/ftp/pub/sales>
Options Indexes
AllowOverride AuthConfig
order allow,deny
allow from all
</Directory>

且/home/ftp/pub/.htaccess内容为:
 

复制代码 代码示例:
AuthName "shared files"
AuthType Basic
AuthUserFile /etc/.passwd
require valid-user

且/home/ftp/pub/sales/.htaccess内容为:
 

复制代码 代码示例:
AuthName "shared files"
AuthType Basic
AuthUserFile /etc/.passwd
AuthGroupFile /etc/.salesgroup
require group manager

且文件/etc/.passwd内容为:
 

user1:passwd1
user2:passwd2
user3:passwd3

且文件/etc/.salesgroup内容为:
 

manager: user1 user2