Nftables — различия между версиями
PastorDi (обсуждение | вклад) (Новая страница: «== Немного о nftables (файрвол) == В Rosa Server по умолчанию iptables заменен на nftables. nftables — проект netfi…») |
PastorDi (обсуждение | вклад) |
||
Строка 38: | Строка 38: | ||
* {{Источник|output}} : пакеты, исходящие из локальной системы, попадают в это правило. | * {{Источник|output}} : пакеты, исходящие из локальной системы, попадают в это правило. | ||
* {{Источник|postrouting}} : эта ловушка возникает после того, как решение о маршрутизации было принято, все пакеты, покидающие машину, попадают в это правило. | * {{Источник|postrouting}} : эта ловушка возникает после того, как решение о маршрутизации было принято, все пакеты, покидающие машину, попадают в это правило. | ||
+ | * {{Источник|priority}} - относится к числу, используемому для упорядочивания цепочек или для установки их между некоторыми операциями. | ||
+ | * {{Источник|policy}} - это утверждение для тех пакетов, которые явно не приняты или отклонены в содержащихся правилах. | ||
+ | ** accept : принять пакет. | ||
+ | ** drop : отбросить пакет. | ||
+ | ** queue : поставить пакет в очередь в пользовательское пространство и остановить оценку набора правил.. | ||
+ | ** continue: продолжение | ||
+ | ** return : возврат из текущей цепочки и переход к следующему правилу последней цепочки. В базовой цепочке это эквивалентно accept. | ||
+ | |||
+ | '''Правила (rules)''': | ||
+ | |||
+ | rule - определяют, какое действие необходимо выполнить для каких пакетов. Правила прикреплены к цепочкам . Каждое правило может иметь выражение для сопоставления пакетов и одно или несколько действий, выполняемых при сопоставлении. | ||
+ | |||
+ | statements - представляют собой действие, которое должно быть выполнено при совпадении правила. | ||
+ | * accept : принять пакет и остановить оценку набора правил. | ||
+ | * drop : отбросить пакет и остановить оценку набора правил. | ||
+ | * reject : отклонить пакет с сообщением icmp. | ||
+ | * queue: поставить пакет в очередь в пользовательское пространство и остановить оценку набора правил. | ||
+ | * continue: продолжить | ||
+ | * return : возврат из текущей цепочки и переход к следующему правилу последней цепочки. В базовой цепочке это эквивалентно accept. | ||
+ | * jump : продолжить с первого правила . Он будет продолжен в следующем правиле после выдачи оператора возврата. | ||
+ | * goto : аналогично прыжку, но после новой цепочки оценка продолжится с последней цепочки вместо той, которая содержит оператор goto. | ||
+ | * handle - внутренний номер индентифицирующий определенное правило. | ||
+ | * position - это внутренний номер используемый для вставки правил до пределенного handle. | ||
+ | |||
+ | == Установка Nftables == | ||
+ | |||
+ | В Rosa Server/Desktop по умолчанию уже установлен nftables. | ||
+ | |||
+ | Если по каким-то причинам его нет, можно установить следующей командой: | ||
+ | dnf install nftables | ||
+ | |||
+ | Запуск сервиса nftables: | ||
+ | systemctl start ntfables.service | ||
+ | |||
+ | Чтобы включить его запуск при старте системы: | ||
+ | systemctl enable nftables.service | ||
+ | |||
+ | == Работа с nftables == | ||
+ | |||
+ | kkk |
Версия 12:45, 7 марта 2023
Немного о nftables (файрвол)
В Rosa Server по умолчанию iptables заменен на nftables.
nftables — проект netfilter, целью которого ставится замена существующего набора межсетевых экранов iptables/ip6tables/arptables. Была разработана новая система фильтрации пакетов, добавлена пользовательская утилита ntf, а также создан слой совместимости с iptables/ip6tables. nftables использует набор хуков, систему отслеживания соединений, систему очередей и подсистему логирования netfilter.
Как и iptables, nftables построен на правилах, определяющих действия. Эти правила содержаться в таблицах (table), к которым прикреплены цепочки (chain). Цепочка может содержать набор правил и исполняется в хуках (hook) netfilter. Таблица специфична для каждого из протоколов (arp/ipv4/ipv6). Одно из основных отличий iptables заключается в том, что больше нет предопределенных таблиц и цепочек.
Таблицы:
- table - это контейнер для ваших цепочек (chain).
Семейства таблиц:
- ip : используется для цепочек, связанных с IPv4.
- ip6 : используется для цепочек, связанных с IPv6.
- arp : используется для цепочек, связанных с ARP.
- bridge : используется для соединения связанных цепей.
- inet : смешанные цепочки ipv4 / ipv6 (ядро 3.14 и выше).
- netdev : используется для цепочек, которые фильтруют в начале стека (ядро 4.2 и выше).
Цепочки (chain):
- chain - используются для группировки правил.
- base chain - имеет зарегистрированный крючок, тип и приоритет.
- other chain - не привязаны к хуку и по умолчанию не видят никакого трафика.
Существует три вида цепочек:
- filter - стандартный тип. фильтрует пакеты
- nat - протоколы ip/ip6/inet. хуки prerouting, input, output, postrouting. преобразование NAT
- route - протоколы ip/ip6. хуки output. маршрутизация
Хук (hook):
hook - это представление того, где происходит обработка, на каком этапе.
- prerouting : это происходит до принятия решения о маршрутизации, все пакеты, входящие в машину, попадают в это правило.
- input : все пакеты для локальной системы попадают в это правило.
- forward : пакеты не для локальной системы, те, которые необходимо пересылать, попадают в это правило.
- output : пакеты, исходящие из локальной системы, попадают в это правило.
- postrouting : эта ловушка возникает после того, как решение о маршрутизации было принято, все пакеты, покидающие машину, попадают в это правило.
- priority - относится к числу, используемому для упорядочивания цепочек или для установки их между некоторыми операциями.
- policy - это утверждение для тех пакетов, которые явно не приняты или отклонены в содержащихся правилах.
- accept : принять пакет.
- drop : отбросить пакет.
- queue : поставить пакет в очередь в пользовательское пространство и остановить оценку набора правил..
- continue: продолжение
- return : возврат из текущей цепочки и переход к следующему правилу последней цепочки. В базовой цепочке это эквивалентно accept.
Правила (rules):
rule - определяют, какое действие необходимо выполнить для каких пакетов. Правила прикреплены к цепочкам . Каждое правило может иметь выражение для сопоставления пакетов и одно или несколько действий, выполняемых при сопоставлении.
statements - представляют собой действие, которое должно быть выполнено при совпадении правила.
- accept : принять пакет и остановить оценку набора правил.
- drop : отбросить пакет и остановить оценку набора правил.
- reject : отклонить пакет с сообщением icmp.
- queue: поставить пакет в очередь в пользовательское пространство и остановить оценку набора правил.
- continue: продолжить
- return : возврат из текущей цепочки и переход к следующему правилу последней цепочки. В базовой цепочке это эквивалентно accept.
- jump : продолжить с первого правила . Он будет продолжен в следующем правиле после выдачи оператора возврата.
- goto : аналогично прыжку, но после новой цепочки оценка продолжится с последней цепочки вместо той, которая содержит оператор goto.
- handle - внутренний номер индентифицирующий определенное правило.
- position - это внутренний номер используемый для вставки правил до пределенного handle.
Установка Nftables
В Rosa Server/Desktop по умолчанию уже установлен nftables.
Если по каким-то причинам его нет, можно установить следующей командой:
dnf install nftables
Запуск сервиса nftables:
systemctl start ntfables.service
Чтобы включить его запуск при старте системы:
systemctl enable nftables.service
Работа с nftables
kkk