如何正确设置HTTP服务器权限?
在现今信息化社会中,互联网已经成为人们获取信息、进行沟通和交互的主要方式。其中,HTTP服务器作为网站的基础设施,承载着用户访问、交流和数据传输的重要职责,因此,对HTTP服务器的权限设置具有重要的意义。
HTTP服务器权限设置主要包括用户和文件的访问权限。用户权限可以分为读、写和执行三种,分别表示用户对服务器上资源的读取、修改和执行能力。文件权限也可以分为读、写和执行三种,分别表示文件的读取、修改和执行能力。正确设置HTTP服务器权限,可以保证系统的安全性和稳定性,防止黑客攻击和系统崩溃等问题的发生。
要正确设置HTTP服务器的根目录文件夹权限。根目录文件夹是所有网站文件的入口点,所有存储在此文件夹中的文件都可以被用户访问。因此,根目录文件夹的权限设置应该尽量严格,不仅要限制用户的访问权限,还要限制文件的读写权限。通常,根目录文件夹的权限设置应该为755或750,其中7表示管理员(或者超级用户)具有读、写和执行权限,5表示组用户和其他用户具有读和执行权限,0表示组用户和其他用户没有任何权限。
要正确设置HTTP服务器日志文件的权限。HTTP服务器的日志文件是记录用户访问网站的重要日志,包括用户IP地址、访问时间、访问文件等信息。因此,日志文件的权限设置应该尽量安全,避免被非法访问或修改。通常,日志文件的权限设置应该为644或640,其中6表示管理员具有读和写的权限,4表示组用户和其他用户具有读的权限,0表示组用户和其他用户没有任何权限。
要正确设置HTTP服务器的其他文件和目录的权限。除了根目录和日志文件之外,HTTP服务器的其他文件和目录的权限设置也很重要。例如,上传文件和下载文件的临时目录、配置文件和密码文件等,都应该根据实际需求进行权限设置。通常,上传和下载临时目录的权限设置应该为777,而配置文件和密码文件则应该设置成600,以确保机密性和安全性。
正确设置HTTP服务器权限可以提高系统的安全性和稳定性,减少黑客攻击和系统崩溃等问题的发生。在设置权限时,应该根据实际需求和系统安全性的要求,正确分配用户和文件的访问权限,实现更佳的安全性和稳定性之间的平衡。如果对权限设置不熟悉,建议咨询专业的网络安全人员或系统管理员,以确保系统的安全性和稳定性。
相关问题拓展阅读:
- 怎样配置httpd.conf,修改文件目录访问权限
- 系统权限设置
怎样配置httpd.conf,修改文件目录访问权限
Apache的基本设置主要交由httpd.conf来设定管理,我们要修改Apache的相关设定,主要还是通过修改httpd.cong来实现。下面让我们来看看httpd.conf的内容,它主要分成3大部分:
Section 1:Global Environment
Section 2:’Main’ server configuration
Section 3:Virtual Hosts
【之一部分】
·ServerType standalone
这表示Apache是以standalone启动,也可以是inetd。所谓standalone是指启动一次来接听所有的连线;而inetd是接到http的连线要求才启动,随着连线的结束而结束,这样负担是不是很但呢?所以一般都是以standalone启动。
·ServerRoot “/usr/local/httpd”
此为apache的目录
·#LocdFile /use/local/httpd/logs/httpd.lock
保留预设值,不更动
·PidFile /usr/local/httpd/logs/httpd.pid
此文件记录着apache的父处理程序id
·ScoreBoardFile /usr/local/httpd/logs/httpd.scoreboard
此文件存储处理程序的信息
·#ResourceConfig conf/srm.conf
·#AccessConfig conf/access.conf
由于我们统筹由httpd.conf来管理,所以这两个文件预设是注解起来的,可以保留预设值不更动
·Timeout 300
设盯超时的时间。如果用户端超过300秒还没连上server,或server超过300秒还没传送信息给用户端,即断线。
·KeepAlive On
允许用户端的连线有多个请求,设为Off表示不允许
·MaxKeepAliveRequests 100
每次连线更大的请求树木,数字愈大,效能愈好。0表示不伍槐限制
·MinSpareServer 5
·MaxSpareServers 10
MinSpareServer 5表示最少会有5个闲置的处理程序,如果实际的数目少于此数目,则会增加处理程序。MaxSpareServers 10表示更大的闲置处理程序数目,如果你的网站需求量很大,可以将此数目设大一些,大不要随便将此数目设得太大。
·StartServers 5
启动时Server的数目
MaxClients 150
限制同时间更大的连线数目,当然不能设得太小,一旦达到此数目,就无法再增加用户端
·MaxRequestPerChild 0
限制子处理程序结果前的要求数目,0表示不限制
·#Listen 3000
·#Listen 12.34.56.78:80
使用其它的连接消槐端口或IP
·BindAddress *
可拿橘友以接听*(所有IP地址)、指定的IP地址或是完整的域名
·#LoadModule foo_module libexec/mod_foo.so
使用DSO模块
·#ExtendedStatus On
可检阅apache的状态信息,预设是Off(注解起来)
【第二部分】
如果之前的ServerType是inetd,请直接跳到ServerAdmin。
·Port 80
Standalone服务器接听的连接端口,当然也可以是其他小于1023的端口号
·User nobody
·Group nobody
执行httpd的用户和群组
·ServerAdmin 管理员的电子邮件地址
这是管理员的电子邮件地址,如果apache有问题的话,会寄信通知管理员,当然你也可以建立一个专门负责web的帐号来收信
·ServerName 你的主机名称
此为主机名称,如果没有域名,也可以用IP
·DocumentRoot “usr/local/httpd/htdocs”
此目录为apache放置网页的地方,里面的index.html即为连到此主机的预设首页
·
Options FollowSymLinks
AllowOverride none
此目录设定用户放置网页的目录(public_html)的执行动作。详细的目录存取方法会在后面说明
·
Options Indexes FolloeSymLinks
AllowOverride None
Order allow,deny
Allow from all
此目录设定apache的网页目录(htdocs)的执行动作
·UserDir public_html
用户可在自己的目录下建立public_html目录来放置网页,输入
·DirectoryIndex index.html
这里设定预设主页的名称
·AccessFileName .htaccess
这个是控制存取的文件名称,一般采用预设的.htaccess名称,后面会说明htaccess的使用方法
·
Order allow,deny
Deny from all
这用来防止其他人看到.ht开头的文件内容,不仅是保护.htaccess的内容,还保护.htpasswd的内容。当然也可以直接写成。如果你有更改AccessFilename,例如将.htaccess改成.accessht,请记得也要在此做相关的更改,如此才能防止其他人看到哦
·#CacheNegotiatedDocs
注解起来是告诉Proxy不要将互动产生的文件存入cache,如果拿掉#,则会存在cache中
·UseCanonicalName On
使用标准的名称,预设是On。假设有一个web server的全名是
www.sample.com
,一般称为www;如果us…羑
·TypeConfig /usr/local/httpd/conf/mime.types
指定存放MIME文件类型的文件。你可以自行编辑mime.types文件。
·DefaultType text/plain
当server不认得此文件类型时的预设格式,此设定是当成一般文字
·
MIMEMagicFile /usr/local/httpd/conf/magic
mod_mime_magic模块可使server由文件内容决定其MIME类型。如果有载入mod_mime_magic模块,才会处理MIMEMagicFile这一段。如果是…,则表示如果没有载入该模块,才会处理这一段
·HostLookups Off
如果为On,则每次都会向name server解析该IP,记录此连线的名称(例如
www.apache.org
)自换岷牟簧偈奔洌…为Off,仅记录IP
·ErrorLog /usr/local/httpd/logs/error_log
指定发生错误的记录文件(error_log)位置。如果在没有指定发生错误的记录文件,则会沿用此文件
·LogLevel warn
记录分成很多等级,在此是warn。各等级如下: 等级 说明
debug debug信息
info 普通信息
notice 重要信息
warn 警告信息
error 发生错误
crit 紧急情况
alert 马上要处理的情况
amerg 系统快要死了
·LogFormat “%h %l %u %t\”%r\”%>s %b\”{Referer}i\”\”${UserAgent}i\””combined
LogFormat “%h %l %u %t”%r\”%>s %b”commom
LogFormat “%{Referer}i->%U”referer
LogFormat “%{User-agent}i”agent
自定四种记录格式:combined、common、referer、agent
·CustomLog /usr/local/httpd/logs/access_log common
存取的记录文件(access_log)使用自定的common格式
·#CustomLog /usr/local/httpd/logs/referer_log referer
#CustomLog /usr/local/httpd/logs/agent_log agent
#CustomLog /usr/local/httpd/logs/agent_log combined
这三个记录文件也是使用自定义格式(分别是referer、agent、combined),不过注解起来表示未使用这三个文件
·ServerSignature On
设为On时,在server所产生的网页(像是错误发生时)上,会有apache的版本、主机、连接端口的一行信息;如果设为Email,则会有mailto:给管理员的超链接
·Alias /icons/ “/usr/local/httpd/icons/”
使用较短的别名,其格式为:Alias 别名 原名。
·ScriptAlias /cgi-bin/ “/usr/local/httpd/cgi-bin/”
和Alias一样,只是这是设定server script的目录
·IndexOptions FancyIndexing
显示好看的文件清单(配合下面各文件所对应的图形)
·AddIconByEncoding(CMP,/icons/compressed.gif)x-conpress x-gzip
·AddIcon /icons/blank.gif^^BLANKICON^^DefaultIcon/icons/unknow.gif
这些是在显示文件清单(之前所说的FancyIndex)时,各种文件类型的对应图形。例如.ps .si .eps这三种文件的表示图形都是a.gif
·#AddDescription “GZIP conpressed document” .gz
#AddDescription “tar archive” .tar
#AddDescription “GZIP compressed tar archive” .tgz
这些是在显示文件清单时,在文件后面附上说明,其格式为:
AddDescription “说明” 文件名
例如:AddDescription “It is private txt” my.txt
·ReadmeName README
显示文件清单时,在最下面显示README的文件内容
设置CGI脚本/将httpd.conf做为唯一的配置文件/用户授权和访问控制等
关于Apache的配置及使用,在LinuxAid中已经有不少文章做了详细的阐述,本文讨论了在使用Apache时,有关配置文件的使用及对文件的访问控制等内容,算是对Apache的使用所做的一些补充吧!
如果您对Apache有一定的了解,特别是对几个配置文件有一定的了解,这将会有助于您对本文内容的理解;如果恰巧您不是很了解这几个配置文件的使用,那么就借着这个机会来一起熟悉一下吧。
一、关于CGI执行脚本的配置
这里有两种设置CGI脚本的方法。之一、CGI的脚本文件以.cgi为扩展名;第二、设置脚本可执行目录。但是这两种方法都需要将要执行的文件设置为711,才可以被执行。
之一种方法,我们需要在access.conf文件种将你要发行的目录设置为Option ExecCGI All,在srm.conf资源配置文件中,加上下列一句:
AddHandle cgi-script .cgi
这样在所有的目录种只要你的文件是.cgi为扩展名的,且文件访问权限为711的,无论给文件在你发行目录的任何一个地方都可以做为CGI被Apache服务器调用。这种方法一般没有第二种方法安全。
第二种方法,是将一个目录作为一个可执行目录,将所有的cgi文件都放在其中,这里就不一定非得是以.cgi为扩展名得文件可以执行,而是只要有711属性的文件就可以被执行,而且其它的非可执行文件都被禁止访问。我们的默认配置文件种就有一个很好的例子:
access.conf:
Allow Override None
Options ExecCGI
srm.conf
ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
这样只要在/home/httpd/cgi-bin/目录中的可执行文件都可以被Web服务器调用,而其它的非可执行文件将被拒绝访问。
二、配置用户的发行目录
这里有两种设置方法:
之一种是系统的默认方法,即用户目录下的public_html目录为用户的发行目录,且默认的主页文件为index.html,且该目录不支持CGI。
第二种是在其它目录种专门为用户设置发布目录,如我想在/home/html目录做为用户的web目录,那管理员就应该在该目录下为每一个用户设置一个子目录,如:/home/html/user01、/home/html/user02等。那么,你的srm.conf文件中的UserDir后面就不能再是public_html了,应该改为:UserDir /home/html/*/,注意这里的“*”代表anyone,当你再浏览器中请求一个如
时,Apache…ndex.html文件。
这种设置不需要到access.conf中设置该目录的访问属性,还有,当我们设置虚拟主机时也不用设置目录的访问属性,但是如果你想让某个目录具有CGI权限,都要到Access.conf文件中去配置目录的访问权限,如:你想让你的所有用户在他们的发布目录中具有CGI访问权,则需要在你的access.conf中这样设置:
Allow Override None
Options ExecCGI
注意这里设置用户目录中的cgi-bin子目录为cgi执行目录,这是一种安全的设置,而且也是一种UNIX的习惯。
三、如何将Apache服务器设置为inetd的子服务
当你安装了Apache后,默认设置为standalone方式运行,如果你想将它设置为inetd的子服务,首先在每次激活Linux时不激活httpd,然后编辑/etc/inetd.conf,在其中加入下列语句:http stream tcp nowait root /usr/in/httpd httpd
然后重新激活inetd服务器。这样你用ps -aux命令查看进程运行情况时,你不会发现httpd的进程的存在,但是一旦有客户请求一个页面时,inetd就激活一个httpd进程为该请求服务,之后就自动释放,这种运行方式有助于节省系统资源,但是如果你的web服务很重要,一般不建议设置为这种方式运行。
四、将httpd.conf做为唯一的配置文件
在Apache中给用户提供了三个配置文件: srm.conf、 access.conf 和 httpd.conf files。实际上这三个文件是平等的,所有的配置都可以放在一个单独的httpd.conf文件中,事实上在Apache 1.3.2中就已经这样做了,在httpd.conf中应包括以下两条指令来防止Apache对srm.conf和access.conf两个配置文件的访问:
AccessConfig /dev/null
ResourceConfig /dev/null
在apache1.3.2中只要注释掉以下这两行即可:
AccessConfig conf/access.conf
ResourceConfig conf/srm.conf
五、用户授权和访问控制
你也许在访问某些网站时会遇到过这样的情况,当你点击某个连接时,你的浏览器会弹出一个身份验证的对话框,要求输入账号及密码,如果没有,就无法继续浏览了。有人会以为这是用CGI做出来的,其实不然,这是WWW服务器的用户授权和访问控制机制在发挥作用。
你是否还记得在设置Apache服务环境的过程中,有……..这个指令,可以对不同的目录提供不同的保护。但是这样的设定,需要重新启动服务器才会生效,灵活性较差,通过AccessFile指令指定访问控制文件的方式则比较灵活,在Apache服务器中设置用户的访问控制权限步骤如下:
1、首先对httpd.conf文件进行设置如下:
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Options Includes FollowSymLinks Indexes
AllowOverride All //*注意AllowOverride 一定要设置为All,这样后面的.htaccess文件才会起作用
Order allow,deny
Allow from all
#
# Order deny,allow
# Deny from all
#
#指定配置存取控制权限的文件名称
AccessFileName .htaccess
2、创建.htaccess文件内容
要控制某目录的访问权限必须建立一访问控制文件,文件名前面指定的“.htaccess”,其内容格式如下:
AuthUserFile 用户帐号密码文件名
AuthGroupFile 群组帐号密码文件名
AuthName 画面提示文字
AuthType 验证方式
密码验证方式
用户验证方式AuthType目前提供了Basic和Digest两种。
密码检验设定方法与httpd.conf中的相关设定相同。
具体例子如下:
AuthUserFile /etc/secure.user
AuthName 安全认证中心
AuthType Basic
require valid-user
3、建立用户密码文件
如果你是之一次创建用户密码,命令格式如下:
htpasswd -c 密码文件名 用户名称
在上面的例子中,我们将用户密码文件放到了/etc/secure.user文件中,所以这里应按照如下进行操作:
htpasswd -c /etc/secure.user sword
程序会提示你输入两次用户的口令,然后用户密码文件就已经创建sword这个用户也添加完毕了。
如果要向密码文件中添加新的用户,按照如下命令格式进行操作:
htpasswd 密码文件 用户名称
这样,重新启动httpd后,进行该WEB目录时就会有一个对话框弹出,要求输入用户名及用户口令了。
4、如何减少访问控制对Apache性能的影响
频繁的使用访问控制会对Apache的性能产生较大的影响,那么,如何才能减少这种影响呢?最简单也是最有效的方法之一就是减少.htaccess文件的数目,这样可以避免Apache对每一个请求都要按照.htaccess文件的内容进行授权检查。它不仅在当前的目录中查找.htaccess文件,它还会在当前目录的父目录中查找。
/
/usr
/usr/local
/usr/local/etc
/usr/local/etc/httpd
/usr/local/etc/httpd/htdocs
/usr/local/etc/httpd/htdocs/docs
通常在根目录下没有htaccess文件,但Apache仍然会进行例行检查以确定该文件确实不存在。这是影响很影响服务器工作效率的事情。下面的方法可以消除这个讨厌的过程:将AllowOverride选设置为None,这样Apache就会检查.htaccess文件了。将/根目录的AllowOverride选项设为None,只将需要进行访问控制的目录下的AllowOverride选项设置为all,如下面的例子中将/根目录的AllowOverride 选项关闭了,只打开了/usr/local/etc/httpd/htdocs目录下的AllowOerride选项,这样,系统就只
系统权限设置
我在网上找到一点资料,可能对你有用,看一下.
=======
windows下权限设置详解
随着动网论坛的广泛应用和动网上传漏洞的被发现以及sql注入式攻击越来越多的被使用,webshell让防火墙形同虚设,一台即使打了所有微软补丁、只让80端口对外开放的web服务器也逃不过被黑的命运。难道我们真的无能为力了吗?其实,只要你弄明白了ntfs系统下的权限设置问题,我们可以对crackers们说:no!
要打造一台安全的web服务器,那么这台服务器就一定要使用ntfs和windows nt/2023/2023。众所周知,windows是一个支持多用户、多任务的操作系统,这是权限设置的基础,一切权限设置都是基于用户和进程而言的,伍孙悄不同的用户在访问这台计算机时,将会有不同的权限。dos是个单任务、单用户的操作系统。但是我们能说dos没有权限吗?不能!当我们打开一台装有dos操作系统的计算机的时候,我们就拥有了这个操作系统的管理员权限,而且,这个权限无处不在。所以,我们只能说dos不支持权限的设置,不能说它没有权限。随着人们安全意识的提高,权限设置随着ntfs的发布诞生了。
windows nt里,用户被分成许多组,组和组之间都有不同的权限,当然,一个组的用户和用户之间也可以有不同的权限。下面腔渣我们来谈谈nt中常见的用户组。
administrators,管理员组,默认情况下,administrators中的用户对计算机/域有不受限制的完全访问权。分配给该组的默认权限允许对整个系统进行完全控制。所以,只有受信任的人员才可成为该组的成员。
power users,高级用户组,power users 可以执行除了为 administrators 组保留的任务外的其他任何操作系统任务。分配给 power users 组的默认权限允许 power users 组的成员修改整个计算机的设置。但power users 不具有将自己添加到 administrators 组的权限。在权限设置中,这个组的权限是仅次于administrators的。
users:普通用户组,这个组的用户无法进行有意或无意的改动。因此,用户可以运行经过验证的应用程序,但不可以运行大多数旧版应用程序。users 组是最安全的组,因为分配给该组的默认权限不允许成员修改操作系统的设置或用户资料。users 组提供了一个最安全的程序运行环境。在经过 ntfs 格式化的卷上,默认安全设置旨在禁止该组的成员危及操作系统和已安装程序的完整性。用户不能修改系统注册表设置、操作系统文件或程序文件。users 可以关闭工作站,但不能关闭服务器。users 可以创建本地组,但只能修改自己创建的本地组。
guests:来宾组,按默认值,来宾跟普通users的成员有同等访问权,但来宾帐户的限制更多。
everyone:顾名思义,所有的用户,这个计算机上的所有用户都属于这个组。
其实还有一个组也很常见,它拥有和administrators一样、甚至比其还高的权限,但是这个组不允许任何用户的加入,在察看用户组的时候,它也不会被显示出来,它就是system组。系统和系统级的服务正常运行所需要的权限都是靠它赋予的。由于该组只有这一个用户system,也许把该组归为用户的行列更为贴切。
权限是有高低之分的,有高权限的用户可以对低权限的用户进行操作,但除了administrators之外,其他组的用户不能访问 ntfs 卷上的其他用户资料,除非他们获得了这些用户的授权。而低权限的用户无法对高权限的用户进行任何操作。
我们平常使用计算机的过程当中不会感觉到有权限在阻挠你去做某件事情,这是因为我们在使用计算机的时候都用的是administrators中的用户登陆的。这样有利也有弊,利当然是你能去做你想做的任何一件事情而不会遇到权限的限制。弊就是以 administrators 组成员的身份运行计算机将使系统容易受到特洛伊木马、病毒及其他安全风险的威胁。访问 internet 站点或打开电子邮件附件的简单行动都可能破坏系统。不熟悉的 internet 站点或电子邮件附件可能有特洛伊木马代码,这些代码可以下载到系统凯姿并被执行。如果以本地计算机的管理员身份登录,特洛伊木马可能使用管理访问权重新格式化您的硬盘,造成不可估量的损失,所以在没有必要的情况下,更好不用administrators中的用户登陆。administrators中有一个在系统安装时就创建的默认用户—-administrator,administrator 帐户具有对服务器的完全控制权限,并可以根据需要向用户指派用户权利和访问控制权限。因此强烈建议将此帐户设置为使用强密码。永远也不可以从 administrators 组删除 administrator 帐户,但可以重命名或禁用该帐户。由于大家都知道“管理员”存在于许多版本的 windows 上,所以重命名或禁用此帐户将使恶意用户尝试并访问该帐户变得更为困难。对于一个好的服务器管理员来说,他们通常都会重命名或禁用此帐户。guests用户组下,也有一个默认用户—-guest,但是在默认情况下,它是被禁用的。如果没有特别必要,无须启用此账户。我们可以通过“控制面板”–“管理工具”–“计算机管理”–“用户和用户组”来查看用户组及该组下的用户。
我们用鼠标右键单击一个ntfs卷或ntfs卷下的一个目录,选择“属性”–“安全”就可以对一个卷,或者一个卷下面的目录进行权限设置,此时我们会看到以下七种权限:完全控制、修改、读取和运行、列出文件夹目录、读取、写入、和特别的权限。“完全控制”就是对此卷或目录拥有不受限制的完全访问。地位就像administrators在所有组中的地位一样。选中了“完全控制”,下面的五项属性将被自动被选中。“修改”则像power users,选中了“修改”,下面的四项属性将被自动被选中。下面的任何一项没有被选中时,“修改”条件将不再成立。“读取和运行”就是允许读取和运行在这个卷或目录下的任何文件,“列出文件夹目录”和“读取”是“读取和运行”的必要条件。“列出文件夹目录”是指只能浏览该卷或目录下的子目录,不能读取,也不能运行。“读取”是能够读取该卷或目录下的数据。“写入”就是能往该卷或目录下写入数据。而“特别”则是对以上的六种权限进行了细分。读者可以自行对“特别”进行更深的研究,鄙人在此就不过多赘述了。
下面我们对一台刚刚安装好操作系统和服务软件的web服务器系统和其权限进行全面的刨析。服务器采用windows 2023 server版,安装好了sp4及各种补丁。web服务软件则是用了windows 2023自带的iis 5.0,删除了一切不必要的映射。整个硬盘分为四个ntfs卷,c盘为系统卷,只安装了系统和驱动程序;d盘为软件卷,该服务器上所有安装的软件都在d盘中;e盘是web程序卷,网站程序都在该卷下的www目录中;f盘是网站数据卷,网站系统调用的所有数据都存放在该卷的wwwdatabase目录下。这样的分类还算是比较符合一台安全服务器的标准了。希望各个新手管理员能合理给你的服务器数据进行分类,这样不光是查找起来方便,更重要的是这样大大的增强了服务器的安全性,因为我们可以根据需要给每个卷或者每个目录都设置不同的权限,一旦发生了网络安全事故,也可以把损失降到更低。当然,也可以把网站的数据分布在不同的服务器上,使之成为一个服务器群,每个服务器都拥有不同的用户名和密码并提供不同的服务,这样做的安全性更高。不过愿意这样做的人都有一个特点—-有钱:)。好了,言归正传,该服务器的数据库为ms-sql,ms-sql的服务软件sql2023安装在d:\ms-sqlserver2k目录下,给sa账户设置好了足够强度的密码,安装好了sp3补丁。为了方便网页制作员对网页进行管理,该网站还开通了ftp服务,ftp服务软件使用的是serv-u 5.1.0.0,安装在d:\ftpservice\serv-u目录下。杀毒软件和防火墙用的分别是norton antivirus和blackice,路径分别为d:\nortonav和d:\firewall\blackice,病毒库已经升级到最新,防火墙规则库定义只有80端口和21端口对外开放。网站的内容是采用动网7.0的论坛,网站程序在e:\www\bbs下。细心的读者可能已经注意到了,安装这些服务软件的路径我都没有采用默认的路径或者是仅仅更改盘符的默认路径,这也是安全上的需要,因为一个黑客如果通过某些途径进入了你的服务器,但并没有获得管理员权限,他首先做的事情将是查看你开放了哪些服务以及安装了哪些软件,因为他需要通过这些来提升他的权限。一个难以猜解的路径加上好的权限设置将把他阻挡在外。相信经过这样配置的web服务器已经足够抵挡大部分学艺不精的黑客了。读者可能又会问了:“这根本没用到权限设置嘛!我把其他都安全工作都做好了,权限设置还有必要吗?”当然有!智者千虑还必有一失呢,就算你现在已经把系统安全做的完美无缺,你也要知道新的安全漏洞总是在被不断的发现。权限将是你的最后一道防线!那我们现在就来对这台没有经过任何权限设置,全部采用windows默认权限的服务器进行一次模拟攻击,看看其是否真的固若金汤。
假设服务器外网域名为
,用扫描软件对其进行扫描后发现开放www和ftp服务,并发现其服务软件使用的是iis 5.0和serv-u 5.1,用一些针对他们的溢出工具后发现无效,遂放弃直接远程溢出的想法。打开网站页面,发现使用的是动网的论坛系统,于是在其域名后面加个/upfile.asp,发现有文件上传漏洞,便抓包,把修改过的asp木马用nc提交,提示上传成功,成功得到webshell,打开刚刚上传的asp木马,发现有ms-sql、norton antivirus和blackice在运行,判断是防火墙上做了限制,把sql服务端口屏蔽了。通过asp木马查看到了norton antivirus和blackice的pid,又通过asp木马上传了一个能杀掉进程的文件,运行后杀掉了norton antivirus和blackice。再扫描,发现1433端口开放了,到此,便有很多种途径获得管理员权限了,可以查看网站目录下的conn.asp得到sql的用户名密码,再登陆进sql执行添加用户,提管理员权限。也可以抓serv-u下的servudaemon.ini修改后上传,得到系统管理员权限。还可以传本地溢出serv-u的工具直接添加用户到administrators等等。大家可以看到,一旦黑客找到了切入点,在没有权限限制的情况下,黑客将一帆风顺的取得管理员权限。
那我们现在就来看看windows 2023的默认权限设置到底是怎样的。对于各个卷的根目录,默认给了everyone组完全控制权。这意味着任何进入电脑的用户将不受限制的在这些根目录中为所欲为。系统卷下有三个目录比较特殊,系统默认给了他们有限制的权限,这三个目录是documents and settings、program files和winnt。对于documents and settings,默认的权限是这样分配的:administrators拥有完全控制权;everyone拥有读&运,列和读权限;power users拥有读&运,列和读权限;system同administrators;users拥有读&运,列和读权限。对于program files,administrators拥有完全控制权;creator owner拥有特殊权限;power users有完全控制权;system同administrators;terminal server users拥有完全控制权,users有读&运,列和读权限。对于winnt,administrators拥有完全控制权;creator owner拥有特殊权限;power users有完全控制权;system同administrators;users有读&运,列和读权限。而非系统卷下的所有目录都将继承其父目录的权限,也就是everyone组完全控制权!
现在大家知道为什么我们刚刚在测试的时候能一帆风顺的取得管理员权限了吧?权限设置的太低了!一个人在访问网站的时候,将被自动赋予iusr用户,它是隶属于guest组的。本来权限不高,但是系统默认给的everyone组完全控制权却让它“身价倍增”,到最后能得到administrators了。那么,怎样设置权限给这台web服务器才算是安全的呢?大家要牢记一句话:“最少的服务+最小的权限=更大的安全”对于服务,不必要的话一定不要装,要知道服务的运行是system级的哦,对于权限,本着够用就好的原则分配就是了。对于web服务器,就拿刚刚那台服务器来说,我是这样设置权限的,大家可以参考一下:各个卷的根目录、documents and settings以及program files,只给administrator完全控制权,或者干脆直接把program files给删除掉;给系统卷的根目录多加一个everyone的读、写权;给e:\www目录,也就是网站目录读、写权。最后,还要把cmd.exe这个文件给挖出来,只给administrator完全控制权。经过这样的设置后,再想通过我刚刚的方法入侵这台服务器就是不可能完成的任务了。可能这时候又有读者会问:“为什么要给系统卷的根目录一个everyone的读、写权?网站中的asp文件运行不需要运行权限吗?”问的好,有深度。是这样的,系统卷如果不给everyone的读、写权的话,启动计算机的时候,计算机会报错,而且会提示虚拟内存不足。当然这也有个前提—-虚拟内存是分配在系统盘的,如果把虚拟内存分配在其他卷上,那你就要给那个卷everyone的读、写权。asp文件的运行方式是在服务器上执行,只把执行的结果传回最终用户的浏览器,这没错,但asp文件不是系统意义上的可执行文件,它是由web服务的提供者—-iis来解释执行的,所以它的执行并不需要运行的权限。
经过上面的讲解以后,你一定对权限有了一个初步了了解了吧?想更深入的了解权限,那么权限的一些特性你就不能不知道了,权限是具有继承性、累加性 、优先性、交叉性的。
继承性是说下级的目录在没有经过重新设置之前,是拥有上一级目录权限设置的。这里还有一种情况要说明一下,在分区内复制目录或文件的时候,复制过去的目录和文件将拥有它现在所处位置的上一级目录权限设置。但在分区内移动目录或文件的时候,移动过去的目录和文件将拥有它原先的权限设置。
累加是说如一个组group1中有两个用户user1、user2,他们同时对某文件或目录的访问权限分别为“读取”和“写入”,那么组group1对该文件或目录的访问权限就为user1和user2的访问权限之和,实际上是取其更大的那个,即“读取”+“写入”=“写入”。 又如一个用户user1同属于组group1和group2,而group1对某一文件或目录的访问权限为“只读”型的,而group2对这一文件或文件夹的访问权限为“完全控制”型的,则用户user1对该文件或文件夹的访问权限为两个组权限累加所得,即:“只读”+“完全控制”=“完全控制”。
优先性,权限的这一特性又包含两种子特性,其一是文件的访问权限优先目录的权限,也就是说文件权限可以越过目录的权限,不顾上一级文件夹的设置。另一特性就是“拒绝”权限优先其它权限,也就是说“拒绝”权限可以越过其它所有其它权限,一旦选择了“拒绝”权限,则其它权限也就不能取任何作用,相当于没有设置。
交叉性是指当同一文件夹在为某一用户设置了共享权限的同时又为用户设置了该文件夹的访问权限,且所设权限不一致时,它的取舍原则是取两个权限的交集,也即最严格、最小的那种权限。如目录a为用户user1设置的共享权限为“只读”,同时目录a为用户user1设置的访问权限为“完全控制”,那用户user1的最终访问权限为“只读”。
权限设置的问题我就说到这了,在最后我还想给各位读者提醒一下,权限的设置必须在ntfs分区中才能实现的,fat32是不支持权限设置的。同时还想给各位管理员们一些建议:
1.养成良好的习惯,给服务器硬盘分区的时候分类明确些,在不使用服务器的时候将服务器锁定,经常更新各种补丁和升级杀毒软件。
2.设置足够强度的密码,这是老生常谈了,但总有管理员设置弱密码甚至空密码。
3.尽量不要把各种软件安装在默认的路径下
4.在英文水平不是问题的情况下,尽量安装英文版操作系统。
5.切忌在服务器上乱装软件或不必要的服务。
6.牢记:没有永远安全的系统,经常更新你的知识。
一. 权限的由来
远方的某个山脚下,有一片被森林包围的草原,草原边上居住着一群以牧羊为生的牧民。草原边缘的森林里,生存着各种动物,包括野狼。
由于羊群是牧民们的主要生活来源,它们的价值便显得特别珍贵,为了防止羊的跑失和野兽的袭击,每户牧民都用栅栏把自己的羊群圈了起来,只留下一道小门,以便每天傍晚供羊群外出到一定范围的草原上活动,实现了一定规模的保护和管理效果。
最初,野狼只知道在森林里逮兔子等野生动物生存,没有发现远处草原边上的羊群,因此,在一段时间里实现了彼此和平相处,直到有一天,一只为了追逐兔子而凑巧跑到了森林边缘的狼,用它那灵敏的鼻子嗅到了远处那隐隐约约的烤羊肉香味。
当晚,突然出现的狼群袭击了草原上大部分牧民饲养的羊,它们完全无视牧民们修筑的仅仅能拦住羊群的矮小栅栏,轻轻一跃便突破了这道防线……虽然闻讯而来的牧民们合作击退了狼群,但是羊群已经遭到了一定的损失。
事后,牧民们明白了栅栏不是仅仅用来防止羊群逃脱的城墙,各户牧民都在忙着加高加固了栅栏……
如今使用Windows 2023/XP等操作系统的用户,或多或少都会听说过“权限”(Privilege)这个概念,但是真正理解它的家庭用户,也许并不会太多,那么,什么是“权限”呢?对于一般的用户而言,我们可以把它理解为系统对用户能够执行的功能操作所设立的额外限制,用于进一步约束计算机用户能操作的系统功能和内容访问范围,或者说,权限是指某个特定的用户具有特定的系统资源使用权力。
掌握了“Ring级别”概念的读者也许会问,在如今盛行的80386保护模式中,处理器不是已经为指令执行做了一个“运行级别”的限制了吗?而且我们也知道,面对用户操作的Ring 3级别相对于系统内核运行的Ring 0级别来说,能直接处理的事务已经被大幅度缩减了,为什么还要对运行在“权限少得可怜”的Ring 3层次上的操作系统人机交互界面上另外建立起一套用于进一步限制用户操作的“权限”概念呢?这是因为,前者针对的是机器能执行的指令代码权限,而后者要针对的对象,是坐在计算机面前的用户。
对计算机来说,系统执行的代码可能会对它造成危害,因此处理器产生了Ring的概念,把“在外”的一部分用于人机交互的操作界面限制起来,避免它一时头脑发热发出有害指令;而对于操作界面部分而言,用户的每一步操作仍然有可能伤害到它自己和底层系统——尽管它自身已经被禁止执行许多有害代码,但是一些不能禁止的功能却依然在对这层安全体系作出威胁,例如格式化操作、删除修改文件等,这些操作在计算机看来,只是“不严重”的磁盘文件处理功能,然而它忽略了一点,操作系统自身就是驻留在磁盘介质上的文件!因此,为了保护自己,操作系统需要在Ring 3笼子限制的操作界面基础上,再产生一个专门用来限制用户的栅栏,这就是现在我们要讨论的权限,它是为限制用户而存在的,而且限制对每个用户并不是一样的,在这个思想的引导下,有些用户能操作的范围相对大些,有些只能操作属于自己的文件,有些甚至什么也不能做……
正因为如此,计算机用户才有了分类:管理员、普通用户、受限用户、来宾等……
还记得古老的Windows 9x和MS-DOS吗?它们仅仅拥有基本的Ring权限保护(实模式的DOS甚至连Ring分级都没有),在这个系统架构里,所有用户的权力都是一样的,任何人都是管理员,系统没有为环境安全提供一点保障——它连实际有用的登录界面都没有提供,仅仅有个随便按ESC都能正常进入系统并进行任何操作的“伪登录”限制而已。对这样的系统而言,不熟悉电脑的用户经常一不小心就把系统毁掉了,而且病毒木马自然也不会放过如此“松软”的一块蛋糕,在如今这个提倡信息安全的时代里,Windows 9x成了名副其实的鸡肋系统,最终淡出人们的视线,取而代之的是由Windows NT家族发展而来的Windows 2023和Windows XP,此外还有近年来致力向桌面用户发展的Linux系统等,它们才是能够满足这个安全危机时代里个人隐私和数据安全等要求的系统。
Win2023/XP系统是微软Windows NT技术的产物,是基于服务器安全环境思想来构建的纯32位系统。NT技术没有辜负微软的开发,它稳定,安全,提供了比较完善的多用户环境,最重要的是,它实现了系统权限的指派,从而杜绝了由Win9x时代带来的不安全操作习惯可能引发的大部分严重后果。
二. 权限的指派
1.普通权限
虽然Win2023/XP等系统提供了“权限”的功能,但是这样就又带来一个新问题:权限如何分配才是合理的?如果所有人拥有的权限都一样,那么就等于所有人都没有权限的限制,那和使用Win9x有什么区别?幸好,系统默认就为我们设置好了“权限组”(Group),只需把用户加进相应的组即可拥有由这个组赋予的操作权限,这种做法就称为权限的指派。
默认情况下,系统为用户分了6个组,并给每个组赋予不同的操作权限,依次为:管理员组(Administrators)、高权限用户组(Power Users)、普通用户组(Users)、备份操作组(Backup Operators)、文件复制组(Replicator)、来宾用户组(Guests),其中备份操作组和文件复制组为维护系统而设置,平时不会被使用。
系统默认的分组是依照一定的管理凭据指派权限的,而不是胡乱产生,管理员组拥有大部分的计算机操作权限(并不是全部),能够随意修改删除所有文件和修改系统设置。再往下就是高权限用户组,这一部分用户也能做大部分事情,但是不能修改系统设置,不能运行一些涉及系统管理的程序。普通用户组则被系统拴在了自己的地盘里,不能处理其他用户的文件和运行涉及管理的程序等。来宾用户组的文件操作权限和普通用户组一样,但是无法执行更多的程序。
这是系统给各个组指派的权限说明,细心的用户也许会发现,为什么里面描述的“不能处理其他用户的文件”这一条规则并不成立呢,我可以访问所有文件啊,只是不能对系统设置作出修改而已,难道是权限设定自身存在问题?实际上,NT技术的一部分功能必须依赖于特有的“NTFS”(NT文件系统)分区才能实现,文件操作的权限指派就是最敏感的一部分,而大部分家庭用户的分区为FAT32格式,它并不支持NT技术的安全功能,因此在这样的文件系统分区上,连来宾用户都能随意浏览修改系统管理员建立的文件(限制写入操作的共享访问除外),但这并不代表系统权限不起作用,我们只要把分区改为NTFS即可。
2.特殊权限
除了上面提到的6个默认权限分组,系统还存在一些特殊权限成员,这些成员是为了特殊用途而设置,分别是:SYSTEM(系统)、Everyone(所有人)、CREATOR OWNER(创建者)等,这些特殊成员不被任何内置用户组吸纳,属于完全独立出来的账户。(图.特殊权限成员)
前面我提到管理员分组的权限时并没有用“全部”来形容,秘密就在此,不要相信系统描述的“有不受限制的完全访问权”,它不会傻到把自己完全交给人类,管理员分组同样受到一定的限制,只是没那么明显罢了,真正拥有“完全访问权”的只有一个成员:SYSTEM。这个成员是系统产生的,真正拥有整台计算机管理权限的账户,一般的操作是无法获取与它等价的权限的。
“所有人”权限与普通用户组权限差不多,它的存在是为了让用户能访问被标记为“公有”的文件,这也是一些程序正常运行需要的访问权限——任何人都能正常访问被赋予“Everyone”权限的文件,包括来宾组成员。
被标记为“创建者”权限的文件只有建立文件的那个用户才能访问,做到了一定程度的隐私保护。
但是,所有的文件访问权限均可以被管理员组用户和SYSTEM成员忽略,除非用户使用了NTFS加密。
无论是普通权限还是特殊权限,它们都可以“叠加”使用,“叠加”就是指多个权限共同使用,例如一个账户原本属于Users组,而后我们把他加入Administrators组,那么现在这个账户便同时拥有两个权限身份,而不是用管理员权限去覆盖原来身份。权限叠加并不是没有意义的,在一些需要特定身份访问的场合,用户只有为自己设置了指定的身份才能访问,这个时候“叠加”的使用就能减轻一部分劳动量了。
3.NTFS与权限
在前面我提到了NTFS文件系统,自己安装过Win2023/XP的用户应该会注意到安装过程中出现的“转换分区格式为NTFS”的选择,那么什么是NTFS?
NTFS是一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式,只有使用NT技术的系统对它直接提供支持,也就是说,如果系统崩溃了,用户将无法使用外面流行的普通光盘启动工具修复系统,因此,是使用传统的FAT32还是NTFS,一直是个倍受争议的话题,但如果用户要使用完全的系统权限功能,或者要安装作为服务器使用,建议更好还是使用NTFS分区格式。
与FAT32分区相比,NTFS分区多了一个“安全”特性,在里面,用户可以进一步设置相关的文件访问权限,而且前面提到的相关用户组指派的文件权限也只有在NTFS格式分区上才能体现出来。例如,来宾组的用户再也不能随便访问到NTFS格式分区的任意一个文件了,这样可以减少系统遭受一般由网站服务器带来的入侵损失,因为IIS账户对系统的访问权限仅仅是来宾级别而已,如果入侵者不能提升权限,那么他这次的入侵可以算是白忙了。
使用NTFS分区的时候,用户才会察觉到系统给管理员组用户设定的限制:一些文件即使是管理员也无法访问,因为它是SYSTEM成员建立的,并且设定了权限。
关于http 服务器权限设定的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。