在Linux系统中如何设置APACHE服务器里的后台页面只允许某个IP地址访问

补充资料

本网络中使用LINUX服务器,web服务器是由APACHE搭建,IP地址为192.168.1.5,后台页面为/admin/login.jsp . 如何设置后台页面LOGIN.JSP只允许192.168.1.10访问。而前台页面所有人都可以访问?
请回答的详细点,比如在APACHE的哪个部分添加怎样的字段。 谢谢

我记得论坛有帖子说怎么设置访问权限的.搜索下.........  以下供参考,比较忙没有时间整理.......

1、修改http.conf
  假设你想控制权限的目录的不同访问权限, 你可以在与之间加入一行: AllowOverride All
  意思是目录的访问权限由该目录下的.htaccess文件来控制,而且不同目录的权限策略可互相覆盖。

2、编辑你想要控制的目录下的.htaccess文件
  假设你的phpmyadmin目录在progra*/apache*/htdocs下,你可以这样在phpmyadmin目录下创建一个.htaccess文件,内容如下:

AuthUserFile progra*/apache*/apache/pass/pwdPhp
AuthType Basic
AuthName "Database Security Zone"

3. 生成用户密码文件
有一个用户密码生成程序:htpasswd(在program*/apache*/bin下), 它可以加入用户密码信息到指定的文件中,如/usr/local/apache/pass/pwdPhp. 我的用户密码文件内容如下: htpasswd -c f:/.htaccess test

通过.htacess文件设置目录访问权限.通常我们可以在程序里来进行验证,也就是通过php写入http协议的头文件。而使用apache控制更有效。有关文章可以参考apache的官方网站的文档。(www.apache.org) 下面是我的配置(注意的是,因为在windows下的fat32/ntfs文件系统不支持.htaccess类型的文件名,所以我们需要改写该文件名。) 首先更改apache的配置文件httpd.conf 找到下面一行 AccessFileName .htaccess改成AccessFileName user.htaccess(当然后面的名字可以是其他的,只要不以.开头即可。但这样写更容易记忆和读取) 然后是接下来的正则匹配也要改找到 <FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
< /FilesMatch> 改成:<FilesMatch "^user\.ht"> #这里因为要匹配passwd文件,所以在window下你的密码文件也不能用.开头。统一命名为user.htpasswd好了。呵呵
    Order allow,deny
    Deny from all
