The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск пакетного фильтра nftables 1.0.2"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск пакетного фильтра nftables 1.0.2"  +2 +/
Сообщение от opennews (??), 21-Фев-22, 23:38 
Опубликован выпуск пакетного фильтра nftables 1.0.2, унифицирующего интерфейсы фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов (нацелен на замену iptables, ip6table, arptables и ebtables). Необходимые для работы выпуска nftables 1.0.2 изменения включены в состав ядра Linux 5.17-rc...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=56739

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от InuYasha (??), 21-Фев-22, 23:38   +3 +/
Не, забавно, конечно, а может, и удобно. Но каждый раз когда начинают сыпать сахар в синтаксис, возникает ситуация, когда одно и то же можно сделать 10ю способами. И всё.

Не понял немного про точки, но вообще, если правил не тысячи, "до оптимизации" было читать в столбик проще. IMHO, конечно.
      meta iifname . ip saddr . ip daddr { eth1 . 1.1.1.1 . 2.2.2.3, eth1 .
1.1.1.2 . 2.2.2.5 } accept

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #4, #36

2. Сообщение от Аноним (2), 21-Фев-22, 23:40   +/
А ICMP и IGMP не фильтрует что ли?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3

3. Сообщение от llolik (ok), 21-Фев-22, 23:45   +/
Фильтрует. Но для примера лучше самые попсовые.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

4. Сообщение от Аноним (4), 22-Фев-22, 00:04   +5 +/
нам -Н -Е --надо --сахара
команда --должна --напоминать --шашлык
настоящее -Б людо --для "суровых мужиков"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #7

5. Сообщение от Ан (??), 22-Фев-22, 01:10   +4 +/
R
К сожалению, ничего лучше pf в мире брандмауэров до сих пор не придумано.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #10, #19, #31

6. Сообщение от Аноним (6), 22-Фев-22, 01:15   +11 +/
Какой-то ад, по-моему. Пфом по функционалу оно не стало. А синтаксис для среднестатистического админа нетривиален. Вопрос знатокам: а зачем? Это под гуй тулзы делалось, чтоб для погроммистов мышкой писать окошки админам мышкой?

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #8, #12

7. Сообщение от YetAnotherOnanym (ok), 22-Фев-22, 01:21   +1 +/
Отсыпь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

8. Сообщение от Аноним (8), 22-Фев-22, 01:37   +2 +/
Я тут с дебиана 9 на 11 переводил VDSку, так и не разобрался, даже по статьям свежим не работает. В итоге через прослойку iptables сделал. Целый язык-фреймворк придумали. А надо было срочно перейти, т.к. я в команде chmod перед слешем точку не поставил.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #9, #13

9. Сообщение от mumu (ok), 22-Фев-22, 01:49   +/
Через прослойку вполне нормальный подход. Все знакомые так делали. Импорт, экспорт, потом немного править руками (define-ы те же). Всё работает как часы.
Нет ни одной причины что-то там писать с нуля, кроме академической.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #11

10. Сообщение от Azudimemail (??), 22-Фев-22, 02:16   +2 +/
Я вот тоже все поглядываю на замены, но что то не вижу альтернатив..

Вот где еще можно сделать читабельный конфиг, когда у тебя на хосте 2 внешних интерфейса, 5 локальных сетей, 5-6 инстансов OpenPVN со своими ифейсами + MPD который 50 PPPoE сессий поднимает, тонна пробросов на разные сервисы внутри и т.д.. ?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #14, #32, #34, #50

11. Сообщение от Аноним (6), 22-Фев-22, 02:48   +/
Зная о том как пишутся костыли гхм прослойки и прочие трансляторы, я бы переписал с 0. Так спокойнее.

Зы. Посоны, война по ходу началась. Всем соболезную.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #24, #30

12. Сообщение от Аноним (14), 22-Фев-22, 05:38   –1 +/
А по-моему, там всё отлично. Именованные списки sets и maps - очень удобны, жаль только, что не глобальны.
jump, так вообще - вещь, во многих случаях позволяющая избавиться от линейного поиска.
Вот подход линейных портянок pf и ipfilter без каких либо списков, на мой взгляд, не оптимальен - это подход а-ля Cisco acl 20-25 летней давности.
pf пригоден только как хостовый пакетный фильтр, и то часто хотелось бы большего.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #16

13. Сообщение от Аноним (14), 22-Фев-22, 05:48   +/
Кто ж виноват, что Вы не готовились заранее?
Да и правила iptables в большинстве случаев транслируются в nft без проблем, затем доводятся на свой вкус.
sets там просто шикарны.
Я использую такой скрипт для nftables:
<quote>
#!/usr/bin/bash

BACKUP_DIR="/var/backups/nftables"
NFTCONF_SRC="/etc/nftables.conf"

YR=$(date +'%Y')
MN=$(date +'%m')
DY=$(date +'%d')
TM=$(date +'%H%M')

if nft -c -f ${NFTCONF_SRC}; then
    if [[ ! -d ${BACKUP_DIR}/${YR}/${MN} ]]; then
        mkdir -p ${BACKUP_DIR}/${YR}/${MN}
    fi
    cp /etc/nftables.conf ${BACKUP_DIR}/${YR}/${MN}/nftables.conf-${YR}${MN}${DY}-${TM}
    /usr/sbin/nft flush ruleset
    /usr/sbin/nft -f ${NFTCONF_SRC}
    echo '#!/usr/sbin/nft -f' > /etc/nftables.conf
    echo "" >> /etc/nftables.conf
    echo "flush ruleset" >> /etc/nftables.conf
    echo "" >> /etc/nftables.conf
    nft -s list ruleset >> /etc/nftables.conf
fi
</quote>
Это позволяет избежать многих граблей.
В отличие от недоразумений вроде ufw и firewald - оно управляемо, т.к. не вносит гору информационного шума и оставляет возможность оптимизации порядка правил по счётчикам пакетов.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #20

14. Сообщение от Аноним (14), 22-Фев-22, 05:50   –1 +/
Надо структурировать задачи и подойти к её решению со стороны zone based firewall.
nftables позволяет сконструировать что угодно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

15. Сообщение от leap42 (ok), 22-Фев-22, 06:39   +1 +/
Кулсисопы негодуе, а сетевикам - каеф xD
/s
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #21, #29

16. Сообщение от Sw00p aka Jerom (?), 22-Фев-22, 06:52   +/
>jump, так вообще - вещь, во многих случаях позволяющая избавиться от линейного поиска

пример в студию

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #23

17. Сообщение от Аноним (17), 22-Фев-22, 06:55   +3 +/
После systemd хоть камни с неба
Ответить | Правка | Наверх | Cообщить модератору

18. Сообщение от Аноним (18), 22-Фев-22, 08:22   +/
что то не осилил как такую конструкцию втащить?

-A PREROUTING -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name DEFSSH --mask 255.255.255.255 --rsource
-A PREROUTING -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 4 --name DEFSSH --mask 255.255.255.255 --rsource -j DROP

а ещё я в ipset добавляю себя на несколько часов когда удачно по ssh захожу и соответственно есть правило
-A PREROUTING -m set --match-set temp_allow_hosts src -j ACCEPT

кто то пытался такое перетаскивать в nft?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #26, #28

19. Сообщение от Anon090807 (?), 22-Фев-22, 09:42   –2 +/
>К сожалению, ничего лучше iptables в мире брандмауэров до сих пор не придумано.

Поправил тебя. Можешь не благодарить.
P.S. И находятся же еще в мире странные существа, считающие это убожество - pf - пределом мечтаний.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #22, #41

20. Сообщение от Аноним (8), 22-Фев-22, 09:44   +/
А как сделать перенаправление с виртуального /dev/tap_vpn на внешний интерфейс? Т.е. подключаюсь к сети сервера, но чтобы в инет через него?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #25

21. Сообщение от User (??), 22-Фев-22, 10:05   –1 +/
Сетевики, однако, на цисках давно, и даже sdn все нихрена не на голых *tables.
В общем, пионэры идите в...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #42

22. Сообщение от llolik (ok), 22-Фев-22, 10:25   +2 +/
>>К сожалению, ничего лучше iptables в мире брандмауэров до сих пор не придумано.
> Поправил тебя. Можешь не благодарить.

Ну если быть совсем точным, то iptables - это не брандмауэр, а набор управляющих утилит (как и сабжевый nftables). Брэндмауэр - это netfilter и он в ядре.

А по сабжу, лично мне nftables понравился, хотя и некоторые расширения iptebles пока не реализованы ( https://wiki.nftables.org/wiki-nftables/index.php/Supported_... ). Конфиг пишется понятно и довольно интуитивно, через консоль писать километровые команды построчно - задача не обязательная. Из относительных минусов: документацию хотелось-бы более-менее консистентную, а не ситуационную wiki.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19

23. Сообщение от Sultan (?), 22-Фев-22, 10:26   +/
Точно так же, как в iptables. Синтетический пример:
iif eth0 ...
...
iif eth0 ...
iif eth1 ...

меняем на
iif eth0 jump eth0-forward

table eth0 eth0-forward {
   ваши проверки
}

И пакеты не бегают по линейному списку

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #33

24. Сообщение от Sultan (?), 22-Фев-22, 10:29   +/
Что уж, перепишите...
А мне - оно и так работает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

25. Сообщение от Sultan (?), 22-Фев-22, 10:34   +/
Тут сумбур какой-то. Опишите задачу ясней. Половина ответа содержится в правильно сформулированном вопросе.
Если вы приходите по впн, терминируемом сервером, то нужен просто NAT типо такого:
table ip nat {
        set lans {
                type ipv4_addr
                flags interval
                auto-merge
                elements = { 192.168.0.11,
                             192.168.0.12,
                             192.168.0.15-192.168.0.20 }
        }

        chain PREROUTING {
                type nat hook prerouting priority dstnat; policy accept;

        }

        chain INPUT {
                type nat hook input priority 100; policy accept;
        }

        chain POSTROUTING {
                type nat hook postrouting priority srcnat; policy accept;
                oif "eno2" ip saddr @lans counter masquerade
        }

        chain OUTPUT {
                type nat hook output priority -100; policy accept;
        }
}

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20 Ответы: #43, #44

26. Сообщение от Аноним (4), 22-Фев-22, 10:36   +/
https://stackoverflow.com/a/69178498 например
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

27. Сообщение от Аноним (27), 22-Фев-22, 10:42   +3 +/
Шли годы...
А документации по nftables (нет, пара кривых, устаревших вики-страниц - это не она) так и не появлялось.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #39, #53

28. Сообщение от Sultan (?), 22-Фев-22, 11:09   +/
С ipset надо переписывать на named sets и named maps. Например:

-A PREROUTING -m set --match-set temp_allow_hosts src -j ACCEPT
надо переписать на named sets

table ip nat {
        set temp_allow_hosts {
                type ipv4_addr
                flags interval
                auto-merge
                elements = { 192.0.0.0/24, 192.168.0.0/24,
                             192.168.10.0/24, 192.168.20.0/24,
                             192.168.251.0-192.168.254.255 }
        }
...
        chain POSTROUTING {
                ip saddr @temp_allow_hosts counter accept
        }
...
}

Изучайте документацию - там всё есть.
Есть и недостаток - пока переписаны не все модули.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

29. Сообщение от Sultan (?), 22-Фев-22, 11:10   +/
Один из немногих вменяемых фильтров пакетов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

30. Сообщение от Sultan (?), 22-Фев-22, 11:22   +/
Там сложность в том, что в iptables куча сторонних модулей, трансляцию синтаксиса которых...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

31. Сообщение от Аноним (31), 22-Фев-22, 11:40   –2 +/
Agnitum Outpost Firewall
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

32. Сообщение от Аноним (32), 22-Фев-22, 11:55   –4 +/
>MPD который 50 PPPoE сессий поднимает

*  media-sound/mpd
Latest version available:
Latest version installed: [ Not Installed ]
Size of files: 710 KiB
Homepage:      https://www.musicpd.org https://github.com/MusicPlayerDaemon/MPD
Description:   The Music Player Daemon (mpd)
License:       GPL-2
Шта?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #35

33. Сообщение от Sw00p aka Jerom (?), 22-Фев-22, 12:08   +/
>[оверквотинг удален]
> iif eth0 ...
> ...
> iif eth0 ...
> iif eth1 ...
> меняем на
> iif eth0 jump eth0-forward
> table eth0 eth0-forward {
>    ваши проверки
> }
> И пакеты не бегают по линейному списку

это что за пример? по какому линейному списку если правила форвардинга никак не пересекаются с правилами фильтрации. Давайте конкретный полный пример, как с реализацией в iptables так и с nftables.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #37

34. Сообщение от pfg21 (ok), 22-Фев-22, 12:26   +/
дык проще простого, пиши програмку с читабельным конфигом, которая компеляет ентот человекочитаблеьный конфиг в байт-код nft. и все будет оке.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

35. Сообщение от Sin2x (ok), 22-Фев-22, 12:28   +4 +/
http://mpd.sourceforge.net/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

36. Сообщение от Аноним (36), 22-Фев-22, 12:59   +/
> Не понял немного про точки

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

37. Сообщение от Sultan (?), 22-Фев-22, 13:09   –2 +/
Правила могут пересекаться как для разных интерфейсов, так и для сервисов.
В гугле всё есть - идите и берите "полный пример".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33

38. Сообщение от March_13 (?), 22-Фев-22, 13:12   +/
Раз уж упомянули... скажите, а вы SCTP часто используете?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #40

39. Сообщение от Аноним (39), 22-Фев-22, 13:54   –2 +/
man nft
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

40. Сообщение от Аноним (32), 22-Фев-22, 14:02   +/
Я сказал демону sshd использовать SCTP. Работает. Но не тестировал пропускную способность по сранению с TCP.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

41. Сообщение от Azudim (??), 22-Фев-22, 14:49   +/
А есть возможность с IPTABLES прослушать трафик на всех портах разом и выяснить какое правило iptables блокирует/разрешает прохождение пакета? Или просто, какие правила пакет проходит и на каких интерфейсах?


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #45

42. Сообщение от leap42 (ok), 22-Фев-22, 16:22   +1 +/
> В общем, пионэры идите в...

Пиоэнэры админят свои циски (привет 90е) с венды через pussy.exe, пока профи сидят на линухах (на которых тож внезапно есь огнестена, и давно перешли на жуники). Да и на серваках firewall в приличных конторах настраивает сетевик, а не кулсисоп, как в вашей богадельне.

/s

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #46

43. Сообщение от Аноним (43), 22-Фев-22, 16:30   –1 +/
При запуске сервера запускается это:
ip address add 192.168.250.1/24 dev tap_vb0
iptables -t nat -A POSTROUTING -s 192.168.250.0/24 -j SNAT --to-source 8x.14x.4x.20x
и как это через nft?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #47

44. Сообщение от Аноним (43), 22-Фев-22, 16:32   +/
и dnsmasq занимается динамическими IP
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25

45. Сообщение от Аноним (4), 22-Фев-22, 18:31   +/
modprobe nf_log
iptables -t raw -I PREROUTING <критерий выбора пакета> -j TRACE
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #51

46. Сообщение от User (??), 23-Фев-22, 07:19   +/
> Пиоэнэры админят свои циски (привет 90е) с венды через pussy.exe,

Вы так говорите, как будто в этом есть что-то плохое)
> Да и на серваках firewall в приличных конторах настраивает сетевик, а не кулсисоп, как в вашей богадельне.

Ага. На всех трех. Настраивает и настраивает, настраивает и настраивает, наяривает... В перерывах между извлечением застрявшей бумаги из принтера и переносом монитора Зинаиды Васильевны от окна чтоб не дуло.
Firewall. На серваках. Сетевики. В 2022. Ъ.
В худшем случае это какой нибудь ansible по всему зоопарку делает, в более ином вообще ни файрволла ни серваков - одна оркестрашка в облаке...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #52

47. Сообщение от Аноним (47), 24-Фев-22, 11:07   +/
table inet filter {
...
set nat {
        type ipv4_addr
        flags interval
        elements = {
                192.168.1.0/24,
                192.168.250.0/24
        }

...
    chain POSTROUTING {
        type nat hook postrouting priority srcnat; policy accept;
        oifname "OUT_INTERFACE" ip saddr @nat counter snat to 8x.14x.4x.20x
    }
}

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

50. Сообщение от пох. (?), 03-Мрт-22, 10:18   +/
Ну если на мир смотреть через дырку в сортире, кроме жопы ничего и не видно.

> MPD который 50 PPPoE сессий поднимает

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

Нет pppoe, нет половины проблемы. А остальное можно оставить в pf.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

51. Сообщение от пох. (?), 03-Мрт-22, 13:04   +/
только nf_log_ipv4

(угу, очередное поулучшайкали)

sysctl который это активировал, соответственно, стал ненужен.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45

52. Сообщение от пох. (?), 03-Мрт-22, 13:09   +/
> одна оркестрашка в облаке...

и сплошной ALLOW для всех.

А потом нвидия такая "ой, даже верилоги поперли!" - кто бы мог подумать, да и было ли, чем.
(особенно учитывая что кульхацкеры ТОЖЕ не смогли - правда "зато у нас есть бэкап!")


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

53. Сообщение от пох. (?), 03-Мрт-22, 13:11   +/
как будто документация по iptables была чем-то хороша?

Последней качественной линуксной документацией был LARTC. Причем и тот вызывал плевки и перекошенные рожи кодерков "нэ так всэ это было, нэ так!" - поскольку писали его методом реверса, проб и ошибок. Кодеркам было некогда писать документацию, надо было быстрее-быстрее еще что-то поломать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру