通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 网络赚钱 | 网站地图 | 广告服务 | 服务
当前位置:首页>>服 务 器>>linux服务器>>正文 新版上线![旧版]
注:打开慢时请稍等
一个安全web服务器的安装(二)

http://www.iyit.net  日期:2006-5-6 12:34:19  来源:中国站长学院  点击:
参加讨论

想定

  internet需要配置一台自己的web服务器,由于没有自己的安全基础设施,应该在web服务器前面放一台配置了相应过滤规则的路由器。这台web服务器仅仅提供www和https服务,但是,它当然也需要具有远程控制特性。另外,这台web服务器最好还能够发送邮件。由于linux服务器和网页是由三个不同的管理员维护的,所有的管理操作都应该保证在以后进行日志分析是更容易理解。

  实现

  前面段落中说明的安全web服务器的需求如何实现呢?下面的例子说明了一种在suse linux 6.4发布的服务器上的实现方法。为了实现上述想定,我们决定选择ssh管理和apache web服务器。

  第一步:配置路由器

  每一个流行的路由器都提供配置过滤列表的功能。您必需配置下面的简单规则:


  +------------------------------------------------------------------------------+
  |------------------------------过滤规则--------------------------------------|
  +-------------------------+-------------------------+-------------------------+
  |----------来源----------|-----------目标----------|---------服务-----------|
  +-------------------------+-------------------------+-------------------------+
  |任何位置--------------|web服务器------------|www,https,udp highport,|
  |--------------------------|---------------------------|icmp types 0 + 3-----|
  +-------------------------+-------------------------+--------------------------+
  |管理员-----------------|web服务器------------|ssh---------------------|
  +-------------------------+-------------------------+-------------------------+
  |web服务器-----------|任何位置---------------|dns, smtp-----------|
  +-------------------------+-------------------------+-------------------------+
  |web服务器-----------|路由器------------------|ssh或telnet----------|
  +-------------------------+-------------------------+-------------------------+
  路由器的操作手册会提供如何进行上述配置的详细信息。这里我建议使用cisco路由器,因为对于这种情况它非常容易配置,并且还在ios的第12版以后提供了ssh的加密服务。

  第二步:安装linux服务器

  执行suse 6.4的标准安装。处于安全考虑,至少应为/、/var、/tmp、/home和/usr/local安装5个分区。后面会定义一些mount这些分区的特殊选项,这些选项可以保证系统具有更高的本地安全性能。

  现在是选择需要安装哪些程序包的时候了。选择最小系统安装,然后手工加入下面一些必要的程序包:

  在basis (a)中选择compat
  在applications (ap)中选择sudo
  在network (n)中选择apache, bindutil;去掉postfix和sendmail
  在security (sec)中选择firewals, hardensuse, mod_ssl, scanlogd, seccheck, secumod, tripwire.

  其它一些您认为需要的程序包,如数据库和为apache设计的一些模块。然后完成安装。

  第三步:更新

  在配置之前,检查一下是否可以获得这些安装包的更新版本,如果有,需要的话最好进行更新。
  您可以在这里找到suse 6.4的更新信息。

  第四步:linux的本地配置

  在开始真正工作之前,必需首先执行所有的诸如输入服务器名、配置网络接口和设置用户等标准linux配置。在初始情况下,所有不需要的服务都是非活动状态的。特权程序的授权回收工作并不是必需的,您可以通过harden_suse工具简单地实现这个任务:
  erde#harden_suse yes
  这个命令在很多地方更改了系统的配置,这些更改都记在/etc/harden_suse.log日志文件中,这些操作可以过/etc/undo_harden_suse脚本予以恢复。使用其它linux发布的用户可应使用bastille脚本或者其它类似的程序。

  随后,所有网络访问服务(除了ssh)都被禁止,仅仅保留了下面的授予特权的suid和sgid程序:
