现在的位置: 首页 > 综合 > 正文

巧用PacketFence阻止非法的网络访问

2013年07月16日 ⁄ 综合 ⁄ 共 4646字 ⁄ 字号 评论关闭
上次我们谈到了PacketFence的安装和设置,今天来看一下其具体运用。那么,在你管理一个网络时,有没有发现某些用户私自安装和使用一些公司禁用的应用程序,如LimeWire 或 Gnutella,甚至是一些IM工具或者一些BT下载工具呢?这种现象,现在十分普遍的存在与各种网络。

  在无需花费巨额的IT预算时,你应该怎样阻止那些非法的下载企图?这正是PacketFence大显身手的所在。

  PacketFence能够做什么?

  PacketFence是一个强健的系统,它包含:

  用户注册:PacketFence拥有一个可选的用户注册入口

  蠕虫和病毒检测:通过使用Snort,PacketFence可以为你的网络添加另外一层保护。

  蠕虫/僵尸检测:可以对PacketFence进行配置,以便于在一台主机被用作僵尸时,这台主机可被放置到一个隔离的位置或黑洞中。

  直接的用户修正:如果一个用户/主机被隔离,那么这个用户/主机将会被定向到一个支持清除指令的页面中。系统会设置一个宽限期,这样一来任何冒犯都可以被视作一个警告。

  前摄性漏洞扫描:也就是说管理人员可以设置扫描,这样一来就可以手动、定期执行扫描,或对用户注册进行审计。

  被动式或内联式操作:PacketFence可以作为一个路由器(内联式)而发挥作用,或者可以将其自身插入到系统中而工作(被动式)。

  上面的列表显示了一些高级特性。在你深入到这些高级特性之前,你必须首先理解如何用PacketFence阻止通信。不过,在我们进行深入配置之前,让我们最后再安装一个帮助性的应用程序:Nessus (客户端)和 Nessusd (端口扫描程序)

  Nessus

  我们将在Ubuntu Server 6.06上进行安装,所以apt-get将成为我们选择的工具。要安装Nessus 和Nessusd的全部内容:你需要运行如下的命令:

sudoapt-getinstallnessus
  sudoapt-getinstallnessusd
  sudonessus-adduser
  sudoln-fs/etc/init.d/nessusd/etc/rc2.d/S20nessusd

  最后,启动Nessus进程,运行如下命令:

  sudo /etc/init.d/nessusd start

  现在PacketFence的安装已经完成。

  认识其命令

  虽然PacketFence有一个基于Web的图形用户界面,不过你仍有可能依靠其命令而不是GUI。下面让我们看一些你需要知道的命令(由root用户执行或靠sudo的帮助执行):

  /sbin/iptables:有时候为了让PacketFencey启动,你可能需要清空IPTables的高速缓存。要清空缓存,就需要运行命令/sbin/iptables –F。这里,F代表flush。

  /etc/init.d/snort start:这就是你启动Snort的方式。要终止Snort,就要用:/etc/init.d/snort stop命令。

  /etc/init.d/nessusd start:为了启动Nessus进程,可以执行这个命令。为了终止Nessus,就要用stop替换start。

  /usr/local/pf/bin/start:此命令的作用是启动PacketFence。

  /usr/local/pf/bin/pfcmd config help:这是我们获取PacketFence帮助的方式。通过执行这个命令,你就会得到可以使用的所有类型的帮助。帮助的主题包括:控制、服务、版本、历史、节点、冲突、报告、指纹配置、图形、更新、重新加载等。

  Pfcmd命令是一个非常有用的工具,它可以执行许多操作。例如,假设你想知道网络上有哪些类型的操作系统,就可以运行如下这个命令:

  /usr/local/pf/bin/pfcmd report os

  系统会返回类似于如下的消息:

   root@ubuntu:/usr/local/pf#/usr/local/pf/bin/pfcmdreportos
  description|percent|count
  UnknownDHCPFingerprint|18.2|2
  RedHat/Fedora-basedLinux|18.2|2
  MicrosoftWindows2000|18.2|2
  MacOSX|18.2|2
  Debian-basedLinux|9.1|1
  *ProbableStaticIP(s)|18.2|2
  Total|100|11

 

如果你确切地知道网络中的内容,这个工具就可以快速地帮助你看出是否存在着欺骗性设备。

  在一个设备能够真正地访问外部世界之前(此时PacketFencei应启动),这个硬件必须被注册。注册一个硬件的最简单方法是使用pfcmd命令。不幸的是,你必须知道需要注册机器的MAC地址。为了注册一台机器,需要执行类似如下的一个命令:

  /usr/local/pf/bin/pfcmd node edit 44:4d:50:02:0a:5b status="reg",pid=1

  这时如果你运行这个命令:/usr/local/pf/bin/pfcmd report registered

  你会看到:

  44:4d:50:02:0a:5b|1|||reg||

  这样做用处并不太大,因此在注册一个MAC地上之前,首先需要增加一个用户,即在注册之前执行如下的命令:

  /usr/local/pf/bin/pfcmd person add maryjane notes="Graphics Department"。

  在注册时,就可以执行下面的命令:

   /usr/local/pf/bin/pfcmdnodeedit44:4d:50:02:0a:5b
  status="reg",pid=maryjane.

  然后执行命令:/usr/local/pf/bin/pfcmd report registered,你会看到:

  44:4d:50:02:0a:5b|maryjane|||reg||

  现在这个报告更有意义了;其中的MAC地址与一个用户名联系起来了。

  配置 conf

  pf.conf文件在/usr/local/pf/conf目录中。在你最初设置PacketFence时,这个文件就创建成功了。不过,你需要自已动手操作这个文件。pf.conf被分成几个不同的部分:

  [general]:这是关于服务器管理PacketFence的一般信息。这包括:域名、主机名、DNS服务器等。

  [logging]:这会定义你希望运行的日志级别(8是最高级的一个)

  [alerting]:在这里,你要配置所有的警告将要发送的电子邮件地址,还要配置警告系统将使用的SMTP服务器。

[database]:这里是关于数据库的信息。在这里,你要配置数据库用户和数据库口令。

  [interface]:这里你可以配置界面以供PacketFence使用。其中包括子网掩码类型(内部、可管理的、监视程序)、IP地址、网关。

  [services]:这里你可以定义Web服务器可以执行的部分。

  [trapping]:如果你想跟踪用户,就可以选择这个功能。

  [registration]:这是最重要的一个部分,在这里你可以配置如何处理注册。你必须配置如下的内容:注册方法、跳过方法(用户们可以选择跳过注册?)、AUP策略、到期策略等。

  [scan]:什么时候你要设置一次漏洞扫描呢?

  还有许多其它的配置选项,不过我们暂且到此为止。下在让我们看看这个可用的pf.conf文件。

   [general]
  domain=mydomain.name
  dnsservers=192.168.1.22,192.168.1.23
  [logging]
  verbosity=8[alerting]
  emailaddr=admin@mydomain.name
  smtpserver=mail.mydomain.name[database]
  pass=dbpassword
  user=root[interface]
  mask=255.255.255.0
  type=internal,managed,monitor
  gateway=192.168.1.1
  ip=192.168.1.29[services]
  httpd=/usr/sbin/apache2[trapping]
  registration=enabled[registration]
  skip_mode=window
  skip_window=2w
  skip_reminder=1d
  expire_mode=window
  expire_window=26w
  aup=enabled
  auth=local
  maxnodes=1[scan]
  registration=enabled
  pass=packet
  user=admin
  host=192.168.1.29
  port=1241
  ssl=enabled

 其实,还有其它的一些附加配置选项。在[registration]中,你可以看到expire(期满)选项。这些选项可以配置一个用户注册实例可以延续多长时间。在同样的部分中,你还可以看到aup选项,这些是认证的方法 。在上面的配置中,系统正使用一个本地的认证,它包含在/usr/local/pf/conf中称为user.conf的用户口令文件中。

  阻止非法的访问

  假设你要阻止网络上的P2P通信。在/usr/local/pf/conf目录中,有一个文件称为violations.conf。这个文件包含着你需要的多数常见的违规信息。最顶部的是默认部分。其下是每种违规的一个条目。例如,如果你想要检查LimeWire的违规集,就要使用如下的方法:

   [2001808]
  desc=P2P(Limewire)
  priority=8
  url=/content/index.php?template=p2p
  disable=Y
  max_enable=1
  trigger=Detect::2001808

  由于这种违规被禁用(靠disable=Y实现),为执行之我们需要启用它。我们需要将disable =Y改为disable =N,并重新启动PacketFence。现在,如果网络中的任何成员启动了LimeWire,那个用户将会失去互联网连接。

  请注意url=选项。它定义了在用户违反了策略时它们将被重定向到什么地方。你可以定制这个页面。

  结束语

  可以说,本文对庞大的PacketFence的介绍简直是冰山之一角。不过,从这个开始点上,你可以对系统进行设置,使其逐步满足你的其它任何需要。另外,你可以实施基于Web的图形用户界面,以便于使得管理更加轻松。

  需要注意的是,PacketFence是一个需要花费一些时日就可以掌握的应用程序。此外,它的实施将与你所进行的每一次安装而不同。相对于某些工具而言,PacketFence的文档资料比较少,还有一些其它的困难,不过,只要你有恒心,PacketFence这位开源世界上的明星一定会成为你网络安全的最佳朋友。

抱歉!评论已关闭.