To understand firewalling in Linux, you need to know that it all is implemented in the
kernel. In the kernel, we have a framework, and this framework is called Netfilter. And
Netfilter is providing three different interfaces. The most important interfaces are the different
chains. So the chains are input for incoming packages. We have forward, which is going
to be if this is a router. And we have output, which is going to filter outgoing traffic.
Now what are you going to do to manage your firewall? Well, you need to get them into
Netfilter in some way. And there are different solutions in order to do so. In the old days,
it was IP tables. Nowadays, NFT, the Netfilter tables, is the default. And using IP tables
or NFT, you write rules into your input chain, or you write rules into your output chain.
And these are always processed for every single packet that comes into your system. Now, IP
tables and NF tables are a little bit complex, and that is why there are also front-end utilities.
And these front-end utilities are firewalld and ufw. These write either to IF tables or
NF tables, and the result is that you get your rules into the input chain or in the
output chain to process the incoming and outgoing packets. In the next couple of videos, you'll
learn how to work with these tools.