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

Настройка iptables для чайников

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

Каждый компьютер, подключенный к сети, находится в потенциальной опасности.

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

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

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

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

Что такое Iptables?

Подсистема iptables и Netfilter уже достаточно давно встроена в ядро Linux.

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

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

Виды пакетов

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

Соответственно в фильтре iptables все пакеты делятся на три аналогичные цепочки:

  • Input – обрабатывает входящие пакеты и подключения. Например, если какой-либо внешний пользователь пытается подключиться к вашему компьютеру по ssh или любой веб-сайт отправит вам свой контент по запросу браузера. Все эти пакеты попадут в эту цепочку;
  • forward – эта цепочка применяется для проходящих соединений. Сюда попадают пакеты, которые отправлены на ваш компьютер, но не предназначены ему, они просто пересылаются по сети к своей цели. Как я уже говорил, такое наблюдается на маршрутизаторах или, например, если ваш компьютер раздает wifi;
  • output – эта цепочка используется для исходящих пакетов и соединений. Сюда попадают пакеты, которые были созданы при попытке выполнить ping losst.ru или когда вы запускаете браузер и пытаетесь открыть любой сайт.

Но если вы думаете что можно просто полностью закрыть цепочку Input для увеличения безопасности, то вы очень сильно ошибаетесь. При работе сети используются обе цепочки input и output.

Например, вы пытаетесь выполнить ping, данные отправляются через output, но ответ приходит через input. То же самое происходит при просмотре сайтов и других действиях.

А вот цепочка forward может вообще не использоваться если ваш компьютер не является маршрутизатором. Так что настройка iptables должна выполняться очень аккуратно.

Правила и действия

Перед тем как перейти к созданию списка правил iptables нужно рассмотреть как они работают и какие бывают.

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

Правила образуют цепочку, поэтому input, output и forward называют цепочками, цепочками правил. Действий может быть несколько:

  • ACCEPT – разрешить прохождение пакета дальше по цепочке правил;
  • DROP – удалить пакет;
  • REJECT – отклонить пакет, отправителю будет отправлено сообщение, что пакет был отклонен;
  • LOG – сделать запись о пакете в лог файл;
  • QUEUE – отправить пакет пользовательскому приложению.

Правила могут проверять любые соответствия, например, по ip, по порту получателя или отправителя, заголовкам пакета и многому другому. Если пакет не подходит ни одному из правил, то к нему применяется действие по умолчанию, обычно ACCEPT.

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

  • prerouting – в эту цепочку пакет попадает перед обработкой iptables, система еще не знает куда он будет отправлен, в input, output или forward;
  • postrouting – сюда попадают все проходящие пакеты, которые уже прошли цепочку forward.

Но это еще не все. У нас еще есть таблицы iptables, с которыми тоже желательно разобраться.

Таблицы ipatables

Над цепочками правил в iptables есть еще один уровень абстракции, и это таблицы. В системе есть несколько таблиц, и все они имеют стандартный набор цепочек input, forward и output.

Таблицы предназначены для выполнения разных действий над пакетами, например для модификации или фильтрации.

Сейчас это для вас не так важно и будет достаточно знать что фильтрация пакетов iptables осуществляется в таблице filter. Но мы рассмотрим их все:

  • raw – предназначена для работы с сырыми пакетами, пока они еще не прошли обработку;
  • mangle – предназначена для модификации пакетов;
  • nat – обеспечивает работу nat, если вы хотите использовать компьютер в качестве маршрутизатора;
  • filter – основная таблица для фильтрации пакетов, используется по умолчанию.

С теорией почти все, теперь давайте рассмотрим утилиту командной строки iptables, с помощью которой и выполняется управление системой iptables.

Утилита Iptables

Подсистема iptables и netfilter встроены в ядро, но вот набор утилит для управления всем этим не всегда поставляется вместе с системой. Для установки утилиты в Ubuntu наберите:

sudo apt install iptables

А в дистрибутивах, основанных на Fedora, установка iptables выполняется немного по-другому:

sudo yum install iptables

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

$ iptables -t таблица действие цепочка дополнительные_параметры

Теперь давайте рассмотрим параметры iptables, таблица указывает таблицу, с которой нужно работать, этот параметр можно упустить, действие – нужное действие, например, создать или удалить правило, а дополнительные параметры описывают действие и правило, которое нужно выполнить.

Осталось рассмотреть основные действия, которые позволяет выполнить iptables:

  • -A – добавить правило в цепочку;
  • – проверить все правила;
  • -D – удалить правило;
  • -I – вставить правило с нужным номером;
  • -L – вывести все правила в текущей цепочке;
  • -S – вывести все правила;
  • -F – очистить все правила;
  • -N – создать цепочку;
  • -X – удалить цепочку;
  • -P – установить действие по умолчанию.

Дополнительные опции для правил:

  • -p – указать протокол, один из tcp, udp, udplite, icmp, icmpv6,esp, ah, sctp,mh;
  • -s – указать ip адрес устройства-отправителя пакета;
  • -d – указать ip адрес получателя;
  • -i – входной сетевой интерфейс;
  • -o – исходящий сетевой интерфейс;
  • -j – выбрать действие, если правило подошло.

Теперь вы можем перейти рассмотрению примеров того как выполняется настройка iptables.

Примеры настройки Iptables

Мы рассмотрим несколько основных примеров, чтобы вы смогли закрепить все прочитанное выше.

Список правил

Сначала давайте рассмотрим как выполняется просмотр правил iptables, для этого достаточно опции -L:

iptables -L

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

iptables -L INPUT

Очистка правил

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

sudo iptables -F

Или только для определенной цепочки:

sudo iptables -F Input

Напоминаю, что все эти действия выполняются для таблицы по умолчанию – filter.

Правила по умолчанию

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

sudo iptables -p INPUT ACCEPT$ sudo iptables -p OUTPUT ACCEPT

$ sudo iptables -p FORWARD DROP

В этом примере мы разрешаем цепочки INPUT и OUTPUT, но запрещаем FORWARD.

sudo iptables -L

Блокировка пакетов

Для блокировки пакетов мы можем использовать действие DROP, фильтровать пакеты, которые нужно заблокировать мы можем по множеству критериев, например, протоколу, ip адресу, маске сети, порту и многому другому.

Источник: https://losst.ru/nastrojka-iptables-dlya-chajnikov

21 пример использования iptables для администраторов

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

Файрвол в системе linux контролируется программой iptables (для ipv4) и ip6tables (для ipv6). В данной шпаргалке рассмотрены самые распространённые способы использования iptables для тех, кто хочет защитить свою систему от взломщиков или просто разобраться в настройке.

Знак # означает, что команда выполняется от root. Откройте заранее консоль с рутовыми правами – sudo -i в Debian-based системах или su в остальных.

1. Показать статус

# iptables -L -n -v

Примерный вывод команды для неактивного файрвола:

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

Для активного файрвола:

Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 DROP all — * * 0.0.0.0/0 0.0.0.0/0 state INVALID 394 43586 ACCEPT all — * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 93 17292 ACCEPT all — br0 * 0.0.0.0/0 0.0.0.0/0 1 142 ACCEPT all — lo * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all — br0 br0 0.0.0.0/0 0.0.0.0/0 0 0 DROP all — * * 0.0.0.0/0 0.0.0.0/0 state INVALID 0 0 TCPMSS tcp — * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU 0 0 ACCEPT all — * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 wanin all — vlan2 * 0.0.0.0/0 0.0.0.0/0 0 0 wanout all — * vlan2 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all — br0 * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 425 packets, 113K bytes) pkts bytes target prot opt in out source destination Chain wanin (1 references) pkts bytes target prot opt in out source destination Chain wanout (1 references) pkts bytes target prot opt in out source destination

Где:-L : Показать список правил.-v : Отображать дополнительную информацию. Эта опция показывает имя интерфейса, опции, TOS маски. Также отображает суффиксы 'K', 'M' or 'G'.

-n : Отображать IP адрес и порт числами (не используя DNS сервера для определения имен. Это ускорит отображение).

2. Отобразить список правил с номерами строк

# iptables -n -L -v –line-numbers

Примерный вывод:

Chain INPUT (policy DROP) num target prot opt source destination 1 DROP all — 0.0.0.0/0 0.0.0.0/0 state INVALID 2 ACCEPT all — 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 3 ACCEPT all — 0.0.0.0/0 0.0.0.0/0 4 ACCEPT all — 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy DROP) num target prot opt source destination 1 ACCEPT all — 0.0.0.0/0 0.0.0.0/0 2 DROP all — 0.0.0.0/0 0.0.0.0/0 state INVALID 3 TCPMSS tcp — 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU 4 ACCEPT all — 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 5 wanin all — 0.0.0.0/0 0.0.0.0/0 6 wanout all — 0.0.0.0/0 0.0.0.0/0 7 ACCEPT all — 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT) num target prot opt source destination Chain wanin (1 references) num target prot opt source destination Chain wanout (1 references) num target prot opt source destination

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

3. Отобразить INPUT или OUTPUT цепочки правил

# iptables -L INPUT -n -v# iptables -L OUTPUT -n -v –line-numbers

4. Остановить, запустить, перезапустить файрвол

Силами самой системы:
# service ufw stop
# service ufw start

Можно также использовать команды 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 OUTPUT ACCEPT

# iptables -P FORWARD ACCEPT

Где:-F : Удалить (flush) все правила.-X : Удалить цепочку.-t table_name : Выбрать таблицу (nat или mangle) и удалить все правила.

-P : Выбрать действия по умолчанию (такие, как DROP, REJECT, или ACCEPT).

5. Удалить правила файрвола

Чтобы отобразить номер строки с существующими правилами:
# iptables -L INPUT -n –line-numbers# iptables -L OUTPUT -n –line-numbers# iptables -L OUTPUT -n –line-numbers | less

# iptables -L OUTPUT -n –line-numbers | grep 202.54.1.1

Получим список IP адресов. Просто посмотрим на номер слева и удалим соответствующую строку. К примеру для номера 3:
# iptables -D INPUT 3

Или найдем IP адрес источника (202.54.1.1) и удалим из правила:
# iptables -D INPUT -s 202.54.1.1 -j DROP

Где:
-D : Удалить одно или несколько правил из цепочки.

6. Добавить правило в файрвол

Чтобы добавить одно или несколько правил в цепочку, для начала отобразим список с использованием номеров строк:
# iptables -L INPUT -n –line-numbers

Примерный вывод:

Chain INPUT (policy DROP) num target prot opt source destination 1 DROP all — 202.54.1.1 0.0.0.0/0 2 ACCEPT all — 0.0.0.0/0 0.0.0.0/0 state NEW,ESTABLISHED

Чтобы вставить правило между 1 и 2 строкой:
# iptables -I INPUT 2 -s 202.54.1.2 -j DROP

Проверим, обновилось ли правило:
# iptables -L INPUT -n –line-numbers

Вывод станет таким:

Chain INPUT (policy DROP) num target prot opt source destination 1 DROP all — 202.54.1.1 0.0.0.0/0 2 DROP all — 202.54.1.2 0.0.0.0/0 3 ACCEPT all — 0.0.0.0/0 0.0.0.0/0 state NEW,ESTABLISHED

7. Сохраняем правила файрвола

Через iptables-save:
# iptables-save > /etc/iptables.rules

8. Восстанавливаем правила

Через iptables-restore
# iptables-restore < /etc/iptables.rules

9. Устанавливаем политики по умолчанию

Чтобы сбрасывать весь трафик:
# iptables -P INPUT DROP# iptables -P OUTPUT DROP# iptables -P FORWARD DROP

# iptables -L -v -n

После вышеперечисленных команд ни один пакет не покинет данный хост.
# ping google.com

10. Блокировать только входящие соединения

Чтобы сбрасывать все не инициированные вами входящие пакеты, но разрешить исходящий трафик:
# iptables -P INPUT DROP# iptables -P FORWARD DROP# iptables -P OUTPUT ACCEPT# iptables -A INPUT -m state –state NEW,ESTABLISHED -j ACCEPT

# iptables -L -v -n

Пакеты исходящие и те, которые были запомнены в рамках установленных сессий – разрешены.
# ping google.com

11. Сбрасывать адреса изолированных сетей в публичной сети

# iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j DROP
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

Список IP адресов для изолированных сетей:10.0.0.0/8 -j (A)172.16.0.0/12 (B)192.168.0.0/16 (C)224.0.0.0/4 (MULTICAST D)240.0.0.0/5 (E)

127.0.0.0/8 (LOOPBACK)

12. Блокировка определенного IP адреса

Чтобы заблокировать адрес взломщика 1.2.3.4:
# iptables -A INPUT -s 1.2.3.4 -j DROP
# iptables -A INPUT -s 192.168.0.0/24 -j DROP

13. Заблокировать входящие запросы порта

Чтобы заблокировать все входящие запросы порта 80:
# iptables -A INPUT -p tcp –dport 80 -j DROP
# iptables -A INPUT -i eth1 -p tcp –dport 80 -j DROP

Чтобы заблокировать запрос порта 80 с адреса 1.2.3.4:
# iptables -A INPUT -p tcp -s 1.2.3.4 –dport 80 -j DROP
# iptables -A INPUT -i eth1 -p tcp -s 192.168.1.0/24 –dport 80 -j DROP

14. Заблокировать запросы на исходящий IP адрес

Чтобы заблокировать определенный домен, узнаем его адрес:
# host -t a .com