erde# find / -perm -04000 -type f -exec ls -ld {} ;
-rwsr-x--- 1 root trusted 23840 mar 11 11:26 /bin/ping
-rwsr-x--- 1 root trusted 30750 mar 11 11:37 /bin/su
-rwsr-x--- 1 root trusted 21268 mar 11 11:10 /usr/bin/crontab
-rwsr-xr-x 1 man root 85460 mar 11 11:24 /usr/bin/man
-rwsr-xr-x 1 root root 15308 mar 11 11:26 /usr/bin/rcp
-rwsr-xr-x 1 root root 11052 mar 11 11:26 /usr/bin/rlogin
-rwsr-xr-x 1 root root 8104 mar 11 11:26 /usr/bin/rsh
-rwsr-x--- 1 root shadow 38340 mar 11 11:50 /usr/bin/gpasswd
-rwsr-x--- 1 root trusted 22184 mar 11 11:50 /usr/bin/newgrp
-rwsr-xr-x 1 root shadow 27920 mar 11 11:50 /usr/bin/passwd
-rwsr-x--- 1 root trusted 56600 mar 11 18:41 /usr/bin/sudo
-rwsr-xr-x 1 root root 20300 mar 11 11:26 /usr/sbin/traceroute
-rwsr-xr-x 1 root root 6132 mar 11 09:36 /usr/lib/pt_chown
erde# find / -perm -02000 -type f -exec ls -ld ;
-rwxr-sr-x 1 root tty 9452 mar 11 11:26 /usr/bin/write
-rwxr-sr-x 1 root tty 9796 mar 11 11:49 /usr/bin/wall

  下一阶段工作是编辑全局配置文件/etc/rc.config,将下面脚本行中的“no”改成“yes”:

start_httpd=“yes”
start_fw=“yes”
start_scanlogd=“yes”

这样就会保证apache、scanlogd和suse防火墙在计算机启动时自动执行。现在我们继续配置本地防火墙,将/etc/rc.config.d/firewall.rc.config(个别变量的细节描述在这个文件中可以找到)文件中的对应行改成下面的形式:

fw_dev_world=“eth0” # query no. 2
fw_services_external_tcp=“www https” # query no. 9
fw_services_trusted_nets=“1.1.1.0/24” # query no. 10 - 1.1.1.0 is the netswheresthe administrators connect from.
fw_trusted_services_tcp=“ssh” # query no. 10

  /sbin/susefirewall命令可以更新防火墙规则。这些规则会在每个系统启动周期中载入。

  现在我们以下面的形式集成suse专用的安全模块:
