Iptables удалить nat правило: Как удалить правило iptables | Losst

Содержание

Как удалить правило iptables | Losst

Основная работа 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. Мы научились удалять все команды из текущей таблицы, из конкретной цепочки правил в указанной таблице, из указанной таблицы, научились удалять команды под указанными номерами и удалять команды с указанным действием над пакетами данных.

iptables очистить все правила или удалить одно правило

Все существующие правила iptables можно удалить выполнив в консоли команду iptables с флагом -F (flush)

iptables -F

 

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

iptables -S

 

Если интерес вызывают правила для определенной цепочки нужно использовать ключ -L и название цепочки

iptables -L INPUT

 

Цепочки iptables

 

 

iptables-save сохраняет все изменения в правилах и выводит их в терминал

iptables-save

 

Последняя команда применяем настройки и, потому, дает самую актуальную информацию. Выполнять ее также нужно каждый раз после корректировки правил.

 

Также можно удалить одно правило — например, по номеру строки

 

Так выводится пронумерованный список правил:

iptables -L —line-numbers

iptables -L —line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    f2b-sshd   tcp  —  anywhere             anywhere             multiport dports ssh
2    ACCEPT     tcp  —  anywhere             anywhere             tcp dpt:domain
3    ACCEPT     udp  —  anywhere             anywhere             udp dpt:domain


4    f2b-sshd   tcp  —  anywhere             anywhere             multiport dports ssh
5    ispmgr_deny_ip  all  —  anywhere             anywhere            
6    ispmgr_allow_ip  all  —  anywhere             anywhere            
7    ispmgr_allow_sub  all  —  anywhere             anywhere            
8    ispmgr_deny_sub  all  —  anywhere             anywhere            
9    ACCEPT     all  —  anywhere             anywhere             ctstate RELATED,ESTABLISHED
10   ACCEPT     tcp  —  anywhere             anywhere             ctstate NEW multiport dports heathview:35999
11   ACCEPT     tcp  —  anywhere             anywhere             ctstate NEW multiport dports ftp-data:ssh,smtp,http,https,pop3,imap,urd,submission,imaps,pop3s,domain,mysql,postgres,44477

12   ACCEPT     tcp  —  anywhere             anywhere             ctstate NEW multiport dports vlsi-lm
13   ACCEPT     udp  —  anywhere             anywhere             ctstate NEW multiport dports domain
14   ACCEPT     all  —  anywhere             anywhere             state RELATED,ESTABLISHED
15   ACCEPT     icmp —  anywhere             anywhere            
16   ACCEPT     all  —  anywhere             anywhere            
17   ACCEPT     tcp  —  anywhere             anywhere             state NEW tcp dpt:ssh

Затем одно из них удаляется с указанием таблицы, и цепочки (iptables -t TABLE -D INPUT номер_строки)

Сейчас удалим девятое правило из списка

iptables -t nat -D INPUT 9

 

Также можно удалять правила применяя ключ -D

Команда приведенная ниже разрешит обращения по перечисленным портам

iptables -A INPUT -p tcp -m conntrack —ctstate NEW -m multiport —dports 20:22,25,80,443 -j ACCEPT

 

С ключом -D правило будет удалено

iptables -D INPUT -p tcp -m conntrack —ctstate NEW -m multiport —dports 20:22,25,80,443 -j ACCEPT

Каждый раз необходимо выполнять iptables-save

 

Если нужно отредактировать несколько правил или их довольно много проще сначала сохранить все правила в файл, отредактировать его, затем загрузить их вновь

iptables-save > /tmp/iptabeles.txt

 

iptables-restore < /tmp/iptabeles.txt

Также читайте про сохранение правил iptables после перезагрузки

Удаляем правила в iptables — по номеру, спецификации

Часто бывает, при создании нового правила в сетевом экране Линукс блокируется вся локальная сеть или просто перестает работать интернет. В этом случае крайне необходимо удалить ошибочное правило.

