设为首页 收藏本站
查看: 1153|回复: 0

[经验分享] apache的访问控制设置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-19 08:43:50 | 显示全部楼层 |阅读模式
客户机地址访问控制方法

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网站
1
2
3
4
5
6
<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能正常访问
[iyunv@Client ~]# 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)

[iyunv@Client ~]# elinks -dumpwww.beyondjie.com
                               www.beyondjie.com
但是本机访问本机的www网站就会提示没权限,但是bbs就可以
[iyunv@Apache_Server ~]# elinks -dumpwww.beyondjie.com
                                   Forbidden

  You don't have permission to access / on this server.
[iyunv@Apache_Server ~]# elinks -dumpbbs.beyondjie.com
                              bbs.beyondjie.com
2)设置仅拒绝192.168.254.0/24的ip段访问
1
2
3
4
5
6
<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正常
[iyunv@Client ~]# elinks -dumpwww.beyondjie.com
                                   Forbidden

  You don't have permission to access / on this server.
[iyunv@Client ~]# elinks -dumpbbs.beyondjie.com
                               bbs.beyondjie.com
现在修改本机的hosts文件,使域名对应172网段的IP,并测试访问
[iyunv@Apache_Server ~]# tail -1/etc/hosts
172.16.254.29  www.beyondjie.com bbs.beyondjie.com
[iyunv@Apache_Server ~]# elinks -dumpbbs.beyondjie.com                    
                              bbs.beyondjie.com
[iyunv@Apache_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)创建用户认证的数据库文件
1
2
3
4
5
6
7
[iyunv@Apache_Server ~]# htpasswd -c/usr/local/httpd/conf/.user_db admin
New password:
Re-type new password:
Adding password for user admin
[iyunv@Apache_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需要用户授权
1
2
3
4
5
6
7
8
9
10
<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)在客户机上访问结果
QQ截图20141219084256.jpg
QQ截图20141219084304.jpg

在这里提示httpd-2.4.4的一个bug.在httpd-2.2版本中没遇到过
当创建完用户密码文件之后,也在httpd.conf中配置完成,用户访问的时候,输入密码没错,但是就是访问不成功,服务器上错误日志
[iyunv@Apache_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 密码文件 用户名 用户新密码


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-38261-1-1.html 上篇帖子: apache日志管理 下篇帖子: apache关于记录真实客户端ip和不记录健康检查日志
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表