Удалить iptables centos 8
Основная работа c межсетевым экраном Netfilter с помощью утилиты iptables состоит в удалении неверных или неиспользуемых правил и добавлении в цепочки новых правил. Их выполнение осуществляется последовательно.
В этой статье мы рассмотрим как удалить правило iptables с помощью различных команд, например, по его номеру или по действию, которое оно делает. Если вы не знакомы с командами просмотра правил Netfilter рекомендуем вам прочитать статью как просмотреть правила iptables.
Как удалить правило iptables
В рамках статьи нам придётся рассмотреть три варианта команды удаления:
sudo iptables [ -t таблица ] -D цепочка спецификации_правила
sudo iptables [ -t таблица ] -D цепочка номер_правила
sudo iptables [ -t таблица ] -F [ цепочка ]
Команды для протокола IPv6 будет абсолютно аналогичны:
sudo ip6tables [ -t таблица ] -D цепочка спецификации_правила
sudo ip6tables [ -t таблица ] -D цепочка номер_правила
sudo ip6tables [ -t таблица ] -F [ цепочка ]
Рассмотрим более подробно все варианты команд и их практическое применение. В данной статье для настройки firewall Netfilter используется операционная система Debian 10.2.
1. Как удалить правило по номеру
Чтобы удалить правило по номеру iptables будет использоваться такая команда:
sudo iptables [ -t таблица ] -D цепочка номер_правила
sudo iptables -t filter -D INPUT 2
Данная команда удалит из таблицы filter цепочки INPUT правила с номерами 2. Нумерация правил начинается с 1.
2. Как удалить правило по действию
Удалить правило iptables по выполняемому над пакетами действию можно с помощью следующей команды:
sudo iptables [ -t таблица ] -D цепочка спецификации_правила
В спецификациях правила необходимо указать IP адрес отправителя или другие параметры правила, однозначно его определяющие (порт, IP адрес назначения, протокол и др.) и выполняемое действие, например, -j ACCEPT.
sudo iptables -t filter -D INPUT -s 192.168.3.0/24 -j ACCEPT
Данная команда удалит из таблицы filter цепочки INPUT правило с заданным отправителем 192.168.3.0/24 и действием над пакетами DROP.
3. Как удалить все правила из таблицы
Следует заметить, что существует возможность удалить правила текущей таблицы из всех цепочек правил с помощью опции -F (--flush). По умолчанию текущей таблицей является таблица filter. Поэтому, чтобы удалить все правила таблицы по умолчанию надо использовать команду:
sudo iptables -F
Ещё можно указать таблицу из которой вы хотите выполнить удаление правила iptables:
sudo iptables -t таблица -F
sudo iptables -t nat -F
Данная команда удалит все правила из всех цепочек таблицы nat.
4. Как удалить все правила в цепочке
Для того, чтобы удаление правил iptables из конкретной цепочки в заданной таблице выполняется такой командой:
sudo iptables -t таблица -F цепочка_правил
sudo iptables -t nat -F PREROUTING
Данная команда удалит все правила из таблицы nat в цепочке PREROUTING.
Выводы
В данной статье мы рассмотрели различные варианты удаления команд или целых блоков команд из цепочек и таблиц межсетевого экрана Netfilter с помощью утилиты iptables. Мы научились удалять все команды из текущей таблицы, из конкретной цепочки правил в указанной таблице, из указанной таблицы, научились удалять команды под указанными номерами и удалять команды с указанным действием над пакетами данных.
Нет похожих записей
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
IPTables – это фаервол (или брандмауэр), играющий очень важную роль в сетевой безопасности большинства дистрибутивов Linux. Данное руководство сфокусировано на различных аспектах управления фаерволом: выводе списка правил, удалении правил и т.п.
Это руководство охватывает следующие вопросы:
- Вывод списка правил
- Очистка счетчиков пакетов и байтов
- Удаление правил
- Сброс цепочек (удаление всех правил цепи)
- Сброс всех цепочек и таблиц, удаление всех цепочек правил, разрешение всего трафика.
Требования
Для начала нужно настроить сервер и создать не-root пользователя с расширенными правами. Подробнее об этом можно прочитать в руководствах:
Вывод правил IPTables
Существует два способа просмотра активных правил фаервола IPTables:
- В виде таблицы;
- В виде списка спецификаций правил.
Оба метода предоставляют примерно одинаковую информацию в разных форматах.
Вывод правил по спецификации
Чтобы вывести список правил по спецификации, запустите:
sudo iptables -S
Example: Rule Specification Listing
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-N ICMP
-N TCP
-N UDP
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p icmp -m conntrack --ctstate NEW -j ICMP
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
-A TCP -p tcp -m tcp --dport 22 -j ACCEPT
Как видите, вывод содержит команды, которые использовались для создания правил (без команды iptables). Также эта команда выводит содержимое конфигурационных файлов, если вы когда-либо использовали такие команды:
iptables-persistent
iptables save
Вывод цепочки правил
Чтобы ограничить вывод до определённой цепочки (INPUT, OUTPUT, TCP и т.п.), нужно просто указать имя цепочки после опции –S. К примеру, чтобы получить все правила цепи TCP, нужно запустить:
sudo iptables -S TCP
Example: TCP Chain Rule Specification Listing
-N TCP
-A TCP -p tcp -m tcp --dport 22 -j ACCEPT
Вывод правил в виде таблиц
Такой формат вывода правил iptables позволяет сравнивать разные правила.
Чтобы вывести все активные правила в виде таблицы, запустите iptables с опцией –L:
sudo iptables -L
Это выведет все текущие правила брандмауэра, отсортированные по цепочкам.
Чтобы ограничить вывод до определённой цепочки, просто укажите имя нужной цепи после опции –L. Например:
sudo iptables -L INPUT
Example: Input Chain Rule Table Listing
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
DROP all -- anywhere anywhere ctstate INVALID
UDP udp -- anywhere anywhere ctstate NEW
TCP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN ctstate NEW
ICMP icmp -- anywhere anywhere ctstate NEW
REJECT udp -- anywhere anywhere reject-with icmp-port-unreachable
REJECT tcp -- anywhere anywhere reject-with tcp-reset
REJECT all -- anywhere anywhere reject-with icmp-proto-unreachable
Первая строка вывода показывает имя цепочки (в данном случае это INPUT), а затем её политику по умолчанию (DROP).Следующая строка содержит заголовки всех столбцов в таблице, а затем следуют правила цепочки. Рассмотрим подробнее каждый заголовок:
- target: определяет, что делать с пакетом, если он соответствует правилу. Например, пакет может быть принят, сброшен, внесен в журнал или отправлен другой цепочке правил.
- prot: задаёт протокол (например, TCP, UDP, ICMP и т.д.).
- opt: показывает параметры IP (редко используется).
- source: исходный IP-адрес или подсеть трафика (или anywhere).
- destination: целевой IP-адрес или подсеть трафика (или anywhere).
Последний столбец без названия определяет опции правила (опцией в данном случае называется любая часть правила, которая не относится ни к одному из предыдущих столбцов).
Вывод количества пакетов и байтов
При просмотре правил iptables можно также запрашивать количество пакетов и байтов, которые совпали с каждым конкретным правилом. Для этого просто используйте опции -L и -v.
К примеру, запросите цепочку INPUT:
sudo iptables -L INPUT -v
Example: Verbose Listing
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
284K 42M ACCEPT all -- any any anywhere anywhere ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- lo any anywhere anywhere
0 0 DROP all -- any any anywhere anywhere ctstate INVALID
396 63275 UDP udp -- any any anywhere anywhere ctstate NEW
17067 1005K TCP tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN ctstate NEW
2410 154K ICMP icmp -- any any anywhere anywhere ctstate NEW
396 63275 REJECT udp -- any any anywhere anywhere reject-with icmp-port-unreachable
2916 179K REJECT all -- any any anywhere anywhere reject-with icmp-proto-unreachable
0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ssh ctstate NEW,ESTABLISHED
Обратите внимание: в выводе добавилось два столбца по имени pkts и bytes.
Сброс счетчиков пакетов и байтов
Чтобы очистить счетчики пакетов и байтов, используйте опцию –Z. Эти счетчики сбрасываются после перезагрузки системы. Это позволяет узнать, получает ли сервер какой-либо трафик, совпадающий с правилами брандмауэра.
Итак, чтобы очистить счётчики для всех цепочек и правил, используйте опцию –Z без дополнительных параметров:
sudo iptables -Z
Чтобы очистить счётчики для всех правил определённой цепи, укажите имя цепочки после –Z. Например, чтобы сбросить счётчики цепи INPUT, нужно ввести:
sudo iptables -Z INPUT
Чтобы сбросить счётчики для конкретного правила, укажите имя цепочки и номер правила. Например, чтобы сбросить счётчики первого правила цепи INPUT, нужно использовать:
sudo iptables -Z INPUT 1
Удаление правил iptables
Удалять правила брандмауэра iptables тоже можно двумя способами.
Удаление правил по спецификации
Первый способов удаления правил Iptables – использование спецификации правила. Для этого нужно запустить команду iptables с опцией –D, после которой указывается спецификация правила. Чтобы удалить правила таким способом, можно обратиться за помощью к выводу уже знакомой команды:
sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP
Примечание: При этом нужно исключить опцию –А, которая задаёт положение правила во время создания.
Удаление правила по номеру и цепочке
sudo iptables -L --line-numbers
[secondary_output Example Output: Rules with Line Numbers] Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
2 ACCEPT all -- anywhere anywhere
3 DROP all -- anywhere anywhere ctstate INVALID
4 UDP udp -- anywhere anywhere ctstate NEW
5 TCP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN ctstate NEW
6 ICMP icmp -- anywhere anywhere ctstate NEW
7 REJECT udp -- anywhere anywhere reject-with icmp-port-unreachable
8 REJECT tcp -- anywhere anywhere reject-with tcp-reset
9 REJECT all -- anywhere anywhere reject-with icmp-proto-unreachable
10 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ctstate NEW,ESTABLISHED
.
Это добавит номер строки для каждого правила.
Зная имя цепи и номер строки, в которой находится искомое правило, используйте команду iptables –D, указав после опции эти данные. К примеру, чтобы удалить правило цепочки INPUT, которое сбрасывает недействительные пакеты, нужно использовать:
sudo iptables -D INPUT 3
Сброс цепочек правил
Брандмауэр Iptables предоставляет возможность удалить все правила цепочки – сбросить цепочку правил. Данный раздел рассматривает несколько способов сделать это.
Примечание: Будьте внимательны, не заблокируйте себя на собственном сервере, случайно сбросив цепочку правил с политикой drop или deny. Если же вы всё-таки заблокировали себя, используйте консоль, чтобы остановить доступ.
Сброс одной цепи
Например, чтобы удалить все правила цепочки INPUT, запустите:
sudo iptables -F INPUT
Сброс всех цепочек
sudo iptables -F
Сброс всех правил, удаление всех цепочек, разрешение всего трафика
Этот раздел покажет, как сбросить все правила, цепочки и таблицы брандмауэра и разрешить весь трафик.
Примечание: Это полностью отключит фаервол. Следуйте данному разделу только в том случае, если хотите заново настроить правила фаервола.
Сначала настройте стандартную политику всех цепочек; это должна быть политика ACCEPT. В основном это нужно для того, чтобы случайно не заблокировать себе доступ к собственному серверу.
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 непостоянны, их нужно сохранять вручную, чтобы они оставались действительными после перезапуска системы.
для вашего не знаю, так как его название вы не умудрились сообщить.
Потому что в debian нет такой команды.
Смотри в своем /etc/rc.d название и по названию:
> а нафига
посмотри тему про proftpd - это тоже моя.
Я уже просто не знаю что бы такое сотворить.
аот и хочу iptables вырубить хотя 21 open
в смысле тот который 2 темы назад
iptables -A INPUT -p tcp -dport 20 -j ACCEPT
iptables -A INPUT -p tcp -dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp -sport 20 -j ACCEPT
iptables -A OUTPUT -p tcp -sport 21 -j ACCEPT
iptables -A INPUT -p udp -dport 20 -j ACCEPT
iptables -A INPUT -p udp -dport 21 -j ACCEPT
iptables -A OUTPUT -p udp -sport 20 -j ACCEPT
iptables -A OUTPUT -p udp -sport 21 -j ACCEPT
P.S. Можно писать не так занудно, забыл -m multiport, что ли, и порты через запятую:
iptables -A INPUT -p udp -m multiport -dport 20,21 -j ACCEPT
В Debian iptables по умолчанию вообще выключен, и инит-скриптов для него нету, самому надо делать.
Не, так зачем мне его открывать? Он итак открыт. По крайней мере nmap говорит что 21 open
Сработало по примеру:
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
Но все равно: с моего же компа (там где сам сервер работает) заходит, с остальных - ни гу-гу (timeout, типа нету такого).
Iptables — это брандмауэр, который играет важную роль в обеспечении сетевой безопасности большинства систем Linux. Хотя многие руководства по работе с Iptables научат вас создавать правила брандмауэра для обеспечения безопасности вашего сервера, в этом руководстве мы будем уделять особое внимание другому аспекту управления брандмауэром: вывод списка и удаление правил.
В этом обучающем руководстве мы расскажем, как выполнять следующие задачи при работе с Iptables:
- Вывод списка правил
- Очистка счетчиков пакетов и байтов
- Удаление правил
- Сброс цепочек (удаление всех правил в цепочке)
- Сброс всех цепочек и таблиц, удаление всех цепочек и прием любого трафика
Примечание: при работе с брандмауэрами необходимо следить за тем, чтобы не заблокировать собственный доступ к серверу, запретив подключение по SSH (по умолчанию в этих целях используется порт 22). При потере доступа из-за настроек брандмауэра вам может потребоваться подключение к серверу через внеполосную консоль для восстановления доступа.
Предварительные требования
Это учебное руководство предполагает использование сервера Linux с установленной командой iptables и наличие у пользователя привилегий sudo .
Если вам нужна помощь с данной начальной настройкой, воспользуйтесь нашим руководством по начальной настройке сервера Ubuntu 20.04. Вы также можете воспользоваться руководствами для Debian и CentOS
Давайте сначала рассмотрим, как просмотреть существующий список правил. Существует два различных способа просмотра действующих правил Iptables: в форме таблицы или списка спецификаций правил. Оба метода предоставляют приблизительно одну и ту же информацию в разных форматах.
Перечисление правил по спецификации
Чтобы перечислить все действующие правила Iptables, запустите команду iptables с опцией -S :
Как вы видите, вывод выглядит примерно так, как и команды, которые использовались для их создания, но не имеют команды iptables в начале. Также вывод будет напоминать файлы конфигурации правил Iptables, если вы когда-либо использовали iptables-persistent или iptables save .
Перечисление списка правил конкретной цепочки
Если вы хотите ограничить вывод конкретной цепочкой ( INPUT , OUTPUT , TCP и т. д.), вы можете указать название цепочки сразу после опции -S . Например, для отображения всех спецификаций правил в цепочке TCP необходимо запустить следующую команду:
Теперь давайте рассмотрим альтернативный способ просмотра действующих правил Iptables в форме таблицы правил.
Перечисление правил в виде таблицы
Перечисление правил Iptables в виде таблицы может быть полезным при сопоставлении разных правил друг с другом.
Чтобы вывести все действующие правила Iptables в виде таблицы, запустите команду iptables с опцией -L :
Эта команда будет выводить все действующие правила, отсортированные по цепочкам.
Если вы хотите ограничить вывод конкретной цепочкой ( INPUT , OUTPUT , TCP и т. д.), вы можете указать название цепочки сразу после опции -L .
Давайте рассмотрим пример цепочки INPUT:
Первая строка вывода указывает имя цепочки (в данном случае INPUT ), за которым следует используемая по умолчанию политика ( DROP ). Следующая строка состоит из заголовков каждого столбца таблицы, после чего идут правила цепочки. Давайте посмотрим, что означает каждый заголовок:
Последняя колонка, которая не имеет заголовка, указывает опции правила. Другими словами, это может быть любая часть правила, которая не указана предыдущими столбцами. Это может быть любая информация, начиная с портов назначения и исходных портов и заканчивая состоянием подключения пакета.
Отображение счетчиков пакетов и общего размера
При выводе списка правил Iptables также можно отобразить количество пакетов и общий размер пакетов (в байтах), которые отвечают каждому конкретному правилу. Это часто может быть полезно, когда вы пытаетесь получить приблизительное представление о том, какие правила используются для различных пакетов. Чтобы сделать это, воспользуйтесь опциями -L и -v в одной команде.
Например, давайте снова рассмотрим цепочку INPUT с опцией -v :
Обратите внимание, что список сейчас содержит два дополнительных столбца, pkts и bytes .
Теперь, когда вы знаете, как выводить список действующих правил брандмауэра различными способами, давайте рассмотрим возможность сброса счетчиков пакетов и байтов.
Сброс счетчиков пакетов и общего размера
Если вы хотите очистить или обнулить счетчики пакетов и байтов для ваших правил, воспользуйтесь опцией -Z . Счетчики также сбрасываются при перезагрузке. Это полезно, если вы хотите узнать, принимает ли ваш сервер новый трафик, отвечающий существующим правилам.
Чтобы очистить счетчики для всех цепочек и правил, используйте опцию -Z отдельно:
Чтобы очистить счетчики для всех правил конкретной цепочки, используйте опцию -Z и укажите название цепочки. Например, для очистки счетчиков цепочки INPUT воспользуйтесь следующей командой:
Если вы хотите очистить счетчики для конкретного правила, укажите имя цепочки и номер правила. Например, для обнуления счетчиков первого правила в цепочке INPUT запустите следующую команду:
Теперь, когда вы знаете, как сбросить счетчики пакетов и байтов Iptables, давайте рассмотрим два метода, которые можно использовать для удаления правил.
Удаление правил по спецификации
Одним из способов удаления правил Iptables является удаление правила по спецификации. Для этого вам нужно запустить команду iptables с опцией -D , указав далее спецификацию правила. Если вы хотите удалить правила с помощью этого метода, вы можете использовать команду для вывода списка правил iptables -S в качестве источника полезной информации.
Например, если вы хотите удалить правило, которое отклоняет недействительные входящие пакеты ( -A INPUT -m conntrack --ctstate INVALID -j DROP ), запустите следующую команду:
Обратите внимание, что опция -A , используемая для обозначения положения правила в момент его создания, здесь не применяется.
Удаление правил по цепочке и номеру
Другой способ удаления правил Iptables состоит в использовании цепочки и номера строки. Чтобы определить номер строки правила, выведите список правил в формате таблицы и добавьте опцию --line-numbers :
Эта команда добавляет номер строки для каждой строки таблицы правил в столбце с заголовком num .
Когда вы знаете, какое правило нужно удалить, запомните цепочку и номер строки правила. Затем запустите команду iptables -D , указав далее цепочку и номер правила.
Например, если мы хотим удалить правило для входящего трафика, которое отклоняет недействительные пакеты, мы видим, что это правило с номером 3 в цепочке INPUT . Поэтому нам нужно запустить следующую команду:
Теперь, когда вы знаете, как удалить отдельные правила брандмауэра, давайте рассмотрим возможность сброса цепочек правил.
Сброс цепочек
Iptables предлагает возможность удаления всех правил в цепочке или сброса цепочки. В данном разделе мы опишем разнообразные способы выполнения этой задачи.
Примечание: будьте осторожны, чтобы не заблокировать собственный доступ к серверу через SSH в результате сброса цепочки с используемой по умолчанию политикой drop или deny . В этом случае вам может потребоваться подключение через консоль для восстановления доступа.
Сброс отдельной цепочки
Чтобы сбросить конкретную цепочку с последующим удалением всех правил в данной цепи, вы можете использовать опцию -F или ее эквивалент --flush , добавив в команду имя цепочки, которую вы хотите сбросить.
Например, для удаления всех правил в цепочке INPUT запустите следующую команду:
Сброс всех цепочек
Чтобы сбросить все цепочки с последующим удалением всех правил брандмауэра, вы можете использовать опцию -F или ее эквивалент --flush без указания конкретной цепочки:
Сброс всех правил, удаление всех цепочек и разрешение любого трафика
Из этого раздела вы узнаете, как выполнить сброс всех правил брандмауэра, таблиц и цепочек, чтобы разрешить прием любого сетевого трафика.
Примечание: результатом этих действий станет полное отключение вашего брандмауэра. Вам следует выполнять описанные в данном разделе действия только в том случае, если вы хотите начать настройку вашего брандмауэра с нуля.
Сначала задайте ACCEPT в качестве используемой по умолчанию политики для каждой встроенной цепочки. Главная причина этого шага состоит в том, чтобы гарантировать, что вы не заблокируете собственный доступ к вашему серверу через SSH:
Затем выполните сброс таблиц nat и mangle , сбросьте все цепочки ( -F ) и удалите все цепочки, не используемые по умолчанию ( -X ):
Теперь ваш брандмауэр будет принимать любой сетевой трафик. Если вы сейчас попробуете вывести список ваших правил, то увидите, что он пуст, и остались только три используемые по умолчанию цепочки ( INPUT , FORWARD и OUTPUT ).
Заключение
После изучения данного руководства вы должны получить представление о том, как вывести список ваших правил брандмауэра iptables и удалить определенные правила.
Не забывайте, что любые изменения, вносимые с помощью команды iptables , если их не сохранить, исчезнут после перезагрузки сервера. Данная информация описана в разделе «Сохранение правил» руководства «Распространенные правила и команды брандмауэра».
Читайте также: