图解pfSense软路由系统的使用(NAT功能) – Sean’s Notes – SegmentFault

网络配置 徐 自远 1041℃

pfsense是一款开源的路由和防火墙产品,它基于freebsd系统定制和开发。pfsene拥有友好的web的配置界面,且具有伸缩性强又不失强大性能,在众多开源网络防火墙中属于佼佼者。

2004年,pfsense作为m0n0wall项目(基于freebsd内核的嵌入式软防火墙)的分支项目启动,增加了许多m0n0wall没有的功能(pfSense的官方网站称它为the better m0n0wall).pfSense除了包含宽带路由器的基本功能外,还有以下的特点:

  • 基于稳定可靠的FreeBSD操作系统,能适应全天候运行的要求
  • 具有用户认证功能,使用Web网页的认证方式,配合RADIUS可以实现记费功能
  • 完善的防火墙、流量控制和数据包功能,保证了网络的安全,稳定和高速运行
  • 支持多条WAN线路和负载均衡功能,可大幅度提高网络出口带宽,在带宽拥塞时自动分配负载
  • 内置了IPsec 和PPTP VPN功能,实现不同分支机构的远程互联或远程用户安全地访问内部网
  • 支持802.1Q VLAN标准,可以通过软件模拟的方式使得普通网卡能识别802.1Q的标记,同时为多个VLAN的用户提供服务
  • 支持使用额外的软件包来扩展pfSense功能,为用户提供更多的功能(如FTP和透明代理).
  • 详细的日志功能,方便用户对网络出现的事件分析,统计和处理
  • 使用Web管理界面进行配置(支持SSL),支持远程管理和软件版本自动在线升级

本文简单介绍pfSense的安装及配置过程,完成一个基本的路由器该有的功能,如访问局外网、设置防火墙规则、配置端口映射。这里演示在ESXi虚拟服务器上,解决IP不足的问题。

创建虚拟机

首先去 https://www.pfsense.org/download/ 下载稳定版本的pfSense,如pfSense-LiveCD-2.2.2-RELEASE-amd64.iso.gz(网上看到有人提到这个版本不稳定,我在使用中偶尔也发现突然很慢,建议2.1.5)。在vSphere上创建虚拟机的过程省略,取名01_pfSense,创建虚拟机操作系统时选择“其他 -> FreeBSD 64位”,单CPU,512Mb内存,4G硬盘。将下载的系统解压成iso后挂载到CD/DVD,并“打开电源时连接”。
下图是网卡情况:
为pfSense分配两个网卡,分别是可以连接公司内网的172.29.88.1/24网段的vSphere_Admin端口组,和IP范围是172.30.31.1/24的内部局域网端口组VM Local。

记录下Mac地址
外网接口:00:0c:29:36:b6:c2
内网接口:00:0c:29:36:b6:cc

安装pfsense

启动电源后出现欢迎界面,选择1.Boot pfSense [default],或等待几秒钟自动选择,进入如下界面:

输入I,回车,然后是一个蓝屏,开始安装。

也可以什么都不用管,系统会一直启动从CD启动得到一个完整的pfSense系统,因为没有安装所以在屏幕下方会有一个选项99) Install pfSense to a hard drive, etc.,输入99同样会进入下面的安装操作系统的过程。

一路保存默认:< Accept these Settings > → < Quick/Easy InStall > → erase all content < OK > → < Standard Kernel > → < Reboot >

重启后安装完成,断开CD介质。

详见见官网文档 https://doc.pfsense.org/index.php/Installing_pfSense 。

下面开始配置内外网接口。

分配接口

从上图可以看到系统默认将em0接口当做WAN(外网),em1当做LAN(内部局域网),但我们不确定em0就是在创建虚拟机时分配的外网接口,需要根据MAC地址判断。

选择1) Assgin Interfaces,回车
首先询问你是否设置VLAN(用于划分多个子局域网网),Do you want to set up VLANs now [y|n]?,否n:

分配IP

选择2) Set interfce(s) IP address

先配置WAN的IP,禁用DHCP,配置地址172.29.88.230/24,网关172.29.88.1,禁用IPV6:

再配置LAN,172.30.31.1/24,不配置网关:

完成后会提示可以在浏览器打开http://172.30.31.1/,通过webConfigurator来操作pfSense。

已打通两端网络:

登录

172.30.31.1是内部局域网的IP,所以只能通过另一台lan上的服务器的浏览器访问:

当然这样操作起来很不方便,,而且假如lan上的其它服务器都是linux而且没有图像界面,没办法使用webConfigurator了。端口转发似乎是一个比较好的方案:在某一台lan服务器上添加一个可以通过你的pc端访问的网卡(我这里的172.29.88.206,它的lan接口IP为172.30.31.20),然后使用rinetd工具转发到172.30.31.1。
这个方法似乎可选,但需要额外的设置:

An HTTP_REFERER was detected other than what is defined in System -> Advanced (http://172.29.88.206:8008/index.php?logout). You can disable this check if needed in System -> Advanced -> Admin.

pfSense为了安全起见,不允许任何形式的转发来访问webConfigurator,根据你的需要决定是否关闭这个功能:System -> Advanced -> Admin,勾选Browser HTTP_REFERER enforcement -> Save -> Apply。

登陆的用户名默认为admin/pfsense

使用配置向导

前面是通过命令行的方法对接口和IP进行配置,也可以直接通过webGUI向导对WAN和LAN、网关等设置:System -> Setup Wizard,因为太过简单,就不贴图了。
在设置WAN接口时(Configure WAN Interface)注意两点:

  • Static IP Configuration 部分设置正确的IP和网关,否则会无法进出网络
  • RFC1918 Networks 默认是勾选的,这是为了避免WAN上也存在与LAN一样的网段。如果要允许wan的其他主机ping通该pfSense,则去掉勾

其它保持为空或默认值。

pfSense的NAT功能

即Port Forward,目的是为了WAN上的其他机器可以访问LAN内部的服务。
Friewall -> NAT

端口映射分为单端口和范围端口。但端口容易理解,访问WAN 172.29.88.230:8000 的 数据包都转发到内部LAN 172.30.31.20:8000;范围端口是在 from m to n 的端口范围内的数据包都发送到内部IP的对应端口上,减少规则的数量。

Save -> Apply Changes,与此同时pfSense会自动在防火墙里添加规则,Firewal -> Rules

pfSense做负载均衡

见 http://segmentfault.com/a/1190000002705207

其它功能

pfSense还有几大重要的功能,如快速搭建VPN服务器,作为前端负载均衡服务器,流量限制。由于工作中暂未用到,所以就不加说明了。

参考

转载请注明:徐自远的乱七八糟小站 » 图解pfSense软路由系统的使用(NAT功能) – Sean’s Notes – SegmentFault

喜欢 (0)

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号