我可以使用nft中的“所有IP匹配”规则进行SSH连接:
table ip filter {
chain INPUT {
type filter hook input priority 0; policy drop;
iifname "eth0" ip saddr { 0.0.0.0-255.255.255.255 } accept
}
chain FORWARD {
type filter hook forward priority 0; policy accept;
}
chain OUTPUT {
type filter hook output priority 0; policy accept;
}
}
SSH隧道在没有上述规则集的情况下工作,但在nft规则集出现时不起作用:
问题:在保持输入策略“丢弃”的同时使SSH隧道工作的最小规则是什么?
默认策略“drop”适用于ALL接口。虽然自定义规则特别适用于“eth0”。因此,任何依赖环回接口的流量(如SSH隧道)都将被默认策略阻止。
要回答这个问题,请删除“eth0”界面:
...
chain INPUT {
type filter hook input priority 0; policy drop;
ip saddr { 0.0.0.0-255.255.255.255 } accept
}
...
或者添加loopback接口:
...
chain INPUT {
type filter hook input priority 0; policy drop;
iifname { "lo", "eth0" } ip saddr { 0.0.0.0-255.255.255.255 } accept
}
...