Firewall у Linux

Увага! Всі дії з iptables виробляються від імені привілейованого користувача!

Команди

  • -A - Додати правило в ланцюжок
  • -D - Видалити правило з ланцюжка
  • -R - Замінити одне правило іншим
  • -I - Вставити нове правило
  • -L - Вивести список існуючих правил
  • -F - Скидання правил
  • -Z — Обнулення лічильників у заданому ланцюжку
  • -N — Створення нового ланцюжка із заданим ім'ям
  • -X — Видалення ланцюжка
  • -P — Встановити стандартну політику для обраного ланцюжка
  • -E — Перейменувати ланцюжок користувача

Детальніше в man iptables

Перегляд поточної конфігурації

Якщо ви побачили подібне, значить ваш файрволл ще не налаштований і дозволяє все. Виправимо становище.

Налаштування стандартної політики

  • iptables -P INPUT DROP - блокування вхідних пакетів
  • iptables -P OUTPUT ACCEPT - дозволити вихідні пакети
  • iptables -P FORWARD DROP — обробка пакетів, які потрапили на сервер з іншої машини та чекають на подальше перекидання. У прикладі блокується. У такому разі вам доведеться дописати правила для довірених машин.

Оскільки вхідні пакети INPUT блоковані, пропишемо правило:

Це дозволить приймати пакети від раніше встановленого з'єднання та приймати нові пакети, породжені цим з'єднанням.

Або із зазначенням типу протоколу:

Тепер локальний інтерфейс:

  • NEW - дані, що починають нове з'єднання.
  • ESTABLISHED - пакет, що надходить від вже встановленого з'єднання.
  • RELATED - новий пакет даних, але породжений старим встановленим з'єднанням
  • INVALID - тож зрозуміло

Зберегти налаштування (можетепрописувати налаштування iptables безпосередньо у створений файл):

Включити ці правила:

І побачити різницю:

Запуск iptables при старті системи:

У каталозі /etc/init.d створюємо файл з ім'ям iptables

Прописуємо в ньому таке:

Робимо файл iptables виконуваним:

Додаємо його до автозапуску

Запуск iptables при підключенні до мережі:

Примітка: у будь-який момент ви можете перевірити чи завантажені ваші правила, просто ввівши від рута iptables-save

Для archlinux збереження правил iptables здійснюється командою: