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隔离的目的是分配连接于网络的基础上,其MAC,其登记和违反状态的适当的VLAN的任何装置。

图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,并且必须能够以简单网络管理协议(SNMP)陷阱发送到PacketFence的。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的受让人的交换机端口的VLAN基于连接到端口的MAC地址。默认情况下,PacketFence的使用非常简单的场景:当MAC开放侵犯在数据库中,它被分配给VLAN违规;当未注册的MAC,它被分配给注册的VLAN;否则,到VLAN在其数据库条目的VLAN列指定它分配。这个简单的安装意味着你可以分配,在注册过程中,指定的VLAN中每个MAC和这个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隔离设置和初始testings

配置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文件文件。查看该文件并添加必要的接口部分为所有NIC。下面是一个隔离接口的例子

[接口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薪资调查:结果是