windows2003 +apache 安全策略

apache 的安全:ServerRoot目录的权限 CGI脚本的安全考虑 Apache Server基于主机的访问控制 apache 的日制。


(把每用的端口关闭,把管理员重命名。把日制重定向。打补丁。) (优化apache)


(尽管不断地在对系统进行修补,但由于软件系统的复杂性,新的安全漏洞总会层出不穷。因此,除了对安全漏洞进行修补之外,还要对系统
的运行状态进行实时监视,以便及时发现利用各种漏洞的入侵行为。如果已有安全漏洞但还没有全部得到修补时,这种监视就显得尤其重要。
  
  1、启用系统审核机制
  系统审核机制可以对系统中的各类事件进行跟踪记录并写入日志文件,以供管理员进行分析、查找系统和应用程序故障以及各类安全事件

  
  所有的操作系统、应用系统等都带有日志功能,因此可以根据需要实时地将发生在系统中的事件记录下来。同时还可以通过查看与安全相
关的日志文件的内容,来发现黑客的入侵和入侵后的行为。当然,如果要达到这个目的,就必须具备一些相关的知识。首先必须要学会如何配
置系统,以启用相应的审核机制,并同时使之能够记录各种安全事件。
  
  对Windows Server 2003的服务器和工作站系统来说,为了不影响系统性能,默认的安全策略并不对安全事件进行审核。从“安全配置和分
析”工具用SecEdit安全模板进行的分析结果可知,这些有红色标记的审核策略应该已经启用,这可用来发现来自外部和内部的黑客的入侵行为
。对于关键的应用服务器和文件服务器来说,应同时启用剩下的安全策略。
  
  如果已经启用了“审核对象访问”策略,那么就要求必须使用NTFS文件系统。NTFS文件系统不仅提供对用户的访问控制,而且还可以对用
户的访问操作进行审核。但这种审核功能,需要针对具体的对象来进行相应的配置。
  
  首先在被审核对象“安全”属性的“高级”属性中添加要审核的用户和组。在该对话框中选择好要审核的用户后,就可以设置对其进行审
核的事件和结果。 在所有的审核策略生效后,就可以通过检查系统的日志来发现黑客的蛛丝马迹。
  
  2、日志监视
  在系统中启用安全审核策略后,管理员应经常查看安全日志的记录,否则就失去了及时补救和防御的时机了。除了安全日志外,管理员还
要注意检查各种服务或应用的日志文件。在Windows 2003 IIS 6.0中,其日志功能默认已经启动,并且日志文件存放的路径默认在
System32/LogFiles目录下,打开IIS日志文件,可以看到对Web服务器的HTTP请求,IIS6.0系统自带的日志功能从某种程度上可以成为入侵检测
的得力帮手。
  
  3、监视开放的端口和连接
  对日志的监视只能发现已经发生的入侵事件,但是它对正在进行的入侵和破坏行为无能为力了。这时,就需要管理员来掌握一些基本的实
时监视技术。
  
  通常在系统被黑客或病毒入侵后,就会在系统中留下木马类后门。同时它和外界的通信会建立一个Socket会话连接,这样就可能发现它,
netstat命令可以进行会话状态的检查,在这里就可以查看已经打开的端口和已经建立的连接。 当然也可以采用一些专用的检测程序对端口和
连接进行检测,这一类软件很多。
  
  4、监视共享
  通过共享来入侵一个系统是最为舒服的一种方法了。如果防范不严,最简单的方法就是利用系统隐含的管理共享。因此,只要黑客能够扫
描到的IP和用户密码,就可以使用net use命令连接到的共享上。另外,当浏览到含有恶意脚本的网页时,此时计算机的硬盘也可能被共享,因
此,监测本机的共享连接是非常重要的。
  
  监测本机的共享连接具体方法如下:在Windows Server 2003的计算机中,打开“计算机管理”工具,并展开“共享文件夹”选项。单击其
中的“共享”选项,就可以查看其右面窗口,以检查是否有新的可疑共享,如果有可疑共享,就应该立即删除。另外还可以通过选择“会话”
选项,来查看连接到机器所有共享的会话。Windows NT/2000的IPC$共享漏洞是目前危害最广的漏洞之一。黑客即使没有马上破解密码,也仍然
可以通过“空连接”来连接到系统上,再进行其他的尝试。
  
  5、监视进程和系统信息
  对于木马和远程监控程序,除了监视开放的端口外,还应通过任务管理器的进程查看功能进行进程的查找。在安装Windows Server2003的
支持工具(从产品光盘安装)后,就可以获得一个进程查看工具Process Viewer;通常,隐藏的进程寄宿在其他进程下,因此查看进程的内存
映象也许能发现异常。现在的木马越来越难发现,常常它会把自己注册成一个服务,从而避免了在进程列表中现形。因此,我们还应结合对系
统中的其他信息的监视,这样就可对系统信息中的软件环境下的各项进行相应的检查。


、提高密码的破解难度
  提高密码的破解难度主要是通过采用提高密码复杂性、增大密码长度、提高更换频率等措施来实现,但这常常是用户很难做到的,对于企
业网络中的一些安全敏感用户就必须采取一些相关的措施,以强制改变不安全的密码使用习惯。
  在Windows系统中可以通过一系列的安全设置,并同时制定相应的安全策略来实现。在Windows Server 2003系统中,可以通过在安全策略
中设定“密码策略”来进行。Window Server 2003系统的安全策略可以根据网络的情况,针对不同的场合和范围进行有针对性地设定。例如可
以针对本地计算机、域及相应的组织单元来进行设定,这将取决于该策略要影响的范围。
  以域安全策略为例,其作用范围是企业网中所指定域的所有成员。在域管理工具中运行“域安全策略”工具,然后就可以针对密码策略进
行相应的设定。
  密码策略也可以在指定的计算机上用“本地安全策略”来设定,同时也可在网络中特定的组织单元通过组策略进行设定。 2、启用账户锁
定策略

  账户锁定是指在某些情况下(例如账户受到采用密码词典或暴力猜解方式的在线自动登录攻击),为保护该账户的安全而将此账户进行锁定
。使其在一定的时间内不能再次使用,从而挫败连续的猜解尝试。
  Windows2003系统在默认情况下,为方便用户起见,这种锁定策略并没有进行设定,此时,对黑客的攻击没有任何限制。只要有耐心,通过
自动登录工具和密码猜解字典进行攻击,甚至可以进行暴力模式的攻击,那么破解密码只是一个时间和运气上的问题。账户锁定策略设定的第
一步就是指定账户锁定的阈值,即锁定前该账户无效登录的次数。一般来说,由于操作失误造成的登录失败的次数是有限的。在这里设置锁定
阈值为3次,这样只允许3次登录尝试。如果3次登录全部失败,就会锁定该账户。
  但是,一旦该账户被锁定后,即使是合法用户也就无法使用了。只有管理员才可以重新启用该账户,这就造成了许多不便。为方便用户起
见,可以同时设定锁定的时间和复位计数器的时间,这样以来在3次无效登最后就开始锁定账户,以及锁定时间为30分钟。以上的账户锁定设定
,可以有效地避免自动猜解工具的攻击,同时对于手动尝试者的耐心和信心也可造成很大的打击。锁定用户账户常常会造成一些不便,但系统
的安全有时更为重要。
  3、限制用户登录
  对于企业网的用户还可以通过对其登录行为进行限制,来保障其户户账户的安全。这样以来,即使是密码出现泄漏,系统也可以在一定程
度上将黑客阻挡在外,对于Windows Server 2003网络来说,运行“Active Directory用户和计算机”管理工具。 然后选择相应的用户,并设
置其账户属性。
  在账户属性对话框中,可以限制其登录的时间和地点。单击其中的“登录时间”按钮,在这里可以设置允许该用户登录的时间,这样就可
防止非工作时间的登录行为。单击其中的“登录到”按钮,在这里可以设置允许该账户从哪些计算机乾地登录。另外,还可以通过“账户”选
罾聪拗频锹际钡男形@缡褂谩坝没П匦胗弥悄芸ǖ锹肌保涂杀苊庵苯邮褂妹苈胙橹ぁ3酥猓箍梢砸胫肝蒲橹さ雀细竦氖侄巍
?/P>
  4、限制外部连接
  对于企业网络来说,通常需要为一些远程拨号的用户(业务人员或客户等)提供拨号接入服务。远程拨号访问技术实际上是通过低速的拨号
连接来将远程计算机接入到企业内部的局域网中。由于这个连接无法隐藏,因此常常成为黑客入侵内部网络的最佳入口。但是,采取一定的措
施可以有效地降低风险。)

一、Apache 服务器的功能
  
  Apache Serve的前身是NCSA的httpd,曾经在1995年成为最为流行的万维网的服务器。因为强大的功能和灵活的设置及平台移植性,Apache
Server取得了广泛的信赖。Apache Server的主要功能有:
  1、支持最新的HTTP1.1协议(RFC2616)。
  2、极强的可配置和可扩展性,充分利用第三方模快的功能。
  3、提供全部的源代码和不受限制的使用许可(License)。
  4、广泛应用于Windows 2000/NT/9x、Netware 5.x,OS/2 和UNIX家族极其他操作系统,所支持的平台多达17余种。
  5、强大的功能,涵盖了用户的需求,包括:认证中的DBM数据库支持;错误和问题的可定制响应的目录导向功能;不受限的灵活的URL别名
机制和重定向功能;虚拟主机(多宿主主机)支持多个域主页共存一台主机;超强的日志文件功能;利用站点的分析;拓展于维护等等。
  正因为这些强大的优势,使Apache Server与其他的Web服务器相比,充分展示了高效、稳定及功能丰富的特点。Apache Server 已用于超
过600万个Internet站点。
- overisbadboy 2009-06-24 16:35:10

二、Apache 服务器的安全特性
  作为最流行的Web服务器,Apache Server提供了较好的安全特性,使其能够应对可能的安全威胁和信息泄漏。
