Знижка 50%. всі плани, обмежений час. Починаючи з $2.48/mo
Залишилося 14 хв
Безпека та мережа

Перелік і видалення правил Linux Iptables – шпаргалка для початківців

Лілі Карнелл By Лілі Карнелл 14 хв читання Оновлено 18 вересня 2023 р
Вказівки щодо перерахування та видалення правил Iptables

Несанкціонований доступ і злом серверів є серйозними загрозами, тому вам слід запровадити брандмауер як частину техніки безпеки мережі. Знання того, як працювати з правилами Iptables, є одним із основних активів для зменшення цих ризиків у ваших системах Linux. Цей посібник допоможе вам ознайомитися з основними концепціями брандмауера, такими як правила показу iptables і видалення правил iptables у Ubuntu, що допомагає виконувати прості команди для досягнення цього. Перш ніж обговорювати, як створити список правил iptables або видалити їх, давайте поговоримо про те, що таке правила iptables і чому ми їх використовуємо?

Що таке Iptables?

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

iptables майже завжди попередньо встановлено на будь-якому Дистрибутив Linux. Ви можете скористатися такою командою, щоб оновити або встановити його:

sudo apt-get install iptables

Чому ми використовуємо Iptables?

Будучи брандмауером командного рядка Linux, iptables дозволяє системним адміністраторам обробляти вхідний і вихідний трафік за допомогою конфігурованих правил таблиці. Iptables використовують набір таблиць із ланцюжками, що містять набір вбудованих або визначених користувачем правил.

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

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

Повний посібник із Iptables в Ubuntu

Перш ніж переглядати правила показу iptables, зауважте, що ви повинні використовувати сервер Linux із встановленою командою iptables. Окрім цих вимог, важливо мати привілеї sudo. Працюючи з брандмауерам, зверніть увагу на те, щоб не заблокувати свій сервер, заблокувавши трафік SSH (порт: 22, за замовчуванням). Якщо ви втратите доступ через налаштування брандмауера, можливо, вам знадобиться підключитися до нього через зовнішню консоль, щоб виправити це.

Читайте також: Як змінити порт SSH у Linux | Короткий покроковий посібник із вашого порту SSH

Правила лістингу за специфікацією

Ви можете переглянути свої активні правила iptables в таблиці або як список специфікацій правил. Майже обидва методи надають однакову інформацію в різних форматах. Щоб отримати список усіх правил активних iptables за специфікацією, потрібно запустити команду iptables з -S варіант:

sudo iptables -S

Після виконання команди iptables show rules ви побачите такий результат:

вихід запущених правил списку шоу
вихід запущених правил списку шоу

Перерахування конкретного ланцюга

Якщо ви хочете обмежити вихід show iptables певним ланцюжком, наприклад INPUT, OUTPUT або TCP, ви можете вказати назву ланцюга безпосередньо після параметра -S. Наприклад, така команда iptables show rules допомагає вказати в ланцюжку TCP:

sudo iptables -S TCP

висновок перерахування ланцюжка TCP, що вказує
висновок перерахування ланцюжка TCP, що вказує

Як ми згадували раніше, існує інший спосіб виконати правила показу iptables: переглядати правила iptables як таблицю правил. Давайте розберемо цю техніку.

Правила переліку у вигляді таблиць

Використання команди для показу правил iptables у таблицях може допомогти порівняти різні правила. Вам потрібно виконати наступну команду show iptables з -L варіант щоб вивести всі ці активні правила в таблицю:

sudo iptables -L

Ця команда відобразить усі поточні правила, відсортовані за ланцюжками. Ви можете обмежити виведення певним ланцюжком, таким як INPUT, OUTPUT, TCP тощо; вам потрібно вказати назву ланцюга безпосередньо після параметра -L. Ось приклад обмеження правил показу iptables ланцюжком INPUT:

sudo iptables -L INPUT

вихід iptables показує правила, обмежені ланцюжком INPUT
вихід iptables показує правила, обмежені ланцюжком INPUT

Перший рядок вихідних даних вище показує назву ланцюжка (в даному випадку INPUT) і політику за замовчуванням (DROP). Наступний рядок містить заголовки кожного стовпця в таблиці та правила ланцюжка. Ми розглянемо їх, щоб допомогти вам вивчити їх усі:

  • Ціль: якщо пакет відповідає правилу, ціль визначає, що з ним робити. Пакет можна прийняти, відкинути, зареєструвати або надіслати в інший ланцюжок для порівняння з іншими правилами.
  • prot: протокол (наприклад, TCP, udp, ICMP або всі інші)
  • opt: вказує параметри IP (використовується нечасто)
  • джерело: показує IP-адресу/підмережу джерела трафіку 
  • призначення: представляє IP-адресу призначення/підмережу трафіку

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

Читайте також: Встановіть OpenVPN на VPS – налаштування клієнта OpenVPN 🔑

Як показати кількість пакетів і загальний розмір?

Перераховуючи правила iptables, ми можемо показати кількість пакетів і загальний розмір пакетів у байтах, які відповідають кожному конкретному правилу iptables; це часто допомагає зрозуміти, які правила збігаються з пакетами. Ви повинні використовувати -L і -v параметри разом для виконання це.

Ось приклад, у якому ми знову будемо використовувати ланцюжок INPUT з опцією -v:

sudo iptables -L INPUT -v

Відображення кількості пакетів і сукупного розміру
вихід Показує кількість пакетів і сукупний розмір

Зверніть увагу, що наш список тепер має ще два стовпці з назвами шт і байтів. Ми навчилися різноманітним способам змусити iptables показати всі команди правил, і тепер настав час знати, як скинути кількість пакетів і загальний розмір.

Як скинути кількість пакетів і загальний розмір?

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

Ви можете очистити лічильники для всіх ланцюжків і правил за допомогою -Z варіант сам по собі:

sudo iptables -Z

Щоб видалити лічильники для всіх правил у певному ланцюжку, потрібно використати параметр -Z і вказати ланцюжок. Наприклад, для очищення лічильників ланцюжка INPUT використовується така команда:

sudo iptables -Z INPUT

Якщо ви хочете видалити лічильники для певного правила, ви повинні точно вказати назву ланцюга та номер правила. Наприклад, ви можете виконати таку команду, щоб обнулити лічильники для першого правила в ланцюжку INPUT:

sudo iptables -Z INPUT 1

На додаток до знання команд iptables show all rules і способів скидання лічильників пакетів і байтів iptables, корисно знати, як видалити правило iptables.

Читайте також: Як встановити сервер PPTP VPN на ваш VPS

Як видалити правила iptables?

Ви можете використовувати кілька команд, щоб видалити правила Iptables або навіть видалити всі правила в ланцюжку. Тут ми обговоримо ці методи,

Видалити правила за специфікацією

Один із способів видалити правила iptables — зробити це за допомогою специфікації правила. Це дозволяє запускати команду iptables за допомогою -D варіант і специфікацію правила. Якщо ви хочете видалити правила за допомогою цієї техніки, ви можете скористатися результатом списку правил, iptables -S, для допомоги.

Наприклад, щоб видалити правило, яке видаляє недійсні вхідні пакети (-A INPUT -m conntrack –ctstate INVALID -j DROP), ви можете виконати такий командний рядок:

sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP

Зверніть увагу, що параметр -A призначений для вказівки положення правила під час створення, і його тут слід виключити.

Видалення правил за ланцюжком і номером

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

sudo iptables -L --line-numbers

Видалення правил за ланцюжком і номером
вихід Видалення правил за ланцюжком і числом

Після цього всі правила iptables матимуть номер рядка, показаний у заголовку num.

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

sudo iptables -D INPUT 3

Як промити ланцюги?

У вас є спосіб видалити всі правила Iptables у ланцюжку, який ми називаємо промивання ланцюга. Тут ми розглянемо різні методи для цього. Перш ніж продовжувати, зверніть увагу, щоб не бути заблокованим на сервері через SSH під час очищення ланцюга з політикою за замовчуванням drop або deny. Оскільки якщо ви це зробите, вам може знадобитися підключитися до нього через консоль, щоб виправити доступ.

Промийте один ланцюг

Щоб очистити певний ланцюжок або, іншими словами, видалити всі правила в ланцюжку, ви можете використовувати -F або еквівалент – опція промивання і назву вибраного ланцюга. Скажімо, ви хочете видалити всі правила в ланцюжку INPUT; що робити Ну, це легко, виконайте таку команду:

sudo iptables -F INPUT

Промийте всі ланцюги

Щоб видалити всі ланцюжки або очистити їх, ви можете використовувати -F або еквівалентну опцію –flush окремо:

sudo iptables -F

Як скинути всі правила, видалити всі ланцюжки та прийняти всі?

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

Спершу потрібно встановити політику за замовчуванням для кожного з вбудованих ланцюжків на ПРИЙНЯТИ. Основна причина, з якої ми це робимо, полягає в тому, щоб переконатися, що ви не будете заблоковані на сервері за допомогою SSH:

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

Потім потрібно промити таблиці nat і mangle, промити всі ланцюжки (-F), і видаліть усі ланцюжки не за умовчанням (-X) ось так:

sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X

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

Як налаштувати iptables в Ubuntu?

Як і будь-яка базова поведінка брандмауера, правила iptables можна читати в порядку, зазначеному в кожному ланцюжку, що означає, що вам доведеться встановити правила в правильному порядку. Щойно ви додасте нові правила, вони будуть додані в кінець списку правил. Ви можете додати нові правила до певної позиції списку, вставивши їх за допомогою iptables -I <індекс> -команда. The <індекс> для номера замовлення, яке потрібно вставити в цю команду. Ви можете використовувати таку команду, щоб зрозуміти, який номер індексу ввести:

sudo iptables -L --line-numbers

Номер на початку кожного рядка правила показує позицію в ланцюжку. Щоб додати нове правило над певним існуючим правилом, ви повинні використовувати номер індексу цього існуючого правила. Наприклад, якщо ви бажаєте додати нове правило до початку ланцюжка, вам потрібно використати наступну команду з індексом 1:

sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

