Скидка 50% на все тарифы, ограниченное время. От $2.48/mo
14 мин осталось
Безопасность и сети

Просмотр и удаление правил Iptables в Linux — шпаргалка для начинающих

Лили Карнелл By Лили Карнелл 14 мин. чтения Обновлено 18 сентября 2023 г.
Руководство по просмотру и удалению правил Iptables

Несанкционированный доступ и взлом серверов — серьёзные угрозы, поэтому межсетевой экран должен быть неотъемлемой частью вашей сетевой безопасности. Умение работать с правилами Iptables — один из ключевых навыков для снижения этих рисков на системах Linux. В этом руководстве вы познакомитесь с основными концепциями межсетевого экрана: как просматривать правила iptables и удалять их в Ubuntu, а также научитесь выполнять простые команды для решения этих задач. Прежде чем переходить к просмотру и удалению правил iptables, разберёмся, что они собой представляют и зачем используются.

Что такое Iptables?

iptables — утилита межсетевого экрана командной строки, которая разрешает или блокирует трафик через цепочки политик. Когда система получает входящее соединение, iptables ищет в списке подходящее правило — это надёжный инструмент для обеспечения сетевой безопасности. Если подходящее правило не найдено, применяется действие по умолчанию.

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

sudo apt-get install iptables

Зачем использовать Iptables?

Как межсетевой экран командной строки для Linux, iptables позволяет системным администраторам управлять входящим и исходящим трафиком с помощью настраиваемых табличных правил. iptables использует набор таблиц с цепочками, содержащими встроенные или пользовательские правила.

Как упоминалось выше, iptables играет ключевую роль в обеспечении сетевой безопасности большинства систем Linux. Оставшаяся часть статьи посвящена описанию работы с правилами iptables: как их просматривать и удалять.

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

Полное руководство по Iptables в Ubuntu

Прежде чем переходить к просмотру правил iptables, убедитесь, что на вашем сервере Linux установлена команда iptables и у вас есть права sudo. При работе с межсетевыми экранами следите за тем, чтобы не заблокировать себе доступ к серверу, случайно закрыв трафик SSH (порт 22 по умолчанию). Если это всё же произошло, для восстановления доступа может потребоваться подключение через консоль вне диапазона.

Читайте также: Как изменить порт SSH в Linux. Пошаговое руководство по настройке порта SSH

Просмотр правил по спецификации

Просмотреть активные правила iptables можно в табличном виде или как список спецификаций правил. Оба метода возвращают одинаковую информацию в разных форматах. Чтобы вывести все правила активного iptables в виде спецификаций, выполните команду iptables с флагом параметр -S:

sudo iptables -S

После выполнения этой команды вы увидите вывод следующего вида:

вывод команды отображения списка правил
вывод команды отображения списка правил

Вывод конкретной цепочки

Если вы хотите ограничить вывод iptables определённой цепочкой, например INPUT, OUTPUT или TCP, можно указать имя цепочки сразу после параметра -S. Например, следующая команда выводит правила цепочки TCP:

sudo iptables -S TCP

вывод списка правил цепочки TCP
вывод списка правил цепочки TCP

Как уже было упомянуто, есть ещё один способ просмотреть правила iptables: в виде таблицы. Разберём этот подход.

Просмотр правил в виде таблиц

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

sudo iptables -L

Команда отобразит все текущие правила, сгруппированные по цепочкам. Чтобы ограничить вывод конкретной цепочкой, например INPUT, OUTPUT, TCP и т. д., укажите её имя сразу после параметра -L. Пример ограничения вывода цепочкой INPUT:

sudo iptables -L INPUT

вывод правил iptables, ограниченный цепочкой INPUT
вывод правил iptables, ограниченный цепочкой INPUT

Первая строка вывода содержит имя цепочки (в данном случае INPUT) и её политику по умолчанию (DROP). Следующая строка содержит заголовки столбцов таблицы и правила цепочки. Разберём каждый из них:

  • Target: если пакет соответствует правилу, Target определяет, что с ним делать. Пакет можно принять, отбросить, записать в лог или передать в другую цепочку для проверки по дополнительным правилам.
  • prot: протокол (например, TCP, udp, ICMP или all)
  • opt: параметры IP (используются редко)
  • source: адрес IP или подсеть источника трафика 
  • destination: адрес IP или подсеть назначения трафика

