nftables

Автор alekperov11, 04 июня 2020, 16:47:06

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

alekperov11

Привет!
Прошу помощи.
Цитировать
root@HAF:/home/akshin# iptables-translate -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
nft add rule ip filter INPUT tcp flags & (fin|syn|rst|psh|ack|urg) == 0x0 counter drop
root@HAF:/home/akshin# nft add rule ip filter INPUT tcp flags & (fin|syn|rst|psh|ack|urg) == 0x0 counter drop
bash: syntax error near unexpected token `=='
root@HAF:/home/akshin#
Как бороться с syntax error near unexpected token `==' ?
Как добавить это правило в /etc/nftables.conf без ошибок?

Gamliel

Цитата: alekperov11 от 04 июня 2020, 16:47:06bash: syntax error near unexpected token `=='
Проблема связана не с nftables, а с Bash. По всей видимости, знаки равенства нужно экранировать (escape) обратным слешем.

Цитата: alekperov11 от 04 июня 2020, 16:47:06/etc/nftables.conf
Обратите внимание: правила, добавляемые в набор правил (ruleset), не сохраняются в файле /etc/nftables.conf автоматически, это нужно сделать вручную (необязательно сразу, обязательно до выключения или перезагрузки). Например, так:
sudo su -c "echo 'flush ruleset' > /etc/nftables.conf; nft list ruleset -nns | grep -v \"^$\" >> /etc/nftables.conf"
(прежде чем применять этот код, поймите его смысл).
(Я добавил в свой в ~/.bashrc код ещё круче:
alias savenft="n=\`ls /etc/nftables.conf.old-* -l | wc -l\`; n=\`bindechexascii --d2h \$n | cut -d\  -f4 | tr [:upper:] [:lower:]\`; sudo cp /etc/nftables.conf /etc/nftables.conf.old-\$n -a; sudo chmod -w /etc/nftables.conf.old-\$n; unset n; sudo su -c \"echo 'flush ruleset' > /etc/nftables.conf; nft list ruleset -nns | grep -v \\\"^$\\\" >> /etc/nftables.conf\""
И сохраняю набор правил одной простой командой.)

И не забудьте про
@reboot /usr/sbin/nft -f /etc/nftables.conf
в системном crontab'е.

Почему таблица ip filter, а не inet filter? Не забывайте про IPv6.