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

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

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

Несанкционированный доступ и взлом серверов представляют собой серьезную угрозу, поэтому вам следует внедрить брандмауэр как часть вашей системы сетевой безопасности. Знание того, как работать с правилами Iptables, является одним из основных средств снижения этих рисков в ваших системах Linux. Это руководство поможет вам ознакомиться с основными понятиями брандмауэра, такими как правила отображения iptables и правила удаления iptables в Убунту, помогая вам выполнять простые команды для достижения этой цели. Прежде чем обсуждать, как составить список правил 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 show all Rules, и теперь пришло время узнать, как сбросить количество пакетов и совокупный размер.

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

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

Очистить счетчики для всех цепочек и правил можно с помощью команды -Z вариант само собой:

sudo iptables -Z

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

sudo iptables -Z INPUT

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

sudo iptables -Z INPUT 1

Помимо знания того, что iptables отображает все команды правил и способы сброса счетчиков пакетов и байтов 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 при очистке цепочки с политикой удаления или запрета по умолчанию. Т.к. если да, возможно, вам придется подключиться к нему через консоль, чтобы исправить доступ.

Промывка одной цепи

Чтобы очистить конкретную цепочку или, другими словами, удалить все правила в цепочке, вы можете использовать команду -F или эквивалент – опция промывки и название выбранной цепочки. Допустим, вы хотите удалить все правила в цепочке 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, очистить все цепочки (-Ф)и удалите все цепочки не по умолчанию (-Х) так:

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 каждое изменение означает удаление всех старых правил и чтение новых, поэтому системе приходится перезагружаться. Однако при использовании firewalld правила не создаются заново; вместо этого внесенные различия и модификации применяются для изменения существующих правил, чтобы вы могли видеть, как они вступают в силу во время выполнения.

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

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

Заключительные мысли: iptables показывает правила

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

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

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

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

судо 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 (2026 г.)

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

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

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

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

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

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

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

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

Готовы к развертыванию? От $2,48 в месяц.

Независимое облако, с 2008 г. AMD EPYC, NVMe, 40 Гбит/с. 14-дневный возврат денег.