Столбец без заголовка содержит дополнительные параметры правила, то есть всё, что не вошло в предыдущие столбцы. Это может быть что угодно: порты источника и назначения, состояние соединения пакета и многое другое.

Читайте также: Установка OpenVPN на VPS – Настройка клиента OpenVPN 🔑

Как посмотреть счётчики пакетов и суммарный объём?

При просмотре правил iptables можно вывести количество пакетов и их суммарный объём в байтах для каждого конкретного правила. Это помогает понять, какие правила реально срабатывают. Для этого используйте флаг -L и параметры -v совместно это.

Вот пример использования цепочки INPUT с параметром -v:

sudo iptables -L INPUT -v

Отображение счётчиков пакетов и суммарного объёма
вывод команды отображения счётчиков пакетов и суммарного объёма

Обратите внимание: в списке появились два новых столбца — pkts и bytes. Мы рассмотрели различные способы вывода всех правил iptables, и теперь пора разобраться, как сбросить счётчики пакетов и суммарный объём.

Как сбросить счётчики пакетов и суммарный объём?

Чтобы обнулить счётчики пакетов и байт для своих правил, используйте параметр -Z. Счётчики также сбрасываются при перезагрузке — это удобно, если нужно проверить, получает ли сервер новый трафик, соответствующий существующим правилам.

Сбросить счётчики для всех цепочек и правил можно командой с параметром -Z без дополнительных аргументов:

sudo iptables -Z

Чтобы обнулить счётчики для всех правил в конкретной цепочке, укажите параметр -Z и имя цепочки. Например, следующая команда сбрасывает счётчики цепочки INPUT:

sudo iptables -Z INPUT

Чтобы сбросить счётчики для конкретного правила, укажите имя цепочки и номер правила. Например, следующая команда обнуляет счётчики для первого правила в цепочке INPUT:

sudo iptables -Z INPUT 1

Помимо команд вывода всех правил 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 — указать цепочку и номер строки. Чтобы узнать номер нужного правила, выведите правила в табличном формате, добавив параметр –line-numbers:

sudo iptables -L --line-numbers

Удаление правил по цепочке и номеру
вывод команды удаления правил по цепочке и номеру

После выполнения этой команды каждое правило iptables получит порядковый номер, отображаемый в столбце num.

Когда вы знаете, какое правило нужно удалить, запомните его цепочку и номер строки. Используйте команду iptables -D с указанием цепочки и номера правила. Например, если вы хотите удалить правило INPUT, которое отбрасывает некорректные пакеты, — это правило 3 цепочки INPUT. Выполните команду:

sudo iptables -D INPUT 3

Как очистить цепочки?

Существует способ удалить все правила Iptables в цепочке — это называется очисткой цепочки. Ниже мы рассмотрим различные способы это сделать. Прежде чем продолжить, убедитесь, что при очистке цепочки с политикой по умолчанию drop или deny вы не потеряете доступ к серверу через SSH. Если это произойдёт, восстановить доступ можно будет только через консоль.

Очистка одной цепочки

Чтобы очистить конкретную цепочку, то есть удалить все её правила, используйте -F или эквивалентный вариант –flush с именем нужной цепочки. Например, чтобы удалить все правила цепочки INPUT, выполните следующую команду:

sudo iptables -F INPUT

Очистка всех цепочек

Чтобы очистить все цепочки, используйте параметр -F или эквивалентный ему –flush без дополнительных аргументов:

sudo iptables -F

Как сбросить все правила, удалить все цепочки и разрешить весь трафик?

Далее мы покажем, как сбросить все правила, таблицы и цепочки файрвола и разрешить весь сетевой трафик. Обратите внимание: этот процесс полностью отключает файрвол. Следуйте этому разделу только в том случае, если хотите начать настройку файрвола с нуля.

Сначала установите политику по умолчанию ACCEPT для каждой встроенной цепочки. Это нужно для того, чтобы не потерять доступ к серверу через 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 применяются в порядке их следования в цепочке, поэтому важно задавать правила в правильной последовательности. Новые правила, добавленные через append, попадают в конец списка. Чтобы вставить правило на конкретную позицию, используйте iptables -I <index> -command. Параметр <index> — это порядковый номер позиции, на которую нужно вставить правило. Чтобы узнать нужный номер, выполните следующую команду:

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, упрощающая работу с ним. Разобравшись с базовыми понятиями, сравним эти два инструмента подробнее.

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

