Netfilter Framework ядра Linux
1.1 Що таке Netfilter?
Netfilter, безумовно більший ніж будь-який з підсистем брандмауера в минулому Linux ядра. Netfilter надає абстрактне, узагальнення в рамках якого одного конкретного втілення є фільтрація пакетів підсистеми.
Netfilter рамки складаються з трьох частин:
Кожен протокол визначає набір "гачків" (IPv4 визначає 5), які використовуються в певні моменти проходження пакета цього стека протоколів. На кожній з цих точок, стек протоколів викличе Netfilter рамки з пакета і гачок номер.
Частини ядра можуть зареєструватися, щоб використовувати різні гачки для кожного протоколу. Таким чином, коли пакет передається в рамках Netfilter, він перевіряє, чи хтось зареєстрований для цього протоколу і гачком, а якщо так, вони отримують можливість вивчити (і можливо змінити) пакет, відмовитися від нього, щоб він міг пройти запит Netfilter в черзі пакетів для простору користувача.
Пакети, які були зібрані в черзі для відправки в просторі користувача, ці пакети обробляються асинхронно. Користувач процесу може розглянути пакет, може змінити його.
Вся пакетна фільтрація / NAT / ... матеріал на основі цієї бази. Існує також пакети із зміненим кодом розкидані по всьому мережевому стеку.
Netfilter рамки в даний час реалізовані для IPv4, IPv6 і DECnet.