Debian 11 已自带 nftables,为 iptables 原团队研发的新一代 netfilter 解释器/命令行,性能更高效,命令行更直观,建议代替 iptables 使用。
官方Wiki:https://wiki.nftables.org
简单记录一下我习惯启用基本 nftables 的步骤:
1. mkdir /etc/nftables
2. vim /etc/nftables/default.nft
#!/usr/sbin/nft -f
flush ruleset
table ip default {
chain input {
type filter hook input priority 0; policy drop;
iif lo accept
ct state established, related accept
# ping
icmp type echo-request limit rate 500/second accept
# SSH
tcp dport 22 accept
# Nginx
#tcp dport { 80, 443 } accept
}
chain forward {
type filter hook forward priority 0; policy drop;
ct status dnat accept
}
}
table ip6 default {
chain input {
type filter hook input priority 0; policy drop;
iif lo accept
ct state established, related accept
icmpv6 type { nd-nei**or-solicit, nd-router-advert, nd-nei**or-advert } accept
# ping
icmpv6 type echo-request limit rate 500/second accept
}
chain forward {
type filter hook forward priority 0; policy drop;
ct status dnat accept
}
}
3. vim /etc/nftables.conf
include "/etc/nftables/default.nft"
4. systemctl start nftables
5. systemctl enable nftables
6. systemctl restart nftables
7. 如有报错 systemctl status nftables 检查错误报告
8. 端口转发示例
table ip default {
chain input {
type filter hook input priority 0; policy drop;
iif lo accept
ct state established, related accept
# ping
icmp type echo-request limit rate 500/second accept
# SSH
tcp dport 22 accept
}
chain forward {
type filter hook forward priority 0; policy drop;
ct status dnat accept
}
chain prerouting {
type nat hook prerouting priority -100; policy accept;
iif eth0 tcp dport 443 dnat to ip 目的地:port 端口
}
chain postrouting {
type nat hook postrouting priority 100; policy accept;
masquerade
}
}
完。
热议
推荐楼 zhujizixun 9小时前
nftables天下第一!好用且强大,主机资讯帮顶。
3楼 shuang76 3小时前
nft天下第一了?
4楼 fuzzylogic 1小时前
ufw语法更直观
5楼 sRGB 1小时前
之前 iptables 不是白学了,之前写的 iptables 脚本不是不能用了。
debian buster不能启动docker守护进程(dockerd)的解决办法
iptables v1.8.2 (nf_tables): Chain already exists 解决办法
故障原因是Docker用iptables初始化NAT网络,而Debian buster使用 nftables 而不是 iptables,导致dockerd不能正常完成NAT初始化,出错退出。
处理方法是调用update-alternatives强制Debian用iptables而不是nftables。
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
# for ipv6
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
6楼 buste 1小时前
可以
7楼 51Yo 1小时前
我还是喜欢用firewall-cmd
8楼 chxin 半小时前
之前 iptables 不是白学了,之前写的 iptables 脚本不是不能用了。
debian buster不能启动docker守护进程 ...
爱用啥就装啥呗,又不是iptables不更新也不兼容了
9楼 88232128 半小时前
我还是喜欢用firewall-cmd
nftables可以firewalld强大多了
10楼 燕十三丶 半小时前
不错 晚上回去了解下
申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。
评论前必须登录!
立即登录 注册