Вывод: .com has address 69.171.228.40

Найдем CIDR для 69.171.228.40:
# whois 69.171.228.40 | grep CIDR

Вывод:
CIDR: 69.171.224.0/19

Заблокируем доступ на 69.171.224.0/19:
# iptables -A OUTPUT -p tcp -d 69.171.224.0/19 -j DROP

Также можно использовать домен для блокировки:
# iptables -A OUTPUT -p tcp -d www.fаcebook.com -j DROP
# iptables -A OUTPUT -p tcp -d fаcebook.com -j DROP

15. Записать событие и сбросить

Чтобы записать в журнал движение пакетов перед сбросом, добавим правило:

# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG –log-prefix “IP_SPOOF A: “
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

Проверим журнал (по умолчанию /var/log/messages):
# tail -f /var/log/messages
# grep -i –color 'IP SPOOF' /var/log/messages

16. Записать событие и сбросить (с ограничением на количество записей)

Чтобы не переполнить раздел раздутым журналом, ограничим количество записей с помощью -m. К примеру, чтобы записывать каждые 5 минут максимум 7 строк:
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -m limit –limit 5/m –limit-burst 7 -j LOG –log-prefix “IP_SPOOF A: “
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP

16. Сбрасывать или разрешить трафик с определенных MAC адресов

# iptables -A INPUT -m mac –mac-source 00:0F:EA:91:04:08 -j DROP## *разрешить только для TCP port # 8080 с mac адреса 00:0F:EA:91:04:07 * ##

# iptables -A INPUT -p tcp –destination-port 22 -m mac –mac-source 00:0F:EA:91:04:07 -j ACCEPT

17. Разрешить или запретить ICMP Ping запросы

Чтобы запретить ping:
# iptables -A INPUT -p icmp –icmp-type echo-request -j DROP
# iptables -A INPUT -i eth1 -p icmp –icmp-type echo-request -j DROP

Разрешить для определенных сетей / хостов:
# iptables -A INPUT -s 192.168.1.0/24 -p icmp –icmp-type echo-request -j ACCEPT

Разрешить только часть ICMP запросов:
### ** предполагается, что политики по умолчанию для входящих установлены в DROP ** #### iptables -A INPUT -p icmp –icmp-type echo-reply -j ACCEPT# iptables -A INPUT -p icmp –icmp-type destination-unreachable -j ACCEPT# iptables -A INPUT -p icmp –icmp-type time-exceeded -j ACCEPT## ** разрешим отвечать на запрос ** ##

# iptables -A INPUT -p icmp –icmp-type echo-request -j ACCEPT

18. Открыть диапазон портов

# iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 7000:7010 -j ACCEPT

19. Открыть диапазон адресов

## разрешить подключение к порту 80 (Apache) если адрес в диапазоне от 192.168.1.100 до 192.168.1.200 ### iptables -A INPUT -p tcp –destination-port 80 -m iprange –src-range 192.168.1.100-192.168.1.200 -j ACCEPT

## пример для nat ##
# iptables -t nat -A POSTROUTING -j SNAT –to-source 192.168.1.20-192.168.1.25

20. Закрыть или открыть стандартные порты

Заменить ACCEPT на DROP, чтобы заблокировать порт.

## ssh tcp port 22 ##iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT

iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 22 -j ACCEPT

## cups (printing service) udp/tcp port 631 для локальной сети ##iptables -A INPUT -s 192.168.1.0/24 -p udp -m udp –dport 631 -j ACCEPT

iptables -A INPUT -s 192.168.1.0/24 -p tcp -m tcp –dport 631 -j ACCEPT

## time sync via NTP для локальной сети (udp port 123) ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p udp –dport 123 -j ACCEPT

## tcp port 25 (smtp) ##
iptables -A INPUT -m state –state NEW -p tcp –dport 25 -j ACCEPT

# dns server ports ##iptables -A INPUT -m state –state NEW -p udp –dport 53 -j ACCEPT

iptables -A INPUT -m state –state NEW -p tcp –dport 53 -j ACCEPT

## http/https www server port ##iptables -A INPUT -m state –state NEW -p tcp –dport 80 -j ACCEPT

iptables -A INPUT -m state –state NEW -p tcp –dport 443 -j ACCEPT

## tcp port 110 (pop3) ##
iptables -A INPUT -m state –state NEW -p tcp –dport 110 -j ACCEPT

## tcp port 143 (imap) ##
iptables -A INPUT -m state –state NEW -p tcp –dport 143 -j ACCEPT

## Samba file server для локальной сети ##iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 137 -j ACCEPTiptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 138 -j ACCEPTiptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 139 -j ACCEPT

iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 445 -j ACCEPT

## proxy server для локальной сети ##
iptables -A INPUT -s 192.168.1.0/24 -m state –state NEW -p tcp –dport 3128 -j ACCEPT

## mysql server для локальной сети ##
iptables -I INPUT -p tcp –dport 3306 -j ACCEPT

21. Ограничить количество параллельных соединений к серверу для одного адреса

Для ограничений используется connlimit модуль. Чтобы разрешить только 3 ssh соединения на одного клиента:
# iptables -A INPUT -p tcp –syn –dport 22 -m connlimit –connlimit-above 3 -j REJECT

Установить количество запросов HTTP до 20:
# iptables -p tcp –syn –dport 80 -m connlimit –connlimit-above 20 –connlimit-mask 24 -j DROP

Где:–connlimit-above 3 : Указывает, что правило действует только если количество соединений превышает 3.

–connlimit-mask 24 : Указывает маску сети.

Помощь по iptables

Для поиска помощи по iptables, воспользуемся man:
$ man iptables

Чтобы посмотреть помощь по определенным командам и целям:
# iptables -j DROP -h

Проверка правила iptables

Проверяем открытость / закрытость портов:
# netstat -tulpn

Проверяем открытость / закрытость определенного порта:
# netstat -tulpn | grep :80

Проверим, что iptables разрешает соединение с 80 портом:
# iptables -L INPUT -v -n | grep 80

В противном случае откроем его для всех:
# iptables -A INPUT -m state –state NEW -p tcp –dport 80 -j ACCEPT

Проверяем с помощью telnet
$ telnet ya.ru 80

Можно использовать nmap для проверки:
$ nmap -sS -p 80 ya.ru

Автор статьи Platon Puhlechev aka iFalkorr разрешает печатать данный текст.

Iptables отличный инструмент в руках администратора. Если нужно легко и просто защититься в десктопной Ubuntu, то стоит знать, что есть удобная консольная надстройка над iptables под названием UFW, а к ней есть графическая программа GUFW. Сделать свою Ubuntu ещё более защищённой поможет видеоматериал.

Дополнительные материалы:
Графический GUI для файрвола iptables – Gufw.
Запрещаем приложению доступ в сеть.
Безопасный сёрфинг в Интернете.

Источник: http://vasilisc.com/21-examples-iptables

Просмотр правил IPTables, добавление или удаление

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

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

История создания

До IPTables в системе Linux использовался файрвол IPFW, позаимствованный из BSD. Затем, с версии ядра 2.4 Linux, она стала поставляться с межсетевым экраном Netfilter и утилитой IPTables для управления им. В методике её работы были сохранены все аспекты и немного расширены функционально.

Строение и устройство IPTables

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

Если адрес у пакета отсутствует, как, например, в TCP, то происходит направление в цепочку FORWARD. В тех случаях, когда имеется конкретный адрес, следует цепочка INPUT, а затем уже тем демонам или сервисам, для которых он предназначен. Ответ от них также должен пройти несколько цепочек, например OUTPUT.

Последним звеном в этом процессе является цепочка POSTROUTING.

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

Таблицы в свою очередь содержат несколько правил. По сути, правило — это некое условие, которому должен соответствовать проверяемый пакет. В зависимости от исхода, над пакетом выполняется определённое действие.

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

Предустановленные цепочки бывают следующих категорий:

  • PREROUTING. Первоначальная обработка всех приходящих пакетов.
  • INPUT. Сюда попадают те пакеты, которые направлены непосредственно в локальный компьютер.
  • FORWARD. Применяется для «транзитных пакетов», которые следуют таблице маршрутизации.
  • OUTPUT. Используется для исходящих пакетов.
  • POSTROUTING. Последний этап в прохождении исходящим пакетом всех цепочек.

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

Как уже было сказано ранее, все цепочки содержат определённые условия для пакетов. Для просмотра правил IPTables и управления ими и используется утилита IPTables. Каждое отдельное правило представляет собой строку с набором условий для пакетов, а также действия над ними, в зависимости от исхода.

Формат команды выглядит таким образом: iptables [-t название обрабатываемой таблицы] вызываемая команда [критерии] [выполняемое действие].

Все, что заключено в квадратные скобки? может быть опущено. Если это параметр с указанием таблицы, то будет использоваться filter. Для применения какого-то определённого имени нужно добавить ключ -t.

Вызываемая команда позволяет вызвать необходимое действие, например, добавить правило IPTables или удалить его. В «критериях» указываются параметры, по которым будет происходить отбор.

И в «действии» применяется действие, которое нужно выполнить, если условие соблюдено.

Команды для создания и просмотра правил IPTables

Далее приведены несколько команд утилиты:

  • Append (-A). При использовании команды указывается цепочка и таблица, в которые нужно добавить необходимое правило. Ценность команды в том, что делает она это в конце всего списка.
  • Delete (-D). Как можно понять из названия, производит удаление правила. В качестве параметров можно указать как полное наименование, так и присвоенные им номера.
  • Rename-chain (-E). Меняет название цепочки. В команде указывается старое, затем новое имя.
  • Flush (-F). Очистка абсолютно всех правил определённой таблицы.
  • Insert (-I). Данная команда вставляет в указанное номером место, нужное правило.
  • List (- L). Просмотр правил Iptables. Если не указана таблица, то будет использована filter по умолчанию.
  • Policy (-P). Используется политика по умолчанию для указанной цепочки.
  • Replace (-R). Меняет правило под указанным номером, на необходимое.
  • Delete-chain (-X). Эта команда производит удаление всех созданных цепочек. Останутся только предустановленные.
  • Zero (-Z). Сбросит счётчики переданных данных в указанной цепочке.

Немного о параметрах отбора пакетов

Их можно условно разделить на три разновидности:

  • Общие критерии. Их можно указывать для любых правил. Они не требуют подключения особых расширений и модулей, а также не зависят от того, какой протокол будет задействован.
  • Не общие критерии. Они становятся доступны при использовании общих критериев.
  • Явные. Для того, чтобы воспользоваться данным типом, нужно подключать специальные плагины для netfilter. К тому же в команде необходимо применить ключ -m.

Стоит немного рассказать о часто встречающихся параметрах, применяемых при анализе пакетов:

  • Protocol (-p). Указывает на протокол.
  • Source (-s). Данный параметр определяет IP адрес источника, с которого пришёл пакет. Его можно указать несколькими способами. Конкретный хост, адрес или же целую подсеть.
  • Destination (-d). Адрес назначения пакета. Также, как и предыдущий, может быть описан несколькими способами.
  • In-interface (-i). Указывает входящий интерфейс пакета. В основном используется для NAT или на системах с несколькими интерфейсами.
  • Out-interface (-o). Исходящий интерфейс.

Несколько примеров

Для того, чтобы выполнить просмотр правил IPTables nat? нужно воспользоваться командой – «iptables -L -t nat». Узнать общий статус файрвола – «iptables -L -n -v».

К тому же данная команда позволяет посмотреть правила IPTables, имеющиеся во всей системе. Вставить правило в определённое место таблицы, например, между первой и второй строкой – «iptables -I INPUT 2 -s 202.54.1.2 -j DROP».

Затем просмотреть, добавилось ли оно – «iptables -L INPUT -n –line-numbers».

Источник: https://FB.ru/article/335344/prosmotr-pravil-iptables-dobavlenie-ili-udalenie

Как очистить все правила iptables

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

Для того, чтобы остановить действие правил IPtables в Linux VPS, можно использовать несколько способов. Для работы каждого из них необходимо подключение к серверу по SSH с правами root.

Остановка работы IPtables

Остановить службу можно командами:

В дополнение к вышеуказанным командам можно убрать IPtables из автозагрузки командой:

Создание скрипта для сброса правил

Данный вариант скрипта снимает все ограничения в IPtables на прием или отправку любых пакетов.

В директории /root создаем файл, например, с именем iptables-drop.sh

Открываем файл любым текстовым редактором, например, nano:

Копируем в файл следующий текст:

Сохраняем изменения сочетанием клавиш CTRL+O и выходим из Nano командой CTRL+X

Разрешаем файл на исполнение:

Запускаем файл скрипта для сброса правил:

Результат работы этого файла можно посмотреть путем вывода итогового списка существующих правил в IPtables при помощи команды:

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

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

Как удалить проброс порта?

собственно сделал проброс но ошибся,заместо -d указал -s, как теперь его удалить?

повтори ошибочную команду, только замени -A на -D.

спс. помогло. А не могли бы пояснить? вот делаю проброс Sudo iptables –t nat –A POSTROUTING –d XXX.XXX.XXX.XXX –p tcp –dport 443 –j SNAT –to-source 192.168.10.1

просматриваю вроде все правильно, но моя запись отличается от других записей все другие правила имеют вид(tcp dpt:993 ctstate DNAT to:192.168.10.1), а у меня просто tcp dpt:993 to:192.168.10.1

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

А не могли бы пояснить?

Я конечно не телепат, но мне кажется ты путаешь SNAT и DNAT. Что бы пояснить, подробно распиши задачу.

ой. млиин, буду читать маны, чето таам вообще столько всего.

есть шлюз с двумя сетевыми картами, одна на внешник, вторая внутренняя, нужно пробросить порты для exchange

Это звучит примерно так. У машины есть передний и задний привод, нужно завести мотор.

сделал вот так Sudo iptables –t nat –A Prerouting –I eth1 –d XXX.XXX.XXX.XXX –p tcp –dport 443 –j DNAT –to-destination 192.168.10.13 Sudo iptables –t nat –A POSTROUTING –d 192.168.10.13 –p tcp –dport 443 –j SNAT –to-source 192.168.1.1

проcматриваю правила на всех правилах стоит (tcp dpt:993 ctstate DNAT to:неважно какой) ctstate , у меня просто tcp dpt:993 to:192.168.10.1

шлюз 2 сетевые карты(ext:XXX.XXX.XXX.XX , int: 192.168.10.1машина в сети с почтой(192.168 10.13) нужно пробросить порты почтовые чтобы почта ходила

Вот, век живи — век учись! А я это «чинил» перезапуском iptables. Позор мне!

IPTABLES — как удалить правило (НЕ ЦЕПОЧКУ!, а именно правило в цепочке)

ВОТ есть у меня правило типа

iptabes -A FORWARD -i eth10 -o eth11 -s 172.0.0.1/255.255.255.255 -m mac 00:01:02:03:04:05 -j ACCEPT

ВОТ КАК ЕГО УДАЛИТЬ, и при этом
не тронуть все остальные цепочки.

Re: IPTABLES — как удалить правило (НЕ ЦЕПОЧКУ!, а именно правило в цепочке)

а ты дядька читал то ман или статейку какую про таблицы а? удалять можно по разному 1- вместо A -D 2- по номеру правила короче читай iptables tutorial — воспользуйся поиском по сайту -найдёшь описание на русише

или о номеру -или
iptables -D и повторить все то что было при -A

Сброс iptables

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

те что я стояли при установке?(или те которые были до последнего изменения конфигурации) Ключ -F стирает все настройки как я понял(а этого категорически нельзя делать, ибо продакшн, личные данные клиентов и так далее, вообщем запрещено).

Ключ -F стирает только заданные цепочки правил. Какие данные клиентов, вы о чем?

Про данные это касательно того, что сервер защищенная область и не должен быть подвергнут риску из-за отсутствия фаервола, так в должносной инструкции написано, не суть важно.

А можно ли скопировать конфиги iptables из другой машины на которой они настроены корректно?

У тебя нет доступа к серверу? Напиши хостеру.

И что там фаерволлом было закрыто? Не вижу смысла закрывать что-либо, кроме ssh, все необходимые сервисы можно просто забиндить на локалхост.

Black_Shadow и ты еще докапывался до «ыдмина» не умеющего в vi ?

можете конечно скопировать, iptables —list/—list-rules можете удалить лишние правила —delete -D chain rulenum Delete rule rulenum (1 = first) from chain

как мне откатить настройки iptables в дефолтные?

Дефолтные есть в пакете с iptabeles, скачай пакет, распакуй и найди там файл с правилами, примени.

Не видишь смысла? В самбе и в телнете тоже?

Если развлекались исключительно набором команд «iptables ключи» и не ребутали сервак, то возможно спасет iptables-restore

В самбе и в телнете тоже?

А зачем они нужны на сервере?

Источник: https://korholding.ru/kak-ochistit-vse-pravila-iptables/

Общее представление об iptables. Добавление, удаление, цепочки

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

iptables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) netfilter для ядер Linux версий 2.4, 2.6, 3.x, 4.x. Для использования утилиты iptables требуются привилегии суперпользователя (root).

Цепочки, схема

Input — обрабатывает входящие пакеты и подключения. Например, если какой-либо внешний пользователь пытается подключиться к вашему компьютеру по ssh или любой веб-сайт отправит вам свой контент по запросу браузера.

Все эти пакеты попадут в эту цепочку;
forward — эта цепочка применяется для проходящих соединений. Сюда попадают пакеты, которые отправлены на ваш компьютер, но не предназначены ему, они просто пересылаются по сети к своей цели.

output — эта цепочка используется для исходящих пакетов и соединений. Сюда, например, попадают пакеты, когда вы запускаете браузер и пытаетесь открыть любой сайт.

prerouting — в эту цепочку пакет попадает перед обработкой iptables, система еще не знает куда он будет отправлен, в input, output или forward;
postrouting — сюда попадают все проходящие пакеты, которые уже прошли цепочку forward

Добавление/удаление правил

Действия над пакетами:
ACCEPT — разрешить прохождение пакета дальше по цепочке правил;
DROP — удалить пакет;
REJECT — отклонить пакет, отправителю будет отправлено сообщение, что пакет был отклонен;
LOG — сделать запись о пакете в лог файл;
QUEUE — отправить пакет пользовательскому приложению.

Синтаксис:

# iptables -t таблица действие цепочка дополнительные_параметры

Опции:-A — добавить правило в цепочку;-С — проверить все правила;-D — удалить правило;-I — вставить правило с нужным номером;-L — вывести все правила в текущей цепочке;-S — вывести все правила;-F — очистить все правила;-N — создать цепочку;-X — удалить цепочку;

-P — установить действие по умолчанию

Дополнительные опции:-p — указать протокол, один из tcp, udp, icmp и др.;-s — указать ip адрес устройства-отправителя пакета;-d — указать ip адрес получателя;-i — входной сетевой интерфейс;-o — исходящий сетевой интерфейс;

-j — выбрать действие, если правило подошло.

Примеры:
Вывод всех правил на экран:

# iptables -L

Вывод всех правил на экран c нумерацией строк:

# iptables -L INPUT -n –line-numbers

Вывод правил для цепочки INPUT

# iptables -L INPUT

Блокировка всех входящих пакетов от 10.0.0.1:

# iptables -A INPUT -s 10.0.0.1 -j DROP

Блокировка всех исходящих пакетов от 10.0.0.1:

# iptables -A OUTPUT -s 10.0.0.1 -j DROP

Блокировка всех входящих соединений от 10.0.0.1 по ssh:

# iptables -A INPUT -p tcp –dport ssh -s 10.0.0.1 -j DROP

Очистить все правила

# iptables -F

Очистить все правила в цепочке INPUT:

# iptables -F INPUT

Удаления правила для всех входящих пакетов от 10.0.0.1:

# iptables -D INPUT -s 10.0.0.1 -j DROP

Добавить правило на 3 место в цепочке INPUT (остальные сдвинутся ниже):

# iptables -I INPUT 3 -p tcp –dport ssh -s 10.0.0.1 -j DROP

Удалить 3 правило в цепочке INPUT:

# iptables -D INPUT 3

Сохранение после перезагрузки

Debian:

# /sbin/iptables-save

Red Hat/CentOS:

# /sbin/service iptables save

или для Debian

# sh -c “iptables-save > /etc/iptables.up.rules”

и в настройках интефейса прописать

pre-up iptables-restore < /etc/iptables.up.rules

SNAT, DNAT, MASQUERADE

DNAT — от англ. Destination Network Address Translation — Изменение Сетевого Адреса Получателя. DNAT — это изменение адреса назначения в заголовке пакета. Зачастую используется в паре с SNAT.

Основное применение — использование единственного реального IP-адреса несколькими компьютерами для выхода в Интернет и предоставления дополнительных сетевых услуг внешним клиентам.
SNAT — от англ. Source Network Address Translation — Изменение Сетевого Адреса Отправителя.

SNAT — это изменение исходного адреса в заголовке пакета. Основное применение — использование единственного реального IP-адреса несколькими компьютерами для выхода в Интернет. В натоящее время диапазон реальных IP-адресов, по стандарту IPv4, недостаточно широк, и его не хватает на всех (переход на IPv6 разрешит эту проблему).

Маскировка (MASQUERADE) применяется в тех же целях, что и SNAT, но в отличие от последней, MASQUERADE дает более сильную нагрузку на систему.

Происходит это потому, что каждый раз, когда требуется выполнение этого действия — производится запрос IP адреса для указанного в действии сетевого интерфейса, в то время как для SNAT IP адрес указывается непосредственно. Однако, благодаря такому отличию, MASQUERADE может работать в случаях с динамическим IP адресом, т.е. когда вы подключаетесь к Интернет, скажем через PPP, SLIP или DHCP.

Предположим у нас есть сервер с двумя интерфейсами. Один смотрит в Интернет, другой в локальную сеть и не забывает про правила для input и output. Раздадим интернет:
Для начала разрешаем шлюзу передавать транзитный трафик:

# sysctl net.ipv4.ip_forward=1

Источник: https://it.blogstud.ru/2018/06/29/obshhee-predstavlenie-ob-iptables-dobavlenie-udalenie-cepochki/

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