Налаштування IPTables

Це підсистема для роботи з мережевими пакетами, яка пропускає через свій фільтр усі з'єднання на сервері. Давайте розглянемо налаштування IPTables детальніше.

Загальна інформація

IPTables вже вбудований у основне ядро Linux за замовчуванням, але інструменти для роботи з ним у багатьох дистрибутивах не доступні за замовчуванням, тому використаємо команду для встановлення утиліти.

Debian / Ubuntu

[sudo] apt install iptables

Sudo призначений для використання в операційній системі Ubuntu. Для Debian використовується проста команда.

CentOS [Fedora]

sudo yum install iptables

Налаштування

Після встановлення утиліти перейдемо до її детального налаштування.

Аргументи

  • -A — додати правило до розділу.

  • -C — перевірити всі правила.

  • -D — видалити правило.

  • -I — вставити правило з потрібним номером.

  • -L — вивести всі правила в поточному розділі.

  • -S — вивести всі правила.

  • -F — очистити всі правила.

  • -N — створити розділ.

  • -X — видалити розділ.

  • -P — встановити дію за замовчуванням.

  • -p — встановити протокол.

  • -s — вказати адресу відправника.

  • -d — вказати адресу одержувача.

  • -i — вхідний мережевий інтерфейс.

  • -o — вихідний мережевий інтерфейс.

  • -j — застосувати правило.

  • INPUT — обробка вхідних пакетів і з'єднань.

  • FORWARD — використовується для пересилання з'єднань. Тут обробляються відповідні пакети, які надходять на ваш сервер, але не визначають його як ціль доставки.

  • OUTPUT — повністю протилежне першому. Використовується для вихідних пакетів і з'єднань.

  • ACCEPT — пропустити пакет.

  • DROP — видалити пакет.

  • REJECT — відхилити пакет.

  • LOG — зробити лог-файл відповідного пакета.

  • QUEUE — надіслати пакет до користувацької програми.

Відкриття портів

Спочатку перевіримо наш список правил:

iptables -L

Відкриємо TCP-порт 80 для вхідних з'єднань:

iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

Перевіримо список знову...

Тепер відкриємо діапазон UDP-портів від 25565 до 25570 для вихідних з'єднань:

iptables -t filter -A OUTPUT -p udp --dport 25565:25570 -j ACCEPT

Перевіримо результат.

Хочете закрити всі вхідні з'єднання для TCP 250? Без проблем:

iptables -t filter -A INPUT -p tcp --dport 250 -m state --state ESTABLISHED -j DROP

Видалення правил

Спробуємо видалити правило, яке дозволяє вхідні з'єднання для TCP 80:

iptables -t filter -D INPUT -p tcp --dport 80 -j ACCEPT

Видалення всіх правил

Для цього використовуйте команду:

iptables -F

Збереження встановлених правил

За замовчуванням всі правила, які були створені, застосовуються до наступного перезавантаження і будуть видалені під час нього. Щоб цього уникнути, збережемо правила IPTables, які ми створили. Для цього використовуйте відповідну команду:

iptables-save

Все працює. Правила збережені і будуть активні навіть після перезапуску нашого сервера!

Last updated