Netfilter — це інфраструктура у ядрі операційної системи Linux, яка дозволяє виконувати різні мережеві операції, зокрема фільтрацію пакетів, NAT та інші маніпуляції з мережевими пакетами. Netfilter надає базову функціональність для брандмауерів і є основою для таких утиліт, як iptables, nftables та firewalld.
Ключові можливості.
-
Фільтрація пакетів. Netfilter дозволяє фільтрувати вхідні, вихідні та форвардні пакети за допомогою правил, які визначають, що робити з тими чи іншими пакетами (дозволити, відкинути, перенаправити і т.д.).
-
NAT (Network Address Translation). Це функціональність, яка дозволяє змінювати IP-адресу або порти в заголовках мережевих пакетів. NAT широко використовується для приховування внутрішніх IP-адрес за однією публічною адресою.
-
Маскарадинг. Спеціальний вид NAT, що використовується для динамічної зміни IP-адреси джерела для пакетів, що виходять з локальної мережі в інтернет.
-
Маршрутизація пакетів. Netfilter дозволяє виконувати маніпуляції з маршрутами мережевих пакетів, включаючи перенаправлення пакетів між інтерфейсами.
-
nftables та iptables. Це інтерфейси користувача для роботи з Netfilter. Iptables використовувався традиційно, але зараз замінюється на nftables, який надає більш потужний і гнучкий спосіб роботи з правилами фільтрації.
-
Hooks. Netfilter використовує систему гачків (hooks) для перехоплення і обробки мережевих пакетів на різних стадіях їх обробки (наприклад, перед маршрутизацією, після маршрутизації тощо).
Завдяки Netfilter, адміністратори можуть детально контролювати мережевий трафік, забезпечувати безпеку мережі та керувати з’єднаннями в Linux-системах.