我有一个在输入链中丢弃数据包的策略
chain input {
type filter hook input priority 0; policy drop;
我怎样才能记录这些丢弃的数据包?
答案1
好吧,我猜你还想知道在你的 nftables 链末尾记录了什么类型的数据包。
让我们假设您已经有一个日志捕获守护进程(例如syslogd
、rsyslog-ng
或ulogd2
),该守护进程已经正确配置、守护、运行并读取/dev/log
由内核提供的所有内核日志(来自)ksyslog()
并将这些日志消息保存到文件(例如/var/log/message
)。
您的默认政策是接受
如果您的链式策略是accept
,则将log
关键字附加到您的 nftable 规则:
table filter {
...
chain input {
type filter hook input priority 0; policy accept;
...
# All my rules go here
# Pick one that suits your needs best
add rule inet filter input tcp dport 22 drop log
add rule inet filter input tcp dport 21 counter drop log prefix my_input_ftp
}
...
}
这将记录任何通过 SSH 或 FTP 连接到您的 SSH/FTP 服务器的尝试,然后丢弃数据包。
您的默认策略是 DROP
我会在该链的最末端添加一行,filter input
链的示例如下:
table filter {
...
chain input {
type filter hook input priority 0; policy drop;
...
# All my rules go here
...
# Pick one that suits your needs best
counter comment "total unfiltered input packets"
log # simple detail goes into the log
log flags all # extra details go into the log
log flags all prefix "GOTCHA!: " # parseable keyword
log flags all counter # redundant but example
# drop; # this is redundant policy is drop already
}
...
}
答案2
这项工作对我来说:
log prefix "[nftables] Inbound Denied: " counter drop
可以找到日志:
/var/log/messages
希望能帮助到你!
答案3
规则似乎是按顺序执行的。策略是 drop;然后你就有了你需要的任何 accept 规则。现在只需
log
在末尾单独一行即可达到目的。
答案4
在规则集的输入部分的最后一行中添加“log flags all log prefix "PREFIX " counter drop”。通常由默认输入策略丢弃的数据包将被记录并由此(最后一条)规则丢弃。是的,它是多余的,但是冗余是微不足道的。