Understanding firewalls in modern networks
"Firewall" used to mean one thing: a device that allowed or denied traffic based on source, destination, and port. That's still the foundation, but three decades of evolution have layered a lot on top of it.
Stateless vs. stateful
A stateless firewall evaluates every packet independently against an access list — fast, simple, and blind to context. A stateful firewall tracks connections: it remembers that your laptop initiated a TCP session to a web server, and automatically permits the return traffic without a matching inbound rule. Almost everything deployed today is stateful; the stateless ACL is now mostly a tool for coarse, high-speed filtering at the edge, not the whole security story.
Zone-based policy
Rather than writing rules per interface, zone-based firewalls group interfaces into
zones (inside, outside, dmz) and write policy between zones. Traffic from inside
to outside might be permitted by default; outside to inside is denied by default and
opened only for specific, inspected services. This scales far better than
interface-by-interface ACLs once you have more than a couple of network segments.
Next-generation inspection
"Next-gen" firewalls add awareness above layer 4: they can identify the application generating traffic regardless of port (so someone tunneling a chat app over port 443 doesn't just look like "HTTPS"), inspect inside TLS sessions, and correlate against threat intelligence feeds. This is powerful, but it isn't a replacement for correct zone and rule design — a next-gen firewall with a permissive baseline policy is still a permissive firewall.
The rule that matters most
Default deny, explicit permit. Every mature firewall design starts here: nothing is allowed unless a rule says otherwise. It's the single decision that determines whether a misconfiguration merely limits something you needed, or quietly opens something you didn't want exposed.