Recent iptables: Iptables -m recent — OpenWiki

Содержание

Iptables -m recent — OpenWiki

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

Приведу два варианта использования, для ограничения доступа к сервису ssh.

Перед тем, как выполнять команды из этих примеров, убедитесь, что установленные соединения пропускаются, иначе каждый (а не только инициирующий) пакет в tcp-соединении будет проходить через эти цепочки правил и вы потеряете контроль над своей текущей ssh-сессией)

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Блокирование доступа тем, кто превышает заданное количество подключений

iptables -A INPUT -p tcp --dport 22 -m recent --name ssh --update --seconds 3600 --hitcount 5 -j REJECT
iptables -A INPUT -p tcp --dport 22 -m recent --name ssh --set -j ACCEPT

При прохождении цепочки предпринимаются следующие действия:

Входящий TCP трафик на порт 22 проверяется модулем recent. ЕСЛИ за последние 3600 секунд прошло 5 или более пакетов, то перейти к цели REJECT, при этом добавить последнее время попытки подключения на этот порт. Если же первое правило не сработало, то вторым правилом добавляется или обновляется последняя запись о входящем пакете и пакет пропускается внутрь. Такие правила наиболее подходят для публичных сервисов. Например, защита dns или ntp демонов от последствий деятельности вирусов на клиентских машинах.

Пресечение попыток взлома сервисов

iptables -A INPUT -p tcp --dport 22 -m recent --name ssh --update --seconds 3600 --hitcount 8 -j REJECT
iptables -A INPUT -p tcp --dport 22 -m recent --name ssh --set
iptables -A INPUT -p tcp --dport 22 -m recent --name ssh ! --rcheck --seconds 15 --hitcount 2 -j REJECT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Как это работает? Последнее правило: если ни одно из предшествующих правил не сработало, то принимать пакет. Второе правило безусловно создает или обновляет запись о последнем пакете. Третье правило отвергает пакеты, если за последние 15 секунд было менее 2-х попыток подключения. Первое правило отвергает, если за последние 3600 секунд было 8 или более пакетов.

Первая попытка подключения: пакет не соответствует правилу 1, второе правило добавляет его в таблицу последних попыток подключения. У второго правила нет цели, поэтому пакет идет дальше по цепочке. Третье правило проверяет, есть запись в таблице недавних подключений. Да, пакет занесен в таблицу предыдущим правилом, но всего один, а требуется 2. Правило не сработало бы, но установлено отрицание правила (!), значит правило срабатывает и первый пакет отвергается целью REJECT. Если вторая попытка соединения будет предпринята в течении 15 секунд после первой, то третье правило не сработает, и пакеты будут пропускаться 4-м правилом. При этом каждый такой пакет будет заноситься в таблицу недавних вторым правилом. При превышении лимита 8 подключений в час все пакеты будут блокироваться первым правилом, при этом каждый раз обновляя последнюю запись.

Т.е. первое соединение отвергается. Второе, если оно сделано не позднее чем 15 секунд после предыдущего — принимается. И так до 8 соединений, затем все блокируется. Т.е. если вас будут сканировать на предмет открытых портов для атаки, то порт окажется закрытым. Если вторая попытка просмотра портов с того же адреса позднее чем 15 секунд — то тоже все закрыто.

Общее представление об 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

Разрешаем проходить трафику из и в локальную сеть,например, 10.1.30.0/24:

# iptables -A FORWARD -s 10.1.30.0/24 -j ACCEPT
# iptables -A FORWARD -d 10.1.30.0/24 -j ACCEPT

Для статического внешнего адреса интерфейса:

# iptables -A POSTROUTING -s 10.0.3.0/24 -o eth2 -j SNAT --to-source внешний_адрес_интерфейса

Для динамического внешнего адреса интерфейса:

# iptables -A POSTROUTING -s 10.0.3.0/24 -o eth2 -j MASQUERADE

DNAT подменяет адрес назначения для входящих пакетов, позволяя «пробрасывать» адреса или отдельные порты внутрь локальной сети. Например:

Для начала разрешаем шлюзу передавать транзитный трафик:

# sysctl net.ipv4.ip_forward=1

Разрешаем проходить траффику из и в локальную сеть,например, 10.1.30.0/24:

# iptables -A FORWARD -s 10.1.30.0/24 -j ACCEPT
# iptables -A FORWARD -d 10.1.30.0/24 -j ACCEPT

Из внешнего источника по порту 29001 можно получить доступ по ssh к компьютеру во внутренней сети 10.1.30.40:

# iptables -A PREROUTING -s адрес/сеть_внешнего_источника -i eth2 -p tcp -m tcp --dport 29001 -j DNAT --to-destination 10.1.30.40:22

Рекомендуемые источники информации

Руководство по iptables (opennet.ru)
Iptables (wikibooks.nym.su)
Базовая настройка брандмауэра iptables


Источники:
Iptables (wikibooks.nym.su)
Настройка iptables для чайников (Материал распространяется под лицензией CC-BY-SA)

Руководство по iptables (opennet.ru)

Похожее

Category: Linux

Метки: iptables, linux

Разбираемся с iptables(Часть 2) | LinuxBlog.РФ

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

iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack —ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp —dport 22 -j ACCEPT
iptables -P INPUT DROP

Собственно мы разрешаем весь из ходящий трафик OUTPUT ACCEPT, запрещаем проходящий трафик FORWARD DROP и запрещаем весь входящий трафик кроме 22 порта SSH

 INPUT -p tcp —dport 22 -j ACCEPT. Про conntrack я писал в предыдущей статье. Собственно это базовая настройка iptables для сервера.  Далее мы открываем нужный нам порты дополнительно , например 21 для FTP сервера.

iptables -I INPUT -p tcp —dport 21 -j ACCEPT

Может ограничить число запросов на пинг до 4 в секунду )))

iptables -A INPUT -p icmp —icmp-type 8 -m limit —limit 4/s -j ACCEPT

-m подключение модулей. В iptables много разных модулей. Модуль limit предназначен для ограничения нагрузки.

—limit (/second /minute /hour /day)Пакеты в пределах этого количества считаются удовлетворяющими критерию, сверх этого количества — не удовлетворяющими.
–-limit-burst количество — задает длину очереди, то есть максимальную пропускную способность.

К стати таким правилом можно бороться с ICMP-flood. Суть данной атаки в том, что ICMP-пакет при небольшом размере самого запроса требует от сетевого оборудования значительно большего объёма работы. Таким образом, при отправлении сравнительно небольшого объёма
ICMP-запросов возникает перегрузка сетевого оборудования и значительная часть легитимных запросов теряется, не пройдя обработку.

Типы ICMP-сообщений:

  • 0 — echo reply (echo-ответ, пинг)
  • 3 — destination unreachable (адресат недосягаем)
  • 4 — source quench (подавление источника, просьба посылать пакеты медленнее)
  • 5 — redirect (редирект)
  • 8 — echo request (echo-запрос, пинг)
  • 9 — router advertisement (объявление маршрутизатора)
  • 10 — router solicitation (ходатайство маршрутизатора)
  • 11 — time-to-live exceeded (истечение срока жизни пакета)
  • 12 — IP header bad (неправильный IPзаголовок пакета)
  • 13 — timestamp request (запрос значения счетчика времени)
  • 14 — timestamp reply (ответ на запрос значения счетчика времени)
  • 15 — information request (запрос информации)
  • 16 — information reply (ответ на запрос информации)
  • 17 — address mask request (запрос маски сети)
  • 18 — address mask reply (ответ на запрос маски сети)

Обычно выход во внешний мир разрешают ICMP-сообщениям 0, 3, 4, 11 и 12, в то время как на вход принимают только 3, 8 и 12.

Можно ограничить трафик не только по IP но и по MAC адресу.

iptables -I INPUT -m mac —mac-source 00:00:00:00:00:01 -j DROP

Можем ограничить число одновременных подключений по SSH до двух с одного IP.

iptables -p tcp —syn —dport 22 -m connlimit —connlimit-above 2 -j REJECT

—syn флаг пакета с запросом на соединение.

Тоже самое можно сделать и по другому.

iptables -I INPUT -p tcp —syn —dport 22 -m iplimit —iplimit-above 2  -j DROP

Так же мы можем делать свои цепочки правил.

iptables -N syn_flood
iptables -A INPUT -p tcp —syn -j syn_flood
iptables -A syn_flood -m limit —limit 500/s —limit-burst 1500 -j RETURN
iptables -A syn_flood -j DROP

Число новых SYN пакетов — максимум 500 в секунду, при превышении порога в 1500 — новые пакеты блокируются.

iptables -N syn_flood Создание цепочки с именем syn_flood.

iptables -A INPUT -p tcp —syn -j syn_flood  Пакеты  с флагом syn отправляем в цепочку syn_flood.

iptables -A syn_flood -m limit —limit 500/s —limit-burst 1500 -j RETURN Если запросов не больше 1500 в секунду выйти из цепочки правил(RETURN).

iptables -A syn_flood -j DROP Заблокировать пакеты с флагом syn.

SYN-flood очень популярная DoS атака заключается в посылке большого числа SYN пакетов на ваш сервер. При этом установка TCP связи не доводится до конца.
Очередь полуоткрытых запросов соединений быстро заполняется, что мешает установке нормальных соединений. Так как соединение не должно быть обязательно завершено.Такая атака не требует больших ресурсов от атакующей машины, поэтому её легко реализовать и контролировать.

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

Iptables | Русскоязычная документация по Ubuntu

Iptables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) Netfilter для ядер Linux, начиная с версии 2.4. С её помощью администраторы создают и изменяют правила, управляющие фильтрацией и перенаправлением пакетов. Для работы с семейством протоколов IPv6 существует отдельная версия утилиты — Ip6tables. Для использования утилиты Iptables требуются привилегии суперпользователя (root).

Основные понятия

Ключевыми понятиями iptables являются:

  1. Правило — состоит из критерия, действия и счетчика. Если пакет соответствует критерию, к нему применяется действие, и он учитывается счетчиком. Критерия может и не быть — тогда неявно предполагается критерий «все пакеты». Указывать действие тоже не обязательно — в отсутствие действия правило будет работать только как счетчик. Правила для каждой цепочки срабатывают в порядке их следования, поэтому порядок важен.

    • Критерий — логическое выражение, анализирующее свойства пакета и/или соединения и определяющее, подпадает ли данный конкретный пакет под действие текущего правила. Критерии соединяются логическим «И».

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

    • Счетчик — компонент правила, обеспечивающий учет количества пакетов, которые попали под критерий данного правила. Также счетчик учитывает суммарный объем таких пакетов в байтах.

  2. Цепочка — упорядоченная последовательность правил. Цепочки можно разделить на пользовательские и базовые.

    • Базовая цепочка — цепочка, создаваемая по умолчанию при инициализации таблицы. Каждый пакет, в зависимости от того, предназначен ли он самому хосту, сгенерирован им или является транзитным, должен пройти положенный ему набор базовых цепочек различных таблиц. Кроме того, базовая цепочка отличается от пользовательской наличием «действия по умолчанию» (default policy). Это действие применяется к тем пакетам, которые не были обработаны другими правилами этой цепочки и вызванных из нее цепочек. Имена базовых цепочек всегда записываются в верхнем регистре (PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING).

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

  3. Таблица — совокупность базовых и пользовательских цепочек, объединенных общим функциональным назначением. Имена таблиц (как и модулей критериев) записываются в нижнем регистре, так как в принципе не могут конфликтовать с именами пользовательских цепочек. При вызове команды iptables таблица указывается в формате -t имя_таблицы. При отсутствии явного указания, используется таблица filter.

Синтаксический анализ:

# Дамп правил таблицы filter
$ sudo iptables-save -c -t filter
# Таблица filter
*filter
# Цепочки INPUT, FORWARD, OUTPUT, их политики и счётчики
:INPUT ACCEPT [19302:9473669]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5462736:4247599532]
# Правило: "[17:1020]" - счётчик правила, "-A INPUT" - цепочка, "-i em1 -p tcp -m tcp --dport 22" - критерии, "-j ACCEPT" - действие
[17:1020] -A INPUT -i em1 -p tcp -m tcp --dport 22 -j ACCEPT
COMMIT

Архитектура

В системе netfilter, пакеты пропускаются через цепочки. Цепочка является упорядоченным списком правил, а каждое правило может содержать критерии и действие или переход. Когда пакет проходит через цепочку, система netfilter по очереди проверяет, соответствует ли пакет всем критериям очередного правила, и если так, то выполняет действие (если критериев в правиле нет, то действие выполняется для всех пакетов проходящих через правило). Вариантов возможных критериев очень много. Например, пакет соответствует критерию –source 192.168.1.1 если в заголовке пакета указано, что отправитель — 192.168.1.1. Самый простой тип перехода, –jump, просто пересылает пакет в начало другой цепочки. Также при помощи –jump можно указать действие. Стандартные действия доступные во всех цепочках — ACCEPT (пропустить), DROP (удалить), QUEUE (передать на анализ внешней программе), и RETURN (вернуть на анализ в предыдущую цепочку). Например, команды

iptables -A INPUT --source 192.168.1.1 --jump ACCEPT
iptables -A INPUT --jump other_chain

означают «добавить к концу цепочки INPUT следующие правила: пропустить пакеты из 192.168.1.1, а всё, что останется — отправить на анализ в цепочку other_chain».

Цепочки

Существует 5 типов стандартных цепочек, встроенных в систему:

  • PREROUTING — для изначальной обработки входящих пакетов.

  • INPUT — для входящих пакетов адресованных непосредственно локальному процессу (клиенту или серверу).

  • FORWARD — для входящих пакетов перенаправленных на выход (заметьте, что перенаправляемые пакеты проходят сначала цепь PREROUTING, затем FORWARD и POSTROUTING).

  • OUTPUT — для пакетов генерируемых локальными процессами.

  • POSTROUTING — для окончательной обработки исходящих пакетов.

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

Таблицы

Цепочки организованны в 4 таблицы:

  • raw — просматривается до передачи пакета системе определения состояний. Используется редко, например для маркировки пакетов, которые НЕ должны обрабатываться системой определения состояний. Для этого в правиле указывается действие NOTRACK. Содержит цепочки PREROUTING и OUTPUT.

  • mangle — содержит правила модификации (обычно заголовка) IP‐пакетов. Среди прочего, поддерживает действия TTL (Time to live), TOS (Type of Service), и MARK (для изменения полей TTL и TOS, и для изменения маркеров пакета). Редко необходима и может быть опасна. Содержит все пять стандартных цепочек.

  • nat — просматривает только пакеты, создающие новое соединение (согласно системе определения состояний). Поддерживает действия DNAT, SNAT, MASQUERADE, REDIRECT. Содержит цепочки PREROUTING, OUTPUT, и POSTROUTING.

  • filter — основная таблица, используется по умолчанию если название таблицы не указано. Содержит цепочки INPUT, FORWARD, и OUTPUT.

Цепочки с одинаковым названием, но в разных таблицах — совершенно независимые объекты. Например, raw PREROUTING и mangle PREROUTING обычно содержат разный набор правил; пакеты сначала проходят через цепочку raw PREROUTING, а потом через mangle PREROUTING.

Состояния

В системе netfilter, каждый пакет проходящий через механизм определения состояний, может иметь одно из четырёх возможных состояний:

  • NEW — пакет открывает новый сеанс. Классический пример — пакет TCP с флагом SYN.

  • ESTABLISHED — пакет является частью уже существующего сеанса.

  • RELATED — пакет открывает новый сеанс, связанный с уже открытым сеансом. Например, во время сеанса пассивного FTP, клиент подсоединяется к порту 21 сервера, сервер сообщает клиенту номер второго, случайно выбранного порта, после чего клиент подсоединяется ко второму порту для передачи файлов. В этом случае второй сеанс (передача файлов по второму порту) связан с уже существующим сеансом (изначальное подсоединение к порту 21).
  • INVALID — все прочие пакеты.

Диаграмма прохождения таблиц и цепочек

Упрощённая диаграмма прохождения таблиц и цепочек:

Детальная диаграмма:

Базовая конфигурация

Ниже приведён пример базовой статической конфигурации iptables. При сохранении и загрузке подобной конфигурации необходимо принимать во внимание возможность внесения в неё изменений со стороны других сервисов, например Fail2ban. Кроме того, при использовании IPv6-адресации конфигурацию для IPv6 следует выполнять независимо от IPv4.

IPv4

Просмотр текущей конфигурации:

sudo iptables-save

Создаём скрипт с дампом правил iptables:

sudo nano /etc/network/if-up.d/iptables-rules

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

#!/sbin/iptables-restore
# Таблица filter и её цепочки
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# Разрешаем связанные и установленые соединения
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Разрешаем служебный icmp-трафик
-A INPUT -p icmp -j ACCEPT
# Разрешаем доверенный трафик на интерфейс loopback
-A INPUT -i lo -j ACCEPT
# Сюда можно вставлять дополнительные правила для цепочки INPUT
# Запрещаем всё остальное для INPUT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
# Порядок и смысл правил для цепочек FORWARD и OUTPUT аналогичен INPUT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
# Фильтровать цепочку OUTPUT настоятельно не рекомендуется
#-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
#-A OUTPUT -p icmp -j ACCEPT
#-A OUTPUT -o lo -j ACCEPT
#-A OUTPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

Дополняем нужными правилами с учётом iptables-save.

Сохраняем и закрываем: Ctrl+O, Enter, Ctrl+X

Делаем скрипт исполняемым и загружаем правила iptables:

sudo chmod +x /etc/network/if-up.d/iptables-rules
sudo /etc/network/if-up.d/iptables-rules

IPv6

Просмотр текущей конфигурации:

sudo ip6tables-save

Создаём скрипт с дампом правил ip6tables:

sudo nano /etc/network/if-up.d/ip6tables-rules

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

#!/sbin/ip6tables-restore
# Таблица filter и её цепочки
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# Разрешаем связанные и установленые соединения
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Разрешаем служебный icmp-трафик
-A INPUT -p ipv6-icmp -j ACCEPT
# Разрешаем доверенный трафик на интерфейс loopback
-A INPUT -i lo -j ACCEPT
# Сюда можно вставлять дополнительные правила для цепочки INPUT
# Запрещаем всё остальное для INPUT
-A INPUT -j REJECT --reject-with icmp6-adm-prohibited
# Порядок и смысл правил для цепочек FORWARD и OUTPUT аналогичен INPUT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p ipv6-icmp -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp6-adm-prohibited
# Фильтровать цепочку OUTPUT настоятельно не рекомендуется
#-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
#-A OUTPUT -p ipv6-icmp -j ACCEPT
#-A OUTPUT -o lo -j ACCEPT
#-A OUTPUT -j REJECT --reject-with icmp6-adm-prohibited
COMMIT

Дополняем нужными правилами с учётом ip6tables-save.

Сохраняем и закрываем: Ctrl+O, Enter, Ctrl+X

Делаем скрипт исполняемым и загружаем правила iptables:

sudo chmod +x /etc/network/if-up.d/ip6tables-rules
sudo /etc/network/if-up.d/ip6tables-rules

Дополнительные правила

Ниже приведены некоторые сравнительно часто используемые правила. Цепочки INPUT/OUTPUT применяются для фильтрации локального трафика. Для транзитного трафика необходимо использовать цепочку FORWARD.

Удалённый доступ

# remote.ssh
-A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 22 -j ACCEPT
# remote.rdp
-A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 3389 -j ACCEPT
# remote.vnc
-A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 5900 -j ACCEPT

Веб и файловые сервисы

# web.http, web.https
-A INPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 80,443 -j ACCEPT
# web.ftp + необходима загрузка модуля nf_conntrack_ftp
-A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 21 -j ACCEPT

Почта и мгновенные сообщения

# mail.pop3, mail.pop3s
-A INPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 110,995 -j ACCEPT
# mail.imap, mail.imaps
-A INPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 143,993 -j ACCEPT
# mail.smtp, mail.smtps
-A INPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 25,465 -j ACCEPT
# im.xmpp
-A INPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 5222,5223  -j ACCEPT
# im.icq.oscar
-A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 5190 -j ACCEPT

Сетевые службы

# network.openvpn.vpn
-A INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 1194 -j ACCEPT
# network.squid.proxy
-A INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 3128 -j ACCEPT
# network.dns
-A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 53 -j ACCEPT
# network.ntp
-A INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 123 -j ACCEPT
# network.tftp + необходима загрузка модуля nf_conntrack_tftp
-A INPUT -p udp -m conntrack --ctstate NEW -m udp --dport 69 -j ACCEPT
# network.dhserver.dhcp.discover-request
-A INPUT -p udp -m conntrack --ctstate NEW -m udp --sport 68 --dport 67 -j ACCEPT
# network.dhclient.dhcp.discover-request
#-A OUTPUT -p udp -m conntrack --ctstate NEW -m udp --sport 68 --dport 67 -j ACCEPT
# network.dhserver.dhcp.offer-ack
#-A OUTPUT -p udp -m conntrack --ctstate NEW -m udp --sport 67 --dport 68 -j ACCEPT

Тестирование и отладка

Просмотр текущей конфигурации для IPv4 и IPv6:

sudo iptables-save
sudo ip6tables-save

Логирование

Трассировка

Модули ядра

Просмотр загруженных модулей:

lsmod | grep -E '^ip|^nf' | sort

Для загрузки дополнительных модулей удобно применять автодополнение: 2xTab

sudo modprobe nf
sudo modprobe ip

Часто используемые модули: nf_conntrack_ftp, nf_conntrack_pptp, nf_conntrack_tftp, nf_nat_pptp.

Автозагрузка модулей:

man modules-load.d

Ссылки

таблицы, цепочки, основы IPTables на пальцах — Information Security Squad

Брандмауэр iptables используется для управления фильтрацией пакетов и правилами NAT.

IPTables поставляется со всеми дистрибутивами Linux.

Понимание того, как установить и настроить iptables, поможет вам эффективно управлять брандмауэром Linux.

Инструмент iptables используется для управления правилами брандмауэра Linux.

На первый взгляд, iptables может показаться сложным (или даже запутанным).

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

Эта статья является частью продолжающейся серии руководств по iptables.

Это не первая статья в этой серии.

В этой статье объясняется, как структурируется iptables, и объясняются основы таблиц, цепочек и правил iptables.

На высоком уровне iptables может содержать несколько таблиц.

Таблицы могут содержать несколько цепочек.

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

Цепочки могут содержать несколько правил.

Правила определены для пакетов.

Итак, структура выглядит так:  iptables -> Tables -> Chains -> Rules.

Это определено на следующей диаграмме.

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

I. IPTABLES Таблицы и Цепочки

IPTables имеет следующие 4 встроенные таблицы.

1. Таблица фильтров ( Filter )

Filter — это таблица по умолчанию iptables.

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

Таблица фильтров Iptables имеет следующие встроенные цепочки.

  • Цепочка INPUT — входящий  траффик в брандмауэр. Для пакетов, поступающих на локальный сервер.
  • Цепочка OUTPUT — исходящий траффик из брандмауэра. Для пакетов, генерируемых локально и выходящих из локального сервера.
  • Цепочка FORWARD — Пакеты для другого сетевого адаптера на локальном сервере. Для пакетов, маршрутизируемых через локальный сервер.

2. NAT таблица

Таблица NAT в Iptables имеет следующие встроенные цепочки.

  • PREROUTING  — изменяет пакеты перед маршрутизацией. Т.е. преобразование пакета происходит сразу после поступления пакета в систему (и до маршрутизации). Это помогает преобразовать IP-адрес назначения пакетов во что-то, что соответствует маршрутизации на локальном сервере. Она используется для DNAT (целевой NAT).
  • Цепочка POSTROUTING — Изменяет пакеты после маршрутизации. Т.е. перевод пакетов происходит, когда пакеты покидают систему. Это помогает преобразовать исходный IP-адрес пакетов во что-то, что может соответствовать маршрутизации на сервер назначения. Она используется для SNAT (источник NAT).
  • Цепочка OUTPUT — NAT для локально сгенерированных пакетов на брандмауэр

🖧 Как навсегда сохранить правила брандмауэра iptables на Linux — Information Security Squad

Я использую сервер Debian / Ubuntu Linux.

Как сохранить правила iptables на постоянной основе в Linux с помощью интерфейса командной строки?

Как сохранить правила IPv4 и IPv6 iptables на облачном сервере Debian Linux?

Постоянное сохранение правил брандмауэра iptables на Linux

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

  • Команда iptables-save или ip6tables-save — сохраняет или выгружает содержимое таблиц IPv4 или IPv6 в легко анализируемом формате на экран или в указанный файл.
  • Команда iptables-restore или команда ip6tables-restore — Восстановление правил и таблиц брандмауэра IPv4 или IPv6 из заданного файла на Linux.

Шаг 1 — Откройте терминал

Откройте приложение терминала и введите следующие команды.

Для входа на удаленный сервер с помощью команды ssh:

$ ssh [email protected]

Вы должны ввести следующую команду от пользователя root, используя команду sudo или su.

Шаг 2. Сохраните правила брандмауэра Linux для IPv4 и IPv6.

Debian и Ubuntu Linux:

$ sudo /sbin/iptables-save > /etc/iptables/rules.v4
## IPv6 ##
$ sudo /sbin/ip6tables-save > /etc/iptables/rules.v6

CentOS / RHEL:

$ sudo /sbin/iptables-save > /etc/sysconfig/iptables
## IPv6 ##
$ sudo /sbin/ip6tables-save > /etc/sysconfig/ip6tables

Отображение сохраненных правил на Linux

Мы можем отобразить сохраненный файл с помощью команды cat или выполнить поиск с помощью команды grep/egrep:

$ cat /etc/iptables/rules.v4

*mangle
 
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
 
 
COMMIT
 
 
*nat
 
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
 
-A POSTROUTING -s 10.8.0.0/24 -m policy --pol none --dir out -j MASQUERADE
 
COMMIT
 
 
*filter
 
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
 
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p esp -j ACCEPT
-A INPUT -p ah -j ACCEPT 
-A INPUT -p icmp --icmp-type echo-request -m hashlimit --hashlimit-upto 5/s --hashlimit-mode srcip --hashlimit-srcmask 32 --hashlimit-name icmp-echo-drop -j ACCEPT
-A INPUT -p udp -m multiport --dports 21194 -j ACCEPT
-A INPUT -p tcp -s 1xx.yy.zz.ttt,10.8.0.0/24,10.8.1.0/24 --dport 22 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp --dport 3128 -d 10.8.0.1 -s 10.8.0.0/24,10.8.1.0/24  -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -d 172.xx.yyy.zzz -p udp --dport 53 -j ACCEPT
-A INPUT -d 172.xx.yyy.z -p udp --dport 53 -j ACCEPT
-A INPUT -i eth0 -m limit --limit 5/min -j LOG --log-prefix "[iptables denied] " --log-level 7
-A FORWARD -s 10.8.0.0/24 -d 10.8.0.0/24 -j DROP
-A OUTPUT -d 10.8.0.0/24 -m owner --gid-owner 15000 -j DROP
-A FORWARD -s 10.8.0.0/24 -d 169

Управление сетевыми пакетами с помощью утилиты iptables на Linux

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

Что это такое?

Iptables — чрезвычайно гибкая утилита межсетевого экрана, предназначенная для операционных систем Linux. Iptables основана на правилах (rules), которые контролируют входящие и исходящие пакеты, а также использует цепочки правил для разрешения или блокировки трафика. По умолчанию никакие правила не установлены, пользователь может создавать, добавлять и редактировать правила.

iptables почти всегда предустановлена на любом дистрибутиве Linux. Чтобы обновить или установить, просто загрузите пакет iptables с помощью пакетного менеджера, например apt-get:

sudo apt-get install iptables

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

Основные конфигурационные файлы:

  • /etc/init.d/iptables – скрипт инициализации для запуска, остановки, перезапуск и сохранения наборов правил;
  • /etc/sysconfig/iptables – файл, в который сохраняются правила;
  • /sbin/iptables – бинарный файл, в котором находится утилита.

В структуре iptables существует 4 таблицы:

  • Filter — таблица по умолчанию;
  • NAT — предназначена для преобразования сетевых адресов;
  • Mangle — предназначена для внесения специализированных изменений в пакеты;
  • Raw — предназначена для конфигурационных исключений.

Filter

Filter — это таблица по умолчанию для iptables. Если вы не определяете собственную таблицу, то будет использоваться эта таблица правил. Таблица Filter использует три разные цепочки: INPUT, FORWARD и OUTPUT.

INPUT Цепочка, которая используется для управления входящими соединениями. Например, если пользователь пытается подключиться по ssh к вашему серверу, iptables попытается сопоставить IP-адрес и порт с правилом в цепочке input.
FORWARD Эта цепочка используется для входящих соединений, которые фактически не доставляются локально. Такая ситуация может возникнуть на маршрутизаторе — данные всегда отправляются на него, но редко на самом деле предназначены для самого маршрутизатора, т.е. маршрутизатор просто перенаправляют данные.
OUTPUT Цепочка, предназначенная для обработки исходящих соединений. Например, если пользователь попытается выполнить команду ping до определенного хоста, то iptables проверит output-цепочку, чтобы разрешить или отклонить попытку подключения.

