Sheridan
а нафига из пустов порожнее? У nft совершенно не плоский json
Например вот
{
"rule":
{
"family": "inet",
"table": "filter",
"chain": "network_hosts",
"handle": 1831,
"comment": "[washer->internet] Default nntp [udp]",
"expr": [
{
"match":
{
"left":
{
"meta": "oifname"
},
"right": "external_rt_0"
}
},
{
"match":
{
"left":
{
"payload":
{
"name": "ip",
"field": "saddr"
}
},
"right": "10.0.0.73"
}
},
{
"match":
{
"left":
{
"payload":
{
"name": "udp",
"field": "dport"
}
},
"right":
{
"set": ["nntp", "nntps"]
}
}
},
{
"counter":
{
"packets": 0,
"bytes": 0
}
},
{
"accept": null
}]
}
},
Sheridan
А может быть и таким
"rule":
{
"family": "inet",
"table": "filter",
"chain": "netscan_drop",
"handle": 599,
"comment": "drop invalid packets",
"expr": [
{
"match":
{
"left":
{
"&": [
{
"payload":
{
"name": "tcp",
"field": "flags"
}
},
{
"|": [
{
"|": [
{
"|": [
{
"|": [
{
"|": ["fin", "syn"]
}, "rst"]
}, "psh"]
}, "ack"]
}, "urg"]
}]
},
"right": "fin",
"op": "<"
}
},
{
"counter":
{
"packets": 0,
"bytes": 0
}
},
{
"drop": null
}]
}
},
Sheridan
Или вообще таким
"rule":
{
"family": "ip",
"table": "nat",
"chain": "postrouting",
"handle": 10,
"comment": "count accepted packets",
"expr": [
{
"counter":
{
"packets": 51093,
"bytes": 3653565
}
}]
}
Sheridan
так что если структуру описывать, то либо иметь себе мозг и описывать её сразу во все возможные варианты, причом потом поддерживать еще.
Или как я - парсить налету, брать значения сразу из json, выбирая оттуда только то что нужно
Sheridan
выхлоп nft -j list ruleset
Sheridan
можно. Только зачем мне для временных данных дважды память выделять? Один раз для жсона и второй раз для структур?
Sheridan
можно и так, да
Sheridan
еще раз посмотри на жсон. Такое себе удовольствие под него структуры писать. Монстры получаются.
Более того, в выхлопе rule, table, chain являются элементами массива nftables, на одном уровне. И идут вперемешку друг с другом. Всё равно придётся руками по элементам ходить
Sheridan
https://github.com/Sheridan/nftables_exporter/blob/bcac5acbb4a9669daa705cc92705b5fa0646bc6d/main.go#L51
Sheridan
https://pastebin.com/K9xgY8Lh посмотри что генерирует автогенератор.
Нафиг, лучше руками. По крайней мере пока.
Sheridan
и всё равно проходить руками и по совпадению строк в элементах массива определять какой тим сейчас нужен
Sheridan
потрогаю, спасибо. Но пока что я вижу манипулирование правилами. Но посмотрю завтра подробнее
Sheridan
https://godoc.org/github.com/google/nftables#Rule
Комментария нет (
Sheridan
ну типы щёччиков есть, да
Sheridan
и вроде умеет вытаскивать правила
Sheridan
значит поидее сможет и щеччики вытащить
Sheridan
крч
Sheridan
завтра )
Sheridan
спасибо )
Sheridan
подписывайтесь на канал, лайки, колокольчик и вот это вот всё ))
sexst
Вот бы сейчас написать что-то для сбора метрик ради сбора метрик, ммммм...
Telebotik
Про nft спич )
Telebotik
Киньте плиз рабочее правило как матчить tcp и udp одной строкой, из Вики почему-то не взлетело.
Alexey
Ip
Evgeniy
meta l4proto {tcp, udp} похоже
Telebotik
meta l4proto {tcp, udp} похоже
Пипец, ужос а я крутил # nft 'add rule inet filter input meta l4proto {tcp, udp} @th,16,16 53 counter accept comment "accept DNS"'
Telebotik
Спасибо )
Всего то нужно было сделать
nft add rule ip filter input meta l4proto {tcp, udp} accept
Захар
Sheridan
Я бы наверное всётаки nft add rule ip filter input meta proto {tcp, udp} accept - емнип так и 4 и 6 захватит
Sheridan
Telebotik
Резонно, принял к сведению. )
Sheridan
ан нет, там же ip6
Sheridan
А я вот спросонья чтото в цепях запуталсо...
ip4(nat) и ip6(no nat) у меня. Хочу выпускать хосты только в определенные порты...
в output или forward мне втыкать правила?... кмк в forward, не?
Sheridan
ну чтото типа oif "external_he_0" ip6 saddr 2001:470:11c8:1::49 tcp dport { nntp, nntps } counter packets 0 bytes 0 accept comment "[washer->internet] Default nntp [tcp]" вот такие правила
Telebotik
Я не подскажу, сам только начал недавно вникать. Но вроде ж в output не?
Telebotik
Если просто натить нужно.
Sheridan
да вот чтото похоже не пашет. Счетчики крутятся не для конкретных правил а для чайна целиком только. Если чайн поставлю в reject то работать не будет...
Roman
ФСБ получила право разделегировать домены сайтов, нарушающих закон. Ведомство сможет блокировать порталы быстрее суда и Роскомнадзора
Stanislav
эм, а которые зареганы через забугорных регистраторов?
Roman
Roman
Михаил
Для для этого есть другие
Evgeniy
Ilya
Yaroslav
Yaroslav
Огурец - огурец
sexst
Любой?
Любой, за который автор хочет денег естессно
sexst
Давайте лучше посрёмся на животрепещущие темы.
Ящитаю что счётчики на линуксовом фаерволе в проде не нужны. И если вы на них смотрите, то вы что-то делаете не так
sexst
Evgeniy
а чо эт дорого стоит по производительности ?
Evgeniy
есть замеры?
sexst
sexst
Вот реально нахрена любому человеку эти цифры ради цифр?
Evgeniy
ну зависит от правил наверное..
Evgeniy
можно убирать те где нету матчей.
sexst
Когда кто-то тут вообще последний раз этим пользовался не для однократной проверки "Попадает ли туда трафик вообще?"
Evgeniy
я сегодня в интернетах видел портянки, которые типа от атак на тсп защищают
Evgeniy
вот если тот кто зайдет туда потом увидит это все с нулями матчей) задумается, что не нужно оно ваще
sexst
sexst
Vladimir
Vladimir
они тебе необходимы
Ilya
http://it.icmp.ru/post/view/6898
Stanislav
Stanislav
Захар
Ilya
sexst
найди запятые для начала
Да ладно, читаемо и смысл понятен. Эхо мессенджеров.
Вообще мне кажется, что в русском языке дохуя много оверинжиниринга и переусложнений
sexst
sexst
Опять Брайан с утра бухает
Zek
Zek
sexst
Разве?
Исключительно при знании контекста и за счёт разбивки на три параграфа
Vladimir