Утилита командной строки iptables служит для конфигурирования брандмауэра Netfilter (фаервол в устройствах с операционной системой Linux).  Если откинуть все лишнее, то данная утилита состоит из 3 частей: таблица, цепочки и правила. Iptables играет чуть ли не главенствующую роль в вопросах сетевой безопасности программного обеспечения Linux.

Удаление

Для начала посмотрим какие записи в iptables работают.

# iptables -S

Обратите особое внимание на следующее пояснение: символ «#» в приведенном примере означает, что команда должна быть выполнена непосредственно от имени root или через команду sudo (так принято называть суперпользователя из «мира» Linux). В ином случае реализовать задуманную идею на практике не получится. Обязательно соблюдайте это правило для корректности предпринятых мер.

Очистим все записи фаервола для протокола tcp/ip 4 версии. Для этого будем использовать аргумент «-F».

# iptables -F

Тоже самое будет для протокола 6 версии.

# ip6tables -F

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

# iptables -t nat -F

Все правила, которые наличествуют в цепочках таблицы «nat» будут удалены.

Хотите удалить правила из определенной цепи в указанной таблице? Найдите наименование цепочки и пропишите его в команде. Давайте рассмотрим на конкретном примере:

# iptables -t nat -F PREROUTING

По номеру в цепочке

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

Прежде всего необходимо узнать номера цепочек. Для этого будем использовать опцию «line-numbers».

# iptables -L --line-numbers

Узнаем номера для nat.

# iptables -L -t nat --line-numbers

Для удаления необходимо указать аргумент «-D» название цепочки и номер правила.

Для таблицы INPUT.

# iptables -D INPUT номер строки

FORWARD.

# iptables -D FORWARD номер строки

OUTPUT.

# iptables -D OUTPUT номер строки

Чтобы очистить запись из nat таблице, необходимы добавить опцию «-t nat».

Для примера очистим запись из таблицы nat в цепочке PREROUTING.

# iptables -t nat -D PREROUTING номер строки

По спецификации

Запустите команду iptables с приставкой -D. Эта опция позволит пользователю осуществить задуманное. После приставки нужно указать спецификацию правила. Стандартная команда «iptables -S» позволит удалить правила упомянутым способом.

А теперь давайте рассмотрим на конкретном примере. Предположим, у вас есть потребность убрать правило, которое отвечает за сброс некорректных входящих пакетов. Для этого необходимо ввести следующую команду:

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

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

Заключение

После прочтения данной статьи вы знаете, за что отвечает утилита iptables, и какие существуют варианты удаления её правил. Для лучшего закрепления материала еще раз напомним пройденное другими словами: утилита iptables – это один из главных инструментов системного администратора. Она применяется для настройки правил фильтрации пакетов, которые установлены на устройстве с операционной системой Linux.

На наглядных примерах мы разобрали несложный процесс удаления правил всеми доступными методами. Внимательно следуя данному руководству, вы сумеете внести все необходимые правки в работу системы вашего устройства. Это не составит особого труда и не займет у вас много времени.

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

iptables удалить правило (по содержанию или номеру)

Из iptables удалить правило можно несколькими способами. Основной из них — использование ключа -D (delete). Он указывается сразу после команды iptables.

Предварительно правила нужно вывести в консоль.

 

 

Вывести правила в виде нумерованного списка можно следующим образом:

iptables -L —line-numbers

Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 fail2ban-ssh tcp — anywhere anywhere multiport dports ssh
2 ACCEPT tcp — anywhere anywhere tcp dpt:domain
3 ACCEPT udp — anywhere anywhere udp dpt:domain
4 ACCEPT tcp — anywhere anywhere tcp dpt:bootps
5 ACCEPT udp — anywhere anywhere udp dpt:bootps
6 ACCEPT all — anywhere anywhere
7 ACCEPT tcp — anywhere anywhere tcp dpt:ssh

 

Политики просматриваются командой iptables -S

 

Удалить политику по умолчанию, предписывающую отбрасывать все входящие пакеты.

iptables -D INPUT -j DROP

 

 

Удалить правило iptables по номеру

Список правил, приведенный выше неполный. Они разделяются на цепочки Chain INPUT, Chain FORWARD и Chain OUTPUT.

 

