时光绘梦集
0
位置: 代码 正文

夏夜万年 2025/04/22 周2

nftable设置防火墙

nftable防火墙配置和常用命令,以后有需要可以查看。

设置默认允许,只接受允许的,其他丢弃。

#清空所有规则
sudo nft flush ruleset

#查看当前规则
sudo nft list ruleset

# 创建一个名为 'filter' 的表,使用 'inet' 家族(同时支持 IPv4 和 IPv6)
nft add table inet filter

# 在 'filter' 表中创建 'input' 链,绑定到 'input' 钩子,默认策略为接受
nft add chain inet filter input { type filter hook input priority 0 \; policy accept \; }

# 在 'filter' 表中创建 'output' 链,绑定到 'output' 钩子,默认策略为接受
nft add chain inet filter output { type filter hook output priority 0 \; policy accept \; }

#设置允许已经建立的链接
nft add rule inet filter input ct state established,related accept

#允许内部回环流量
sudo nft add rule inet filter input iif "lo" accept

# 允许ICMPv6中一些必需协议
nft add rule inet filter input icmpv6 type { 1,2,3,4, 129, 130,131,132,133, 134, 135, 136,143} accept

#限制ping的速率
nft add rule inet filter input icmpv6 type 128 limit rate 5/second accept

#允许时间同步,dns查询
nft add rule inet filter input udp sport { 53, 123 } accept

#限制SSH一分钟3次新增连接
sudo nft add rule inet filter input tcp dport 22 limit rate 3/minute accept

#允许http,https端口限制新增连接
sudo nft add rule inet filter input tcp dport { 80, 443 } limit rate 33/second accept

#允许http3端口限制新增连接
sudo nft add rule inet filter input udp dport 443 limit rate 33/second accept

#拒绝其他所有输入
nft add rule inet filter input drop
#允许所有输出
sudo nft add rule inet filter output accept

#保存配置
nft list ruleset > /etc/nftables.conf
#设置开机启动
sudo systemctl enable nftables

#重载配置
sudo systemctl restart nftables
#禁用开机自启
sudo systemctl disable nftables

/*
我这次用的是tencentos系统,然后发现配置文件的位置和之前的不一样,位置是/etc/sysconfig/nftables.conf
*/


    【运行状态】
获取数据中...