1、采用选择性访问控制和强制性访问控制的安全策略
  从Apache 或Web的角度来讲,选择性访问控制DAC(Discretionary Access Control)仍是基于用户名和密码的,强制性访问控制MAC
(Mandatory Access Control)则是依据发出请求的客户端的IP地址或所在的域号来进行界定的。对于DAC方式,如输入错误,那么用户还有机
会更正,从新输入正确的的密码;如果用户通过不了MAC关卡,那么用户将被禁止做进一步的操作,除非服务器作出安全策略调整,否则用户的
任何努力都将无济于事。
  2、Apache 的安全模块
  Apache 的一个优势便是其灵活的模块结构,其设计思想也是围绕模块(Modules)概念而展开的。安全模块是Apache Server中的极其重要
的组成部分。这些安全模块负责提供Apache Server的访问控制和认证、授权等一系列至关重要的安全服务。
  mod_access模块能够根据访问者的IP地址(或域名,主机名等)来控制对Apache服务器的访问,称之为基于主机的访问控制。
  mod_auth模块用来控制用户和组的认证授权(Authentication)。用户名和口令存于纯文本文件中。mod_auth_db和mod_auth_dbm模块则分
别将用户信息(如名称、组属和口令等)存于Berkeley-DB及DBM型的小型数据库中,便于管理及提高应用效率。
  mod_auth_digest模块则采用MD5数字签名的方式来进行用户的认证,但它相应的需要客户端的支持。
  mod_auth_anon模块的功能和mod_auth的功能类似,只是它允许匿名登录,将用户输入的E-mail地址作为口令。
  SSL(Secure Socket Lager),被Apache所支持的安全套接字层协议,提供Internet上安全交易服务,如电子商务中的一项安全措施。通
过对通讯字节流的加密来防止敏感信息的泄漏。但是,Apache的这种支持是建立在对Apache的API扩展来实现的,相当于一个外部模块,通过与
第三方程序的结合提供安全的网上交易支持。
三、Apache服务器的安全配置
  在前面的内容中提到过,Apache具有灵活的设置。所有Apache的安全特性都要经过周密的设计与规划,进行认真地配置才能够实现。
Apache服务器的安全配置包括很多层面,有运行环境、认证与授权设置及建立安全的电子交易链接等。
  1、Apache的安装配置和运行
  (1)以Nobody用户运行一般情况下,Apache是由Root 来安装和运行的。如果Apache Server进程具有Root用户特权,那么它将给系统的安