< /FilesMatch>  再接下来是找到:   AllowOverride None 这行,将起注释掉(前面加#)然后跟着添加两行,成为这样: # AllowOverride None   AllowOverride FileInfo AuthConfig Limit
    Options MultiViews SymLinksIfOwnerMatch IncludesNoExec 好了,到现在我们配置结束,然后重起apache服务,之后在需要设置访问权限的目录中防入user.htaccess文件,在他里面写如认证的内容即可。 如:在www/mytest 目录下生成user.htaccess文件内容如下: <Limit GET POST OPTIONS>
Deny from all
Allow from 10.29.100.0/24 #只允许10.29.100网段的用户访问该目录。
< /Limit>AuthUserFile /home/user.htpasswd #登陆权证验证的用户密码文件
#AuthGroupFile /dev/null      #验证组文件
AuthName "login information"   
AuthType Basic            #验证类型#<Limit GET>
#require user newsadmin       
#</Limit>  这样我们再通过命令行(cmd)生成一个用户密码文件D:\Apache\bin>htpasswd -c user.htpasswd mytestAutomatically using MD5 format.
New password: ******
Re-type new password: ******
Adding password for user mytest 再通过浏览器访问该目录时就需要首先输入验证的用户名和密码,正确后如果您的ip网段在指定范围内则出现访问内容,否则访问被拒绝。 当然这样会对服务器的效率有所损失,因为每次访问目录都要先查看是否有验证文件存在。当然也可以把验证段直接写在httpd.conf 内,但这样写的好处是可以随时更改验证条件而不用重起服务器。而且可读性好。

.htaccess文件是Apache服务器上的一个设置文件。它是一个文本文件,可以使用任何文本编辑器进行编写。. htaccess文件提供了针对目录改变配置的方法,即通过在一个特定的文档目录中放置一个包含一个或多个指令的文件(.htaccess文件),以作用于此目录及其所有子目录。.htaccess的功能包括设置网页密码、设置发生错误时出现的文件、改变首页的文件名(如index.html)、禁止读取文件名、重新导向文件、加上MIME类别、禁止列目录下的文件等。

在需要针对目录改变服务器的配置,而对服务器系统没有root权限时,应该使用.htaccess文件。如果服务器管理员不愿意频繁修改配置,则可以允许用户通过.htaccess文件自己修改配置,尤其是ISP在一台机器上提供多个用户站点,而又希望用户可以自己改变配置的情况下,一般会开放部分.htaccess的功能给使用者自行设置。

注意,.htaccess是一个完整的文件名,不是***.htaccess或其它格式(当然也有管理员把其设置成其它名字,但一般都是使用.htaccess)。另外,上传.htaccess文件时,必须使用ASCⅡ模式,并使用chmod命令改变权限为:644 (RW_R__R__)。每一个放置.htaccess的目录和其子目录都会被.htaccess影响。例如,在/abc/目录下放置了一个. htaccess文件,那么/abc/和/abc/def/内所有的文件都会被它影响,但/index.html不会被它影响,这一点是很重要的。

实现密码保护

1.建立.htpasswd文件
    首先在要设置存取控制的目录(如htdocs)下建立一个文件,文件名可以自行设定,一般服务器都会设置为.htpasswd,该文件是不能由HTTP读取的。.htpasswd文件中的每一行代表一个使用者,使用者的名字及经过加密的密码以冒号:分隔。

2..htaccess文件实现保护
    .htaccess文件的内容如下: authtype basic
authuserfile /usr/home/***/htdocs/.abcname1
authgroupfile /usr/home/***/htdocs/.abcname2
authname information
< limit get post>
require valid-user
< /limit>

其中第二行和第三行中的***可以改为个人的FTP登录名。.abcname1和.abcname2可以是任意的文件名,如.htpasswd、.htpass,但不能是.htaccess。将.htaccess上传到要进行密码保护的目录(如htdocs)中。

.htaccess文件最后的“require”告诉服务器哪些用户可以进入。require valid-user是指只要是.htpasswd中的任何一个都可以进入。也可以指定名单上的某人或某几人可以通过,使用require user username或require user username1 username2 username3。还可以指定某组人可以通过,使用require group groupname。

3.增加新的许可用户
    进入htdocs目录,在命令行状态输入以下命令生成.abcname1文件。 echo > .abcname1
/var/www/bin/htpasswd .abcname1 abc

abc表示要增加的用户名。输入此命令后,系统会提示输入此用户密码,这样该用户名就生效了。以后如要再增加用户,运行第二行的命令时换一个用户名即可。如果这个用户名存在,则会提示修改密码。

4.建立允许访问的组
    组的设置方法是建立一个名为.htgroup的文本文件,内容如下: groupname1: username1 username2 username3
groupname2: username1 username3 username4

并在.htaccess中加上“AuthGroupFile /absolute/path/.htgroup”。以ASCⅡ模式上传所有文件后,该目录中的所有文件都会被保护起来。

设置错误文件

如果希望在找不到文件时不出现“找不到网页”的页面提示,而是打开另一个HTML文件,方法也很简单。首先编写一个新的页面,然后用文本编辑器打开.htaccess,在文件最后加上:ErrorDocument 404 404.html。这里,404.html是错误文件的名字,即所显示的页面;404是错误代码。一般常见的错误代码和所代表的错误原因如下: 401 Authorization failed 授权失败,即密码错误。
403 Access denied 存取错误,即不可以读取该文件。
404 File not found 找不到文件。
500 Internal Server Error
服务器内部错误,可能是Web服务器本身存在问题,也可能是编写的程序出错。

禁止读取文件

如果将某些内容如密码,存放在一个文件中,那么别人只需知道该文件的对应位置,就可以一目了然,这样太不安全。其实完全可以不改变其它设置,也不用将文件移到其它地方就可解决这个问题,只需在.htaccess文件中加入以下几行: <Files filename.ext>
order allow,deny
deny from all
< /Files>

如果系统安装的是Apache 1.3以后的版本,更可以支持regular expression的filesmatch。 <filesmatch "\.tmp">
order allow,deny
deny from all
< /filesmatch>

files和filesmatch表示只对符合要求的部分文件生效。“order deny,allow”表示先找出禁止(deny)的,然后去找许可的(allow)。如果将它们的顺序颠倒“order allow,deny”则表示先找出许可的,后才去找禁止的。“deny from all”则表示全部IP地址都不许可。相对地,“allow from all”表示全部都允许。可以这样设置: order allow,deny
allow from all
deny from 111.222

deny from 111.222是指禁止所有以111.222开始的IP地址(如111.222.0.1)。除了设置IP地址外,也可以设置成hostname(如: ***.com)。“Files”和“Filesmatch”的用途很多,不但可以设置deny,也可以设置个别文件的密码,如: <files 123>
require user 123
< /files>
< files abc>
require user abc
< /files>

使用.htaccess文件也会存在一些问题,比如性能。如果使用.htaccess文件,则Apache需要在每个目录中查找该文件,还必须在所有更高级的目录中查找它,另外,每次请求一个页面时,也都需要读取.htaccess文件。因此,允许使用.htaccess文件都会导致性能的下降。

例如,对/usr/hq/htdocs中页面的请求,Apache必须查找以下文件: /.htaccess
/usr/.htaccess
/usr/hq/.htaccess
/usr/hq/htdocs/.htaccess

总的来说,通过.htaccess来保护网站更为方便和安全。因为它不像利用程序实现密码保护时,有可能通过猜测的方法获取密码。利用.htaccess文件实现密码保护,一般是很难破解的。鉴于.htaccess方式的优缺点,读者可以根据具体的情况选择适合的方法来保证网站的安全。

时间: 2024-10-10 13:45:48

在Linux系统中如何设置APACHE服务器里的后台页面只允许某个IP地址访问的相关文章

linux下通过iptables只允许指定ip地址访问指定端口的设置方法

这篇文章主要介绍了linux下通过iptables只允许指定ip地址访问指定端口的设置方法,需要的朋友可以参考下. 首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的规则 iptables -X#清除预设表filter中使用者自定链中的规则 其次,设置只允许指定ip地址访问指定端口 其次,设置只允许指定ip地址访问指定端口 iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 22 -j ACCEPT iptab

linux系统中rsync+inotify实现服务器之间文件实时同步

最近需要对服务器上的文件实施动态备份,我又不想每次都手动来进行备份,在网上找了挺多资料,发现使用rsync就可以实现,如果想要实现实时同步,还可以使用rsync+inotify组合,本文就是以组合方式来完成的. 先介绍一下rsync与inotify. 1.rsync 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等.随着应用系统规模的不

linux系统中文件的特殊权限

在上篇博客中叙述linux系统中文件的基本属性,见http://vinsent.blog.51cto.com/13116656/1951574,这篇给大家带来linux系统文件的特殊权限,包括SUID.SGID.Sticky(粘滞位). 一.安全上下文 安全上下文指的是一类定义某个进程允许做什么的许可和权限的集合.安全上下文的概念范围很广范,权限.特权.访问令牌.完整性等级等等都包含在其中.这里只简要说说linux系统对文件的安全控制: (1)进程有属主和属组,文件有属主和属组      (2)

详述Linux系统中Apache网页与安全优化(二)

网页缓存 配置网页的缓存时间 通过mod_ expire模块配置Apache,使网页能在客户端浏览器缓存一段时间,以避免重复请求 启用mod_ expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control标签,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的 启用网页缓存功能步骤 查看是否安装mod_ expire模块 修改配置文件启用缓存功能 抓包测试 查看是否安装了mod_ expire模块 /usr/local/apache/bin/

阿里云服务器 Linux系统中常见的日志介绍

云服务器 ECS Linux 系统中,日志文件是非常重要的文件,它们记录了很多系统中重要的事.Linux 系统中常见日志文件概述如下: /var/log/cron可以在 cron 文件中检查 crontab 任务调度是否实际执行,执行过程是否发生错误,以及 /etc/crontab 文件是否有语法错误或编写错误. /var/log/dmesg可以在 dmesg 文件中检查系统在开机时候内核检测过程所产生的各项信息,包括系统的设备信息,以及在启动和操作过程中系统记录的任何错误和问题的信息.通过 d

云服务器 ECS Linux 系统中常见的日志文件介绍

云服务器 ECS Linux 系统中,日志文件是非常重要的文件,它们记录了很多系统中重要的事.Linux 系统中常见日志文件概述如下: /var/log/cron可以在 cron 文件中检查 crontab 任务调度是否实际执行,执行过程是否发生错误,以及 /etc/crontab 文件是否有语法错误或编写错误. /var/log/dmesg 可以在 dmesg 文件中检查系统在开机时候内核检测过程所产生的各项信息,包括系统的设备信息,以及在启动和操作过程中系统记录的任何错误和问题的信息.通过

设置在 Ubuntu 12.04 中使用root 账号进行登录与修改 Linux 系统中的计算机名

3.设置在 Ubuntu 12.04 中使用root 账号进行登录 1.先设定一个 root 的密码,sudo passwd root 2.root 登录,su root 3.备份一下 lightgdm cp -p /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf.bak 4.编辑 lightdm.conf sudo gedit /etc/lightdm/lightdm.conf 5.加: greeter-show-manual-login=

如何在linux系统中设置静态ip地址

在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0   开始编辑,填写ip地址.子网掩码.网关.DNS等.其中“红框内的信息”是必须得有的.   编辑完后,保存退出.   重启网络服务.service network restart或/etc/init.d/network restart   ping网关,ping外网进行测试.都能ping通表示网络正常.   摘要: ---修改ip地址--- 即时生效: # ifconfig eth0 192

Linux系统中程序的安装及管理、创建私有yum仓库实验

各位小伙伴今天要和大家分享的是Linux系统中程序的安装及管理,以及创建私有yum仓库的操作实验.本次我们会从以下几个部分进行说明: Linux应用程序基础 查询RPM软件包信息 安装.升级.卸载.RMP软件包.yum仓库 源代码编译安装 应用程序与系统命令的关系:1.文件位置? 系统命令:一般在/bin和/sbin目录中? 应用程序:通常在/usr/local目录中2.主要用途? 系统命令:完成对系统的基本管理工作,例如IP配置工具? 应用程序:完成相对独立的其它辅助任务,例如网页浏览3.适用