IPTables — утиліта, за допомогою якої відбувається управління міжмережевим екраном в Linux. Це потужний і зручний інструмент для захисту мережі та небажаних сполук. Весь процес укладено в правилах iptables, які можна редагувати і переглядати. Більш детальна інформація представлена в статті.
Історія створення
До IPTables в системі Linux використовувався файрвол IPFW, запозичений з BSD. Потім, з версії ядра Linux 2.4 вона стала поставлятися з міжмережевим екраном Netfilter та утилітою IPTables для управління ним. В методиці її роботи були збережені всі аспекти і трохи розширені функціонально.
Будова і пристрій IPTables
Вступаючи в міжмережевий екран, пакет проходить кілька перевірок. Це може бути контрольна сума або будь-який інший аналіз на рівні ядра. Потім настає черга пройти через ланцюжок PREROUTING. Далі перевіряється таблиця маршрутизації, відповідно до якої відбувається переадресація на наступний ланцюжок. Якщо адресу у пакета відсутня, як, наприклад, TCP, то відбувається напрям в ланцюжок FORWARD. У тих випадках, коли є конкретна адреса, слід ланцюжок INPUT, а потім вже тим демонам або сервісів, для яких він призначений. Відповідь від них також повинен пройти кілька ланцюжків, наприклад OUTPUT. Останньою ланкою в цьому процесі є ланцюжок POSTROUTING. Тепер трохи про ланцюжках. Кожна з них містить у собі кілька таблиць. Їх імена можуть повторюватися, але це ніяк не впливає на роботу, так як вони не взаємопов'язані між собою. Таблиці в свою чергу містять кілька правил. По суті, правило — це якесь умова, якій повинен відповідати перевіряється пакет. В залежності від результату, над пакетом виконується певна дія.
Таким чином, проходячи всі етапи мережі, пакет послідовно відвідує всі ланцюжки і в кожній перевіряється на відповідність умові певного правила. Якщо таблиця не сформована користувачем, то виконується дія за замовчуванням, в основному, це ACCEPT, що дозволяє продовжити рух далі або ж DROP, зупиняє пакет. Передвстановлені ланцюжки бувають наступних категорій: PREROUTING . Первісна обробка всіх прихожих пакетів. INPUT . Сюди потрапляють ті пакети, які спрямовані безпосередньо на локальний комп'ютер. FORWARD . Застосовується для «транзитних пакетів», які слідують таблиці маршрутизації. OUTPUT . Використовується для вихідних пакетів. POSTROUTING . Останній етап проходження вихідних пакетом всіх ланцюжків. Крім вбудованих ланцюжків, користувачі можуть створювати або видаляти свої власні.
Перегляд правил IPTables і управління ними
Як вже було сказано раніше, всі ланцюжки містять певні умови для пакетів. Для перегляду правил IPTables і управління ними і використовується утиліта IPTables. Кожне окреме правило являє собою рядок з набором умов для пакетів, а також дії над ними, в залежності від результату. Формат команди виглядає таким чином: iptables[-t название обрабатываемой таблицы]викликається команда[критерии] [выполняемое действие].
Все, що укладено в квадратні дужки? може бути опущено. Якщо це параметр із зазначенням таблиці, то буде використовуватися filter. Для застосування якогось певного імені треба додати ключ -t. Викликається команда дозволяє викликати необхідну дію, наприклад, додати правило IPTables або видалити його. У «критеріях» вказуються параметри, за якими буде відбуватися відбір. І в «дії» застосовується дія, яку потрібно виконати, якщо умова дотримана.
Команди для створення і перегляду правил IPTables
Далі наведено кілька команд утиліти: Append (-A). При використанні команди вказується ланцюжок і таблиця, в які потрібно додати необхідне правило. Цінність команди в тому, що вона робить це в кінці списку. Delete (-D). Як можна зрозуміти з назви, виробляє видалення правила. В якості параметрів можна вказати повне найменування, так і присвоєні їм номери. Rename-chain (-E). Змінює назву ланцюжка. В команді вказується старе, потім нове ім'я. Flush (F). Очищення абсолютно всіх правил певної таблиці. Insert (-I). Дана команда вставляє в номером вказане місце, потрібне правило. List (- L). Перегляд правил Iptables. Якщо не вказана таблиця, то буде використана filter за промовчанням. Policy (-P). Використовується політика за замовчуванням для зазначеної ланцюжка. Replace (-R). Змінює правило під вказаним номером, на необхідне. Delete-chain (-X). Ця команда виробляє видалення всіх створених ланцюжків. Залишаться тільки попередньо. Zero (-Z). Скине лічильники переданих даних у зазначеній ланцюжку.
Трохи про параметри відбору пакетів
Їх можна умовно розділити на три різновиди: Загальні критерії . Їх можна вказувати для будь-яких правил. Вони не вимагають підключення особливих розширень і модулів, а також не залежать від того, який протокол буде задіяний. Не загальні критерії. Вони стають доступні при використанні загальних критеріїв. Явні. Для того, щоб скористатися цим типом, потрібно підключати спеціальні плагіни для netfilter. До того ж у команді необхідно застосувати ключ -m. Варто трохи розповісти про часті параметрах, що застосовуються при аналізі пакетів:
Protocol (-p). Вказує на протокол. Source (-s). Даний параметр визначає IP адреса джерела, з якого прийшов пакет. Його можна вказати кількома способами. Конкретний хост, адреса або ж цілу підмережа. Destination (-d). Адреса призначення пакета. Також, як і попередній, може бути описаний кількома способами. In-interface (-i). Вказує вхідний інтерфейс пакету. В основному використовується для NAT або на системах з декількома інтерфейсами. Out-interface (-o). Вихідний інтерфейс.
Кілька прикладів
Для того, щоб виконати перегляд правил IPTables nat? потрібно скористатися командою - «iptables -L -t nat». Дізнатися загальний статус файрвола - «iptables -L -n -v». До того ж дана команда дозволяє переглянути правила IPTables, наявні у всій системі. Вставити правило в певне місце таблиці, наприклад, між першою і другою рядком - «iptables -I INPUT 2 -s 202541.2 -j DROP». Потім переглянути, додалося воно - «iptables -L INPUT -n --line numbers».
Щоб заблокувати певну адресу, наприклад, 121212.12 - «iptables -A INPUT -s 121212.12 -j DROP». Довідка за iptables - «man iptables». Якщо потрібна інформація по конкретній команді - «iptables -j DROP -h».
На закінчення
Використовувати команди IPTables потрібно з обережністю, так як неправильна настройка (через незнання) може призвести до збоїв в мережі повному або виході її з ладу. Тому варто детально вивчити мануали та інструкції перед конфігурацією. В умілих же руках IPTables можна перетворити в надійного захисника мережевих з'єднань. Системні адміністратори активно використовують утиліту для створення підключень, ізольованих від несанкціонованого доступу.