MasterServerБлог › iptables

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

← усі статті

Іноді до брандмауера сервера потрібно внести правила. У випадку ОС Linux це робиться через iptables.

Спершу перевіримо, чи встановлені iptables, виконайте команду під користувачем root
# cat /etc/sysconfig/iptables

Якщо файл існує, то відобразиться його вміст.

В іншому випадку встановимо пакет командою
# yum install iptables iptables-services

Тепер переглянемо поточний стан правил
# iptables -nvL --line-number

У результаті відобразяться 3 блоки: INPUT, FORWARD та OUTPUT
У ці блоки ми й будемо в майбутньому додавати потрібні правила.


INPUT — тут записуються правила для вхідних пакетів
FORWARD — тут правила для вхідних пакетів, які перенаправлені на вихід
OUTPUT — тут записуються правила для вихідних пакетів

Також можемо вивести на екран лише окремий блок, наприклад виведемо блок OUTPUT
# iptables -nvL OUTPUT --line-number

Як додавати або видаляти правила в iptables

Додавати або видаляти правила можна або командами в консолі, або відкривши файл /etc/sysconfig/iptables і там вносити зміни через будь-який текстовий редактор.
При додаванні правил ми використовуємо параметри -I або -A, різниця між ними в тому, що -A завжди вставляє нове правило в самий кінець.
При використанні -I можна записати правило в певне місце за номером.
Якщо використовувати параметр -I без номера, то правило поміщається на перший рядок.
Це важливо розуміти, оскільки всі правила виконуються строго по черзі, чим вище, тим більш важливо.

Приклади правил і команд iptables

Заборонити вхідні з'єднання з айпішки 33.33.33.33 (правило опиниться на 1 рядку в розділі INPUT)
# iptables -I INPUT -s 33.33.33.33 -j DROP

Заборонити вхідні з'єднання з айпішки 33.33.33.33 і помістити правило на 3 рядок розділу INPUT)
# iptables -I INPUT 3 -s 33.33.33.33 -j DROP

Видалити десяте правило з розділу INPUT
# iptables -D INPUT 10

Дозволити ICMP Ping запити
# iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

Заборонити ICMP Ping запити
# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

Блокування певної ip-адреси або підмережі
# iptables -A INPUT -s 105.188.0.5 -j DROP
# iptables -A INPUT -s 105.188.0.0/24 -j DROP

Заблокуємо вихідний трафік на 66.66.224.0/19
# iptables -A OUTPUT -p tcp -d 69.171.224.0/19 -j DROP

Заблокуємо доступ до домену
# iptables -A OUTPUT -p tcp -d www.apple.com -j DROP
# iptables -A OUTPUT -p tcp -d apple.com -j DROP

Відновити правила за замовчуванням
# iptables-restore < /etc/iptables.rules

Очистити всі правила
# iptables -F

Зберегти файл після виконання всіх команд
# iptables-save > /etc/sysconfig/iptables

Перезавантажити firewall для того, щоб зміни набули чинності
# service iptables restart