Безпека в linux
Продовжуємо тему безпечної роботи з мережею в Linux. Сьогодні я розповім про фільтрацію пакетів. Що це таке, для чого потрібно, як це працює - все це ви дізнаєтесь в даній замітці.
Що ж таке фільтр пакетів? Фільтр пакетів - це програма, яка переглядає заголовки пакетів у міру їх надходження і вирішує подальшу долю всього пакета. Фільтр може скинути (DROP) пакет, тобто як ніби пакет і не приходив зовсім, прийняти (ACCEPT) пакет, тобто пакет може пройти далі, або зробити з ним щось ще більш складне.Вам необхідно ядро, яке має netfilter-інфраструктуру: netfilter - це основа всередині Linux ядра, в яку можуть вбудовуватися інші компоненти (такі як модуль iptables). Це означає, що вам необхідно ядро 2.3.15 або вище, і вам необхідно включити (відповісти 'Y') на опцію CONFIG_NETFILTER при конфігуруванні ядра. Утиліта iptables взаємодіє з ядром і вказує йому, які пакети фільтрувати. Саме за допомогою цієї програми ви будете керувати фільтром пакетів. Iptables - це заміна для ipfwadm і ipchains. Утиліта iptables вставляє і видаляє правила з таблиці фільтра пакетів ядра. Це означає, що, що б ви не встановлювали або налаштовували, це буде втрачено при перезавантаженні. Що виправити для того, щоб гарантувати, що правила відновляться після перезавантаження машини? Для цього були написані утиліти iptables-save і iptables-restore, які займаються тим, що зберігають і відновлюють правила фільтрації.
Як пакети проходять фільтри? Ядро запускається з трьома списками правил в таблиці фільтра пакетів; ці списки називаються firewall chains або просто chains (ланцюжки). Три ланцюжка називаються INPUT, OUTPUT і FORWARD. Ланцюжки влаштовані приблизно так (див. Рис. 1).
Застосування iptables. Iptables має досить добре написану і докладну manual-сторінку (man iptables), там ви можете знайти все, що цікавлять вас моменти.
Матеріал підготовлений з використанням "Linux 2.4 Packet Filtering HOWTO by Rusty Russell".