Посібник для початківців щодо iptables, Брандмауер Linux

Aug 27, 2025
Конфіденційність та безпека

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

Про iptables

iptables - це утиліта брандмауера командного рядка, яка використовує ланцюжки політик для дозволу або блокування трафіку. Коли підключення намагається утвердитися у вашій системі, iptables шукає у своєму списку правило, яке йому відповідає. Якщо його не знайти, він вдається до дії за замовчуванням.

iptables майже завжди поставляється попередньо встановленим на будь-якому дистрибутиві Linux. Щоб оновити / встановити його, просто завантажте пакет iptables:

sudo apt-get встановити iptables

Існують альтернативи графічного інтерфейсу iptables типу Запалювач , але iptables насправді не так складно, коли у вас є кілька команд. Ви хочете бути надзвичайно обережними при налаштуванні правил iptables, особливо якщо ви SSH ввели на сервер, оскільки одна неправильна команда може назавжди заблокувати вас, доки вона не буде зафіксована вручну на фізичній машині.

Типи ланцюгів

iptables використовує три різні ланцюжки: вхід, пряму передачу та вихід.

Вхідні дані - Цей ланцюжок використовується для контролю поведінки вхідних з'єднань. Наприклад, якщо користувач намагається ввести SSH на ваш ПК / сервер, iptables спробує зіставити IP-адресу та порт із правилом у ланцюжку введення.

Вперед - Цей ланцюжок використовується для вхідних з'єднань, які насправді не доставляються локально. Подумайте про маршрутизатор - дані завжди надсилаються на нього, але рідко фактично призначені для самого маршрутизатора; дані просто пересилаються до своєї цілі. Якщо ви не зробите в системі якусь маршрутизацію, NATing або щось інше, що вимагає переадресації, ви навіть не будете використовувати цей ланцюжок.

Існує один надійний спосіб перевірити, використовує чи не потребує ваша система прямий ланцюг.

iptables -L -v

На скріншоті вище показано сервер, який працює кілька тижнів і не має обмежень на вхідні та вихідні з’єднання. Як бачите, ланцюжок введення обробила 11 ГБ пакетів, а ланцюжок виводу - 17 ГБ. З іншого боку, прямий ланцюг не потребує обробки одного пакета. Це пов’язано з тим, що сервер не робить жодної переадресації або не використовується як прохідний пристрій.

Вихідні дані - Цей ланцюжок використовується для вихідних з'єднань. Наприклад, якщо ви спробуєте пінгувати howtogeek.com, iptables перевірить свою ланцюжок виводу, щоб побачити, які правила стосуються ping та howtogeek.com, перш ніж приймати рішення про дозвіл або заборону спроби підключення.

Застереження

Незважаючи на те, що пінгування зовнішнього хоста здається чимось, що потребує лише обходу вихідного ланцюга, майте на увазі, що для повернення даних буде використовуватися також ланцюжок введення. Використовуючи iptables для блокування вашої системи, пам’ятайте, що для багатьох протоколів потрібен двосторонній зв’язок, тому ланцюги введення та виведення повинні бути налаштовані належним чином. SSH - це загальний протокол, який люди забувають дозволити на обох ланцюгах.

Поведінка за замовчуванням політичного ланцюга

Перш ніж заходити та налаштовувати конкретні правила, ви захочете визначити, якою буде поведінка трьох ланцюжків за замовчуванням. Іншими словами, що ви хочете робити iptables, якщо з'єднання не відповідає жодним існуючим правилам?

Щоб побачити, що ваші ланцюжки політик наразі налаштовано на неперевершений трафік, запустіть iptables -L команди.

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

Найчастіше ви бажаєте, щоб ваша система приймала підключення за замовчуванням. Якщо ви раніше не змінювали правила ланцюжка політик, це налаштування вже має бути налаштовано. У будь-якому випадку, ось команда приймати підключення за замовчуванням:

iptables --policy ВХІД ПРИЙНЯТИ
iptables --політика ВИХІД ПРИЙНЯТИ
iptables --політика ВПЕРЕД ПРИЙНЯТИ

За замовчуванням правила прийняття, ви можете використовувати iptables для заборони певних IP-адрес або номерів портів, продовжуючи приймати всі інші з'єднання. Ми дійдемо до цих команд за хвилину.

