当前位置:萝卜系统 > 网络技术教程 > 详细页面

Web服务器的安全与攻击防范 (一)

Web服务器的安全与攻击防范 (一)

更新时间:2021-12-25 文章作者:未知 信息来源:网络 阅读次数:

网络技术是从1990年代中期发展起来的新技术,它把互联网上分散的资源融为有机整体,实现资源的全面共享和有机协作,使人们能够透明地使用资源的整体能力并按需获取信息。资源包括高性能计算机、存储资源、数据资源、信息资源、知识资源、专家资源、大型数据库、网络、传感器等。 当前的互联网只限于信息共享,网络则被认为是互联网发展的第三阶段。
  分析一下最近几个月信用卡号码被盗和网站被黑所显示的种种安全问题,可以很清楚地看出,许多Web应用都是凑合着运行,很少有人关注其安全问题或作出安全规划。那么,造成服务器缺乏安全保障的常见原因有哪些?如何防范这些不安全因素?作为客户或者最终用户,如何才能信任某个服务器符合了基本的安全需求?

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

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

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

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

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

  当然,需要保护的不仅仅是Web服务器,在防火墙外面的所有其他机器更必须遵从同样的安全标准。
[page]用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”即可显示出所有本地打开的端口以及操作这些端口的程序。



# lsof -P -n -iCOMMAND PID USER FD TYPE DEVICE SIZE NODE NAMExfstt 46 root 4u IPv4 30 TCP *:7100 (LISTEN)httpd 199 root 19u IPv4 99 TCP 192.168.1.12:80 (LISTEN)...smbd 11741 root 5u IPv4 28694 UDP 127.0.0.1:1180smbd 11741 root 6u IPv4 28689 TCP 192.168.1.3:139-< 192.168.1.2:1044 (ESTABLISHED)


  增加额外的参数就可以扫描指定的协议和端口:



# lsof -P -n -i tcp:139COMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEsmbd 276 root 5u IPv4 175 TCP *:139 (LISTEN)smbd 11741 root 6u IPv4 28689 TCP 192.168.1.3:139-< 192.168.1.2:1044 (ESTABLISHED)



网络的神奇作用吸引着越来越多的用户加入其中,正因如此,网络的承受能力也面临着越来越严峻的考验―从硬件上、软件上、所用标准上......,各项技术都需要适时应势,对应发展,这正是网络迅速走向进步的催化剂。

温馨提示:喜欢本站的话,请收藏一下本站!

本类教程下载

系统下载排行

网站地图xml | 网站地图html