erde# cat >> /sbin/init.d/boot.local
insmod secumod hardlink=1 symlink=1 pipe=1 trace=1 systable=1 logging=1
^d

  当系统引导时,这个模块会被加载,它配置用来防止symlink、hardlink、pipe和一些 unix特有的攻击形式。

  第五步:配置apache

  web软件和页面时服务器的核心。我们必需确保没有人可以访问未授权的数据或者改变页面。为了这个目的,页面必需进行特殊的防护,然后要给予apache安全的配置。

  所有的页面都必需由网站管理员统一管理,并且对除他以外的所有人都是本地写保护的。web服务器最好以非页面管理员身份运行,这样即使入侵者侵入web服务器,他也没有足够的权限更改页面。这样,就需要设置一个用户,还要产生一个cron工作,这个定时工作要保证所有的页面修改权只属于页面管理员并且具有正确的授权。


  erde# useradd -m wwwdocs
  erde# cat > /etc/cron.daily/wwwdocs
  #!/bin/sh
  /bin/chown -r -h wwwdocs /usr/local/httpd/htdocs/*
  /bin/chmod -r go-w /usr/local/httpd/htdocs/*
  /bin/chmod -r a+r /usr/local/httpd/htdocs/*
  ^d
  erde# chmod 700 /etc/cron.daily/wwwdocs
  由于apache可能已经预先配置好了,所以可能根本不需要进行重新配置。当然,开始的时候/etc/httpd/httpd.conf文件中的minspareservers、maxspareservers和startservers的值应该被正确设置。

  maxclients选项可以用来避免connect-denial-of-service攻击。应该注意的是:如果这个选项设置的太低,一般访问者的访问也可能会被拒绝;如果太高,管理员在日志跟踪和入侵事件发生时的应对就会显得比较困难。除了自己尝试以外,好象也没有什么确定合适数量的更好建议。

  应该关掉serversignature选项,这样访问一个不存在的页面时就不会回应您所使用的软件和版本号信息。但是这样也解决不了多大的问题,因为http头中包含这些——甚至更多——信息。

  应该禁止/hilfe/、/doc/、/cgi-bin-sdb/、/sdb/和/manual/的别名。下面显示了标准配置更改后的大概样子:(“diff -u0”)

  --- httpd.conf.orig sun apr 9 19:37:44 2000
  +++ httpd.conf sun apr 9 19:42:57 2000
  @@ -141,2 +141,2 @@
  -minspareservers 1
  -maxspareservers 1
  +minspareservers 3
  +maxspareservers 10
  @@ -148 +148 @@
  -startservers 1
  +startservers 5
  @@ -157 +157 @@
  -maxclients 150
  +maxclients 100
  @@ -401 +401 @@
  -serveradmin root@localhost
  +serveradmin webdocs@echte-domain.de
  @@ -415 +415 @@
  -#servername hawking.suse.de
  +servername www.echte-domain.de
  @@ -485 +485 @@
  -userdir public_html
  +#userdir public_html
  @@ -646 +646 @@
  -serversignature on
  +serversignature off
  @@ -665,11 +664,0 @@
  -alias /hilfe/ /usr/doc/susehilf/
  -alias /doc/ /usr/doc/
  -alias /cgi-bin-sdb/ /usr/local/httpd/cgi-bin/
  -alias /sdb/ /usr/doc/sdb/
  -alias /manual/ /usr/doc/packages/apache/manual/
  -
  -
  - options followsymlinks
  - allowoverride none
  -
  -
  @@ -697,9 +685,0 @@
  -# cgi-bin for suse help system
  -# using sethandler
  -
  -
  -allowoverride none
  -options +execcgi -includes
  -sethandler cgi-script
  -
  -
  @@ -981,4 +961,4 @@
  -#
  -# deny from all
  -# errordocument 403
  http://phf.apache.org/phf_abuse_log.cgi
  -#
  +
  + deny from all
  + errordocument 403
  http://phf.apache.org/phf_abuse_log.cgi
  +
  ssl的激活和证书的产生在/usr/doc/packages/apache/readme.suse文件中描述。

提示:ssl证书应该一个密码保护起来,以减少攻击者成功入侵后将其拷贝并滥用的可能性(很少发生!)。

  作为一个一般的规则,应该保证没有在任何地方使用符号符号连接(symlinks),因此要禁止followsymlinks选项。所有的cgi都放在cgi-bin目录下,不允许放在其它任何地方,甚至也不允许在其它目录下执行。为了做到这一点,请不要使用execcgi配置选项。

  为了禁止访问某些文件区,应该在这些目录下分别加入一个命名为.htaccess的文件,并在中加入下面的文本行:order deny,allow deny from all



编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:一个安全web服务器的安装(一)
下一篇:一个安全web服务器的安装(三)
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
一个安全web服务器的安装(三) 一个安全web服务器的安装(一) 浅谈linux优化及安全配置的个人体会
linux服务器安全小技巧 浅谈linux操作系统的优化及安全 构建网络安全长城之烽火台的建立(8)
构建网络安全长城之烽火台的建立(7) 构建网络安全长城之烽火台的建立(6) 构建网络安全长城之烽火台的建立(5)
构建网络安全长城之烽火台的建立(4) 构建网络安全长城之烽火台的建立(3) 构建网络安全长城之烽火台的建立(2)
构建网络安全长城之烽火台的建立(1) linux ssh 的一些安全小技巧 全面提升linux服务器的安全
linux十大高级安全管理技巧  linux 服务器的安全隐患以及防范对策  提高linux系统安全性的十招
高级linux安全管理技巧  web服务器配置全攻略(四) web服务器配置全攻略(三)
web服务器配置全攻略(二) web服务器配置全攻略(一) 给iis web服务器装上一把锁 下
最新更新 热点排行 推荐新闻
linux服务器日志管理详解(3)
linux服务器日志管理详解(2)
linux服务器日志管理详解(1)
在linux下设置www server(4)
在linux下设置www server(3)
linux服务器日志管理详解(3)
linux服务器日志管理详解(2)
linux服务器日志管理详解(1)
在linux下设置www server(4)
在linux下设置www server(3)
在linux下设置www server(2)
在linux下设置www server(1)
设定linux web 服务器(6)
设定linux web 服务器(5)
设定linux web 服务器(4)
windows2000下安装apache php4 mysql 
书写linux下自己的shellcode
iis的使用                          
windows 2000下安装php4及mysql大揭密
redhat局域网安装的解决办法
qq珊瑚虫外挂4.0版本发布!
新开放qq免费挂级网站
免费在qq上看在线电影电视听音乐
免费把qq炫铃设为本机qq的系统提示音
摄影后期系列一:1分钟为数码相片去红眼
流金岁月!cpu历史上最难忘的十个第一
教您显示器亮度对比度的调节
腾讯qq调整升级条件不再诱发网民“通宵
qq挂机的n种快速方法
qq挂机说明
巧用photoshop图案工具
用photoshop制成浪漫的“珍珠项链”
第二十章 开发delphi对象式数据管理功
sql简明教程(1)
vbscript和javascript互相调用 
jsp教程(四)-jsp actions的使用
操作系统被入侵后的修复过程
五一别忘电脑防毒 养成良好上网习惯
google对ie浏览器将捆绑搜索功能表担忧
新版上线,今日正式开通!!!
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息