全构成很大的威胁,应确保Apache Server进程以最可能低的权限用户来运行。通过修改httpd.conf文件中的下列选项,以Nobody用户运行
Apache 达到相对安全的目的。
  User nobody
  Group# -1
  (2) ServerRoot目录的权限
  为了确保所有的配置是适当的和安全的,需要严格控制Apache 主目录的访问权限,使非超级用户不能修改该目录中的内容。Apache 的主
目录对应于Apache Server配置文件httpd.conf的Server Root控制项中,应为:
  Server Root /usr/local/apache
  (3)SSI的配置
  在配置文件access.conf 或httpd.conf中的确Options指令处加入IncludesNOEXEC选项,用以禁用Apache Server 中的执行功能。避免用户
直接执行Apache 服务器中的执行程序,而造成服务器系统的公开化。
  
  Options Includes Noexec
  
  (4)阻止用户修改系统设置
  在Apache 服务器的配置文件中进行以下的设置,阻止用户建立、修改 .htaccess文件,防止用户超越能定义的系统安全特性。
  
  AllowOveride None
  Options None
  Allow from all
  
  然后再分别对特定的目录进行适当的配置。
  (5)Apache 服务器的确省访问特性
  Apache 的默认设置只能保障一定程度的安全,如果服务器能够通过正常的映射规则找到文件,那么客户端便会获取该文件,如
http://localhost/~ root/ 将允许用户访问整个文件系统。在服务器文件中加入如下内容:
- overisbadboy 2009-06-24 16:35:24

order deny,ellow
  Deny from all
  
  将禁止对文件系统的缺省访问。
  (6)CGI脚本的安全考虑
  CGI脚本是一系列可以通过Web服务器来运行的程序。为了保证系统的安全性,应确保CGI的作者是可信的。对CGI而言,最好将其限制在一
个特定的目录下,如cgi-bin之下,便于管理;另外应该保证CGI目录下的文件是不可写的,避免一些欺骗性的程序驻留或混迹其中;如果能够
给用户提供一个安全性良好的CGI程序的模块作为参考,也许会减少许多不必要的麻烦和安全隐患;除去CGI目录下的所有非业务应用的脚本,
以防异常的信息泄漏。
  以上这些常用的举措可以给Apache Server 一个基本的安全运行环境,显然在具体实施上还要做进一步的细化分解,制定出符合实际应用
的安全配置方案。
四、Apache Server基于主机的访问控制
  Apache Server默认情况下的安全配置是拒绝一切访问。假定Apache Server内容存放在/usr/local/apache/share 目录下,下面的指令将
实现这种设置:
  
  Deny from all
  AllowOverride None
  
  则禁止在任一目录下改变认证和访问控制方法。
  同样,可以用特有的命令Deny、Allow指定某些用户可以访问,哪些用户不能访问,提供一定的灵活性。当Deny、Allow一起用时,用命令
Order决定Deny和Allow合用的顺序。
  1、拒绝某类地址的用户对服务器的访问权(Deny)
  如:Deny from all
  Deny from test.cnn.com
  Deny from 204.168.190.13
  Deny from 10.10.10.0/255.255.0.0
  2、允许某类地址的用户对服务器的访问权(Allow)
  如:Allow from all
  Allow from test.cnn.com
  Allow from 204.168.190.13
  Allow from 10.10.10.0/255.255.0.0
  Deny和Allow指令后可以输入多个变量。
  3、实例:
  Order Allow, Deny
  Allow from all
  Deny fromwww.***.com
  则,想让所有的人访问Apache服务器,但不希望来自www.***.com的任何访问。
  Order Deny, Allow
  Deny from all
  Allow from test.cnn.com
  则,不想让所有人访问,但希望给test.cnn.com网站的来访。
  有关访问控制的高级设置请阅读UNIX系统管理书籍。
  五、Apache Sever的用户认证与授权
  概括的讲,用户认证就是验证用户的身份的真实性,如用户帐号是否在数据库中,及用户帐号所对应的密码是否正确;用户授权表示检验
有效用户是否被许可访问特定的资源。在Apache中,几乎所有的安全模块实际上兼顾这两个方面。从安全的角度来看,用户的认证和授权相当
于选择性访问控制。
  建立用户的认证授权需要三个步骤:
  (1)建立用户库
  用户名和口令列表需要存在于文件(mod_auth模块)或数据库(mod_auth_dbm模块)中。基于安全的原因,该文件不能存放在文挡的根目
