Основи роботи з iptables

Iptables – дуже гнучкий брандмауер, який за замовчуванням вбудований в більшість операційних систем Linux. У цій статті ми розберемо основи роботи з iptables, команди, які можна використовувати.

Перевірка поточного статусу iptables
За допомогою наступної команди ви можете переглянути поточну політику вашого брандмауера:

sudo iptables –L –v

Визначення правил
Використовуючи таку команду, ми можемо створювати ланцюг правил для iptables. Не всі параметри потрібно вказувати при додаванні нового правила.
-A означає «Додати», і нове правило буде додано в кінці ланцюга.
-I можна використовувати, якщо вам потрібно вставити правило замість іншого.

sudo iptables -A -i <интерфейс> -p <протокол (tcp / udp)> -s <источник> –dport <порт> -j <цель>

Включити трафік localhost
Почнемо з включення трафіку localhost за допомогою наступної команди.

sudo iptables -A INPUT -i lo -j ACCEPT

Тут ми використовували параметр -i для того щоб вказати інтерфейс, використовуваний для зв’язку з localhost.

Включити з’єднання через HTTP, SSH та SSL-порт
Щоб звичайні з’єднання, такі як HTTP (порт 80), HTTPS (порт 443) і SSH (порт за замовчуванням 22), як і раніше могли використовуватися – потрібно додати їх до нашого ланцюгу INPUT. Зверніть увагу, що ми використовували -p для вказівки протоколу і відповідного порту. Якщо ви використовуєте порт SSH, відмінний від стандартного, змініть його на той, який ви використовуєте.

sudo iptables -A INPUT -p tcp –dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp –dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp –dport 443 -j ACCEPT

Фільтрувати пакети по джерелу
Якщо ви хочете приймати або відхиляти пакети на основі конкретної IP-адреси, ви можете вказати це за допомогою опції -s. Наприклад, наступна команда відхилить пакети з IP-адреси 192.168.0.1.

sudo iptables -A INPUT -s 192.168.0.1 -j DROP

Ви також можете вказати діапазон (підмережа):

sudo iptables -A INPUT -s 192.168.0.0/24 -j DROP

Обмеження входять TCP-підключень/запобігання DDoS-атак
За часту на серверах трапляються флуд-атаки. Вони використовуються для DDoS-атак на інший сервер з використанням вашої пропускної спроможності за рахунок використання протоколу TCP. Ми можемо пом’якшити це, використовуючи наступну команду.

sudo iptables -A INPUT -p tcp –syn -m limit –limit 1/s –limit-burst 3 -j DROP

Це означає, що ми дозволяємо вхідні з’єднання, поки не буде досягнута межа:

–limit 1/s: максимальна середня швидкість зіставлення в секундах.
–limit-burst 3: максимальне початкова кількість пакетів

Відключення усього іншого трафіку
Так само, можна відкинути весь інший трафік, який нам не потрібен, щоб запобігти несанкціонованому доступу.

sudo iptables -A INPUT -j DROP

Відкрити порт на сервері
Якщо після налаштування ви встановили програмне забезпечення, яке вимагає відкриття порту, можна використовувати команду:

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

8045 – потрібний порт

Є так само можливість відкрити діапазон портів, приклад команди:

iptables -t filter -A INPUT -p tcp --dport 1560:1590-j ACCEPT

Цією командою ми відкрили порти 1560-1590 для вхідних пакетів які передаються по протоколу TCP.

Якщо треба відкрити порт на вихідні повідомлення – потрібно вказати замість INPUT – OUTPUT.

Видалення правил
Якщо потрібно видалити правила і почати з нуля, ви можете використовувати команду flush. Він видаляє кожне правило, вказане в усіх ланцюжках.

sudo iptables -F

Якщо потрібно видалити певне правило, для початку треба перевірити якому рядку воно відповідає.

sudo iptables -L –line-numbers

Ви отримаєте список правил з відповідними номерами.

Chain INPUT (policy ACCEPT) 

num  target     prot opt source               destination          

1    ACCEPT     all  —  192.168.0.4          anywhere             

2    ACCEPT     tcp  —  anywhere             anywhere             tcp dpt:https 

3    ACCEPT     tcp  —  anywhere             anywhere             tcp dpt:http 

4    ACCEPT     tcp  —  anywhere             anywhere             tcp dpt:ssh

Для видалення правила вказуємо номер в нашій команді:

sudo iptables -D INPUT 2

Збереження змін
Створені нами правила iptables зберігаються в пам’яті. Це означає, що при перезавантаженні все зміни будуть стерті. Щоб зберегти їх потрібно використовувати команду:

sudo /sbin/iptables-save

Або:

/sbin/service iptables save

Ви так само можете використовувати інші більш зручні фаєрволи для захисту Вашого сервера, наприклад csf \ apf.

Залишити коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *