IPFire was designed with both modularity and a high-level of flexibility in mind. You can easily deploy many variations of it, such as a firewall, a proxy server or a VPN gateway. The modular design ensures that it runs exactly what you've configured it for and nothing more. Everything is simple to manage and update through the package manager, making maintenance a breeze.
The IPFire development team understands that security means different things to different people and certainly can change over time. The fact that IPFire is modular and flexible make it perfect for integrating into any existing security architecture. Don't forget that ease-of-use is a key principle. If all this sounds a little too much for you, IPFire comes with great default settings out-of-the-box, meaning it's a snap to get going quickly!
The primary objective of IPFire is security. As there is of course no one, single way to achieve network security, it is important for a network administrator to understand their environment and what the term security means in the context of their own network. IPFire forms the base of a secure network. It has the power to segment networks based on their respective security levels and makes it easy to create custom policies that manage each segment (see the Firewall page for more information).
Security of the modular components is a top priority. Updates are digitally signed and encrypted, as well as can be automatically installed by Pakfire (the IPFire package management system). Since IPFire is typically directly connected to the Internet, it is going to be a primary target for hackers and other threats. The simple Pakfire package manager helps administrators feel confident that they are running the latest security updates and bug fixes for all of the components they utilize.
Since IPFire 2.15, the IPFire Linux kernel is patched with the grsecurity patchset, which pro-actively hardens the kernel against various forms of attacks. Most importantly, it protects from zero-day exploits by eliminating entire bug classes and exploit vectors. It makes stack buffer overflows almost impossible to exploit and comes with strict access controls, that make it harder for attackers to cause harm to the system.
IPFire employs a Stateful Packet Inspection (SPI) firewall, which is built on top of netfilter (the Linux packet filtering framework).
During the installation of IPFire, the network is configured into different, separate segments. This segmented security scheme means that there is a perfect place for each machine in the network. These different segments may be enabled separately, depending on your requirements. Each segment represents a group of computers who share a common security level:
|Green||Green represents a "safe" area. This is where all regular clients will reside. It is usually comprised of a wired, local network. Clients on Green can access all other network segments without restriction.|
|Red||Red indicates "danger" or the connection to the Internet. Nothing from Red is permitted to pass through the firewall unless specifically configured by the administrator.|
|Blue||Blue represents the "wireless" part of the local network (chosen because it's the color of the sky). Since the wireless network has the potential for abuse, it is uniquely identified and specific rules govern clients on it. Clients on this network segment must be explicitly allowed before they may access the network.|
|Orange||Orange is referred to as the "demilitarized zone" (DMZ). Any servers which are publicly accessible are separated from the rest of the network here to limit security breaches.|
With IPFire 2.15, the graphical user interface has been completely rewritten and massively extended with new functionality. It is now possible to manage groups of hosts or services. That makes it simpler to create many similar rules for a great number of hosts, networks or services.
Managing firewall rules has never been easier before.
Because even with a big number of rules, the configuration remains easily manageable and that makes it possible to build more restrictive configurations without losing control.
Additionally, the firewall can be used to control outbound Internet access from any segment. This feature gives the network administrator complete control over how their network is configured and secured.
Pakfire - The IPFire package management system
From a technical point of view, IPFire is a minimalistic, hardened firewall system which comes with an integrated package manager called Pakfire. The primary task of Pakfire is to update the system with only a single click. It is very easy to install security patches, bugfixes and feature enhancements, which make IPFire safer and faster - or simply: better.
Another task of Pakfire is to install additional software that adds new functionality to the IPFire system. Some useful of them are:
IPFire is based on Linux, which is the best Open Source kernel around. Additionally, IPFire is not based on any other distribution like Knoppix is on Debian. It is compiled from the sources of every single package. This comsumes a lot of work, but finally gives the opportunity to not rely on the update cycles of others. The advantages we gain is that we are able to select very stable versions of software and build the distribution from them. For example is the most part of the distribution quite well tested and long maintained - in contrast to the kernel which is very recent and regularly updated with patches to support as much hardware as possible and more importantly fix security errors.
This is what makes IPFire a very strong and hardened system.
To keep up that strength and be prepared for new hardware, we give out the so called Core Updates which are issued in about every four weeks and updating collected fixes. If there is a security emergency, we provide updates in less than a day to overcome zero-day holes in the system.
All of the updates can be installed by the package management system and users are notified by mail. So in all cases, the update is just a simple click and your system is running safe again.
IPFire as an Internet Gateway is able to dialup through various techniques to connect to the Internet.
It supports all popular types of broadband access, as well as mobile access:
|VDSL||VDSL is short for Very High Data Rate Digital Subscriber Line and it currently offers bandwidth up to 50 Mbit/s downstream and 10 Mbit/s upstream. VDSL brings the possibility of using new technologies such as IPTV. With IPFire, a conventional router can be replaced by a full-fledged system that brings the IPTV stream into your own home network.|
|ADSL/SDSL||Conventional DSL is also supported, although it is technically called also PPPoE or PPPoA. In some countries, the PPTP protocol is also widely used and it is also fully supported by IPFire.|
|Ethernet||Over Ethernet, IPFire can also be connected to the Internet and obtain an IP address either via DHCP or static configuration.|
|4G/3G||Mobile broadband connections over USB modems, which are also known by the names UMTS, 3G, CDMA, HSDPA or LTE are also supported by IPFire.|
IPFire includes a full-fledged web proxy, which is the well-known, open-source software Squid. It is used by ISPs, universities, schools and large companies use because of its diversity, stability and mature development. Even for small home networks, it is a useful feature. In addition to the stateful paket inspection (SPI) filtering by the firewall on the TCP/IP layer, the web content which is transmitted over HTTP, HTTPS or FTP can be analyzed and filtered as well.
SquidGuard is a URL filter add-on which is connected via the redirector mechanism of the proxy. The heart of SquidGuard is something called a "blacklist." This is a content control list created by the official site. These lists contain a number of categorically-classified websites and can be kept up-to-date automatically. There are different, independent sources for pre-built blacklists available, which allow among other classes filtering for adult content, shopping, warez, social networking, or sites containing violent/abusive content.
Individual extensions for particular domains or URLs can be set up on the IPFire web interface for blacklists and whitelists as well. IPFire also offers a black list editor, that makes the editing and creating your own blacklists quite easy.
Possible areas of application for the SquidGuard on IPFire are:
The Update Accelerator is a feature that can greatly accelerate deploying updates for operating systems. All downloaded updates are cached and if requested another time, are delivered from the cache.
For example, Service Packs for Microsoft Windows (which often are several hundred megabytes) are cached for future retrieval, as well as virus scanner definition updates and other product updates which the system automatically identifies. This saves a massive amount of time when updating large amounts of computers (such as corporate networks).
Transparent virus scanner
The package manager Pakfire offers the addon SquidClamAV - a virus scanner for the web proxy. This checks in real-time all web traffic for viruses, utilizing the ClamAV virus definitions and scanning engine.
The additional protection to a conventional virus scanner lies in the fact that the files are transparently checked before ever making it to the client machine before the client machine's virus scan can be performed. So potentially-malicious files are blocked by SquidClamAV before the client's actual download.
Cryptography is one of the foundations for various services like VPNs and secure communication on the Internet. Therefore, IPFire is putting an emphasis on this topic.
IPFire can use various crypto processors like those to be found in AMD Geode CPUs, the VIA Padlock or CPU extensions like AES-NI of recent Intel and AMD CPUs. These help us to achieve much better throughput where ever data is sent through an encrypted tunnel.
Random Number Generators
IPFire is also able to use various random hardware number generators to seed the kernel's entropy pool. That entropy is needed to generate secure keys and speeds up cryptographic operations as well.
VPN - Virtual Private Networks
IPFire also includes functionality to create virtual private networks (VPN). A VPN is a gateway which connects remote networks to the local one using an encrypted link. Uses for a VPN include business connections to branch offices or datacenters, as well as providing traveling staff with a secure portal to the corporate network.
For maximum flexibility, IPFire uses both IPsec and OpenVPN protocols, giving administrators maximum flexibility when configuring their VPN. Use of these protocols allows IPFire to connect to a variety of VPN endpoint devices by manufacturers such as Cisco, Juniper, Checkpoint, etc.
IPsec is a widely-deployed VPN solution that was originally developed to be used in conjunction with IPv6. Because it was so secure and IPv6 was so slowly deployed, it was backported to secure IPv4 traffic as well.
In contrast to SSL-VPNs, IPsec is hard to set-up. In IPFire, we thought about how to make this technology easy-to-use and as a result, there is a web user interface that handles all settings and takes care of the rest of the configuration for you. It also keeps the tunnels alive and re-establishes them automatically after a remote site has lost the connection. A secure connection to a branch office, a business partner, or a home office is done within a couple of minutes and compatible with all other implementations.
This high-level of compatibility is achieved by using the free implementation called strongSwan. It is maintained by Andreas Steffen, who is a professor for security in communications and head of the Institute for Internet Technologies and Applications at the University of Applied Sciences Rapperswil, in Switzerland. StrongSwan also works with all current, major operating systems, such as Microsoft Windows 7, Microsoft Windows Vista and Mac OS X.
OpenVPN is a frequently-encountered and most popular representative of the class of Open Source SSL VPNs. Its relative ease of configuration has again, been made easier by the IPFire web interface. The firewall settings are controlled by IPFire automatically, as well as the required certificates will be generated with a few mouse clicks and can be downloaded and distributed as a very compact client package.
Due to its high compatibility to all sorts of operating systems, such as Microsoft Windows, Mac OSX, Linux, Android and many more, it is perfectly useful for roadwarrior connections. With those, it is easy to connect your laptop, phone, tablet or other devices to your company network, which makes it easy to work from anywhere in the world.
But besides connecting portable devices, OpenVPN can also be used to securely connect branches to the headquater. This makes it easy to access resources on other networks remotely without any complicated configuration on each client on your local network.
Intrusion detection system
An Intrusion Dection System (or IDS), is a piece of software designed to detect attacks against computer systems and networks. Thereby the IDS will analyze the network traffic and search for attack samples. If someone scans the ports of the IPFire-System to see which services are available, the IDS will immediately notice it.
An Intrusion Prevention System (or IPS), in addition to the detection system, will perform actions. The IPS gets the information from the IDS and reacts accordingly. That means, recalling the example above with the portscan, the system would automatically block the attacker immediately in order to prevent further inquiries.
It is possible to use IDS and IPS on the IPFire system. We call this system "Intrusion Detection and Prevention System" (or IDPS). A very important deputy of this system is Snort, the free Network Intrusion Dection System (NIDS). It analyzes the network traffic and if something abnormal happens, it will log the event. IPFire gives you the possibility to see it very explicitly in the web interface.
For automatic prevention, IPFire has an add-on called Guardian which can be installed optionally.
An IDPS is a wise addition to the normal packet filter. It makes intelligent decisions about incoming and outgoing network traffic and how to deal with it.
Quality of Service
Quality of Service (QoS) is able to save the quality of a service on one internet connection. This means that on a highly-utilized internet connection, a service (for example VoIP) gets a stable size of bandwidth, to transfer the information without delay and without loss. This is at the expense of the other data flows on the line, which is tolerated, albeit transmitted more slowly (such as a file upload to an FTP server).
QoS does not only increase the functionality of real-time services, but also offers a little bit of overall improvement. For example:
For the classification of the packets, a Level-7-Filter is used. It also analyses the content, as well as the source-ports/IPs, and destination-ports/IPs of the packets. With that analysis, it will decide if it's a long download or a real-time protocol and then subsequently determines the optimal use of the connection.
To put all in a nutshell, QoS reduces the latency and packet loss of an internet connection. This is certainly a function that you don't want to miss where bandwidth is limited.
Since IPFire is based on a recent version of the Linux kernel, it supports most of the latest hardware such as 10Gbit network cards and a variety of wireless hardware out of the box. The IPFire developers are very concerned with the ability to run IPFire as many system variations as possible. This helps IPFire to run on older or cheap hardware, as well as high-performance systems.
Minimum system requirements are an Intel Pentium I (i586), 128MB RAM and 2GB hard drive space.
Some add-ons have extra requirements to perform smoothly. On a system that fits the hardware requirements, IPFire is able to serve hundreds of clients simultaneously.
Wireless Access Point
IPFire offers several options for the integration of wireless clients. First, an access point can be connected via a LAN card. In this scenario, IPFire offers MAC/IP address filtering to allow only authorized clients. The clients are allowed by default to access the Internet, but they are not allowed access the local LAN. The second option is to install a wireless LAN (WLAN) card in the IPFire machine that takes the functionality of the access point over, using the add-on "hostapd". This add-on supports both unencrypted and WPA/WPA2-encrypted connections. Also the use of 5 GHz (802.11a standard) is possible if the wireless card supports it.
Wireless card support in IPFire is excellent. The drivers in the stable kernel are very up-to-date and IPFire therefore supports a significant amount of WLAN cards.