一般来说,系统的防火墙分析可以通过数据包的过滤或者软件分析工具。

在linux的默认下有个软件分析工具,那就是/etc/hosts.allow和/etc/hosts.deny这2个配置文件

我们知道at和crond 都有类似这样的文件,因此在管理网络连接也可以使用上边的两个配置文件来管理

其实这个2个文件就是/usr/sbin/tcpd的配置文件

tcp wrappers的访问级别三步骤:

首先看允许的文件中有没有策略,其次再看拒绝的文件中有没有策略,最后如果没有就是允许


1;源IP或者整个IP网段

2;port 端口

在使用tcp wrappers 首先我们要知道程序是否支持tcp wrappers

使用ldd命令 也就是library dependency discovery 来查询某个程序的动态函数库支持状态,用它来查看程序是否支持tcp wrappers所提供的libwrap.so这个函数文件

ldd &(which sshd httpd) 我们通过查询发现shhd支持 但是httpd不支持


配置文件的语法

service : IP,domain域,hostname主机 :action操作

vim /etc/hosts.deny

rsync : 127.0.0.100 : deny

在这里要注意的是在allow文件中 默认的ip网段是可用的 在deny中则是不可用 也就是第三列可用省略不写。

在第一列和第二列中我们也可以使用一些特殊字段

比如:ALL LOCAL UNKNOWN KNOWN等等

sshd :ALL EXCEPT 192.168.0.0/24

EXCEPT表示反向选择,而且前边必须包含后者 否则不生效


TCP wrappers的特殊功能

spawn和twist 这两个一般用在hosts.deny文件中

spawn 可以利用后续的shell来进行额外的工作,切具有变量的功能,主要的内容为:


扩展式
    扩展式命令与spawn和twist命令一起使用时,可以提供关于客户/服务器以及相关进程的信息.
      下面是一个支持扩展式的命令列表:
             %a,返回用户的IP地址.
             %A,返回服务器的IP地址.
             %c,返回大量的客户信息,比如用户名和主机名,或用户名和IP地址.
             %d,返回守护进程的名称.
             %h,返回客户的主机名(或IP地址,如果主机名没有提供的话).
             %H,返回服务器的主机名(或IP地址,如果主机名没有提供的话).
             %n,返回客户的主机名.如果主机名没有提供的话,屏幕上会显示unknown.如果客户的主机名和主机地址不匹配的话,屏幕上会显示paranoid.
             %N,返回服务器的主机名.如果主机名没有提供的话,屏幕上会显示unknown.如果服务器的主机名和主机地址不匹配的话,屏幕上会显示paranoid.
             %p,返回守护进程的进程ID.
             %s,返回各种不同类型的服务器信息,比如守护进程的进程和服务器的主机或IP地址.
             %u,返回客户的用户名.如果没有提供的话,屏幕上会显示unknown.
   下面用来示范的规则与spawn命令一起使用了一个扩展式来在一个定制的日志文件中确认客户主机.
   当来自example.com域的一个主机向SSH守护进程(sshd)发出连接意图时,执行echo命令来把这次包括客户主机名(通过使用%h扩展式)的连接尝试信息记录到一个专用文件中.
      sshd : .example.com : spawn /bin/echo `/bin/date` access denied to %h>>/var/log/sshd.log : deny
   同样的,扩展式也可以用来把个性化的讯息返回给客户.在下面的例子中,试图访问来自example.com域的FTP服务的客户们得到通知,他们的访问被服务器取缔了.
      vsftpd : .example.com : twist /bin/echo "421 %h has been banned from this server!"
        有关可用扩展式的更完全的解释,以及对附加的访问控制选项的更完全的解释,可参阅man page的第五部分,查看hosts_access(man 5 hosts_access)和hosts_options.

 

  11.连接旗帜(Connection Banners)
   当用户连接到服务器时,用合适的旗帜标示显示其连接是一种很好的方式,可以让潜在的袭击者知道本系统管理员很有警惕性.同时也可以控制关于系统什么样的信 息可以呈现给用户.要想为一项服务设置一个TCP Wrappers旗帜标示,可使用banner选项。
   这个例子为vsftpd设置一个旗帜标示.首先,创建一个旗帜标示文件,可以储存在系统的任何地方,但必须与其守护进程同名.例如,该文件命名为/etc/banners/vsftpd并包含下面一行:
        220-Hello, %c 220-All activity on ftp.example.com is logged. 220-Inappropriate use will result in your access privileges being removed. 
     %c权标可提供客户的多种信息,比如用户名和主机名,或用户名和IP地址,也许这样会使该连接更让人觉得有胁迫感。
     要想使该旗帜在有外来连接进入时显示,可在/etc/hosts.allow文件上加上下面一行:
           vsftpd : ALL : banners /etc/banners/