什么是NAC

什么是NAC,第1张

这项技术有助于企业增强其关于任何寻求网络访问的个人或设备的安全策略。NAC还有助于企业与外部的规章和内部的策略保持一致性,并可以保护网络资源免受不断发展的网络威胁的危害。NAC的目标NAC代表着一种安全产品,其目标可分为以下三个部分:1.减少零日攻击风险。NAC方案的关键价值取向在于防止缺乏反病毒、补丁、主机入侵防御软件的终端访问网络资源,并可阻止这种设备将其它计算机置于风险之中。2.增强策略。NAC方案允许网络 *** 作员定义策略,如允许访问网络的用户角色或计算机类型是怎样的,并在交换机、路由器等网络设备中强化腔伏这些策略。3.身份和访问管理。传统的IP网络根据IP地址增强访问策略,而NAC环境根据用户身份来增强安全。NAC的救治策略NAC是为了治病救人。NAC的 *** 作人员部署NAC 产品的目的是为了禁止一些没有采取健全安全措施的客户端访问网络。如果用户会都拥有最新的补丁,并且都安装了防火墙和可升级的反病毒程序,还要NAC干什么呢?正因为如此,NAC要求采取一种机制来救治客户端的问题。NAC有两种救治策略,一是是网络隔离,二是限制网络入口。一个隔离网络是一个受限的IP网络,它可以向用户提供某些主机和应用程序的选择性访问。隔离通常是根据VLAN分配来实施的。当NAC产品认为某一个终端用户“过期”时,其交换机端口就分配给一个VLAN,此VLAN连接到补丁和更新服务器,而不能连接到网络的其余部分。除了VLAN方案之外,还可以采用地址管理技术(如地址解析协议和NDP协议)实现隔离,可以避免管理VLAN的高昂成本。限制网络入口能截获到达网页的HTTP请求,将用户指引到一个能够提供计算机更新的指令和工具的web应用程序。直至其计算机通过了自动化的检查,除此网络入口之外的网络应用程序都不被许可。NAC的类型许多厂商都可以提供NAC技术和产品,其类型有很多种。根据其使用的主要方法,可将NAC分为如下几种类型:1.基于代理的NAC:这种NAC产品依赖于安装到端点设备上的一个软件,即所谓代理。此代理与一个具有网络连接的NAC服务器或设备通信。这种方法相对简单,但不太灵活,并要求在终端设备上安装和运用特定的软件。2.无代理的NAC:这种方法不要求在个人桌面和笔记本电脑等终端设备上安装一个特别代理。与之相反,代理是被存储在一个临时目录中的。不使用代理可使得部署更简单,并简化NAC的 *** 作。3.内联NAC:NAC的运行就如同一个网络访问层的防火墙一样,它掌管着通过它的所有客户端通信,并可以增强安全策略。这种方法相对简单,但会在较大的网络中产生吞吐量瓶颈。这种方法会随着时间的推移而引起成本增加,因为在通伍竖携信量增加时,会要求增加更多的内联设备。4.带外NAC:这种方法使用现有的架构来增强性能,它典型情况下是分布式的,因为客户端纤搏要将数据传输给一个中心控制台,从而能够交换机来增强策略。相对而言,这种方法颇为复杂,不过它对网络性能造成的负面影响更小一些。小结NAC似乎进入了百花争春的场面。这项技术的发展很快,每一个厂商对这种技术需要扮演的角色都有自己独到的诠释。市场的多样性使得NAC产品的购买者在面临多种产品时变得无所适从。

作为网络的管理者和维护者,我们都想拥有一套健全的网络控制机制,如采用NAC(网络接入控制)方案。一个有效的NAC方案,对威胁具有极大的免疫性。但是由于NAC技术含量高,其价格也不菲,它已经成为许多厂商的重要利润来源。那有没有开源的NAC可以给我们选择呢?

我们的回答是肯定的,开源NAC正在如火如荼地发展着。PacketFence是开源NAC中的佼佼者,它可靠、容易配置,且构建于未修改的开源代码之上(Fedora, LAMP, Perl, and Snort)。PacketFence的设计目的是要在不同种类的环境中运行,并且它使用了“不可知厂商隔离”( vendor-agnostic isolation)技术,其中包括DHCP范围改变和ARP高速缓存处理技术(“被动”模式)等。选购NAC非商业类不可吗?非也!

PacketFence是开源团体对NAC提交的完美答卷。作为开源团体的一个坚定的支持者,笔者知道它势必要成为一个有趣的项目,不过笔者在安装PacketFence时也并非一帆风顺。其中一部分困难来源于笔者反对在所推荐的环境中安装PacketFence。为什么笔者要反对呢?因为推荐的环境过时,如Fedora 4。

不过,笔者还是谨慎为妙,在Ubuntu 6.06服务器中做出了最合乎逻辑的选择。因此,请读者注意:这种安装是完全通过命令行方式完成的,而且有许多命令需要运行。

一、最重要的事情

1、安装Ubuntu Server 6.06 LTS

你需要做的第一件事情是安装Ubuntu Server 6.06 LTS。好消息是对这个版本的支持直至2001年,所以你不必担心在安全漏洞出现时没有补丁可打。一旦你下载了ISO镜像文件,请用K3B(或其它类似的工具)来刻录光盘。下面的工作就是准备安装服务器了。(注意:这是一个纯文本的安装。)

因为你要使用Ubuntu,所以你将会大量地使用sudo命令。这里将不可能存在root口令,不过你为所创建的用户(在安装期间创建的)所创建的口令也就是你要用的口令。但春胡在笔者用Ubuntu和塌戚sudo时,总是创建一个root 口令,因为在进行某些应用程序的安装时(或在配置MySQL时)它会省去不少问题。为此,请运行sudo passwd命令,并输入新的“root”口令。一旦完成,你就可以大展拳脚了。

2、以SSH方式登录

下面你要做的事情是通过SSH设置远程管理。如果你需要远程管理这个服务器,你可能就需要安装这个功能。为此,运行下面的这个命令:sudo apt-get install ssh openssh-server。笔者经常进行这种安装(通过SSH)的一个主要原因是因为笔者需要搜索一些东西的话,就不必反复地在机器之间切换。既然安装了SSH,下面就到这台可以访问网络计算机上,通过SSH登录到Ubuntu服务器上。现在你可以继续阅读这篇文章,同时进行安装。

二、准备软件安装:对源的处理

我们要使用apt-get命令来安装软件。为此,你必须首先编辑源以便能够找到恰当的软件包。为此,执行下面的命令:

备份你的原始源列表:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.BACKUP

现在你必须浏览源列表,并去掉sources.list文件中所列示的所有项目的注释。请转向/etc/apt,打开sources.list文件,清除所有的“#”,以去掉对所有源的注释。或者你可以运行下面的命令:

sudo sed -i -e "s/# deb/deb/g" /etc/apt/sources.list

现在我们必须用下面的命令更新apt源:

sudo apt-get update

在你开始安装应用程序之前的最后一步是:你必须能够从源进行编译。默认情况下,Ubuntu 6.06是不能这样做的。因此,为了团森陵让服务器能够做这个 *** 作,请执行这个命令:

sudo apt-get install build-essential

在这步完成之后,你就可以准备安装了。

三、安装Snort

你应该做的第一件事情是安装一个入侵检测系统。由于Snort是Linux中的标准软件包(这也是PacketFence所建议的),我们将使用这个工具。请执行这个命令:

sudo apt-get install snort

在你继续进行之前,你需要确保在系统启动期间Snort不会启动(否则,PacketFence不会启动)。为此,使用update-rc命令:sudu update-rc.d –f snort remove。这样Snort就从rc.d 运行列表中清除了。

四、安装并启动MySQL

为什么要安装MySQL呢?因为PacketFences使用一个数据库,你必须注意安装MySQL的一些细节问题。

首先,用命令sudo apt-get install mysql-server安装MySQL。这个问题不太容易处理。因为笔者喜欢用一个“root”口令。运行“sudo passwd”命令,并输入两次“root”口令。现在你可以用pseudo-root用户身份登录了。你需要做的是改变MySQL的口令。默认情况下,这个口令保持空白。这是不安全的,而且PacketFence要求你拥有一个MySQL口令。因此请运行mysql -u root –p命令(目前没有什么口令。你现在应该在mysql>命令提示符下。现在输入命令:

SET PASSWORD FOR root@localhost=PASSWORD(’NEWPASSWORD’)

这里的NEWPASSWORD就是你将要用于root MySQL用户的新口令。好了,经过一翻周折,现在MySQL已经启动。

五、安装Apache和PHP

在这个阶段,你需要做的第一件事情是安装Apache和所有必要的模块,下面是具体步骤:

sudo apt-get install apache2 libapache2-mod-proxy-html

此命令安装了Apache和代理模块。接下来安装PHP:

sudo apt-get install libapache2-mod-php5 php-pear php5-mysql php5-gd

此命令会安装PHP所必需的所有方面。

现在你必须要做的是停止Apache服务器并防止其在启动时运行。首先运行如下的命令:

sudo /etc/init.d/apache2 stop

要阻止Apache的运行,请运行:sudo update-rc.d -f apache2 remove命令,用以从rc.d运行列表中清除Apache。

六、Perl 及其模块

其实,有大量的Perl模块可以安装。为此,请运行如下的命令:

sudo apt-get install perl-suid libterm-readkey-perl libconfig-inifiles-perl libnet-netmask-perl

sudo apt-get install libparse-recdescent-perl libnet-rawip-perl libtimedate-perl libwww-perl

现在Perl已经准备好了。

该请出我们主角了:

七、安装PacketFence

最后要安装的就是PacketFence应用程序自身了。我们不能使用apt-get进行安装。你必须下载源代码,并解压,然后安装。你可以用wget应用程序下载最稳定的版本。如果你没有wget,也许需要通过sudo apt-get install wget命令安装它。其下载将来自Sourceforge。目前(笔者写此文时)PacketFence最新版本的下载地址是:http://downloads.sourceforge.net/packetfence/packetfence-1.6.2.tar.gz,因此,请执行如下的命令:

sudo cd /usr/local/

sudo wget

http://downloads.sourceforge.net/packetfence/packetfence-1.6.2.tar.gz

用如下命令解开tar文件:

sudo tar xvzf PacketFence-1.6.2.tar.gz

这就会创建/usr/local/pf目录。请切换到Pf目录,并执行下面的命令以启动安装程序:

sudo ./installer.pl

现在你基本上解决了安装问题。默认的安装方式就可以工作。一定要记住你的MySQL root用户口令。还有要允许PacketFence的安装程序为你创建必要的数据库。笔者曾多次用phpMyAdmin创建数据库,结果却发现PacketFence系统不能为数据库创建必需的表了。

在你进行最后的步骤之前,为安全起见,你可能需要创建一个SSL证书。为此,运行如下的命令:

cd /tmp

openssl req -new >PacketFence.csr

openssl rsa -in privkey.pem -out server.key

openssl x509 -in PacketFence.csr -out server.crt -req signkey

server.key -days 365

mv server.crt /usr/local/pf/conf/ssl/

mv server.key /usr/local/pf/conf/ssl/

rm -f PacketFence.csr privkey.pem

这就会为你的机器安装一个唯一的证书。

一旦你完成了安装,你就要运行configurator.pl来完成安装。配置程序(configurator)基本上会设置你想要运行的系统类型。在你运行它时,将提供如下的内容:

1. 测试模式

2. 注册

3. 检测

4. 注册与检测

5. 注册、检测、扫描

6. 基于会话的认证

笔者建议首先在测试模式中运行系统。请你回答问题以完成安装。

八、别忘了几处修改

在完成过程中,笔者碰到的一个问题是PacketFence启动过程不能找到Apache启动过程,因为它是在查找/usr/bin/httpd instead of /usr/bin/apache2,这是在一个Ubuntu服务器中所安装的。要改变之,你必须在pf.conf中增加一个[service]项目。在你喜欢的编辑器中打开/usr/local/pf/conf/pf.conf文件,并且在文件的末尾增加下面的几行:

[services]

httpd=/usr/sbin/apache2

现在,打开文件/usr/local/pf/conf/templates/httpd.conf,并添加下面的内容:

ServerRoot /usr/lib/apache2

然后,修改下面的行:LoadModule php4_module modules/libphp4.so

变为:

LoadModule php4_module /usr/lib/apache2/modules/libphp4.so

还有其它行需要修改。因为我们是在Ubuntu上安装的Apache,所以必要的模块必须反映/usr/lib/apache2/module结构。遍历整个/usr/local/pf/conf/templates/httpd.conf文件,改变其模块的路径以反映这点。你还需要去掉php5模块这一行(大约在第79行)的注释。

九、启动PacketFence

你可以通过运行命令/usr/local/pf/bin/start首先来测试一下以确信PacketFence正在正常启动。你应该仅看到如下的信息:

Checking configuration sanity...

service|command

config files|start

iptables|start

httpd|start

pfmon|start

pfdetect|start

snort|start

现在,用下面的命令来终止PacketFence系统:

/usr/local/pf/bin/stop

一旦你知道它正在正常启动,就可以修改安装,这样PacketFence启动过程就安装了,并且rc.d系统也知道这一点。为此,需要执行下面的命令:

sudo cp /usr/local/pf/PacketFence.init /etc/init.d/PacketFence

sudo chmod 755 /etc/init.d/PacketFence

sudo update-rc.d PacketFence defaults

下一步,用下面的命令重新启动系统:

sudo /etc/init.d/PacketFence start

然后你应该已经正常启动完毕。

十、登录

到此为止,基本大功告成。现在,我们启动浏览器并将它指向PacketFence服务器的IP地址,并在其中添加端口1443。也就是https://192.168.1.29:1443。注意,这是安全的HTTP。你会看到一个登录屏幕,其中你需要输入管理员的名称(默认即是admin)和你为管理员创建的口令。

这就是你最后进行所有工作的地方。从这现在开始,你所做的就是指向什么并单击它了。

十一、安装体验:不轻松的过程

这样说来,PacketFence的安装过程富有挑战性,可谓是笔者以前从未遇到。有人可能要问“这值得吗?”有一句话说得好,“预防胜于治疗”。PacketFence出现是开源领域也可以说是网络安全世界中的一件大事。这个工具本身又比较大,笔者相信它很快将流行起来。但愿本文能为你安装这个系统提供一些帮助。

后面,笔者将与你一起讨论如何运用PacketFence来保护你的网络。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12241666.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存