Якщо ви бажаєте відмовити у всіх підключеннях і вказати вручну, які ви хочете дозволити підключати, вам слід змінити політику за замовчуванням для ваших ланцюжків, щоб вона відпала. Це, мабуть, було б корисно лише для серверів, що містять конфіденційну інформацію і лише коли-небудь мають однакові IP-адреси, що підключаються до них.

iptables --policy INPUT DROP
iptables --policy ВИХІДНИЙ КРАП
iptables --політика ВПЕРЕД ВПАДАННЯ

Відповіді на конкретні зв’язки

З налаштованими вашими ланцюговими політиками за замовчуванням ви можете почати додавати правила до iptables, щоб він знав, що робити, коли він зустрічає з'єднання з або до певної IP-адреси або порту. У цьому посібнику ми розглянемо три найосновніші та найпоширеніші "відповіді".

Прийняти - Дозволити з'єднання.

Падіння - Киньте зв’язок, поводьтеся так, як ніколи цього не було. Це найкраще, якщо ви не хочете, щоб джерело усвідомлювало, що ваша система існує.

Відхилити - Не дозволяйте з'єднання, але надішліть повідомлення про помилку. Це найкраще, якщо ви не хочете, щоб певне джерело підключалося до вашої системи, але ви хочете, щоб вони знали, що ваш брандмауер їх заблокував.

Найкращий спосіб показати різницю між цими трьома правилами - показати, як це виглядає, коли ПК намагається пінгувати машину Linux за допомогою iptables, налаштованих для кожного з цих параметрів.

Дозвіл на підключення:

Розривання з'єднання:

Відхилення з'єднання:

Дозвіл або блокування певних підключень

З налаштованими ланцюжками політик тепер ви можете налаштувати iptables, щоб дозволити або заблокувати певні адреси, діапазони адрес і порти. У цих прикладах ми встановимо зв’язки КРАПЛЕННЯ , але ви можете перемкнути їх на ПРИЙМІТИ або ВІДХОДИТИ , залежно від ваших потреб і того, як ви налаштували свої ланцюжки політик.

Примітка. У цих прикладах ми будемо використовувати iptables -A додати правила до існуючого ланцюжка. iptables починається у верхній частині списку та проходить кожне правило, поки не знайде відповідне. Якщо вам потрібно вставити правило над іншим, ви можете використовувати iptables -I [chain] [number] щоб вказати номер, який він повинен бути у списку.

Підключення з однієї IP-адреси

У цьому прикладі показано, як заблокувати всі з'єднання з IP-адреси 10.10.10.10.

iptables -A INPUT -s 10.10.10.10 -j DROP

Підключення з ряду IP-адрес

У цьому прикладі показано, як заблокувати всі IP-адреси в діапазоні мережі 10.10.10.0/24. Ви можете використовувати маску мережі або стандартну косу риску для позначення діапазону IP-адрес.

iptables -A INPUT -s 10.10.10.0/24 -j DROP

або

iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP

Підключення до певного порту

У цьому прикладі показано, як заблокувати з'єднання SSH з 10.10.10.10.

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP

Ви можете замінити “ssh” будь-яким номером протоколу або порту. -p tcp частина коду повідомляє iptables, яке з'єднання використовує протокол. Якщо ви блокували протокол, який використовує UDP, а не TCP, тоді -p удп замість цього було б потрібно.

У цьому прикладі показано, як заблокувати з'єднання SSH з будь-якої IP-адреси.

iptables -A INPUT -p tcp --dport ssh -j DROP

Держави зв’язку

Як ми вже згадували раніше, багато протоколів потребують двостороннього зв'язку. Наприклад, якщо ви хочете дозволити підключення SSH до вашої системи, ланцюжки введення та виведення потребуватимуть доданого до них правила. Але що, якщо ви хочете, щоб SSH, який надходить у вашу систему, був дозволений? Чи не додасть правило до вихідного ланцюжка також дозволити вихідні спроби SSH?

Тут з’являються стани зв’язку, які надають вам можливість дозволити двосторонній зв’язок, але дозволяють встановлювати лише односторонні зв’язки. Погляньте на цей приклад, де дозволено з'єднання SSH З 10.10.10.10, а з'єднання SSH ДО 10.10.10.10 - ні. Однак системі дозволено надсилати назад інформацію через SSH до тих пір, поки сеанс уже встановлений, що робить можливим зв'язок SSH між цими двома хостами.

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state --state НОВЕ, ВСТАНОВЛЕНО -j ПРИЙНЯТИ

iptables -A ВИХІД -p tcp --sport 22 -d 10.10.10.10 -m стан - стан ВСТАНОВЛЕНО -j ПРИЙНЯТИ

Збереження змін

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

Ubuntu:

sudo / sbin / iptables-save

Red Hat / CentOS:

/ sbin / service iptables зберегти

Або

/etc/init.d/iptables save

Інші команди

Перелічіть налаштовані правила iptables:

iptables -L

Додавання Параметр надасть вам інформацію про пакети та байти, а також додасть перерахує все числово. Іншими словами - імена хостів, протоколи та мережі вказані як номери.

Щоб очистити всі налаштовані на даний момент правила, ви можете виконати команду flush.

iptables -F

Iptables Walkthrough (Linux Firewall)

Introduction To Linux IPTables

Introduction To Linux Firewall

Using `iptables` On Linux

Iptables Firewall Examples (ITS335, L23, Y14)

07 Iptables Firewall Rules

Firewalling In Linux Using IPtables Sp8scorp

Introduction To Linux: #15 - Iptables

Introduction To Iptables

Introduction To IPTables

Linux Firewall Configurations - Intro To Firewalld (RHCE Topic)

Linux Iptables - Configuring And Implementing Linux Iptables - Learn About Ip Values And Ranges #41

Advanced Linux Firewall Config. With Firewalld Rich Rules And IPset - Rich Rules + Ipset

Ubuntu Server 18.04 Administration Guide Part 11 - Configuring Firewall Rules With UFW

Intro To IPTables With Jason

Understand The Security At OS & Network Level | Configure Linux Firewall | DevOps Tutorial | Edureka


Конфіденційність та безпека - Найпопулярніші статті

Що таке LockApp.exe у Windows 10?

Конфіденційність та безпека Sep 18, 2025

Ви можете побачити процес, який називається LockApp.exe, запущений на вашому ПК. Це нормально. LockApp.exe є ча..


Як замінити Windows Essentials 2012 після закінчення підтримки в січні

Конфіденційність та безпека Jul 6, 2025

Microsoft припинить підтримку пакета Windows Essentials 2012 10 січня 2017 р. Якщо ви використовуєте будь-яку ко�..


Як підключитися до SSH-сервера з Windows, macOS або Linux

Конфіденційність та безпека Mar 18, 2025

Клієнт SSH дозволяє підключатися до віддаленого комп'ютера, на якому запущений сервер SSH. Протокол Sec..


Як перевірити, чи має ваш ноутбук HP модуль кейлоггера Conexant

Конфіденційність та безпека May 12, 2025

НЕЗАГОТОВЛЕНИЙ ЗМІСТ Багато ноутбуків HP, випущені в 2015 та 2016 роках, мають велику проблему. У аудіо�..


Як зробити так, щоб веб-браузер перестав просити вас зберігати паролі

Конфіденційність та безпека Apr 3, 2025

Браузери хочуть бути корисними, тому вони завжди пропонують зберегти ваші паролі, коли ви входите �..


Як налаштувати проксі-сервер у Firefox

Конфіденційність та безпека Feb 13, 2025

Якщо ви хочете надіслати трафік веб-браузера - і лише трафік вашого браузера - через проксі ..


Як оновити Windows Phone до Windows 10 зараз

Конфіденційність та безпека Jan 19, 2025

НЕЗАГОТОВЛЕНИЙ ЗМІСТ Microsoft технічно продає два телефони із вбудованою Windows 10, але о�..


Додайте до Firefox автоматичне шифрування веб-сайтів

Конфіденційність та безпека Jul 15, 2025

НЕЗАГОТОВЛЕНИЙ ЗМІСТ Чи хотіли б ви, щоб веб-сайти автоматично відкривались зашифрованими та безпечни�..


Категорії