The Problem
Imagine you own a company, and have a couple hundred servers. These servers have confidential data on them. Thus, it would be a problem if network traffic flowed freely between these servers and any other computer connected to the internet. If this were the case, random strangers could probe the servers, attempt to make FTP or telnet connections, and potentially gain access to a machine.
Firewalls prevent untrusted connections, amongst other things, by providing a way to control the network traffic that flows from the servers to the “outside” (outgoing traffic) and a way to control the network traffic that flows from the “outside” to the servers (ingoing traffic).
History
The term firewall originally referred to a wall intended to stop a fire from burning down a row of adjacent buildings. It was later applied to network technology.
🔥🔥🔥 ||
🏠🏠🏠 || 🏠🏠🏠
Types of Firewalls
- Network firewalls: these firewalls filter traffic between two more more networks and run on network hardware.
Packet-filtering (stateless): these firewalls act as Internet routers, and operate at the IP layer. That is, they filter internet packets. Filtering is done based on a set of rules, and each packet is considered individually.
Packet-filtering (stateful): similar to the above, but state is kept, meaning packets may be associated with other packets in order to make more complex decisions. - Proxy: these firewalls operate at the application layer, which allows them to make even more sophisticated decisions.
- Host-based firewalls: These firewalls run directly on the host as a daemon or a service, and control ingoing and outgoing traffic.
Packet-filtering
HTTP Proxy
Host-based
Resources
- TCP/IP Illustrated, Vol. 1: The Protocols (Ch. 7)
- Wikipedia
https://en.wikipedia.org/wiki/Firewall_(computing)