Firewalld и iptables по-разному хранят конфигурацию и применяют изменения. В iptables каждое изменение требует сброса всех существующих правил и загрузки новых, то есть фактически перезапуска системы. Firewalld работает иначе: правила не пересоздаются с нуля. Вместо этого применяются только внесённые изменения, которые вступают в силу немедленно, без перезагрузки.

iptables vs firewalld: пользовательский интерфейс

Firewalld предоставляет графический интерфейс (GUI), тогда как iptables работает через командную строку (CLI). Для некоторых пользователей управление правилами брандмауэра ядра Linux через iptables может показаться сложным, поэтому firewalld нередко оказывается удобнее. При этом стоит учитывать, что iptables быстрее реагирует на команды: синтаксис у него лаконичный. В итоге у каждого инструмента есть свои сценарии применения, так что выбирайте тот, с которым вам комфортнее работать.

Итоги: просмотр правил iptables

Iptables — гибкая утилита межсетевого экрана, созданная специально для Linux. Неважно, делаете ли вы первые шаги в Linux или уже работаете системным администратором: правила iptables пригодятся в любом случае. В этой статье мы разобрали основные команды утилиты, включая просмотр и удаление правил iptables, и кратко рассмотрели возможности Linux. Кроме того, вы можете воспользоваться нашими хостинг-решениями Linux VPS чтобы раскрыть весь потенциал этой операционной системы. В Cloudzy мы предлагаем различные планы Linux VPS на базе KVM, подходящие для самых разных задач: веб-хостинг, развёртывание веб-приложений, а также создание среды для разработки, тестирования и автоматизации кода.

Часто задаваемые вопросы

Как вывести все правила iptables Linux по спецификации?

Чтобы вывести список всех активных правил iptables по их спецификации или назначению, используйте команду iptables с флагом -S. Обратите внимание на использование sudo ключевого слова в данном случае:

sudo iptables -S

Как удалить правила iptables?

Чтобы удалить конкретную цепочку вместе со всеми её правилами, необходимо использовать параметр -F или --flush и указать имя цепочки. Допустим, нужно удалить все правила из цепочки OUTPUT. Для этого выполните команду:

 sudo iptables -F OUTPUT

Как работает iptables в Ubuntu?

Брандмауэр iptables сравнивает сетевой трафик с набором правил. Каждое правило задаёт характеристики пакета для сопоставления и действие, которое выполняется при совпадении. Параметров для определения того, какие пакеты подпадают под конкретное правило, достаточно много.

Вступают ли правила iptables в силу немедленно? Почему?

Да, правила iptables вступают в силу немедленно. Поскольку ваш скрипт добавляет записи в цепочки INPUT и OUTPUT, новые правила помещаются в конец этих цепочек.

Поделиться

Другие статьи блога

Читать дальше.

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

Настройка MikroTik L2TP VPN (с IPsec): руководство по RouterOS (2026)

В этой конфигурации MikroTik L2TP VPN протокол L2TP отвечает за туннелирование, а IPsec — за шифрование и целостность данных. Их совместное использование даёт совместимость с нативными клиентами без сторонних реш

Рекса СайрусРекса Сайрус 9 мин. чтения
Окно терминала с предупреждением SSH об изменении идентификатора удалённого хоста, заголовок руководства по исправлению ошибки и брендинг Cloudzy на тёмно-бирюзовом фоне.
Безопасность и сети

Предупреждение: идентификатор удалённого хоста изменился. Как это исправить

SSH — защищённый сетевой протокол, который создаёт зашифрованный туннель между системами. Он остаётся популярным среди разработчиков, которым нужен удалённый доступ к машинам без использования граф

Рекса СайрусРекса Сайрус 10 мин чтения
Иллюстрация к руководству по устранению неполадок сервера DNS: предупредительные символы и синий сервер на тёмном фоне, тема — ошибки разрешения имён Linux
Безопасность и сети

Временная ошибка разрешения имён: что это значит и как её исправить?

При работе с Linux вы можете столкнуться с ошибкой временного сбоя разрешения имён при попытке открыть сайт, обновить пакеты или выполнить задачи, требующие подключения к интернету

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

Готовы к деплою? От $2.48/мес.

Независимый облачный провайдер с 2008 года. AMD EPYC, NVMe, 40 Gbps. Возврат средств в течение 14 дней.