Из любой цепочки правило можно удалить по номеру

iptables -D INPUT 4

Правило ACCEPT tcp — anywhere anywhere tcp dpt:bootps перестанет существовать. Для других цепочек синтаксис не отличается.

 

Также можно убрать все правила iptables.

 

 

Для работы с правилами могут применяться различные утилиты более высокого уровня, чем непосредственно iptables — например, ufw (Ubuntu Firewall) или firewalld (для ОС CentOS) .

 

Тем не менее, на практике чаще приходится работать с самими правилами, а не с ПО, использующимся для более простого администрирования. Читайте про настройку firewall для веб-сервера.

Как удалить правило iptables | DevsDay.ru

Основная работа 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. Мы научились удалять все команды из текущей таблицы, из конкретной цепочки правил в указанной таблице, из указанной таблицы, научились удалять команды под указанными номерами и удалять команды с указанным действием над пакетами данных.

Как узнать и удалить правила брандмауэра в IPTables

Мы покажем вам, как узнать и удалить правила брандмауэра в Iptables. Iptables это утилита командной строки, которая позволяет системным администраторам настраивать правила фильтрации пакетов, установленный на Linux. Iptables требует повышенных привилегий для работы и должен быть выполнен root пользователем, в противном случае он не сможет функционировать.

Как узнать правила брандмауэра в Iptables

Iptables позволяет узнать все правила, которые уже добавлены в набор правила фильтрации пакетов. Для того, чтобы иметь возможность проверить это, вы должны иметь SSH доступ к серверу. Подключитесь к Linux VPS с помощью SSH и выполните следующую команду:

sudo iptables -nvL

 

Для выполнения команды выше, ваш пользователь должен иметь привилегии sudo. В противном случае, вам нужно добавить пользователя sudo на ваш Linux VPS или использовать суперпользователя.

Если не существует никаких добавленных правил к фильтрации пакетов, вывод должен быть аналогичен приведенному ниже:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

 

Поскольку NAT (Network Address Translation) также можно настроить с помощью IPTables, вы можете использовать IPTables в списоке правил NAT:

sudo iptables -t nat -n -L -v

 

Вывод будет аналогичен приведенному ниже, если нет добавленных правил:

Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

 

Как удалить правила брандмауэра в IPTables

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

iptables [-t table] -D chain rulenum

 

Например, если у вас есть правило брандмауэра, чтобы блокировать все подключения от 111.111.111.111 к серверу на порт 22, и вы хотите удалить это правило, вы можете использовать следующую команду:

sudo iptables -D INPUT -s 111.111.111.111 -p tcp --dport 22 -j DROP

 

Теперь, когда вы удалили правило брандмауэра Iptables вам нужно сохранить изменения, чтобы сделать их постоянными.

В случае, если вы используете Ubuntu VPS, необходимо установить дополнительный пакет для этой цели. Для того, чтобы установить необходимый пакет используйте следующую команду:

sudo apt-get install iptables-persistent

 

На Ubutnu 14.04 вы можете сохранить и перезагрузить правила брандмауэра, используя команды ниже:

sudo /etc/init.d/iptables-persistent save
sudo /etc/init.d/iptables-persistent reload

 

В Ubuntu 16.04 использовать следующие команды:

sudo netfilter-persistent save
sudo netfilter-persistent reload

 

Если вы используете CentOS VPS вы можете сохранить изменения с помощью команды ниже:

service iptables save

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как удалить определенные правила из iptables?

Я размещаю специальные службы HTTP и HTTPS на портах 8006 и 8007 соответственно. Я использую iptables для «активации» сервера; т. е. для маршрутизации входящих портов HTTP и HTTPS:

iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8006 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8007 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8006 
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8007  
iptables -A OUTPUT -t nat -d 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to-ports 8006
iptables -A OUTPUT -t nat -d 127.0.0.1 -p tcp --dport 443 -j REDIRECT --to-ports 8007 

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

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

но это также удалит другие правила iptables, которые нежелательны.

266

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Theme: Overlay by Kaira Extra Text
Cape Town, South Africa