По умолчанию .
— обычный символ. Если он ведет себя так для вас, это из-за чего-то в вашей конфигурации, возможно, что-то зарыто внутри о -мой -zsh.
Привязка в основной раскладке переопределяет поведение символа даже во время добавочного поиска. Чтобы восстановить обычное поведение персонажа при инкрементальном поиске, нужно явно привязать его к self-insert
.
bindkey -M isearch. self-insert
Conntrack Netfilter для случая TCP имеет дополнительные проверки согласованности между его внутренними состояниями и эквивалентными состояниями TCP. Этот netdev 2.1 PDF документ (извините, я не смог найти его адрес netdev, это с сайта автора, вместо этого )рассказывает об этом:
L4 trackers attempt to keep state, e.g. tcp: tracks state, checks sequence numbers. Example:
- new tcp packet? SYN bit set?
- tcp sequence number in expected window?
- unacknowledged data? → adjust timeout
- rst? fin? → delete connection and/or adjust timeout
Состояние conntrack NEW соответствует состоянию TCP SYN _SENT или TCP SYN _RECEIVED . Если вы выберете условие состояния NEW в своих правилах, используя ct state new
, оно никогда не будет соответствовать какому-либо пакету FIN , поскольку никогда не задействован пакет FIN . при установлении нового TCP-соединения.
Повторите попытку после удаления ct state new
.
ОБНОВЛЕНИЕ:есть вторая проблема, которую я изначально не заметил. это выражение:
tcp flags & (fin | syn) == fin | syn
просто никогда не будет совпадать с флагом FIN, так как никогда не будут найдены оба FIN+SYN (, кроме нескольких случайных недопустимых попыток ). Правильное выражение должно быть:
tcp flags & (fin | syn) != 0
, который будет совпадать всякий раз, когда установлены FIN или SYN. Собственно nftables упрощает и только это отображается или требуется:
tcp flags fin,syn
Таким образом, принимая во внимание обе корректировки (ct state new
, все равно необходимо удалить ), правило становится:
nft add rule filter FORWARD 'tcp dport 22 tcp flags fin,syn log prefix " my_FIN " group 1 accept
или в комплекте цепи:
chain FORWARD {
type filter hook forward priority 0; policy accept;
ip saddr 1.1.1.1 ip daddr. tcp dport @myset tcp flags fin,syn counter log prefix " myprefix " group 1 accept
}
Если вы действительно можете обнаруживать FIN-пакеты с помощью этого вышеприведенного правила, если вы намерены фильтровать некоторые TCP-атаки (, что вам действительно нужно? ),обратите внимание, что netfilter, вероятно, сначала рассмотрит TCP FIN в первом пакете TCP-соединения как INVALID состояние :, вам может быть интересно зарегистрировать эти состояния(ct state invalid
). Существуют переключатели sysctl netfilter, которые могут изменить результаты о INVALID состоянии :, включив nf _conntrack _tcp _быть _либеральным , которые не будут классифицировать это как недопустимое, и отключение nf _conntrack _tcp _loose , что остановит восстановление установленного TCP-соединения, т.е. перестанет иметь состояние NEW без SYN. Это восстановление должно произойти только после потери отслеживания соединения :после перезагрузки маршрутизатора с брандмауэром или сброса состояний conntrack с помощью conntrack -F
, но кто знает, здесь можно выбрать паранойю.