nftables防火墙常用配置及遇到的问题
nftables由表(table)、链(chain)和规则(rule)组成,其中表包含链,链包含规则,规则是真正的 action。
常用命令:
1.创建新表
nft add table inet my_table
2.列出所有规则(全部表的都有)
nft list ruleset
3.备份规则
nft list ruleset > /root/nftables.conf
4.恢复规则
nft -f /root/nftables.conf
5.修改链
只需按其名称调用它并定义要更改的规则。
例如,要将 my_table
表的 my_input
链策略从 accept
更改为 drop
nft chain inet my_table my_input '{ policy drop ; }'
=============================================
1.参考文章:
arch的文档比较详细,但是有些没有翻译完全,需要自行对照翻译
nftables 基础教程:使用 nftables 作为防火墙 – 云原生实验室 - Kubernetes|Docker|Istio|Envoy|Hugo|Golang|云原生
nftables说的比较明白的一个大佬的文章,但是还是不如 arch wiki全面,还有个别问题,比如放开ssh流量的那个规则,我的armbian上不行,也可能是版本原因,暂时不知确切原因
2.一些常用服务的默认端口,如果把 链 的 policy 策略类型 设为drop,默认阻止流量,那就要设置放开端口的规则
ssh 为 22
samba 为 tcp/139,445端口,udp/137,138端口。
3.docker 问题
docker 默认修改 iptables 配置文件,即使你的系统并没有启动 iptables 服务
修改 nftables 时,有可能会清空 iptables的配置文件,导致docker启动容器报错,
提示类似 iptables: No chain/target/match by that name.
此时只要 重启 docker 服务(systemctl restart docker)即可,它会自动重新生成iptables相关配置,虽然并没有实际作用
---------------------更新-----------
docker 启动后也会在nftables 里新建相关表,链,规则;
特别注意:应该是因为docker的网络如 Bridge 类型,需要进行数据的转发,所以 forward 链 的策略要设置为 accept; host网络类型经测试不受影响
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
2018-08-15 [转]mybatis if test非空判断数字0为什么是false