在Linux系统中如何设置APACHE服务器里的后台页面只允许某个IP地址访问
补充资料
请回答的详细点,比如在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方式的优缺点,读者可以根据具体的情况选择适合的方法来保证网站的安全。
在Linux系统中如何设置APACHE服务器里的后台页面只允许某个IP地址访问的更多相关文章
- linux下通过iptables只允许指定ip地址访问指定端口的设置方法
这篇文章主要介绍了linux下通过iptables只允许指定ip地址访问指定端口的设置方法,需要的朋友可以参考下. 首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的 ...
- linux系统中rsync+inotify实现服务器之间文件实时同步
最近需要对服务器上的文件实施动态备份,我又不想每次都手动来进行备份,在网上找了挺多资料,发现使用rsync就可以实现,如果想要实现实时同步,还可以使用rsync+inotify组合,本文就是以组合方式 ...
- 设置与查看Linux系统中的环境变量
大家好,我是良许. 大家都知道,在 Linux 系统中,有环境变量和 Shell 变量这两种变量. 环境变量是在程序及其子程序中全局可用的,常常用来储存像默认的文本编辑器或者浏览器,以及可执行文件的路 ...
- 云服务器 ECS Linux 系统中常见的日志文件介绍
云服务器 ECS Linux 系统中,日志文件是非常重要的文件,它们记录了很多系统中重要的事.Linux 系统中常见日志文件概述如下: /var/log/cron可以在 cron 文件中检查 cron ...
- Linux中如何安装Apache服务器
Linux中如何安装Apache服务器 由于学习的需要,所有手动安装了一下Apache源码包,安装过程中的问题千奇百怪,但是如果弄清楚了问题出在哪里,那么也不是太难.如果有学习者出现安装中的问题,可仔 ...
- 如何在linux系统中设置静态ip地址
在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0 开始编辑,填写ip地址.子网掩码.网关.DNS等.其中"红框内的信息"是必须 ...
- linux系统中的一些典型问题汇总
一.文件系统破坏导致系统无法启动:Checking root filesystem/dev/sda6 contains a file system with errors,check forcedAn ...
- Linux系统中tomcat的安装及优化
Linux系统中Tomcat 8 安装 Tomcat 8 安装 官网:http://tomcat.apache.org/ Tomcat 8 官网下载:http://tomcat.apache.org/ ...
- Jmeter(五十三) - 从入门到精通高级篇 - 懒人教你在Linux系统中安装Jmeter(详解教程)
1.简介 我们绝大多数使用的都是Windows操作系统,因此在Windows系统上安装JMeter已经成了家常便饭,而且安装也相对简单,但是服务器为了安全.灵活小巧,特别是前几年的勒索病毒,现在绝大多 ...
随机推荐
- Deep Learning 5_深度学习UFLDL教程:PCA and Whitening_Exercise(斯坦福大学深度学习教程)
前言 本文是基于Exercise:PCA and Whitening的练习. 理论知识见:UFLDL教程. 实验内容:从10张512*512自然图像中随机选取10000个12*12的图像块(patch ...
- 前端AJAX传递数组给Springmvc接收处理
前端传递数组后端(Spring)来接收并处理: <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...
- SSH框架流程详解
解图: 由图可见,有三个框架{ ①. Struts_2 ②. Spring ③. Hibernate } 框架 作用 本质 同等于 Struts_2 实现MVC / 控制.跳转 过滤器(Filter) ...
- jquery的一些属性选择器
td:contains(Henry)选择td里面所有class为Henry的元素 .siblings()选择相同dom层次的所有其他元素,例如 <ul> <li>第一个< ...
- [转载]MySQL将DateTime时间类型格式化
DATE_FORMAT(date,format) 根据format字符串安排date值的格式. select from_unixtime(time,'%Y-%m-%d %H:%i:%s'); ...
- RHCE 系列(一):如何设置和测试静态网络路由
RHCE(Red Hat Certified Engineer,红帽认证工程师)是红帽公司的一个认证,红帽向企业社区贡献开源操作系统和软件,同时它还给公司提供训练.支持和咨询服务. 这个 RHCE 是 ...
- POJ 3216 最小路径覆盖+floyd
Repairing Company Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 6646 Accepted: 178 ...
- jQueryMobile控件之复选框
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 说说chrome上的JS调试
步骤:审查元素 ->source->选择js文件 ->设置断点 ->触发函数 ->进入调试点step over 到elements目录下双击某一块代码还可以立刻修改,ct ...
- Eclipse for php + Xdebug搭建PHP的调试环境
Xdebug安装教程 下载Xdebug 首先我们需要下载Xdebug,务必根据安装的PHP版本,选择合适的Xdebug版本,由于我是在Windows环境下安装PHP的,所以选择下载Windows版本的 ...