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

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

补充资料

本网络中使用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方式的优缺点,读者可以根据具体的情况选择适合的方法来保证网站的安全。
 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Apache80端口被占用解决办法
    Apache80端口被占用解决办法
    1. win+R,输入 cmd,打开命令行窗口2. 命令行输入netstat -ano3. 找到80端口及对应进程 4. 在任务管理器中的进程处查看与上述80端口对应的PID相同的进程,并关闭。如果没有PID,选择“查看”--"选择列"--勾选“PID”。4. 关闭进程。如果进程为上述系统服务,
    03-08
  • Hadoop中mapreduce运行WordCount程序报错Error:
    这个问题是因为map的方法参数与继承mapper定义的参数类型不一致导致的,应该将Mapper的key参数类型设置成Object,就可以解决这个问题 
    03-08
  • 使用 Apache Hudi 实现 SCD-2(渐变维度)
    使用 Apache Hudi 实现 SCD-2(渐变维度)
    数据是当今分析世界的宝贵资产。 在向最终用户提供数据时,跟踪数据在一段时间内的变化非常重要。 渐变维度 (SCD) 是随时间推移存储和管理当前和历史数据的维度。 在 SCD 的类型中,我们将特别关注类型 2(SCD 2),它保留了值的完整历史。 每条记录都包含有
    03-08
  • 一个用 Python 分析 Apache 日志的故事
    一个用 Python 分析 Apache 日志的故事
    介绍不久前,公司里有人告诉我“我想知道 Apache 的访问日志是否可以用来做一些事情”。数据分析,Apache,发文章,我是初学者,写的不好请见谅。访问日志分析导入模块我正在使用以下模块。# データの処理import pandas as pdimport numpy as np# グラフ表示i
    03-08
  • [转]用apache反向代理解决单外网ip对应内网多个
    用apache反向代理解决单外网ip对应内网多个web主机的问题  转载一个有独立外网IP,需内网服务器对外发布的例子,是应用apache虚拟主机的。来源地址:http://www.itshantou.com/Servers/web/06/10/44219.html    几年前开始在学校的服务器上建网站,那时
    02-10
  • Apache service named reported the following
    apache启动失败报错:The Apache service named reported the following error: AH00451: no listening sockets available, shutting down . The Apache service named reported the following error: (OS 10055)由于系统缓冲区空间不足或队列已满,不能执行
    02-10
  • struts布局管理---SiteMesh一个优于Apache Tile
    1. SiteMesh的基本原理       一个请求到服务器后,如果该请求需要sitemesh装饰,服务器先解释被请求的资源,然后根据配置文件 获得用于该请求的装饰器,最后用装饰器装饰被请求资源,将结果一同返回给客户端浏览器。 2. 如何使用SiteMesh    这里以st
    02-10
  • linux 安装 apache2.2.31
     Linux下安装和配置Apache 概要:本文介绍在CentOS5.4 Linux中安装和配置Apache2.2.14,并且实现Apache和Tomcat6的整合。文章分为三部分,分别是删除系统自带的Apache、安装Apache2.2.14和配置Apache2.2.14。 文章中介绍的知识也可以在其它版本的Linux中
    02-10
  • Apache CXF使用Jetty发布WebService
    Apache CXF使用Jetty发布WebService
    一、概述Apache CXF提供了用于方便地构建和开发WebService的可靠基础架构。它允许创建高性能和可扩展的服务,可以部署在Tomcat和基于Spring的轻量级容器中,也可以部署在更高级的服务器上,例如Jboss、WebSphere或WebLogic。 CXF提供了以下功能:WebService
    02-10
  • apache下ab.exe使用方法。。 apache ab工具
    自己在cmd中写了半天的路径也没有写对。。最后网上的一个哥们告诉我说没有共同语言了。。。毛线啊 差距确实很大!大能猫死panda早晚干掉你,叫你丫整天嘲讽我!比如我的ab.exe在D盘的wamp文件夹下apache文件夹下bin文件夹下。那么在cmd中可以这么写:"D:\wamp
    02-10
点击排行