成功最有效的方法就是向有经验的人学习!

Apache访问控制之虚拟主机配置

在上一次的测试中可以看到在访问AWStats日志分析系统时,并不需要提高账号和密码,只要知道对应的网址就可以获知web站点的访问情况,这给服务器带来了安全隐患。为了更好的控制对网站资源的访问,可以待定的网站目录添加访问授权。

一、客户机地址限制

通过配置选项Order、Deny from、allow from 可以根据客户机名和主机名或者ip地址来决定是否允许客户端的访问,其中order配置项用于限制顺序,Deny from和allow from、配置项用于设置具体的限制内容。
allow,deny:先“允许“后”拒绝“默认拒绝所有,未明确允许的客户机地址
deny,allow:先”拒绝“后“允许”默认允许所有,未明确拒绝的客户机地址

使用allow from和deny from配置时,需要设置客户机的地址构成完整的限制策略,地址的形式可以是ip地址,网络地址,主机名和域名使用名称all时表示任意地址,限制策略的格式如下:

Deny from address1 address2 ****
Allow from address1 address2 ****

通常情况下,网站服务器是对所有的客户机开放,网页文档目录未做任何的限制,因此使用的是 Allow from all的策略,表示运行从任何客户机访问,

#<Directory />  
  ‘’‘’‘’‘’‘’‘’‘  
    Order allow,deny  
    Allow from all  
</Directory>

需要使用”仅允许“的限制策略时,应将处理顺序为allow,deny并明确设置允许策略只允许一部分主机可以访问,例如只希望ip地址为192.168.137.120的机器可以访问awstats系统如下:

#<Directory />  
  ‘’‘’‘’‘’‘’‘’‘  
    Order allow,deny  
    Allow from 192.168.137.120  
</Directory>

需要使用仅拒绝策略时可以处理顺序为 deny,allow 并明确设置拒绝策略,只是禁止一部分主机禁止登陆awstats系统,例如禁止192.168.137.120访问,如下:

#<Directory />  
  ‘’‘’‘’‘’‘’‘’‘  
    Order deny,allow  
    deny  from 192.168.137.120  
</Directory>
Apache访问控制之虚拟主机配置

Apache访问控制之虚拟主机配置

设置好之后我们使用137.120访问awstats测试

Apache访问控制之虚拟主机配置

Apache访问控制之虚拟主机配置

二、用户授权限制

http服务器支持使用摘要认证,和基本认证,两种方式。使用摘要认证需要在编译安装httpd之前添加–enable-auth-digest选项,并不是所有浏览器都支持摘要认证,而基本的认证是httpd服务的基本功能,不需要在编译前加任何参数。

1.创建用户认证数据文件
使用专门的htpasswd工具程序,可以创建授权用户数据文件,并维护其中的用户账号。在使用stpasswd工具时,必须指定用户数据文件的位置,添加-c的选项表示新建立此文件,列如执行下面操作可以新建数据文件,列如执行下面操作可以新建数据文件/usr/local/httpd/conf/.awspwd其中包含一个名字为webadmin的用户信息

# bin/htpasswd -c /usr/local/httpd/conf/.awspwd webadmin
Apache访问控制之虚拟主机配置

Apache访问控制之虚拟主机配置

2.确定用户的数据文件

Apache访问控制之虚拟主机配置

Apache访问控制之虚拟主机配置

3。添加用户授权配置

有了授权用户账号以后,还需要修改httpd.conf配置文件,在特定的目录区域中添加授权配置,以启用基本认证并设置允许哪些用户访问。例如只允许awspwd数据文件中的任一用户访问awstats系统如下:

#   AuthName "AWStats Directory"  
    AuthType  Basic  
    AuthUserFile /usr/local/httpd/conf/.awspwd  
    require valid-user
Apache访问控制之虚拟主机配置

Apache访问控制之虚拟主机配置

添加完成后重启httpd服务,验证用户访问授权。访问awstats系统出现如下:输入正确的用户名和密码后就可以进入系统,否则将拒绝访问!

Apache访问控制之虚拟主机配置

Apache访问控制之虚拟主机配置

Apache访问控制之虚拟主机配置

Apache访问控制之虚拟主机配置

三、构建虚拟web主机

基于域名:为每个虚拟主机使用不同的域名,但是对应的ip地址是相同的,例如www.zhangsan.com和www.lisi.com站点的ip地址都是192.168.137.100这是使用最为普遍的虚拟web主机类型

基于ip地址:为每个虚拟主机使用不同的域名,且各自对应的ip地址也是不一样的,使用的并不是很广泛

基于端口:这种方式并不使用域名,ip地址来区分不同站点的内容,而是使用了不同的tcp端口号,因此用户在浏览不同站点的时候需要指定不同的端口来访问。这种方式不常用

本次采用,最常用的基于域名构建虚拟主机

1.设置域名映射同一个ip地址。修改hosts文件

192.168.137.100 www.zhangsan.com
192.168.137.100 www.lisi.com

2.建立虚拟主机存放网页的目录

[root@yankerp ~]# mkdir -p /usr/local/httpd/htdocs/zhangsan
[root@yankerp ~]# mkdir -p /usr/local/httpd/htdocs/lisi
[root@yankerp ~]# echo "This is a zhangsan" >> /usr/local/httpd/htdocs/zhangsan/index.html
[root@yankerp ~]# echo "This is a lisi" >> /usr/local/httpd/htdocs/lisi/index.html

3. 在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:          

#NameVirtualHost *:80  
#zhangsan虚拟站点区域2017.11.5  
<VirtualHost *:80>  
    ServerAdmin ywyankerp@163.com  
    DocumentRoot "/usr/local/httpd/htdocs/zhangsan"  
    ServerName www.zhangsan.com  
    ErrorLog "logs/dummy-host.example.com-error_log"  
    CustomLog "logs/dummy-host.example.com-access_log" common  
</VirtualHost>  
  
#lisi虚拟站点区域2017.11.5  
<VirtualHost *:80>  
    ServerAdmin ywyankerp@163.com  
    DocumentRoot "/usr/local/httpd/htdocs/lisi"  
    ServerName www.lisi.com  
    ErrorLog "logs/dummy-host2.example.com-error_log"  
    CustomLog "logs/dummy-host2.example.com-access_log" common  
</VirtualHost>
Apache访问控制之虚拟主机配置

Apache访问控制之虚拟主机配置

访问不同的域名测试:

Apache访问控制之虚拟主机配置

Apache访问控制之虚拟主机配置

赞(0) 打赏
未经允许不得转载:陈桂林博客 » Apache访问控制之虚拟主机配置
分享到

大佬们的评论 抢沙发

全新“一站式”建站,高质量、高售后的一条龙服务

微信 抖音 支付宝 百度 头条 快手全平台打通信息流

橙子建站.极速智能建站8折购买虚拟主机

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册