Чим iptables відрізняється від firewalld?

І iptables, і firewalld є практичними інструментами для керування брандмауерам у різних системах Linux, спеціально призначених для фільтрації пакетів (статичної фільтрації). Фільтрування пакетів – це стратегія брандмауера, яка дозволяє користувачам контролювати доступ до певної мережі за допомогою керування вхідними та вихідними пакетами інформації. Вони або дозволяють їм пройти, або забороняють їм на основі попередньо встановлених правил брандмауера щодо протоколів джерела та призначення, портів і IP-адрес. Ці правила забезпечують дуже ефективні механізми безпеки, роблячи фільтрацію інформаційних пакетів чудовим захистом від пристроїв, спрямованих за межі системної LAN (локальної мережі).

Зверніть увагу, що firewalld спочатку був представлений як програмне забезпечення для обробки iptables, щоб полегшити користувачеві навігацію. Маючи це знайомство з firewalld та iptables, давайте порівняємо їх більш детально.

iptables проти firewalld: конфігурація системи

Firewalld та iptables використовують різні конфігурації та параметри зберігання за замовчуванням. З iptables кожна зміна означає видалення всіх старих правил і читання нових, тому систему потрібно перезавантажити. Однак за допомогою брандмауера правила не створюються повторно; натомість внесені відмінності та модифікації застосовуються для зміни існуючих правил, щоб ви могли побачити, як вони набувають чинності під час виконання.

iptables проти firewalld: інтерфейс користувача

Firewalld використовує графічний інтерфейс користувача (GUI). Тим не менш, iptables використовує інтерфейс командного рядка (CLI), який може бути складним для деяких людей отримати доступ до правил брандмауера ядра Linux за допомогою iptables, що робить firewalld більш простим варіантом. Найкраще врахувати, що iptables мають коротший час відповіді, оскільки ви використовуєте лише короткі команди. Крім усього цього, обидва мають свої варіанти використання, тому виберіть той, з яким вам зручніше працювати.

Останні думки: iptables показує правила

Iptables — це дуже гнучка утиліта брандмауера, створена спеціально для операційних систем Linux. Не має значення, чи ви новачок у Linux, чи професійний системний адміністратор; є спосіб, яким правила iptables можуть бути вам корисні. Ця стаття в основному представляє основні команди для цієї утиліти брандмауера, включаючи правила показу iptables і правила видалення iptables, з метою короткого огляду можливостей Linux. Крім того, ви можете скористатися нашими Рішення хостингу Linux VPS щоб використати справжній потенціал цієї фантастичної операційної системи. У Cloudzy ми пропонуємо різноманітні плани Linux VPS на базі KVM, які підходять для різноманітних випадків використання, таких як веб-хостинг, розгортання веб-програми або навіть налаштування середовища для розробки, тестування та автоматизації коду.

FAQ

Як перерахувати всі правила Linux iptables за специфікацією?

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

sudo iptables -S

Як видалити правила iptables?

Щоб видалити певний ланцюжок, що призведе до видалення всіх правил у ланцюжку, ви повинні використовуйте опцію -F або –flush і назву ланцюга. Скажімо, ми хочемо видалити всі правила в ланцюжку OUTPUT, що робити? Що ж, вам потрібно виконати цю команду:

 sudo iptables -F ВИВІД

Як iptables працюють в Ubuntu?

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

Чи набувають чинності правила iptables негайно? чому

Так, правила iptables набувають чинності миттєво; оскільки ваш сценарій додається до ланцюжків INPUT і OUTPUT, а ваші правила додаються в кінці цих ланцюжків.

Поділіться

Більше з блогу

Продовжуйте читати.

Титульне зображення Cloudzy для посібника з використання MikroTik L2TP VPN, на якому показано ноутбук, який підключається до серверної стійки через цифровий тунель, що світиться синім і золотистим, із значками на щиті.
Безпека та мережа

Налаштування MikroTik L2TP VPN (з IPsec): RouterOS Guide (2026)

У цьому налаштуванні MikroTik L2TP VPN L2TP обробляє тунелювання, а IPsec обробляє шифрування та цілісність; їх поєднання забезпечує сумісність із нативним клієнтом без використання сторонніх розробників

Рекса СайрусРекса Сайрус 9 хвилин читання
У вікні терміналу відображається повідомлення SSH-попередження про зміну ідентифікації віддаленого хоста, із заголовком Fix Guide та брендом Cloudzy на темно-блакитному тлі.
Безпека та мережа

Попередження: ідентифікація віддаленого хоста змінилася та як це виправити

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

Рекса СайрусРекса Сайрус 10 хвилин читання
Ілюстрація посібника з усунення несправностей сервера DNS із попереджувальними символами та синім сервером на темному тлі для помилок розпізнавання імен Linux
Безпека та мережа

Тимчасовий збій у розпізнаванні імен: що це означає та як це виправити?

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

Рекса СайрусРекса Сайрус 12 хв читання

Готові до розгортання? Від $2,48/міс.

Незалежна хмара, з 2008 року. AMD EPYC, NVMe, 40 Гбіт/с. 14-денне повернення грошей.