PFSense - About PFSense
pfSense includes almost all features found in expensive commercial firewalls, and more in many cases.
State Table
The firewall’s state table maintains information on your open network connections. pfSense is a stateful firewall, and by default all rules are stateful.
Most firewalls lack the ability to finely control your state table. pfSense has numerous features allowing granular control of your state table, thanks to the abilities of OpenBSD’s pf.
Adjustable state table size – there are multiple production pfSense installations using several hundred thousand states. The default state table size varies according to the RAM installed in the system, but it can be increased on the fly to your desired size. Each state takes approximately 1 KB of RAM, so keep in mind memory usage when sizing your state table. Do not set it arbitrarily high.
On a per-rule basis:
State types – pfSense offers multiple options for state handling.
Keep state – Works with all protocols. Default for all rules
Modulate state – Works only with TCP. pfSense will generate strong Initial Sequence Numbers (ISNs) on behalf of the host
Synproxy state – Proxies incoming TCP connections to help protect servers from spoofed TCP SYN floods. This option includes the functionality of keep state and modulate state combined
None – Do not keep any state entries for this traffic. This is very rarely desirable, but is available because it can be useful under some limited circumstances
State table optimization options – pf offers four options for state table optimization
Normal – the default algorithm
High latency – Useful for high latency links, such as satellite connections. Expires idle connections later than normal
Aggressive – Expires idle connections more quickly. More efficient use of hardware resources, but can drop legitimate connections
Conservative – Tries to avoid dropping legitimate connections at the expense of increased memory usage and CPU utilization
NAT: Network Address Translation
Port forwards including ranges and the use of multiple public IPs
1:1 NAT for individual IPs or entire subnets
Outband NAT
NAT Reflection – in some configurations, NAT reflection is possible so services can be accessed by public IP from internal networks
NAT Limitation
PPTP / GRE Limitation – The state tracking code in pf for the GRE protocol can only track a single session per public IP per external server.
This means if you use PPTP VPN connections, only one internal machine can connect simultaneously to a PPTP server on the Internet.
A thousand machines can connect simultaneously to a thousand different PPTP servers, but only one simultaneously to a single server.
The only available work around is to use multiple public IPs on your firewall, one per client, or to use multiple public IPs on the external PPTP server.
This is not a problem with other types of VPN connections.
A solution for this is currently under development.
Redundancy
CARP from OpenBSD allows for hardware failover.
Two or more firewalls can be configured as a failover group.
If one interface fails on the primary or the primary goes offline entirely, the secondary becomes active.
pfSense also includes configuration synchronization capabilities, so you make your configuration changes on the primary and they automatically synchronize to the secondary firewall.
pfsync ensures the firewall’s state table is replicated to all failover configured firewalls.
This means your existing connections will be maintained in the case of failure, which is important to prevent network disruptions.
Limitations
Only works with static public IPs, does not work with stateful failover using DHCP, PPPoE, or PPTP type WANs.
Load Balancing
Outbound load balancing is used with multiple WAN connections to provide load balancing and failover capabilities.
Traffic is directed to the desired gateway or load balancing pool on a per-firewall rule basis.
Inbound Load Balancing
Inbound load balancing is used to distribute load between multiple servers. This is commonly used with web servers, mail servers, and others. Servers that fail to respond to ping requests or TCP port connections are removed from the pool.
VPN
IPsec
IPsec allows connectivity with any device supporting standard IPsec.
This is most commonly used for site to site connectivity to other pfSense installations, other open source firewalls (m0n0wall, etc.), and most all commercial firewall solutions (Cisco, Juniper, etc.).
It can also be used for mobile client connectivity.
OpenVPN
OpenVPN is a flexible, powerful SSL VPN solution supporting a wide range of client operating systems.
See the OpenVPN website for details on its abilities.
PPTP Server
PPTP is a popular VPN option because nearly every OS has a built in PPTP client, including every Windows release since Windows 95 OSR2.
See this article for more information on the PPTP protocol.
PPPoE Server
pfSense offers a PPPoE server.
A local user database can be used for authentication, and RADIUS authentication with optional accounting is also supported.
Reporting and Monitoring
RRD Graphs. The RRD graphs in pfSense maintain historical information on the following:
CPU utilization
Total throughput
Firewall states
Individual throughput for all interfaces
Packets per second rates for all interfaces
WAN interface gateway(s) ping response times
Traffic shaper queues on systems with traffic shaping enabled
Historical information is important, but sometimes it’s more important to see real time information.
SVG graphs are available that show real time throughput for each interface.
For traffic shaper users, the Status → Queues screen provides a real time display of queue usage using AJAX updated gauges.
The front page includes AJAX gauges for display of real time CPU, memory, swap and disk usage, and state table size.
Dynamic DNS
A Dynamic DNS client is included to allow you to register your public IP with a number of dynamic DNS service providers:
DynDNS
DHS
DNSexit
DyNS
EasyDNS
FreeDNS
HE.net
Loopia
Namecheap
No-IP
ODS.org
OpenDNS
ZoneEdit
Captive Portal
Captive portal allows you to force authentication, or redirection to a click through page for network access.
This is commonly used on hot spot networks, but is also widely used in corporate networks for an additional layer of security on wireless or Internet access.
The following is a list of features in the pfSense Captive Portal:
Maximum concurrent connections – Limit the number of connections to the portal itself per client IP. This feature prevents a denial of service from client PCs sending network traffic repeatedly without authenticating or clicking through the splash page.
Idle timeout – Disconnect clients who are idle for more than the defined number of minutes.
Hard timeout – Force a disconnect of all clients after the defined number of minutes.
Logon pop up window – Option to pop up a window with a log off button.
URL Redirection – after authenticating or clicking through the captive portal, users can be forcefully redirected to the defined
URL.
MAC filtering – by default, pfSense filters using MAC addresses. If you have a subnet behind a router on a captive portal enabled interface, every machine behind the router will be authorized after one user is authorized. MAC filtering can be disabled for these scenarios.
Authentication options – There are three authentication options available
No authentication – This means the user just clicks through your portal page without entering credentials
Local user manager – A local user database can be configured and used for authentication
RADIUS authentication – This is the preferred authentication method for corporate environments and ISPs. It can be used to authenticate from Microsoft Active Directory and numerous other RADIUS servers
RADIUS capabilities
Forced re-authentication
Able to send Accounting updates
RADIUS MAC authentication allows captive portal to authenticate to a RADIUS server using the client’s MAC address as the user name and password
Allows configuration of redundant RADIUS servers
HTTP or HTTPS – The portal page can be configured to use either HTTP or HTTPS
Pass-through MAC and IP addresses – MAC and IP addresses can be white listed to bypass the portal
File Manager – This allows you to upload images for use in your portal pages
DHCP Server and Relay
pfSense includes both DHCP Server and Relay functionality.
References