当前位置: 首页 > 图文教程 > 服务器 > 安全防护 > Web服务器的安全和攻击防范 (一)

安全防护
防止SQL注入攻击的方法
基础教程篇:五个方面何防止网站被挂木马
JavaScript可能成为新的黑客攻击点
辨明是非 文件关联型木马的特殊化查杀
三个小命令 检查电脑是否被安装木马
CC攻击的原理和预防
新手看招:在Linux操作系统下创建锁文件
防范黑客来自网上的攻击的几种方法
Web内容安全过滤设备应注重多层次管理功能
浅谈木马的十大潜伏诡招
防范ASP木马的十大基本原则
拒绝木马入侵 四大绝招来防护
菜鸟安全手册:实战捕获局域网 ARP病毒
安全技术谈:网页挂马工作原理完全分析
用好Windows命令 识别木马蛛丝马迹
安全技巧:利用软件限制策略阻止网马侵袭
Serv-u本地权限提升漏洞的终极防御
七个维护服务器安全的技巧
服务器安全经验:防止非法登陆
服务器存储数据丢失后的正确操作方法

安全防护 中的 Web服务器的安全和攻击防范 (一)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-29   浏览: 78 ::
收藏到网摘: n/a

  分析一下最近几个月信用卡号码被盗和网站被黑所显示的种种安全问题,可以很清楚地看出,许多Web应用都是凑合着运行,很少有人关注其安全问题或作出安全规划。那么,造成服务器缺乏安全保障的常见原因有哪些?如何防范这些不安全因素?作为客户或者最终用户,如何才能信任某个服务器符合了基本的安全需求?

  对于以往安全事故的分析表明,大多数安全问题都属于下面三种类型之一:
  • 服务器向公众提供了不应该提供的服务。
  • 服务器把本应私有的数据放到了可公开访问的区域。
  • 服务器信赖了来自不可信赖数据源的数据。
  提供不应该提供的服务

  显然,许多服务器管理员从来没有从另一个角度来看看他们的服务器,例如使用端口扫描程序。如果他们曾经这样做了,就不会在自己的系统上运行那么多的服务,而这些服务原本无需在正式提供Web服务的机器上运行,或者这些服务原本无需面向公众开放。

  与这种错误经常相伴的是,为了进行维护而运行某些不安全的、可用于窃取信息的协议。例如,有些Web服务器常常为了收集订单而提供POP3服务,或者为了上载新的页面内容而提供FTP服务甚至数据库服务。在某些地方这些协议可能提供安全认证(比如APOP)甚至安全传输(比如POP或者FTP的SSL版本),但更多的时候,人们使用的是这些协议的非安全版本。有些协议,比如msql数据库服务,则几乎没有提供任何验证机制。

  从公司外面访问自己的网络,完整地检测、模拟攻击自己的网站看看会发生些什么,这对于Web管理者来说是一个很好的建议。有些服务在机器安装之后的默认配置中已经启动,或者由于安装以及初始设置的需要而启动了某些服务,这些服务可能还没有正确地关闭。例如,有些系统提供的Web服务器会在非标准的端口上提供编程示范以及系统手册,它们往往包含错误的程序代码并成为安全隐患所在。正式运行的、可从Internet访问的Web服务器不应该运行这些服务,请务必关闭这些服务。

  另外一种攻击者经常利用的资源是SNMP协议(简单网络管理协议,Simple Network Management Protocol)。它可能为攻击者提供有关系统和网络布局的极其详细和宝贵的信息。由于SNMP是一种UDP服务,比较简单的安全检查不会发现它。

  当然,需要保护的不仅仅是Web服务器,在防火墙外面的所有其他机器更必须遵从同样的安全标准。
用nmap扫描服务器

  nmap可以从http://www.insecure.org/nmap/获得。



# nmap -sS -T Agressive -p 1-10000 www.example.server | grep openPort State Protocol Service21 open tcp ftp22 open tcp ssh25 open tcp smtp80 open tcp http111 open tcp sunrpc119 open tcp nntp3306 open tcp mysql4333 open tcp msql

  www.example.server作为WWW和FTP服务器使用。此外,该服务器还提供了ssh、smtp、sunrpc、nntp、mysql和msql服务。

  在这些服务中,ssh是一种带有完善加密和认证机制的协议,如果服务器上运行的ssh是最新版本,那么使用它应该是安全的。

  http、ftp、smtp和nntp是www.example.server服务器实际提供的服务,这些服务是必须运行的。只要FTP只用于匿名服务,网络上也不会因此出现以明文形式传送的密码。所有其他文件传输都应该用scp工具和ssh协议完成。

  sunrpc、mysql和msql服务没有必要从防火墙外面的机器访问,而且也没有必要被所有的IP地址访问。这些端口应该用防火墙或者包过滤器阻隔。

  对于所有向公众开放的服务,你应该密切关注其程序的最新版本和安全信息,应该做好一旦发现与这些程序有关的安全问题就立即升级软件的准备。例如,某些版本的ssh会出现问题,在一些特殊的情形下服务器可能被骗并以非加密方式运行。对于有些FTP服务器、早期的sendmail以及某些版本的INN,已知的安全问题包括缓存溢出等。

  有些时候端口扫描程序找到了一个打开的端口,但我们却不知道哪一个程序在操作这个端口,此时就要使用lsof之类的工具了。执行命令“lsof -P -n -i”即可显示出所有本地打开的端口以及操作这些端口的程序。