apache的访问控制设置

客户机地址访问控制

方法

1)主要通过配置项Order,Deny from ,Allow from来限制客户机的主机名或ip。其中Order用于设置限制顺序,Denyfrom ,Allow from用户设置具体内容

2)设置Order 项时可用allow,deny 或deny,allow决定主机应用允许拒绝的先后顺序

allow,deny  先允许后拒绝,默认拒绝所有未明确允许的客户机

deny,allow 先拒绝后允许,默认允许所有未明确拒绝的客户机

3)使用allow from或者deny from时候,后面可以是ip地址,网络地址,主机名,域名,使用“all”时表示任意地址

举例

1)设置仅允许某个ip访问www网站

<Directory"/usr/local/httpd-2.4.4/htdocs/www">
       Options Indexes FollowSymLinks
       AllowOverride None
       Orderallow,deny
       Allow from192.168.254.10
</Directory>

客户机192.168.254.10能正常访问

[[email protected] ~]# ifconfig eth0

eth0     Link encap:Ethernet  HWaddr00:0C:29:9A:E1:E1

inet addr:192.168.254.10  Bcast:192.168.254.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe9a:e1e1/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1

RX packets:361 errors:0 dropped:0 overruns:0 frame:0

TX packets:259 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:35962 (35.1 KiB)  TXbytes:35706 (34.8 KiB)

[[email protected] ~]# elinks -dumpwww.beyondjie.com

www.beyondjie.com

但是本机访问本机的www网站就会提示没权限,但是bbs就可以

[[email protected]_Server ~]# elinks -dumpwww.beyondjie.com

Forbidden

You don‘t have permission to access / on this server.

[[email protected]_Server ~]# elinks -dumpbbs.beyondjie.com

bbs.beyondjie.com

2)设置仅拒绝192.168.254.0/24的ip段访问

<Directory"/usr/local/httpd-2.4.4/htdocs/www">
       Options Indexes FollowSymLinks
       AllowOverride None
       Order deny,allow
       deny from 192.168.254.0/24
</Directory>

客户机192.168.254.10访问www出错,bbs正常

[[email protected] ~]# elinks -dumpwww.beyondjie.com

Forbidden

You don‘t have permission to access / on this server.

[[email protected] ~]# elinks -dumpbbs.beyondjie.com

bbs.beyondjie.com

现在修改本机的hosts文件,使域名对应172网段的IP,并测试访问

[[email protected]_Server ~]# tail -1/etc/hosts

172.16.254.29  www.beyondjie.com bbs.beyondjie.com

[[email protected]_Server ~]# elinks -dumpbbs.beyondjie.com

bbs.beyondjie.com

[[email protected]_Server ~]# elinks -dumpwww.beyondjie.com

www.beyondjie.com

提示:把域名对应的IP修改之后,同时需要把虚拟主机中的映射IP修改了

<VirtualHost192.168.254.100:80>------> <VirtualHost 172.16.254.29:80>

用户访问控制

认证方式

httpd服务器支持使用摘要认证(Digest)和基本认证(basic)两种方式。使用摘要认证需要在编译之前添加“—enable-auth-digest”选项,但是并不是所以浏览器都支持摘要认证,用得最多的就是基本认证

设置用户访问控制

1)创建用户认证的数据库文件

[[email protected]_Server ~]# htpasswd -c/usr/local/httpd/conf/.user_db admin
New password: 
Re-type new password: 
Adding password for user admin
[[email protected]_Server ~]# ls -a/usr/local/httpd/conf/
.  extra       httpd.conf.b    magic      original
.. httpd.conf  httpd.conf.bak  mime.types .user_db

提示:

-c表示创建数据库文件,当这个文件存在时就不用使用该参数

admin为用户

htpasswd其他参数

 -c 创建一个加密文件

  -n 不更新加密文件,只将apache htpasswd命令加密后的用户名密码显示在屏幕上

  -m 默认apache htpassswd命令采用MD5算法对密码进行加密

  -d apache htpassswd命令采用CRYPT算法对密码进行加密

  -p apache htpassswd命令不对密码进行进行加密,即明文密码

  -s apache htpassswd命令采用SHA算法对密码进行加密

  -b 在apache htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码

  -D 删除指定的用户

  在Windows, NetWare and TPF 系统中‘-m’选项是默认的,在使用apache htpasswd命令时可以忽略。在其他系统中,’-p’选项可能不能工作。

2)添加用户授权配置,使访问bbs需要用户授权

<Directory"/usr/local/httpd-2.4.4/htdocs/bbs">
       Options Indexes FollowSymLinks
       AllowOverride Authconfig
       Order allow,deny
       allow from all
       AuthName "Please Login"
       AuthType basic
       AuthUserFile "/usr/local/httpd/conf/.user_db"
       require valid-user
</Directory>

提示:

AuthName 定义受保护的领域名称,在浏览器访问的时候会显示

AuthType 设置认证类型

AuthUserFile 设置用于用户认证帐号密码的数据库文件所在位置

require 要求只有认证文件中的合法用户才能访问,其中valid-user表示所有合法用户,若只授权给单个用户,则改为指定的用户名

3)在客户机上访问结果

在这里提示httpd-2.4.4的一个bug.在httpd-2.2版本中没遇到过

当创建完用户密码文件之后,也在httpd.conf中配置完成,用户访问的时候,输入密码没错,但是就是访问不成功,服务器上错误日志

[[email protected]_Serverconf]# tail -f /usr/local/httpd-2.4.4/logs/bbs.beyondjie.com-error_log

[ThuDec 18 11:56:38.101959 2014] [auth_basic:error] [pid 4346:tid 139784973178624][client 192.168.254.19:63319] AH01617: user man: authentication failure for"/": Password Mismatch

[ThuDec 18 11:57:43.220895 2014] [auth_basic:error] [pid 4350:tid 139784804599552][client 192.168.254.19:63320] AH01617: user fuzj: authentication failure for"/": Password Mismatch

大致意思是用户的密码不正确,但是创建密码文件的时候百分之百的确定没错,就是授权不成功。这里需要使用下面该命令重新生成一下用户名和密码即可

htpasswd-b 密码文件 用户名 用户新密码

时间: 2024-11-13 09:52:48

apache的访问控制设置的相关文章

Apache(Apache的访问控制)

Apache的访问控制: 1.基于客户端ip的访问控制 2.基于用户认证 建立实验素材 rhel7 ip:192.168.1.18 rhel8 ip:192.168.1.10 在7中连接8时 ssh [email protected] -X mkdir /var/www/html/westosvim /var/www/html/westos/index.html<h1>westosdir's page </h1> 测试 firefox http://192.168.1.10/wes

在Apache Tomcat 7设置redis作为session store

在Apache Tomcat 7设置redis作为session store redis已经有组件支持直接在tomcat7中设置下将redis作为tomcat默认的session存储器,下面介绍下配置过程 1.从http://redis.io/下载redis,按照redis服务端 wget http://download.redis.io/redis-stable.tar.gz tar xvzf redis-stable.tar.gz cd redis-stable make 2.启动redis

[Windows Server 2012] Apache+PHP安全设置

★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:Win2012 R2 Apache+PHP安全设置 ·Apache默认是以系统服务运行,运行账户为 SYSTEM ,这样非常危险.需要降权并给予适当的读 写权限. 1.本节是接上一节“Apache+PHP安装方法”课程,因此Apache已经安装配置好. 2.建立一个运行 Apache 的系统账户 1)新增一个

Apache 反向代理设置

环境: Debian7.5 + apache2.2.24(wdcp/wdlinux) 1.转至apache源码包的proxy目录: cd /v/softs/lanmp/httpd-2.2.24/modules/proxy 2.执行apxs命令,编译得到mod_proxy.so: sudo /www/wdlinux/apache/bin/apxs -c -i -a mod_proxy.c mod_proxy_connect.c mod_proxy_http.c proxy_util.c #命令完成

Apache HttpAsyncClient 如何设置per request timeout

最近做一个项目时用到HttpAsyncClient:因项目所需,要求能对一个具体的request 设置连接和读写超时:但发现在HttpAsyncClient中,只有在创建一个HttpAsyncClient实例时才能通过RequestConfig设置一个timeout,除此之外并没有一个接口可以设置单个请求的超时.为了达到项目的要求,只有从把HttpAsyncClient的源码大致读了一遍,一是希望能从源码中找到设置超时的方法,二是希望,如果确实没有办法,能仿照源码写一个可控制超时的HttpAsy

Apache服务器上设置404错误页面

Apache服务器上设置404错误页面 基于ubuntu 16.04系统,使用 apache 进行设置 配置步骤 添加404页面 在所配置网站的根目录添加编辑好的 404.html 修改localized-error-pages.conf配置文件 localized-error-pages.conf位于 /etc/apache2/conf-enabled目录下 把#ErrorDocument 404 /404.html 去掉# 重启 apache 服务器 /etc/init.d/apache2

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   

Apache配置访问控制、禁用php解析、rewrite伪静态、限定user_agent

访问控制 以下针对apache虚拟主机配置 网站访问,限制指定ip才可以访问.只允许内网登录,不允许其他地址登录. Order定义顺序,先deny,然后执行下面的deny from all,然后执行allow,再执行allow from 127.0.0.1,意思是拒绝所有的,只允许本地可以访问. <Directory /data/www/> <filesmatch ".*">      Order deny,allow      Deny from all  

Apache优化——访问控制

11.25 配置防盗链 编辑虚拟主机配置文件: [[email protected] ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80>DocumentRoot "/data/wwwroot/111.com"ServerName 111.comServerAlias www.example.com<Directory /data/wwwroot/111.com>