Преимущество использования «--ctstate NEW» в дополнение к «--sync» для сопоставления новых соединений TCP

Вам нужно сначала сохранить значение в переменной оболочки:

MINOR_VERSION := $(shell v='$(FULL_VERSION)'; echo "$${v%.*}")

(при условии, что $(FULL_VERSION)не содержит одинарных кавычек)

Теперь это вызывает sh, а не bash. ${var%pattern}является стандартным shоператором (происходит отksh).

Если вы хотите использоватьbash-конкретных операторов, вам нужно указать make, чтобы он звонил bashвместо shс помощью

.
SHELL = bash

Однако имейте в виду, что на многих системах bashне установлено по умолчанию, что сделало бы ваш Makefile не -переносимым (, но с другой стороны, на некоторых системах также нет GNU make, и вы уже используя там некоторые GNU-измы )).

1
28.07.2020, 01:18
1 ответ

Я всегда находил и --syn, и --ctstate NEWизбыточными, потому что у меня есть -m state --state INVALID -j DROPв качестве первого правила для всех соответствующих цепочек.

Возможно, вы хотите быть пуристом и следовать стеку TCP/IP до буквы, что означает, что только новое соединение должно быть --syn, т. е. вы не можете отправить пакет SYN в рамках уже установленного соединения, потому что для завершения это вы должны использовать FIN.

0
18.03.2021, 23:16

Теги

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