当前位置: 首页 > 工具软件 > Packetfence > 使用案例 >

开源NAC系统PacketFence的安装配置

梁丘钊
2023-12-01
简介:PacketFence是一个开放源代码的网络访问控制系统。在本文中,杰克·威伦将告诉你通过命令行安装PacketFence的详细步骤。

PacketFence是一个开放源代码的网络访问控制(NAC)系统。作为开放源代码领域的坚定支持者,我知道启动和运行这个项目是一件非常有趣的事情。因为,在超过十年的Linux技术生涯中,PacketFence的安装是我遇到过最困难的安装之一。为什么出现这样的情况呢,部分原因是PacketFence建议的安装环境比如Fedora 4,已经远远地落后于时代潮流了。

最终,我放弃了推荐的安装环境,而选择了择最符合当前实际情况的的Ubuntu 6.06服务器版本。因此,整个安装过程要完全在命令行状态下进行,需要使用大量的命令。

安装的准备工作


首先,要做的第一件事情就是安装Ubuntu Server 6.06 LTS。对用户来说,有一个好消息,这个版本将会一直提供技术支持到二○一一年,这样的话,就不必担心在出现安全漏洞时没有补丁可打。一旦,你下载了ISO镜像文件,请用K3B(或其它类似的工具)来刻录光盘,并且准备安装。(需要注意的是,这是一个纯文本的安装过程)

因为使用的是Ubuntu系统,所以将用到大量的sudo命令。由于没有系统管理员的root密码,所以在安装过程中创建的用户名和密码将成为默认的密码。不过,在使用Ubuntu和sudo的时间,我总是创建一个root密码,这样可以避免很多安装过程出现的应用程序问题(类似MySQL的配置)。因此,运行sudo中的passwd命令,以创建新的root密码。完成这一步后,就可以开始安装了。

首先要做的事情,是建立基于SSH的远程管理。如果需要对这个服务器进行远程管理,你可能就需要安装这个功能。因此,首先运行sudo中的apt-get命令以便安装ssh openssh-server的服务器。我经常进性这种形式(通过SSH )的安装的其中一个主要的原因就是,这样在我需要利用Google进行相关查询的时间,不必来回的切换机器。现在,在安装完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的安装
首先需要安装的是入侵检测系统。我们采用了Linux标准软件包(也是PacketFence推荐的)中的选择Snort。运行下面的命令:

===============================================================
sudo apt-get install snort
===============================================================

在继续下一步之前,你需要通过sudo /etc/init.d/snort的命令停止Snort的运行。也要确定在系统启动的时间,Snort没有运行,否则PacketFence将无法启动。如果出现了这种情况,可以使用update-rc.d命令,通过sudo update-rc.d -f删除snort。这样的话,snort会被从rc.d的运行列表中清除。

数据库MySQL的安装
因为PacketFences需要数据库的支持,所以必须安装MySQL数据库。在安装数据库的时间,也必须注意其中的一些细节。

第一步,利用sudo apt-get命令安装mysql服务器。这个安装的时间有点棘手。这就是我在前面说的为什么喜欢有一个root密码。利用sudo passwd命令输入两次root密码,就可以作为一个pseudo-root用户登陆了。下一步需要做的就是更换MySQL的密码。因为,在默认状态下,密码是空白的。这是相当的不安全,而且对于PacketFence来说,需要一个MySQL的root密码。因此,利用mysql -u root -p[回车](这里目前不需要密码)的命令,就可以进入MySQL的>命令提示符状态,现在输入命令:

===============================================================

SET PASSWORD FOR root@localhost=PASSWORD('NEWPASSWORD');

===============================================================

NEWPASSWORD就是你在MySQL中使用的root密码。

这样,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下载附带最新的稳定版本(截止本文发表的时间,是1.6.2版)。如果wget没出现的话,你需要首先利用sudo apt-get命令安装wget。

你可以从Sourceforge上下载相关的文件,目前的下载地址是: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目录,下面就可以在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进行相关设置,以完成整个系统的安装。这个设置表提供了几种不同的类型可以供你选择。运行后,可以看到下面的选项:

测试模式
注册
检测
登陆及检测
登陆,检测与扫描
基于会话的验证


我建议首先在测试模式下运行系统,并回答相关问题,以彻底结束安装。

几点改动
我在安装完成前曾遇到的一个问题,就是PacketFence的启动脚本无法找到Apache启动脚本,因为它查询的是/usr/bin/httpd而不是/usr/bin/apache2,这是由于安装的是Ubuntu服务器版本的缘故。为了更正这个,你需要在pf.conf文件中添加一个[服务]。在你常用的编辑器中打开/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
===============================================================

由于Apache是安装在Ubuntu上,所以/usr/lib/apache2/module structure下面还有一些其它的路径需要修改。因此,可以通过/usr/local/pf/conf/templates/httpd.conf文件对相关的参数进行调整,以适应实际需要。还要去掉79行对php5模块和80行对php4模块的设置。


PacketFence的初次运行
现在,可以开始运行PacketFence了。我建议最好使用/usr/local/pf/bin/start命令来运行。你可以看到下面的显示内容:

Checking configuration sanity...
service|command
config files|start
iptables|start
httpd|start
pfmon|start
pfdetect|start
snort|start

现在可以通过/usr/local/pf/bin/stop命令关闭PacketFence系统了。

一旦你明确了它可以正常启动,就可以对PacketFence的启动脚本进行设置了
。下面是相关的命令:
===============================================================
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功能强大,必将得到广泛的应用。希望我的文章可以帮助你减少安装中遇到的麻烦。
 类似资料: