Замовляйте VPS-сервер зі скидкою 20%
Акція завершиться через
00Днів
:
00Годин
:
00Хвилин
:
00Секунд

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

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

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

Debian / Ubuntu

[sudo] apt install iptables

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

CentOS [Fedora]

sudo yum install iptables


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

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

Аргументи

-A - Додати правило в розділ.
-С - Перевірити всі правила.
-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


Перевіримо список ще раз... Відмінно! Порт 80 відкритий.

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

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


Перевіримо результат. Готово. Діапазон UDP-портів доступний.

Бажаєте закрити всі вхідні з'єднання для 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


Ось і все. Правила збережено і залишаться активними навіть після перезавантаження нашого сервера.