PacketFence的1.7提供免费的客户端开源NAC

需要部署NAC,但不想管理恼人的客户端软件?看看一个简单的开源实现,你在你的头上得到了。

你知道谁连接到你的有线和无线网络,何时何地?你知道谁正在使用您的网络使用政策禁止应用程序,如可能的LimeWire或Gnutella的?随着越来越多的人访问您的网络匿名或从它产生的非法活动,具有可靠的安全工具现在必须。

一个精心配置的防火墙和如Snort和Nessus的工具,以确保您的网络的重要步骤,但你可能是响应自动寻找一个互补的解决方案,以侵犯您的网络使用策略。它的时间来部署网络上的网络访问控制(NAC)解决方案。

几乎所有的交换机厂商拥有自己的专利NAC其中,大部分的时候,只能用自己的硬件。但是,如果你有什么异构网络中,还是要自定义的解决方案?

这就是PacketFence的用武之地。PacketFence的是开源社区的答案NAC。

PacketFence的是写在Perl和利用公共开源组件如MySQL和Apache的。它不需要被访问网络的计算机上安装的用户代理。其部署是非侵入性的,并得到用户的每一次互动经历,可以通过每个Web浏览器访问的强制网络门户。

PacketFence的技术提供的功能令人印象深刻。其中有:

  • 新的网络设备注册
  • 使用来自Snort传感器的警报检测异常网络活动(计算机病毒、蠕虫、间谍软件等)
  • 基于注册和计划的Nessus扫描
  • 问题设备的隔离
  • 通过强制网络门户整治

  • VLAN隔离与VoIP支持(甚至在异构环境中)为多个交换机厂商如Cisco,边缘核,HP,Linksys和北电

  • 通过FreeRADIUS的模块支持802.1X
  • 与FreeRADIUS的无线整合
  • DHCP指纹

图1:PacketFence的标准功能之间的关系。

PacketFence的当前支持ARP,DHCP / DNS和VLAN隔离技术。选择合适的隔离方法取决于网络的大小和你拥有的网络设备。

在本文中,我们将讨论VLAN隔离。

什么是VLAN隔离?

VLAN隔离的目的是分配任何连接到网络的设备,一个适当的VLAN基于它的MAC,它的注册和违反状态。

图2:PacketFence对SNMP陷阱的反应

当一个设备连接到一个交换端口时,交换器向PacketFence发送一个SNMP陷阱。snmptrapd守护进程接收该陷阱并将其写入日志文件。pfsetvlan守护进程跟踪这个日志文件,并在接收到一个陷阱时,确定MAC的适当VLAN,然后与交换机通信(主要使用SNMP),将交换机端口分配给所确定的VLAN。当设备连接到网络时,除了为它们分配一个适当的VLAN之外,PacketFence还可以在违反网络使用策略时隔离已经连接到网络的设备。

PacketFence可以与不同的SNMP陷阱类型一起工作,例如链路/链路关闭、MAC通知和端口安全陷阱。如果在您的交换机上可用,我们高度鼓励使用端口安全陷阱,因为这是一种非常有效的机制:PacketFence只会在设备新连接到您的网络或移动到您的网络上时接收陷阱。第二个最好的选择是结合使用链接/链接关闭和MAC通知陷阱。缺点是,PacketFence可能会周期性地接收到大量陷阱,这是由于您的交换机以固定的时间间隔过期它们学习到的MAC地址以及生成树重新计算。如果您的交换机只支持链路/链路终止陷阱,那么PacketFence也可以仅基于这些陷阱工作。这意味着在接收到连接陷阱时,PacketFence将不得不查询交换机一段时间,以确定交换机端口上的MAC地址(这可能需要一些时间)。

PacketFence的安装前的注意事项

支持所有的交换机?为了使VLAN隔离工作,您必须使用可管理的交换机。特别是,交换机必须提供一种方法来远程确定和更改端口的VLAN,并且必须能够向PacketFence发送简单网络管理协议(SNMP)陷阱。SNMP陷阱包括交换机IP地址、端口号,根据陷阱类型,还可以包括端口状态、设备的MAC地址等等。当前支持的网络硬件的完整列表可在以下网址获得http://www.packetfence.org/dokuwiki/doku.php?id=config_1.7.0#other_switches

PacketFence还设计用于简化对新交换机的支持。所有受支持的开关都通过Perl对象表示,并广泛使用了继承。添加对新产品的支持归结为扩展PF :: SNMP类,可以在几个小时内完成!

你使用集线器吗?PacketFence的当前被设计为支持每个管理交换机端口的一个MAC地址。PacketFence的因此不能设法哪几个计算机同时连接,并且这些端口应该被定义为switches.conf配置文件中“上行链路”接口。

你可以跨越整个网络中的两个新的VLAN?PacketFence的使用两个专用的VLAN:注册VLAN和隔离VLAN。最简单的设置是,当你可以跨越这些VLAN在您的整个网络,给PacketFence的服务器对他们的直接访问。如果这是不可能在你的基础设施,你必须在你的接入交换机,然后路由通信到PacketFence的创建相应的VLAN。如果隔离和登记的VLAN不被发送到你的正常的VLAN,PacketFence的完全隔离新设备,设备违反网络策略,从正规网络。因此,有效地防止非法访问,攻击和病毒传播。

对于给定的MAC地址,正确的VLAN是什么?PacketFence根据连接到端口的MAC地址分配交换机端口VLAN。默认情况下,PacketFence使用一个非常简单的场景:当MAC数据库中有公开的违规行为时,它被分配给违规的VLAN;当MAC未注册时,它被分配到注册VLAN;否则,将它分配给在其数据库条目的VLAN列中指定的VLAN。这个简单的设置意味着您可以在注册期间为每个MAC分配一个特定的VLAN,并且这个VLAN在MAC可能连接到的所有交换机上都可用。

当然,真正的网络是一个比较复杂一点,而且PacketFence的已成功部署在更复杂的菜单时,如果电脑被分配到不同的公司各部门从一个建筑物(或交换机)部门的VLAN切换到另一个。例如,你可能要区分从计算机客户支持部门的计算机在人类ressources和客户支持部门分散在几个分支机构不同的VLAN!

你怎么能与IP地址到MAC地址?当台计算机连接到PacketFences强制网络门户,PacketFence的必须显示基于其MAC正确的消息。所述IP到MAC分辨率是容易的,如果PacketFence的服务器可以发送ARP查询(即,具有直接访问隔离和登记的VLAN)。如果您的隔离和注册VLAN的路由,这是不可能的任何越来越PacketFence的必须找到另一种方式来获得这些信息。在大多数情况下,这是通过你的网络的DHCP流量的副本来实现。PacketFence的包括DHCP侦听守护进程记录了MAC-IP关联到它的数据库,而哪些,在同一时间,是用来OS指纹的设备。使用这些指纹,它甚至能够自动注册一些设备,如打印机,同时拒绝一些国家,如游戏机。

当您使用IDS如Snort的DHCP流量的副本也是很重要的。发送到PacketFence的Snort的警报包含冒犯设备,而不是它的MAC地址的IP地址。PacketFence的,而另一方面,节省了违规给定的MAC,如此反复,PacketFence的必须能够对IP涉及MAC地址。

PacketFence的安装演练

