宽带软路由防火墙pfSense篇

来自于mOnOwall的pfSense

pfSense是一款功能强大的免费路由器软件,它是在著名的路由器软件mOnOwall基础上开发的,增加了许多mOnOwall没有的功能(pfSense的官方网站称它为the better mOnOwall).PfSense除了包含宽带路由器的基本功能外,还有以下的特点:

*:基于稳定可靠的FreeBSD操作系统,能适应全天候运行的要求.

*:具有用户认证功能,使用Web网页的认证方式,配合RADIUS可以实现记费功能.

*:完善的防火墙,流量控制和数据包过滤功能,保证了网络的安全,稳定和高速运行.

*:支持多条WAN线路和负载均衡功能,可大幅度提高网络出口带宽,在带宽拥塞时自动分配负载.

*:内置了Ipsec和PPTP VPN功能,实现不同分支机构的远程互联或远程用户安全地访问内部网.

*:支持802。1Q VLAN标准,可以通过软件模拟的方式使得普通的网卡能识别802。1Q的标记,同时为多个VLAN的用户提供服务.

*:支持使用额外的软件包来扩展pfSense功能,为用户提供更多的功能(如FTP和透明代理).

*:详细的日志功能,方便用户对网络出现的事件分析,统计和处理.

*:使用Web管理界面进行配置(支持SSL),支持远程管理和软件版本自动在线升级.

硬件准备

pfSense对计算机硬件的要求很低,只要CPU主频为133MHz以上,内存为64M以上,硬盘为1GB以上并配有CD-ROM的计算机都可以运行.本例运行pfSense的计算机上安装两块网卡,一块网卡连接WAN(如ADSL Modem),一块网卡连接到内部局域网.

光盘上的路由器pfSense

pfSense最新版本是0.69.14,我们可以从 http://www.pfsense.org/downloads/ 下载,其安装光盘镜像文件名为pfSense-0.69.14-LiveCD.iso.大小约为40MB(该版本为Alpha,推荐在工作场合使用稳定版本).

pfSense Live CD 本身就可以从光盘启动作为防火墙,也可以从Live CD 启动安装pfSense到硬盘.

注意:

由于pfSense安装程序会对本地硬盘重新分区,所以在安装前,请备份硬盘中的数据.

将下载的光盘安装镜像文件刻录到光盘,并放入需要安装pfSense计算机光驱启动它.

1.配置网络接口

从CD-ROM启动进入pfSense后,会要求配置网络接口.PfSense显示检测到的网卡列表及其MAC地址,本例中有两块网卡分别是lnc0和lnc1.

(1)pfSense首先会询问是否要配置VLAN,如果连接LAN的网卡连接的是交换机的Trunk端口,并且想pfSense能处理来自各个VLAN的数据,则可以在此指定网卡和VLAN的802。1Q标记ID,由于本例没有涉及VLAN,所以在此选择“n”。

(2)接下来pfSense会要求我们输入内部网卡(连接LAN的网卡)的名称,这里请根据实际选择(可以根据网卡的MAC地址来区别),本例输入“lnc0”。

注意:

我们虽然可以输入“a”来让pfSense自动检测,但笔者建议还是手工指定比较好,因为pfSense自动检测功能并不是很准确.

(3)然后pfSense会要求我们输入外部网卡(连接WAN的网卡)的名称,这里请根据实际选择(可以根据网卡的MAC地址来区别),本例输入“lnc1”。

(4)由于pfSense支持多WAN线路,所以还会要求输入可选的(Optional)网卡名称.本例只有一条WAN线路,所以只需直接按回车键即可.

(5)pfSense最后会显示我们的配置结果,并询问是否按照显示进行配置,请输入“y”来确认.

2。控制台配置

配置完网络接口后,就来到了pfSense的控制台配置窗口“pfSense Console Setup”.

我们可以看到内部网自动配置的IP地址为192。168。1。1,外部网是采用DHCP方式获得Ip地址.

如果你想把pfSense安装到硬盘上,这些配置并不重要,直接在“Enter an option”后输入:

installer

打开pfSense的安装界面.不需要把pfSense安装到硬盘的用户,则可以根据其提供的选项对pfSense进一步配置.

安装pfSense到硬盘

在pfSense的控制台界面输入“Installer”打开其安装程序,并参照下列步骤进行安装。

1。在“Welcome to pfSense”窗口选择“Installer”,然后在出现的“Begin Installation”窗口中选择“Install pfSense”按钮,开始安装pfSense。

2。在“Select Disk”对话框中,安装程序会要求选择将pfSense安装到哪个硬盘,请根据实际情况选择,本例只有一个硬盘,所以选择“ad0”。

在“How Muck Disk?”对话框中,选择pfSense使用硬盘空间的大小,建议选择将硬个空间分配给pfSense使用,即选择“Use Entire Disk”按钮。接着安装程序会提示删除硬盘中所有数据的警告,如果已经备份硬盘中的数据,请选择“OK”按钮确定。

3。在“Create Subpartitions”对话框中,安装程序会自动为我们建立根分区和交换分区,请选择“Accept and Create”按钮继续。

4。接下来安装程序开始复制文件到硬盘中,完成后出现“Install Bootblocks”对话框,选择是否安装引导块,请选择“Accept and Install Bootblocks”按钮,将Bootblocks安装在硬盘中,这样我们可以通过硬盘来引导pfSense

5。安装完成后,系统要求重新启动计算机。重启计算机,请取出pfSense安装光盘,并进入CMOS设置从硬盘启动。

pfSense的基本配置

刚安装完pfSense还不能立即使用Web管理界面来配置它,必须使用字符菜单来对它进行基本配置。

第一次从硬盘启动pfSense,系统会要求配置网络接口。具体配置方法与从Live CD 光盘启动类似,这里不再叙述。

配置内部网卡IP地址

配置完VLAN和网络接口后,pfSense会显示内部网卡和外部网卡的IP地址,同时还显示pfSense的主菜单,要选择某个子菜单只需要输入菜单前的数字并按回车键确定即可。

本例LAN使用的IP子内网是192。168。16。0/24,但内部网卡缺省的IP地址是192。168。1。1,所以要对其进行修改。

(1)在主菜单选择子菜单“Set up LAN IP address”。

(2)输入内部网卡IP地址

(3)输入内部网卡的子网掩码。要注意在这里子网掩码与Windows下写法不一样,本例输入的“24”就是子网掩码“255。255。255。0”的意思,即输入的数字表示子网掩码的二进制位中左边为“1”共有多少位。

(4)pfSense还会询问是否在内部网卡启用DHCP服务器,以便为LAN的计算机自动分配IP地址。如果要启用DHCP服务器,请输入分配给客户机的开始地址和结束地址。

完成以上基本配置后,我们就可以使用浏览器通过Web来管理pfSense了。

使用向导初使化pfSense

使用浏览器访问http://pfSense内部网卡的IP,输入用户名为“admin”和口令为“pfsense”后,就能进入pfSense的Web管理界面。由于我们是第一次访问Web管理界面,pfSense会运行向导程序,帮助我们完成pfSense初始化配置工作,请单击“Next”按钮。

1。配置主机,域名和DNS

在“General Information”页面中,可以配置pfSense的主机名,域名和DNS服务器地址(如图8)。请根据实际输入这些参数,然后单击“Next”按钮。

2。配置时间服务器

在“Time Server Information”页面中,为了保证pfSense系统时间的准确性,可以为pfSense指定时间服务器,如果网络中没有时间服务器,请使用缺省的服务器。

3。配置拨号信息

在“Configure WAN Interface”页面中(如图9),请根据实际在“SelectedType:”选择WAN的接入方式(如DHCP,静态IP,PPPoE或PPTP拨号等),输入连接的相关参数,然后单击“Next”按钮。本例选择PPPoE,在“PPPoE configuration”填入用户名和口令,其中“Enable Dial-on-Demand mode”复选框表示是否要按需求拨号, “PPPoE ldle timeout:”表示连接闲置多少秒后自动断线,如果填“0”则表示永久要在线。

4。配置内部网卡IP

在“Configure LAN Interface”页面中,可以设置内部网卡的IP地址,由于前面已经设好了,所以在这里直接单击“Next”按钮进入下一页面。

5。设置管理员密码

在“Set Admin WebGUI Password”页面中,重新设置admin用户的口令,然后单击“Next”按钮。

6。重新启动计算机

最后向导会提示要重新启动计算机,以便新的配置生效,请单击“Reboot”按钮重启动计算机。

经过以上配置后,设置局域网客户机通过DHCP自动获得IP地址,即可通过pfSense上网了。

通过Web配置pfSense

使用向导初始化pfSense后,用浏览器访问pfSense,就能访问pfSense的管理主页面了(如图10)。pfSense管理界面比较友好,所有菜单都显示在左页面中。由于pfSense大部分菜单功能和设置方式与其它宽带路由器类似,笔者在这里就不再重复,下面笔者主要对pfSense专有功能进行介绍:

1.配置多WAN线路

使用多条不同的WAN线路传输数据,在提高带宽的同时还能实现线路冗余的功能。pfSense目前只支持使用固定IP接入的多WAN线路,暂时还不支持DHCP、PPPOE和PPTP等多WAN接入线路(官方已宣布正开发PPPOE多WAN接入线路的功能,相信pfSense的下个版本就会支持)。

(1) 将物理网卡正确连接到计算机上。

(2) 进入pfSense的Web管理界面,单击左页面“Interfaces”旁的“{assign}”超链接。

(3) 在出现的“Interface assignments”页面中,单击“+”超链接。

(4) PfSense会自动添加一块名为“OPT1”的接口,请为该接口选择网卡,然后单击“Save”按钮保存(如图11)。

(5) 这时会发现在左页面的“Interfaces”下增加了一个“OPT1”菜单,请单击“OPT1”超链接。

(6) 在出现的页面中,请选择“Enable Optional 1 interface”复选框,并根据实际情况输入“OPT1”接口的IP地址,子网掩码和网关地址等,配置完后单击“Save”按钮保存。

(7) 为了让配置生效,需要重新启动运行pfSense的计算机。

2.Web用户认证服务

相信用过长城宽带或E家宽网络的读者对Web认证宽带接入不会感到陌生,即用户第一次启动Web浏览器访问互联网时,Web浏览器将自动指向到指定的Web认证页面,用户在认证页面输入用户名和密码,通过认证后,才允许访问互联网。这种宽带接入认证技术非常方便,用户无须配置任何网络参数(如IP地址和子网掩码等),也无需安装任何客户端软件,使用Web浏览器就能完成用户认证,pfSense将Web用户认证服务称为Captive portal。

(1) 单击左页面“Services”菜单下的“Captive portal”超链接。

(2) 在出现的页面中,选择“Captive portal”选项卡(如图12),请选择“Enable captive portal”复选框,并选择“Interface”为“LAN”。“ldle timeout”用于设置用户连接不活动时间超过指定的值就强行断开用户连接,如果想取消该选项,让其空白即可。“Hard timeout”用于设置强行断开用户连接的时间,该选项不会理会用户连接是否活动,只要时间到就强行断开用户连接,这个选项可以帮助我们断开那些没事开着计算机下载的用户,如果是正常的用户就断开后只要重新登录即可恢复。“Enable logout popup window”用户设置登录弹出窗口。“Redirection URL”用于设置当用户通过认证后,被强制转向哪个URL。

(3) 如果在“RADIUS server”选择“Local Usermanager”则表示采用pfSense本地账户数据库,需要在pfSense建立相应账户;如果选择“RADIUS Authentication”表示采用RADIUS服务器认证,需要输入RADIUS服务器IP地址、认证端口号、共享密匙、是否需要记账和记账端口号。

(4) 如果要采用基于HTTPS的认证方式可以选择“Enable HTTPS login”复选框,并输入证书和私钥等相关信息。

(5) “Portal page contents”用于设置用户Web认证页面,请单击“浏览”按钮选择预先编辑好的网页,虽然网页的内容可以由我们编辑,但要包含选项下方的代码以便向pfSense提交用户信息。“Authentication error page contents”用于设置用户认证错误时显示的错误页面,然后单击“Save”按钮保存。

(6) 选择“Users”选项卡来管理pfSense本地账户数据库,单击“+”超链接,在出现的页面中输入账户的相关信息(如图14),然后单击“Save”按钮保存。

(7) 对于某些特殊的用户(如老板),可以将他们计算机网卡MAC地址加到“Pass-through MAC”选项卡里,这样他们可以不通过用户认证直接不网。需要注意的是,这些用户还是会受到“ldle timeout”和“Hard timeout”选项的约束。

(8) 对于发布到Internet的服务器而言,我们希望它们能24小时连接Internet而不受Web用户认证服务影响,可以通过设置“Allowed IP addresses”选项卡来实现。选择“Allowed IP addresses”,单“+”超链接,在出现的页面中选择“Direction”为“From”,输入服务器的IP地址和说明(如图15),然后单击“Save”按钮保存。如果要允许所有用户不经过用户认证就能直接访问Internet中的某台服务器(如公司的Web服务器),则添加时选择“Direction”为“To”,然后输入Internet中服务器的IP地址即可。

(9) 完成了以上步骤后,如果pfSense开启了DHCP服务器,并将客户机设置为自动获取IP地址,则客户机上网打开浏览器时会出现我们编辑的Web认证网页,只有通过认证后才能上网(如图16)。如果客户机是手动指定IP地址,需要将默认网关和DNS服务器都设为pfSense内部网卡的IP地址。

小知识:

什么是RADIUS?

RADIUS是Remote Authentication Dial in User Service的缩写,即远程认证拨号用户服务,它规定了网络接入服务器NAS(Network Access Server,如VPN和PPPOE等服务器)与RADIUS服务器之间如何传递用户信息和记账信息。RADIUS服务器负责接收用户的连接请求,完成验证,并把传递服务给用户所需的配置信息返回给NAS,用户获得授权后,RADIUS服务器还可以完成对账号连接过程中的计费功能。

安装软件包

pfSense可以通过安装软件包(Packages)来增加其功能,如提供FTP服务、代理服务和防垃圾邮件等服务。下面笔者以安装代理服务squid软件包为例进行介绍:

(1) 更新可以安装插件列表

单击左页面“System”下的“Packages”超链接,pfSense会从服务器下载当前可用的软件包列表并显示出来。

(2) 选择需要的插件

在列表中找到“squid”软件包,然后单击旁边的“+”超链接,pfSense会弹出一个对话框让我们确认是否安装,请单击“确定”按钮。

(3) 安装插件

pfSense会自动从服务器下载并安装相关软件包(如图18),安装squid代理软件后,pfSense自动将其配置成透明代理,客户机上网速度比那些只有NAT功能的宽带路由器要快得多,由于pfSense默认已经对squid软件包进行了