The OpenNET Project / Index page

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

Выпуск пакетного фильтра nftables 0.9.7

29.10.2020 11:50

Опубликован выпуск пакетного фильтра nftables 0.9.7, развивающегося в качестве замены iptables, ip6table, arptables и ebtables за счёт унификации интерфейсов фильтрации пакетов для IPv4, IPv6, ARP и сетевых мостов. В пакет nftables входят компоненты пакетного фильтра, работающие в пространстве пользователя, в то время как на уровне ядра работу обеспечивает подсистема nf_tables, входящая в состав ядра Linux начиная с выпуска 3.13. Необходимые для работы выпуска nftables 0.9.7 изменения включены в состав ядра Linux 5.10-rc1.

На уровне ядра предоставляется лишь общий интерфейс, не зависящий от конкретного протокола и предоставляющий базовые функции извлечения данных из пакетов, выполнения операций с данными и управления потоком. Непосредственно правила фильтрации и специфичные для протоколов обработчики компилируются в байткод в пространстве пользователя, после чего данный байткод загружается в ядро при помощи интерфейса Netlink и выполняется в ядре в специальной виртуальной машине, напоминающей BPF (Berkeley Packet Filters). Подобный подход позволяет значительно сократить размер кода фильтрации, работающего на уровне ядра и вынести все функции разбора правил и логики работы с протоколами в пространство пользователя.

Основные новшества:

  • Поддержка неявных цепочек, которые создаются динамически. При удалении связанного с неявной цепочкой правила автоматически удаляется и сама цепочка. Например, теперь можно группировать правила без необходимости отдельного определения цепочек:
    
      table inet x {
            chain y {
                 type filter hook input priority 0;
                 tcp dport 22 jump {
                        ip saddr { 127.0.0.0/8, 172.23.0.0/16, 192.168.13.0/24 } accept
                        ip6 saddr ::1/128 accept;
                 }
            }
      }
    
  • Поддержка цепочек "ingress" для семейства протоколов inet (охватывает сразу IPv4 и IPv6), позволяющих фильтровать пакеты IPv4 и IPv6 на том же уровне, что ingress-обработчик в цепочке netdev (hook ingress), т.е. на стадии когда драйвер передаёт пакет сетевому стеку ядра. Для использования ingress-цепочек требуется ядро 5.10-rc1, в котором появились необходимые обработчики. Предоставленная возможность позволяет использовать общие set- и map-списки с цепочками prerouting, input, forward, output и postrouting, например:
    
        table inet filter {
                chain ingress {
                        type filter hook ingress device "veth0" priority filter; policy accept;  }
                chain input {
                        type filter hook input priority filter; policy accept;
                }
                chain forward {
                        type filter hook forward priority filter; policy accept;
                }
        }
    
  • Добавлена возможность отклонения пакетов на стадии до проверки маршрутизации - выражение REJECT теперь может использоваться не только в цепочках INPUT, FORWARD и OUTPUT, но и на стадии PREROUTING:
    
      table inet x {
          chain y {
                type filter hook prerouting priority 0; policy accept;
    
                tcp dport 22 reject with tcp reset
          }
      }
    
  • Добавлен режим сокращённого вывода в формате JSON, активируемый при указании опции "--terse" (исключает элементы set-списков при отображении правил):
    
       nft --terse -j list ruleset
    
  • При выводе в JSON ("-j") обеспечено отображение значений счётчиков для set-списков:
    
       nft -j list set
    
  • Добавлена возможность сброса счётчиков командой "reset" вместе с выводом в формате JSON:
    
       nft -j reset counters
    
  • Предоставления возможность сопоставления слушающих сокетов по маске (socket wildcard):
    
      table inet x {
           chain y {
                 type filter hook prerouting priority -150; policy accept;
                 socket transparent 1 socket wildcard 0 mark set 0x00000001
           }
      }
    
  • Добавлена возможность извлечения элементов map-списка:
    
      nft get element inet filter test "{ 18.51.100.17 . ad:c1:ac:c0:ce:c0 . 3761 : 0x42 }"  table inet filter {
            map test {
                    type ipv4_addr . ether_addr . inet_service : mark
                    flags interval,timeout
                    elements = { 18.51.100.17 . ad:c1:ac:c0:ce:c0 . 3761 : 0x00000042 }
            }
      }
    
  • Добавлена поддержка комментариев в set-списках, так же как в таблицах и stateful-объектах (квоты, ограничения, счётчики):
    
       table ip x {
            set s {
                    type ipv4_addr;
                    comment "list of unwanted traffic by IP address"
                    elements = { 1.1.1.1, 1.2.3.4 }
            }
       }
    
  • Реализована возможность определения пустых set-списков в переменных:
    
      define BASE_ALLOWED_INCOMING_TCP_PORTS = {22, 80, 443}
      define EXTRA_ALLOWED_INCOMING_TCP_PORTS = {}
    
      table inet x {
           chain y {
                type filter hook input priority 0; policy drop;
                ct state new tcp dport { $BASE_ALLOWED_INCOMING_TCP_PORTS, $EXTRA_ALLOWED_INCOMING_TCP_PORTS } counter accept  }
      }
    
  • Предоставлена возможность использования переменных в строках, определяющих префикс записей в логе:
    
      define foo= "state"
      define bar = "match"
    
      table x {
            chain y {
                ct state invalid log prefix "invalid $foo $bar:"
            }
      }
    
  • Предоставлена возможность использования переменных в определениях цепочек и flowtable:
    
      define if_main = lo
    
      table netdev x {
            chain y {
                type filter hook ingress device $if_main priority -500; policy accept;
            }
      }
    
  • Разрешено указание отрицательных значений в переменных:
    
      define post = -10
      define for = "filter - 100"
    
      table inet global {
          chain forward {
              type filter hook prerouting priority $for
              policy accept
          }
          chain postrouting {
              type filter hook postrouting priority $post
              policy accept
          }
      }
    
  • Улучшена пометка ошибок в выражениях. Например, при отсутствии цепочки будет подсвечено проблемное имя:
    
    
       # nft add rule x y jump test
       Error: Could not process rule: No such file or directory
       add rule x y jump test
                         ^^^^
    
  • Реализована поддержка трансляции адресов (NAT) для SCTP, не учитывающая состояние соединения (stateless).


  1. Главная ссылка к новости (https://www.mail-archive.com/n...)
  2. OpenNews: Выпуск пакетного фильтра nftables 0.9.5
  3. OpenNews: Релиз сетевого конфигуратора NetworkManager 1.26.0
  4. OpenNews: Релиз ядра Linux 5.9
  5. OpenNews: В ядре Linux 5.7 будут ускорены сложные сопоставления по спискам в NetFilter
  6. OpenNews: В Debian 11 предлагается по умолчанию задействовать nftables и firewalld
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/53984-nftables
Ключевые слова: nftables, netfilter, linux
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (101) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, InuYasha (??), 12:12, 29/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    Хоть в своё время я с ним и посношался приличное время, но всё равно оценил. НФТ - это реально шаг вперёд.
    >Улучшена пометка ошибок в выражениях.

    Где вы были раньше... (T_T)

     
     
  • 2.17, timur.davletshin (ok), 14:57, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Молодец! Большой прогресс. Год назад ты не мог модули ядра скомпилировать.
     
     
  • 3.30, InuYasha (??), 17:22, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Молодец! Большой прогресс. Год назад ты не мог модули ядра скомпилировать.

    Давай сегодня без клеветы, ок?

     
     
  • 4.40, timur.davletshin (ok), 20:37, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >> Молодец! Большой прогресс. Год назад ты не мог модули ядра скомпилировать.
    > Давай сегодня без клеветы, ок?

    Ноут тот уже настроил?

     

  • 1.2, Аноним (2), 12:27, 29/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    table, set, define, test...

    Бл, какое-то программирование сплошное. Раньше все так легко админилось в линухе простыми конфигами, а теперь все больше чувствуешь себя кодером и хацкером...

     
     
  • 2.4, Аноним (4), 13:08, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    все это что? Конфиг sendmail, который компилять надо? Конфиг nginx, на котором программировать пытаются? Конфиг того же апача вот прям простой с учетом всех возможностей?
     
     
  • 3.5, Аноним (5), 13:35, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Так то сейчас на конфиге нжинкс пытаются девушку заменить. А раньше в советские времена оно было понятно и просто.
     
     
  • 4.11, Аноним (11), 14:22, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Это когда вместо канплюктеров считали на счётах, арифмометрах и логарифмических линейках?
    А вы точно арифмометр осилите?
     
     
  • 5.29, InuYasha (??), 17:22, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот на счёты не наезжай, да??
     
  • 2.8, Аноним (11), 14:09, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Бл, какое-то программирование сплошное. Раньше все так легко админилось в линухе простыми конфигами, а теперь все больше чувствуешь себя кодером и хацкером...

    Это вам к Поттерингу, пятая дверь направо.
    Если вы его хорошо попросите, он придёт и заменит весь кодинг на простые ini-файлы.

     
  • 2.27, псевдонимус (?), 16:47, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты дурак или прикидываешься?
     
  • 2.77, BorichL (?), 15:54, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ой, какие мы нежные, нам бы всё галочки мышком потыкивать....
    Когда предыдущую версию dbmail c PostgreSQL ставил, пришлось запросы в исходниках править, чтоб заработало, ничего в этом страшного нет. А уж сколько раз конторский сайтец приходилось править по мере выхода новых пыхопыхов...
     

  • 1.3, Random (??), 12:53, 29/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Им бы вменяемую документацию...
     
     
  • 2.7, Имя (?), 14:01, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_
     
     
  • 3.22, funtt (?), 15:59, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Там же написано: "вменяемую".
     
  • 2.57, Аноним (57), 23:26, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    man nft который идёт в комплекте вроде бы соответствует последней версии
     

  • 1.6, macfaq (?), 13:58, 29/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто реально пользовался - оно только кажется переусложнённым нечто или так и есть?
     
     
  • 2.9, Аноним (9), 14:18, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ipchains был лучше
     
     
  • 3.15, Дедушка (?), 14:42, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    При ipchains-то у меня х.. стоял!
     
  • 2.23, EuPhobos (ok), 16:22, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нужно главное в голове закрепить, что это не iptables.
    Если включить логику, nft сразу становится понятен и гибок.
     
     
  • 3.28, псевдонимус (?), 16:52, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Одно из преимуществ Линукс - крутой пакетный фильтр кануло в небытие.  А линуксоиды, как Алкснис: стоят вместе с пингвинами, улыбаются и машут :-(
     
  • 3.36, Аноним (2), 20:03, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >гибок

    Гибуч!

     
     
  • 4.47, псевдонимус (?), 21:58, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Злогибуч.%0A
     
  • 2.31, Аноним (31), 17:26, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не, не сложно. Легко преобразуются из iptables правила и все.)
     
     
  • 3.49, псевдонимус (?), 22:00, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Магия, да? И ты ей радуешься :-(
     
  • 3.69, Аноним (69), 09:13, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Простите, как из iptables в nftables переписать очень актуальное правило

    iptables -A INPUT -p tcp -m tcp --sport 80 -m string --string "Location: http://lawfilter." --algo bm --to 65535 -j DROP

    ?

     
     
  • 4.70, llolik (ok), 09:51, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Простите, как из iptables в nftables переписать очень актуальное правило

    Пока никак. string extension ещё пока не реализован (consider native interface)
    https://wiki.nftables.org/wiki-nftables/index.php/Supported_features_compared_

     
  • 3.91, Random (??), 11:12, 31/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Какой эквивалент для таргета TTL?
     
     
  • 4.98, Takishima (ok), 19:18, 31/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Какой эквивалент для таргета TTL?

    Например, так (будет работать и для локальных пакетов, и форварженных):

    table ip mangle {
      chain postrouting {
        type filter hook postrouting priority mangle
        policy accept

        ip daddr 1.1.1.1 ip ttl set 68
      }
    }

    Читаем в man nft:

       EXTENSION HEADER STATEMENT
               extension_header_expression set value

    В данном случае — "ip ttl" это и есть extension_header_expression

     
     
  • 5.99, Random (??), 00:31, 01/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, уже неплохо, хотя из мана это неочевидно (ещё раз к вопросу о вменяемой документации).
    Но хотелось бы не столько "--ttl-set", сколько "--ttl-inc" (типа, скрыть от трассировки dnat'ящий хост)

     
     
  • 6.103, Takishima (ok), 00:56, 01/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну я кроме мана не использовал ничего Хз, какая должна быть вменяемая Разве чт... большой текст свёрнут, показать
     
     
  • 7.104, Random (??), 01:16, 01/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > От трассировки можно, например, просто дропать исходящие icmp ttl exceeded. Это самое
    > простое и дубовое.

    А вот чтобы была красивая трассировка до цели, но dnat'ящий хост в ней не отображался - не было "двойного" ответа от целевого ip, при этом был ответ именно от цели (напр., для диагностики/мониторинга).

    > Или можно дропать пакеты с маленьким ttl, т.к. это в 99.99% трейсроут,
    > а в остальных случаях они и так не нужны уже.

    А также дропать пакеты с большим ttl, т.к. это в 99.99% скан, а src заносить в афроамериканский список.

     
  • 2.54, comrade (ok), 22:22, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > оно только кажется переусложнённым нечто или так и есть?

    А разница какая? Результат один - придётся с ним иметь дело.

     
     
  • 3.96, macfaq (?), 16:59, 31/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> оно только кажется переусложнённым нечто или так и есть?
    > А разница какая? Результат один - придётся с ним иметь дело.

    Одна даёт, другая дразнится. Для себя интересуюсь, в ближайшем будущем я с nft вряд ли что-то делать буду, а лёгкий интерес есть.

     

  • 1.10, б.б. (?), 14:18, 29/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    как в этой штуке сделать NAT? вместо обычного iptables -t nat -j MASQUERADE -A POSTROUTING
     
     
  • 2.12, Аноним (11), 14:27, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https://wiki.archlinux.org/index.php/Nftables_(п═я┐я│я│п╨п╦п╧)#п°п╟я│п╨п╟я─п╟п╢п╦п╫пЁ
     
     
  • 3.13, Аноним (11), 14:29, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Какие всё-таки кривые у Чиркова руки... Не можешь корректно обработать URL — так хотя бы не вандаль его.

    https://shorturl.at/aAOPT

     
     
  • 4.18, антифрактал (?), 15:20, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ты ж не донатишь ему, отсюда такие спецэффекты
     
     
  • 5.19, Аноним (11), 15:29, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кривизна рук от донатов не зависит.

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

     
  • 5.24, Аноним (24), 16:37, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Этому багу по меньшей мере лет 10, и то, скорее всего раньше я не замечал. Если бы это был не перл поверх фряхи с кои8р, оно бы даже прошло незамеченным.
     
     
  • 6.42, Аноним (-), 20:53, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Если бы это был не перл поверх фряхи с кои8р, оно бы даже прошло незамеченным.

    Там уже пару лет пингвинчик, если что.


     
     
  • 7.45, Аноним (24), 21:20, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> Если бы это был не перл поверх фряхи с кои8р, оно бы даже прошло незамеченным.
    > Там уже пару лет пингвинчик, если что.

    Правда? Я это пропустил. Ну, тогда не понятно, почему бы уже не использовать юникод, в конце концов, можно всё сконвертировать автоматически -- данных там не так чтобы много за 25 лет накопилось.

     
  • 6.51, псевдонимус (?), 22:10, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Этому багу по меньшей мере лет 10, и то, скорее всего раньше
    > я не замечал. Если бы это был не перл поверх фряхи
    > с кои8р, оно бы даже прошло незамеченным.

    Тут копейкаосб с протухшими шляпными патчами. Ынтырпрайз.

     
  • 4.37, Аноним (2), 20:04, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У меня не работает ссылка. Перебрасывает на главную просто.
     
  • 4.38, Аноним (38), 20:14, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    по твоему шортурл тоже какая-то лажа
     
  • 4.39, Аноним (39), 20:32, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В данном случае вы вставили ссылку без экранирования unicode-символов (браузеры помещают в буфер обмена кривую ссылку, если копировать не весь URL).
    Нормальные ссылки отображаются нормально, например https://ru.wikipedia.org/wiki/%D0%93%D0%B8%D0%BF

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

     
     
  • 5.62, Аноним (-), 00:21, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Нормальные ссылки для людей выглядят так: https://ru.wikipedia.org/wiki/Гиперссылка
    %D0%93%D0%... оставьте роботам, пожалуйста.
     
     
  • 6.68, Аноним (39), 07:36, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Национальные символы в URL подлежат обязательному экранированию https tools ie... большой текст свёрнут, показать
     
  • 6.75, пох. (?), 14:15, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    нормальные ссылки для людей вообще-то выглядят так https ru wikipedia org wik... большой текст свёрнут, показать
     
  • 4.43, Ordu (ok), 20:58, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    shorturl не работает. Но iconv -f utf-8 -t koi8-r может справиться с теми кракозяблами в url'е.
     
  • 2.14, Аноним (9), 14:33, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    nft add rule nat postrouting masquerade
     
     
  • 3.20, Аноним (11), 15:33, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Только сначала нужно определить таблицу nat и цепочку postrouting.

    nft — не дубовый iptables, здесь можно создавать таблицы и цепочки с любыми именами. Важен только тип таблицы (ip, ip6, inet), хук цепочки (prerouting, input, forward, output, postrouting) и приоритет цепочки в хуке.
    В iptables это было жёстко забито без возможности изменить.

     
     
  • 4.21, б.б. (?), 15:58, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >  Только сначала нужно определить таблицу nat и цепочку postrouting.

    а как?

     
     
  • 5.52, псевдонимус (?), 22:13, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>  Только сначала нужно определить таблицу nat и цепочку postrouting.
    > а как?

    С помощью волшебной палочки или цветика-семицветика это делается сполпинка.

     
  • 4.55, comrade (ok), 22:26, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В iptables это было жёстко забито без возможности изменить

    И добавить необходимое было ну никак нельзя. Решили заново задизайнить.

     
     
  • 5.60, пох. (?), 00:03, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Так это и не было необходимым. Какая кому печаль что ты не можешь придумать нескучное имячко вместо FORWARD или nat ? Пользы тому кто будет разгребать за тобой - кстати, немало - потому что ему не придется гадать, что это такое и в каком месте срабатывает.

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

     
     
  • 6.64, б.б. (?), 03:14, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    фишка в том, что у меня эти команды ситуативны. я как 15 лет назад её забивал по обстоятельствам, так и сейчас забиваю на разных компьютерах - они там требуются разово, на конкретной ситуации, и на разные интерфейсы - иногда даже на разные интерфейсы в одном сеансе. и последние 15 лет это работало. а в последние пару недель просто сломалось - например, у меня есть debian sid, обновлённый несколько недель назад, с ядром 5.8.0-2. и debian testing, с ядром 5.8.0-3. в первом echo 1 / /proc/sys...forwarding и iptables nat работают, а во втором - нет, не работают обе команды. хотя несколько недель назад тоже работали. в альте сизиф тоже не работают обе команды. нужна конкретная команда, которую я могу ввести на любом современном linux, как я 15 лет до этого вводил прошлую команду. настраивать 10 компьютеров на все возможные интерфейсы мне, честно говоря, не хочется - до этого всё работало прекрасно.
     
     
  • 7.74, пох. (?), 14:02, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > недель просто сломалось - например, у меня есть debian sid, обновлённый
    > несколько недель назад, с ядром 5.8.0-2. и debian testing, с ядром
    > 5.8.0-3. в первом echo 1 / /proc/sys...forwarding и iptables nat работают,
    > а во втором - нет, не работают обе команды. хотя несколько

    потому что во втором эти команды - кривовраппер. Но тебе вообще-то никто не мешал поставить правильный пакет - он еще есть. И alternatives за тебя перепишет, и разжует. И даже в рот положит. Но это не путь модного джедая.

    > команды. нужна конкретная команда, которую я могу ввести на любом современном
    > linux, как я 15 лет до этого вводил прошлую команду. настраивать

    ааа, так то на современном, а ты-то про какой-то там де6иллиан 1990го года. Записывай: ufw allow ssh
    (ну или что там у тебя)

    заметь - никакие "интерфейсы" не надо - интерфейсы у нас каждый день по-разному называются и хрен угадаешь.

    https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with
    вот, учись.
    Ну или если тебя тоже в подвале к корпоративной стойке приковали, тогда тебе сюда: https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-usin

    заметь - оба эти варианта работают именно на _любом_ ведре. Сами разбираясь, какой сегодня враппер и какой синтаксис объявлен модным.

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

     
     
  • 8.78, б.б. (?), 16:31, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    оно везде iptables-nft но в одном случае работает, а в другом - ругается на то, ... текст свёрнут, показать
     
     
  • 9.79, б.б. (?), 16:33, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    причём, самое интересное, что в тех случаях, где не работает iptables, нет и pr... текст свёрнут, показать
     
  • 9.85, пох. (?), 22:01, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну говорю же - кривовраппер Поставь нормальный, он еще ставится Или переходи у... текст свёрнут, показать
     
  • 4.66, abu (?), 05:16, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Разве в Iptables нельзя именовать цепочки?
     
     
  • 5.73, Takishima (ok), 13:40, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Разве в Iptables нельзя именовать цепочки?

    Встроенные (INPUT/OUTPUT/FORWARD/и т.п.) нельзя переименовать, т.к. их функция определяется именем.

    В nft по дефолту нет никаких цепочек, они создаются с произвольным именем и вешаются в нужные места (hook) с нужным приоритетом (priority).

     
     
  • 6.92, abu (?), 13:16, 31/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Полагаю, что выгляжу ретроградом и неосилятором ветров перемен, но думаю, что и в nftables я начну с того же самого - создам  INPUT, OUTPUT, FORWARD и т.д. То есть, =нельзя переименовать= для меня, по крайней мере в начале, не будет какой-то там киллер-фичей.

    Что до приоритетов - надо будет посмотреть примеры.

     
  • 3.25, Takishima (ok), 16:39, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не нужно запускать команду nft … для добавления отдельных правил.

    https://wiki.nftables.org/wiki-nftables/index.php/Atomic_rule_replacement

    Теперь всё атомарно обновляется, в отличие от iptables. Пишем все правила в /etc/nftables.conf (он запускаемый) и запускаем его каждый раз при обновлении, либо systemctl reload nftables

    Вот фрагмент:

    table ip nat {
            chain c_postrouting {
                    type nat hook postrouting priority srcnat
                    policy accept

                    oifname "eth0" masquerade
            }
    }

     
     
  • 4.26, Takishima (ok), 16:44, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если вместо

    oifname "eth0" masquerade

    написать

    oif "eth0" masquerade

    То обещают более быструю работу правила. Но для "oif" интерфейс должен присутствовать в момент загрузка правил, иначе будет ошибка, т.к. проверяется ID интерфейса. А "oifname" сравнивает строки.

     
     
  • 5.58, llolik (ok), 23:31, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > для "oif" интерфейс должен присутствовать в момент загрузка правил

    Ну если у него в правиле eth0, т.е. "железный" интерфейс, то, в принципе, нормально. iif/oif не надо использовать с vlan/bond и прочими виртуальными интерфейсами, т.к., всё правильно, при загрузке на момент инициализации nftables виртуальные интерфейсы ещё не созданы и загрузка конфига обломается (а c *name нет).

     
  • 4.34, Аноним (34), 18:37, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нужно! Улучшенная поддержка динамического обновления правил это одна из фич, которой они гордятся.

    Предлагаю сойтись на том, что все зависит от условий: не вижу смысла записывать в конфиг временное правило или тем более переделывать работу fail2ban чтобы он модифицировал конфиг

     
     
  • 5.101, Random (??), 00:43, 01/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вот да, динамическое изменение правил выглядит более сложным (если при этом надо анализировать уже существующие правила).

     
  • 4.65, б.б. (?), 03:15, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а без интерфейса можно?
     
     
  • 5.72, Takishima (ok), 13:34, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > а без интерфейса можно?

    Всё можно, но не всё полезно. Будет NAT'ить там, где не надо, может таблица соединений ненужными записями заполняться.

    Вообще, по-хорошему надо бы ещё на lo отключить трекинг соединений. И натить только форварженные пакеты, вот так получше будет:

    table ip nat {
            chain c_postrouting {
                    type nat hook postrouting priority srcnat
                    policy accept

                    oif "eth0" fib saddr type != local masquerade
            }
    }

    table ip t_raw {
            chain c_output {
                    type filter hook output priority raw
                    policy accept

                    oif lo notrack
            }
    }

     
     
  • 6.76, б.б. (?), 15:50, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Всё можно, но не всё полезно. Будет NAT'ить там, где не надо, может таблица соединений ненужными записями заполняться.

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

     
  • 4.93, abu (?), 13:20, 31/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Теперь всё атомарно обновляется, в отличие от iptables. Пишем все правила в
    > /etc/nftables.conf (он запускаемый) и запускаем его каждый раз при обновлении, либо
    > systemctl reload nftables

    iptables-save > res
    vim res
    iptables-restore < res

    не?

     
     
  • 5.94, Takishima (ok), 13:31, 31/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> Теперь всё атомарно обновляется, в отличие от iptables. Пишем все правила в
    >> /etc/nftables.conf (он запускаемый) и запускаем его каждый раз при обновлении, либо
    >> systemctl reload nftables
    > iptables-save > res
    > vim res
    > iptables-restore < res
    > не?

    Оно в iptables не атомарно, на самом деле. Можно получить ситуацию, когда часть правил не загружена ещё, а очередной пакет пришёл.

     
     
  • 6.97, abu (?), 18:36, 31/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    О как. Спасибо за объяснение!
     
  • 3.80, б.б. (?), 16:34, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    nft add rule nat postrouting masquerade
    Error: Could not process rule: No such file or directory
    add rule nat postrouting masquerade
                 ^^^^^^^^^^^
     
     
  • 4.82, llolik (ok), 16:51, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > nft add rule nat postrouting masquerade
    > Error: Could not process rule: No such file or directory
    > add rule nat postrouting masquerade
    >            
    >  ^^^^^^^^^^^

    nft add table nat перед этим?

     
     
  • 5.83, б.б. (?), 17:14, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    то же самое, подчёркивает postrouting
     
     
  • 6.84, llolik (ok), 18:45, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > то же самое, подчёркивает postrouting

    1.Создаём таблицу - nft add table nat
    2.Создаём цепочку - nft 'add chain nat postrouting { type nat hook postrouting priority 100 ; }'
    3.Создаём правило - nft add rule nat postrouting masquerade (маскарадить всё-на-всё так себе затея, но как демонстрация сойдёт)

    Проверка nft list ruleset.
    В nft по умолчанию нет ничего и все объекты (таблицы, цепочки и правила) надо создавать. Всё из консоли забивать не обязательно, можно забить таблицы в /etc/nftables.conf или в другой файл и туда заинклюдить (nftables это умеет).

     
  • 2.16, flkghdfgklh (?), 14:48, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    nft add rule nat postrouting masquerade
     
  • 2.56, comrade (ok), 22:34, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Да почти так же. Внизу написали.
    По этому поводу уместно вспомнить анекдот о ж...е и д...е. И что из-за одного слова надо было целый язык придумывать?
     
     
  • 3.81, б.б. (?), 16:39, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ага так же. только не работает.
     

  • 1.32, Аноним (-), 17:53, 29/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    daddr saddr , многословность и неоднозначность (что какбы стремно для такой вещи как фаервол) . пока что слишком убого чтоб использовать.
     
     
  • 2.33, Аноним (-), 17:55, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зыж лучше бы перепортировали все это барахло под синтаксис всеми любимого ipchains или уже ipfw на худой конец , его даже младенцы понимают без проблем, вот куда надо стремиться, а не городить черти  пойми что
     
     
  • 3.35, пох. (?), 18:51, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Так они попытались. Пресловутый встроенный враппер. Фейлящийся на тривиальном конфиге из десятка простых правил.

    Собственно, это все что надо знать о тех людях, которые притащили нам это ненужно, вместо нескольких небольших исправлений в iptables (обещанных двадцать лет назад но "что-то никак руки не дошли", а потом и вовсе куда-то делись, вместе с головой).

     
  • 2.53, псевдонимус (?), 22:20, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > daddr saddr , многословность и неоднозначность (что какбы стремно для такой вещи
    > как фаервол) . пока что слишком убого чтоб использовать.

    Оно не сделается лучше. Со временем станет похожим на фрибсд ipwf, только хуже (посмотри сложные правила на нем, хер ты там поймёшь навскидку, как пакет обрабатывается). Pederastы, сэр.

     
     
  • 3.61, пох. (?), 00:10, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ipfw линеен (не считая местного goto) - его сложные правила разбирать противно и чревато ошибками, но можно. А тут вообще ничего сложнее совсем тривиальщины разобрать в принципе не получится, если тебе только не оставят детальных комментариев - это все равно что пытаться понять назначение и принцип работы впервые увиденной сишной программы по ее некомментированному коду.
    Ну только еще и, вдобавок, очередной нескучный собственный язычок с бредовым нерегулярным синтаксисом.

    Полагаю, для того и брали. Это очень ведь хорошо, для некоторых, что в их гуанокоде никто не разбирается.

     

  • 1.41, Аноним (41), 20:41, 29/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот я не как не пойму что такое hook, зачем он нужен и что он вообще делает в nft?
     
     
  • 2.59, llolik (ok), 23:41, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    https://wiki.nftables.org/wiki-nftables/index.php/Netfilter_hooks
    Если совсем просто, указывает в каком месте перехватывать пакеты.
     
     
  • 3.88, Аноним (-), 09:31, 31/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Теперь буем запускать natd ? Очень такой прогресс прям по всему лицу.
     
     
  • 4.89, llolik (ok), 10:17, 31/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Теперь буем запускать natd

    А если развернуть мысль в контексте, а то я что-то не догнал причем здесь NAT и FreeBSD (тк natd оттуда вообще-то)

     
  • 3.90, Random (??), 11:10, 31/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вот только output должен бы быть перед роутингом.
     
     
  • 4.95, llolik (ok), 16:57, 31/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот только output должен бы быть перед роутингом.

    Ну wiki.nftables.org не я писал, хотя по идее должно быть так, да. ЧСХ в других картинках нарисовано правильно.

     
     
  • 5.100, Random (??), 00:35, 01/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И ещё раз к вопросу о вменяемой документации... :)
     

  • 1.44, Ordu (ok), 21:16, 29/10/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А можно я оффтопично задам вопрос про роутинг на OpenWRT Мне просто ппц лень во... большой текст свёрнут, показать
     
     
  • 2.46, flkghdfgklh (?), 21:40, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ip route add N.N.N.N via Y.Y.Y.Y dev ethN
     
     
  • 3.48, Ordu (ok), 21:58, 29/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > ip route add N.N.N.N via Y.Y.Y.Y dev ethN

    Ох ведь, да, точно! Это ведь роутингом делается и iptables не нужон. Круто! Спасибо!

     
     
  • 4.63, flkghdfgklh (?), 02:20, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да не за что
    Вообще имеет смысл роутить через гейт провайдера не только IPшник его сайта с кабинетом, но всю его подсеть, но это опционально.
     
     
  • 5.67, Ordu (ok), 05:22, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > имеет смысл роутить через гейт провайдера не только IPшник его сайта с кабинетом, но всю его подсеть

    Да, но насколько я понял, разглядывая вывод ip route, OpenWRT делал это автоматически, на основании описания сети полученного через DHCP от прова -- по маске подсети. Но это не работало, потому что ip лк не попадает в подсетку, поэтому маршрутизируется дефолтным маршрутом -- я не сразу догадался, из-за того, что подсетка /19, а я не копенгаген в уме двоичную арифметику выполнять над десятично-трёхзначными числами. Короче, я начинаю подозревать, админам прова надо руки пообрывать за такое.

     
     
  • 6.71, flkghdfgklh (?), 11:09, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Хм, да админам прова однозначно руки отрывать за подобное. У меня на каком-то из провайдеров на россии похожее было, что к ЛК route надо было руками прописывать, хотя к части сетей прова он прилетал прямой по DHCP. На Корбине/Билайне это что ли было? Не помню.
     
     
  • 7.87, провайдер (?), 22:08, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Хм, да админам прова однозначно руки отрывать за подобное.

    Ну конечно. Мы же должны, ради ублажения клиента (постоянно просрочивающего срок очередной оплаты - чтоб ему самому зарплату так же платили!) сделать плоскую сеточку /19 чтоб ему удобно было нас наяпывать. Или, может, прислать ему стопицот реальных префиксов, которые у нас на маршрутизаторы приходят? А у него впопенворота не лопнут от такого?

    > каком-то из провайдеров на россии похожее было, что к ЛК route
    > надо было руками прописывать, хотя к части сетей прова он прилетал

    Не надо ничего руками (кривыми) прописывать - надо платить вовремя, и тогда весь интернет, а не только личный кабинет, ВНЕЗАПНО, будут доступны через default gateway.

    А кроилово - ведет к попадалову.

     
     
  • 8.102, Random (??), 00:56, 01/11/2020 [^] [^^] [^^^] [ответить]  
  • +/
    default gateway - понятие динамическое, провайдеров может быть более одного даже... текст свёрнут, показать
     
  • 5.86, провайдер (?), 22:05, 30/10/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/

    > Вообще имеет смысл роутить через гейт провайдера не только IPшник его сайта
    > с кабинетом, но всю его подсеть, но это опционально.

    не имеет - мы не обязаны предоставлять злостным неплательщикам доступ и к этой сети тоже.

    К личному кабинету - предоставляем, чтоб он мог оплатить свой долг. Это бесплатно.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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