以下是在CentOS 5 PacketFence的安装说明(取决于你的Linux发行版,可能会有一些差异)

  • 安装MySQL并启动它。

  • 禁用SELinux。

  • 配置您的软件包管理器使用达格Wieers库(http://dag.wieers.com/rpm/)。

  • 从下载PacketFence的包CentOS5http://www.packetfence.org并与百胜安装(百胜将满足所有依赖你)

  • 安装IPTables: IPv4使用CPAN perl的模块:

    perl -MCPAN -e '安装IPTables::IPv4
  • 设置时区/etc/php.ini。例如:

    date.timezone = “美国/蒙特利尔”
  • 执行PacketFence的安装程序/usr/local/pf/installer.pl并按照指示。

  • 执行PacketFence的配置/usr/local/pf/configurator.pl并按照指示

  • 建议你创建自己的SSL证书来代替的例子证书在/ usr /本地/ PF / conf目录/ SSL

VLAN隔离设置和初始测试

配置VLAN隔离需要一定量的变化和考验:

在您的网络上创建注册和隔离vlan。跨度这些VLAN整个网络,或者确保他们的流量正确地路由到PacketFence的服务器。确保,此外,这些VLAN都不会被路由到网络上的任何其他常规的VLAN。现在,配置PacketFence的服务器网卡,使PacketFence的将是能够回答HTTP在这两个VLAN的请求。测试的是,在登记/隔离VLAN的任何装置可以通过它的注册/隔离VLAN IP和它不能在任何其它VLAN与任何设备传送与PF通信。

配置DHCP和DNS服务器采取登记和隔离的VLAN的要求照顾。DNS服务器必须解析到PacketFences IP地址的所有请求。现在,在注册VLAN,则隔离VLAN,以及第一测试配置一个交换机端口连接到交换机端口的机器在两个VLAN,并且所有的DNS请求返回PacketFences IP使用DHCP获取适当的IP地址。

**更新位于中的PacketFence配置文件在/ usr /本地/ PF / conf目录

switches.conf必须包含你的交换机的读/写SNMP社区,数据库连接参数,VLAN列表,所有的交换机通过PacketFence的管理。例如在Cisco Catalyst 2960交换机可以被定义如下:

[192.168.1.101] IP = 192.168.1.101类型=思科:: Catalyst_2960模式=生产上行= 10025

执行提供测试/ connect_and_read.pl脚本,以确保PacketFence可以正确地与您定义的交换机通信。

以前执行configurator.pl剧本已经把配置的大部分路段的护理pf.conf文件文件。检查这个文件并为你所有的网卡添加必要的接口部分。下面是一个隔离接口的示例

[接口eth0.3]掩模= 255.255.255.0类型=内部,隔离网关= 192.168.3.1 IP = 192.168.3.1

在启动时有自己的规则的所有规则iptables规则PacketFence的内容替换。如果你想PacketFence的服务器上打开特定的端口,你必须将它们添加到iptables.pre文件。例如,要打开UDP端口162(SNMP陷阱)中,添加以下行到iptables.pre:

*滤波器:INPUT ACCEPT [0:0] -A INPUT -p UDP -m UDP --dport 162 -i的eth0 -j ACCEPT COMMIT

现在,开始PacketFence的服务,确保您没有收到任何警告或错误消息。

作为最后一步,配置切换到相应的SNMP陷阱发送到PacketFence的。将设备插入配置好的交换机端口并跟踪文件/usr/local/pf/logs/snmptrapd.log/usr/local/pf/logs/pfsetvlan.log。你应该看到的陷阱的接收和行动pfsetvlan发生翻转的端口VLAN。

PacketFence的适应您的需要

VLAN的任务:在注册期间,在默认情况下,PacketFence的放normalVlan配置设置(定义在switches.conf)中的节点数据库条目。您可以通过修改下列行更改此行为/usr/local/pf/cgi-bin/register.cgi

#determine缺省VLAN如果VLAN隔离功能#,然后在VLAN没有设置但如果(的IsEnabled($ {配置 '网络'} { 'VLAN'})){如果(!定义($ {信息 'VLAN'})){我的%ConfigVlan;扎%ConfigVlan, '配置:: IniFiles',(-file => '/usr/local/pf/conf/switches.conf');$详情{ 'VLAN'} = $ {ConfigVlan '默认'} { 'normalVlan'};}}

正如我们已经提到的,默认情况下,MAC的VLAN其保存在它的数据库条目pfsetvlan守护受让人。这可以通过修改来调整custom_getCorrectVlan在功能/usr/local/pf/conf/pfsetvlan.pm

子custom_getCorrectVlan {我的($ switch_ip,$ ifIndex的,$ MAC,$地位,$ VLAN,$ PID)= @_;#$ switch_ip是计算机连接到#$的ifIndex交换机的IP是计算机连接到#$ MAC端口的MAC连接#$状态是节点的数据库中的#$ VLAN状态是所述的的ifIndex数据库中的#$ PID此节点VLAN组是该节点的数据库所有者我$ =记录日志:: Log4perl-> get_logger();登录:: Log4perl :: MDC->把( 'TID',threads->自我> TID());返回$ VLAN;}
相关:
12 第1页
页面1的2
IT薪资调查:结果在