博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2588|回复: 3

实例应用:用PacketFence安装配置NAC

[复制链接]
发表于 2008-2-1 13:57:06 | 显示全部楼层 |阅读模式
实例应用:用PacketFence安装配置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
在这步完成之后,你就可以准备安装了。
 楼主| 发表于 2008-2-1 13:57:26 | 显示全部楼层
实例应用:用PacketFence安装配置NAC作者:阿林


三、安装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已经准备好了。
 楼主| 发表于 2008-2-1 13:57:45 | 显示全部楼层
该请出我们主角了:
七、安装PacketFence
最后要安装的就是PacketFence应用程序自身了。我们不能使用apt-get进行安装。你必须下载源代码,并解压,然后安装。你可以用wget应用程序下载最稳定的版本。如果你没有wget,也许需要通过sudo apt-get install wget命令安装它。其下载将来自Sourceforge。目前(笔者写此文时)PacketFence最新版本的下载地址是:http://downloads.sourceforge.net ... tfence-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行)的注释。
 楼主| 发表于 2008-2-1 13:57:55 | 显示全部楼层
九、启动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来保护你的网络。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

GMT+8, 2024-11-22 10:19 , Processed in 0.333647 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表