当前位置:首页 > 网络安全 > 正文

如何保障企业系统服务安全

2013-11-13 TechTarget中国 编辑:羽扇纶巾

  目前企业开源系统的运行保障是业界关注的热点,如何保证开源系统高效、可靠的运行是非常重要的技术问题。本文将详细介绍如何使用TCP wrappers来保障企业系统服务安全。

  使用TCP Wrappers进行保障

  1、主要功能

  TCP wrappers作为客户端/服务器模型的一部分,以/etc/hosts.allow和/etc/hosts.deny文件作为其简单访问控制列表(ACL)的基础,可用于与libwrap挂钩的任何守护进程。此访问控制语言定义的规则为:基于客户端的地址和客户端尝试访问的守护进程,选择性地允许客户端访问服务器守护程序。ldd的输出显示sshd依赖的共享库之一是libwrap:

  $ ldd /usr/sbin/sshd | grep libwrap
  libwrap.so.0 => /lib/libwrap.so.0 (0×00e7c000)

  2、使用hosts.allow和hosts.deny

 hosts.allow和hosts.deny文件中的每一行的格式如下:

  daemon_list : client_list [: command]

  其中daemon_list是一个以逗号分隔的一个或多个服务器守护进程(如rpcbind、vsftpd、sshd)的列表,client_list是一个以逗号分隔的一个或多个客户端的列表,可选的command是当client_list中的一个客户端试图访问daemon_lis t中的一个服务器守护进程时,要执行的命令。

  当客户端请求连接到服务器时,按照下面的顺序查阅服务器系统上的hosts.allow和hosts.deny文件,直到找到一个匹配项:

  1.如果守护进程/客户端对匹配hosts.allow中的一行,授予访问权限。
  2.如果守护进程/客户端对匹配hosts. deny中的一行,访问被拒绝。
  3.如果在hosts.allow或hosts.deny中都没有匹配项,授予访问权限。
  第一个匹配决定是否允许客户端访问服务器。当hosts.allow或hosts.deny中都不存在时,该文件好像是空的。通过删除这两个文件,可以允许所有客户端访问所有守护进程,但不建议这样做。

  要开放一个本地系统以从远程系统访问时,请遵循这些准则:

  •只对你要允许访问它的系统开放本地系统。
  •只允许每个远程系统访问你要它访问的数据。
  •只允许每个远程系统以适当的方式(只读、读/写、只写)访问数据。

  3、具体例子

  为了一个更安全的系统,把以下行放入hosts.deny中以阻止所有访问:

  $ cat /etc/hosts.deny
  ...
  ALL : ALL : echo '%c tried to connect to %d and was blocked' >> /var/log/tcpwrappers.log

  此行可以防止任何客户端连接到任何服务,除非在hosts.allow中专门允许的连接。当匹配这条规则时,它向/var/log/tcpwrappers.log文件中添加一行。%c扩展到客户端信息,以及%d扩展到客户端试图连接的守护进程名称。

  也可以在hosts.allow中包括行,以明确允许访问某些服务和系统。例如,下面的hosts.allow文件允许任何客户端连接到OpenSSH守护进程(ssh、scp、sftp),但只允许来自本地系统网络和192.168. 子网用户的telnet连接:

  $ cat /etc/hosts.allow
  sshd: ALL
  in.telnet: LOCAL
  in.telnet: 192.168.* 127.0.0.1
  ...

  第一行允许从任何系统(ALL)连接到sshd。第二行允许与该服务器(LOCAL)在同一个域的任何系统的连接。第三行匹配其IP地址始自192.168.的任何系统以及本地系统。

大家都爱看
查看更多热点新闻