NAT

Таблица NAT имеет следующие встроенные цепочки: PREROUTING, POSTROUTING, OUTPUT.

PREROUTING Изменяет пакеты перед маршрутизацией. Перенаправление предназначено для пакетов поступающих в систему (например в локальную или частную сеть). Цепочка позволяет определить действительный IP-адрес назначения пакетов. Используется для DNAT (NAT назначения). DNAT изменяет целевой адрес пакета.
POSTROUTING Изменяет пакеты после маршрутизации. Перенаправление предназначено для пакетов покидающих систему. Цепочка подменяет исходный адрес пакетов. Это используется для SNAT (источник NAT). SNAT изменяет исходный адрес пакета.
OUTPUT Изменяет пакеты после маршрутизации. Перенаправление предназначено для локальных пакетов. Цепочка изменяет целевой адрес пакетов.

Правила

Правила содержат критерии и цель.

Если критерии сопоставляются, то действия применяются к целевому объекту.

Если критерии не сопоставляются, то происходит переход к следующему правилу.

Ниже приведены возможные целевые объекты:

ACCEPT Входящий пакет обрабатывается
DROP Входящий пакет отбрасывается, при сканировании порт фильтруется
QUEUE Пакет передается в пользовательское пространство
RETURN Прекращается выполнение набора правил в текущей цепочке для этого пакета, элемент управления возвращается вызывающей цепочке
REJECT Входящий пакет отправляется на адрес источника с информацией, что сервиса не существует
DENY Входящий пакет отбрасывается, ответ не отправляется
NEW Установка нового соединения, первый пакет, который мы видим
RELATED Соединение, связанное с другим, имеющим статус ESTABLISHED
ESTABLISHED Установленное сетевое соединение

Для того, чтобы посмотреть текущую конфигурацию iptables, выполните следующую команду:

iptables --list

Вывод:



Chain INPUT (policy DROP)
target     prot      opt   source       destination
f2b-sshd   tcp       --   anywhere      anywhere         multiport dports ssh
f2b-SSH    tcp       --   anywhere      anywhere         tcp dpt:ssh
ACCEPT     all       --   anywhere      anywhere         state RELATED,ESTABLISHED
ACCEPT     icmp      --   anywhere      anywhere
ACCEPT     all       --   anywhere      anywhere
ACCEPT     tcp       --   anywhere      anywhere         tcp dpt:ssh

Здесь:

  • target — специальная целевая переменная, как видно из вывода, это может быть собственное значение, первые два правила ссылаются на собственные цепочки;
  • prot — протоколы;
  • opt — специальные опции;
  • source — исходный ip-адрес;
  • destination — ip-адрес назначения.

Примечание: по умолчанию правила попадают в таблицу filter.

Чтобы посмотреть правила конкретной таблицы используйте следующую команду:

iptables -t <имя_таблицы> --list

Например:

iptables -t filter --list

Чтобы вывести правила с нумерацией используется дополнительный ключ —line-numbers:

iptables -L --line-numbers

Для создания собственной цепочки используйте команду:

iptables -N <имя_цепочки>

Например:

iptables -N MY_CHAIN

Блокировка ip-адресов

Часто возникает задача блокирования ip-адресов. Например, вы заметили, что IP 11.22.121.122 постоянно пытается атаковать ваш сервер, и вы хотите его заблокировать. Нужно просто заблокировать все входящие пакеты с этого IP-адреса. Чтобы это сделать, нужно добавить следующее правило в цепочку INPUT таблицы filter. В примере имя таблицы указано явно, без использования ключа t правило попадает в таблицу по умолчанию:

iptables -t filter -A INPUT -s 11.22.121.122 -j REJECT

Здесь:

  • t — указывает, в какую таблицу будет входить правило;
  • A — указывает на добавление (Append) правила в цепочку INPUT;
  • s — указывает источник;
  • j — указывает iptables на отклонение трафика с помощью цели REJECT.

Также можете блокировать диапазоны IP-адресов, используя CIDR-нотацию. Если необходимо заблокировать все IP-адреса от 11.22.121.0 до 11.22.121.255, это можно сделать с помощью команды:

iptables -A INPUT -s 11.22.121.0/24 -j REJECT

Если необходимо заблокировать исходящий трафик на конкретный ip, используется цепочка OUTPUT и флаг -d для указания ip-адреса назначения:

iptables -A OUTPUT -d 31.13.78.35 -j DROP

Удаление правил

Теперь, скажем, вы заблокировали IP-адрес 11.22.121.0/24 по ошибке. Чтобы удалить существующее правило используйте команду:

iptables -D INPUT -s 11.22.121.0/24 -j REJECT

Здесь ключ -D (Drop) означает удаление правила из цепочки.

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

iptables -D INPUT 2

Примечание: при удалении правил нумерация изменяется.

Также возможно удалить все правила цепочки — с помощью опции F:

iptables -F INPUT

Вставка и замена правил

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

iptables -I INPUT 1 -s 11.22.121.10 -j ACCEPT

Для замены правила стоящем на определенном месте, необходимо использовать ключ -R. Следующая команда заменит правило стоящее на 1 месте:

iptables -R INPUT 1 -s 11.22.121.11 -j ACCEPT

Протоколы, модули, интерфейсы

Например, чтобы заблокировать весь входящий TCP-трафик, нужно с помощью ключа -p указать протокол следующим образом:

iptables -A INPUT -p tcp -j DROP

Более полезный пример — блокировка доступа по ssh для диапазона ip-адресов. Для начала необходимо сопоставить трафик TCP, как в примере выше. Затем нужно проверить предназначен ли трафик для SSH порта, используя —dport. Таким образом, вся команда будет:

iptables -A INPUT -p tcp --dport 22 -s 11.22.121.0/24 -j DROP

Для того, чтобы заблокировать доступ одновременно и к SSH и VNC для диапазона адресов, нужно использовать модуль multiport и ключ —dports. Команда:

iptables -A INPUT -p tcp -m multiport --dports 22,5901 -s 59.45.175.0/24 -j DROP

Чтобы открыть порт, например 80, для подключения по http, используйте команду:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Для разрешения всех входящих соединений с адаптера, например с eth2, используйте следующее правило:

iptables -A INPUT -i eth2 -j ACCEPT

Пример перенаправления портов

Довольно часто возникает необходимость перенаправления портов и ip-адресов в целях безопасности в локальной сети. Например, чтобы перенаправить трафик с порта 80 сервера, который имеет выход в глобальную сеть, на 85 порт локальной машины.

Для перенаправления необходимо выполнить следующий набор правил:

iptables -t nat -A PREROUTING -d <внешний_ip-адрес> -p tcp -m tcp --dport <порт_подключения> -j DNAT --to-destination <целевой_внутренний_ip-адрес>:<целевой_порт>
iptables -t nat -A POSTROUTING -d <целевой_внутренний_ip-адрес> -p tcp -m tcp --dport <целевой_порт> -j SNAT --to-source <внутренний_ip-адрес_шлюза>
iptables -t nat -A OUTPUT -d <внешний_ip-адрес> -p tcp -m tcp --dport <целевой_порт> -j DNAT --to-destination <целевой_внутренний_ip-адрес>
iptables -I FORWARD 1 -i <внешний_ip-адрес> -o <внутренний_ip-адрес_шлюза> -d <целевой_внутренний_ip-адрес> -p tcp -m tcp --dport <целевой_порт> -j ACCEPT

Например:

iptables -t nat -A PREROUTING -d 11.22.121.10 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.1.2:85
iptables -t nat -A POSTROUTING -d 10.0.1.2 -p tcp -m tcp --dport 85 -j SNAT --to-source 10.0.1.1
iptables -t nat -A OUTPUT -d 11.22.121.10 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.1.2
iptables -I FORWARD 1 -i 11.22.121.10 -o 10.0.1.1 -d 10.0.1.2 -p tcp -m tcp --dport 85 -j ACCEPT

Минимальная конфигурация firewall

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

Примечание: восклицательный знак `!` используется для инверсии правил.

Для начала разрешите все входящие подключения:

iptables --policy INPUT ACCEPT

Затем необходимо очистить все правила Iptables:

iptables -F

Чтобы не потерять соединение по SSH, откройте 22 порт:

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

Следующие правила зависят от ваших потребностей:
Разрешить весь трафик c loopback (lo0):

iptables -A INPUT -i lo -j ACCEPT

Перенаправить трафик на localhost, который исходит не из lo0.

iptables -A INPUT ! -i lo -s 127.0.0.0/8 -j REJECT

Разрешить ping:

iptables -A INPUT -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT

Разрешить соединения HTTP и HTTPS:

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

Разрешить входящий трафик из установленных соединений:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Отклонить все остальные входящие пакеты:

iptables -A INPUT -j REJECT

Сохранение правил

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

На операционных системах Ubuntu и Debian можно использовать утилиту netfilter-persistent (или iptables-persistent):

sudo netfilter-persistent save

Примечание: если у Вас включен uwf, необходимо его отключить:

sudo ufw disable

Для сохранения правил на серверах Centos спользуйте команду:

service iptables save

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


The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

То необходимо отключить firewalld, который введен для управления iptables, установить пакет iptables-services и запустить его:

systemctl stop firewalld
systemctl mask firewalld
yum install iptables-services
systemctl enable iptables
systemctl start iptables
service iptables save

 

P. S. Другие инструкции:

Спасибо за Вашу оценку! К сожалению, проголосовать не получилось. Попробуйте позже

linux — последний модуль iptables — параметр

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

ratelimiting с недавним iptables дает ошибку

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

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

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