录下。如,存放在/usr/local/etc/httpd下的users文件,其格式与UNIX口令文件格式相似,但口令是以加密的形式存放的。应用程序htpasswd
可以用来添加或更改程序:
  htpasswd –c /usr/local/etc/httpd/users martin
  -c表明添加新用户,martin为新添加的用户名,在程序执行过程中,两次输入口令回答。用户名和口令添加到users文件中。产生的用户文
件有如下的形式:
  martin:WrU808BHQai36
  jane:iABCQFQs40E8M
  art:FadHN3W753sSU
  第一域是用户名,第二个域是用户密码。
(2)配置服务器的保护域
  为了使Apache服务器能够利用用户文件中的用户名和口令信息,需要设置保护域(Realm)。一个域实际上是站点的一部分(如一个目录、
文档等)或整个站点只供部分用户访问。在相关目录下的.htaccess文件或httpd.conf(acces.conf)中的段中,由AuthName来指定
被保护层的域。在.htaccess文件中对用户文件有效用户的授权访问及指定域保护有如下指定:
  AuthName “restricted stuff”
  Authtype Basic
  AuthUserFile /usr/local/etc/httpd/users
  Require valid-user
  其中,AuthName指出了保护域的域名(Realm Name)。valid-user参数意味着user文件中的所有用户都是可用的。一旦用户输入了一个有
效的用户/口令时,同一个域内的其他资源都可以利用同样的用户/口令来进行访问,同样可以使两个不同的区域共用同样的用户/口令。
  (3)告诉服务器哪些用户拥有资源的访问权限
  如果想将一资源的访问权限授予一组客户,可以将他们的名字都列在Require之后。最好的办法是利用组(group)文件。组的操作和标准
的UNIX的组的概念类似,任一个用户可以属于一个和数个组。这样就可以在配置文件中利用Require对组赋予某些权限。如:
  Require group staff
  Require group staff admin
  Require user adminuser
  指定了一个组、几个组或一个用户的访问权限。
  需要指出的是,当需要建立大批用户帐号时,那么Apache服务器利用用户文件数据库将会极大地降低效率。这种情况下,最好采用数据库
格式的帐号文件,譬如 DBM数据库格式的文件。还可以根据需要利用db格式(mod_auth_db)的数据文件,或者直接利用数据库,如:mSQL
(mod_auth_msql)或DBI兼容的数据库(mod_auth_dbi)。
  六、在Apache中使用DBM用户认证
  DBM 文件是一种简单而标准的用于加快读取效率的保存信息的方法。文件中存放的每一个记录由两个部分组成部分:键和值。由于DBM的格
式,使得与键相关的信息非常有效。在Web用户认证中,这里的键将是用户名,而与该键相关的值将是该用户经过加密的口令信息。从DBM文件
中查找用户名和口令,要比从一个纯文本文件中查找有效得多。对于有很多用户的站点,这种方法将大大提高用户认证的效率。
  (1) 在Apache服务器中增加DBM模块
  在默认的条件下,Apache不使用DBM文件来完成用户认证,因此编译时一定要加入可选的DBM认证模块。重新配置Apache服务器文件,去掉
其中的注释行
  #Module dbm_auth_module mod_auth_dbm.o
  前的“#”,并重新编译。但是,在编译之前,需要指出Apache DBM函数的位置。
  (2) 创建DBM用户文件(假设文件名为users)
  Apache提供了一个“dbmmanage”的程序,用于创建和管理DBM文件。其中:
  Dbmmanage /usr/local/etc/httpd/usersdbm     创建DBM文件
  Dbmmanage /usr/local/etc/httpd/users adduser martin hamster 新增用户
  Dbmmanage /usr/local/etc/httpd/usersdbm delete martin   删除用户
  Dbmmanage /usr/local/etc/httpd/usersdbm view 显示DBM中所有用户
  有了DBM数据库文件,还要替换目录访问控制,即将Apache配置文件(access.conf)中的AuthUserFile部分替换成:AuthUserFile
/usr/local/etc/usersdbm 告诉Apache现在的用户文件是DBM的格式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值