Ошибка счетчика nftables: синтаксическая ошибка, неожиданный saddr, ожидаемая запятая или '}'

Я исправил это с помощью этой команды:

Чтобы открыть порты, мне пришлось:

1 -Установите в панели управления NAS правило брандмауэра, чтобы порт 5432 был открыт.

2 -Изменить 2 файла :pg _hba.conf и postgresql.conf

Для этого мне пришлось:

  1. подключиться по ssh к NAS с активной учетной записью, ранее созданной в панели управления. 2. Найдите файл pg _hba.conf :, для этого вам нужно будет войти в оболочку psqli с помощью sudo -u postgres psqlи запустить команду:SHOW hba_file;
  2. Обед:sudo vi /etc/postgresql/pg_hba.conf
  3. Следующие команды связаны с выходом из vim:

:q -выйти, если не было сделано никаких изменений :Вопрос! -выйти и уничтожить все сделанные изменения :wq -записать изменения (сохранить )и выйти :x -аналогично :wq, только записать файл, если были внесены изменения, затем выйти

3 -перезапустите службу postgres или перезапустите NAS

4 -проверьте с помощью команды nmap, открыт ли порт теперь:nmap -p5432 IP_ADDRESS_SERVER(с другого хоста, указывающего на ваш NAS/сервер, где вы запускаете postgre)

5 -проверьте статус службы командой :service postgresql status

1
17.09.2019, 05:00
1 ответ

У вас две проблемы:

  • использование слишком старой версии nftables.

    Я смог воспроизвести ошибку Error: syntax error, unexpected saddr, expecting comma or '}', используя nftables версии 0.7 (, обнаруженную в Debian 9 ). Meters (nftables wiki)предлагает nftables >= 0.8.1 и ядро ​​>= 4.3.

    Обновление nftables . Например, в Debian 9, используяstretch -backports(stretch -backports , а не buster -backports)версию 0.9.0-1~bpo9+1. искать как это сделать на других дистрибутивах.

  • использование неправильной таблицы, как сообщает команда (при использовании nftables 0.9.2):

    # nft add rule ip filter input tcp dport @rate_limit meter syn4-meter \{ ip  saddr. tcp dport timeout 5m limit rate 20/minute \} counter accept
    Error: No such file or directory; did you mean set ‘rate_limit’ in table inet ‘filter’?
    

    Действительно, многие объекты являются локальными по отношению к таблице, в которой они объявлены. Таким образом, вы не можете объявить его в «пространстве имен» inet filter и использовать его в «пространстве имен» ip filter . В этом отличие, например, от iptables+ ipset, где один и тот же ipset набор может использоваться в любой таблице.

    Это сработает (как только вы получите достаточно свежие nftables):

    nft add rule inet filter input tcp dport @rate_limit meter syn4-meter \{ ip  saddr. tcp dport timeout 5m limit rate 20/minute \} counter accept
    

    В качестве альтернативы можно вернуть определение счетчика в таблицу IP-фильтра .

2
28.01.2020, 00:00

Теги

Похожие вопросы