简单的列出了些ufw、iptables、nftables基本操作命令。简单的记录下
前言
ufw: ufw是iptables的前端,提供了一个更简单的语法和更易于使用的界面。ufw 的目标是使防火墙设置更容易,同时保持 iptables 的强大功能
iptables: iptables 常用的防火墙之一,对新手来说语法会有些复杂
nftables: nftables 是 Debian 10 中默认和推荐的防火墙框架,它取代了旧的 iptables(和相关)工具;和iptables相比,语法要简单、灵活些,并且支持更多的协议。
ufw简单使用
启用ufw
sudo ufw allow ssh # 允许ssh链接
sudo ufw enable # 启用ufw
sudo ufw reload # 重载ufw
sudo ufw disable #禁用
sudo ufw reset #重置
允许规则
sudo ufw allow 80 #tcp和udp 80
sudo ufw allow 7722/tcp # 允许tcp协议的7722端口
sudo ufw allow 7100:7200/tcp #端口范围
允许源IP地址接口/网卡
sudo ufw allow from 192.168.1.100 #仅允许单IP地址
sudo ufw allow from 192.168.1.100 to any port 3306 #仅允许单IP地址连接3306
sudo ufw allow from 192.168.1.0/24 to any port 3306
sudo ufw allow in on eth2 to any port 3306
拒绝连接
sudo ufw deny from 23.24.25.100 #拒绝指定的IP连接
sudo ufw deny from 23.24.25.0/24 #整个网段
sudo ufw deny proto tcp from 23.24.25.0/24 to any port 80,443
删除防火墙规则
sudo ufw status numbered #已编号的防火墙规则
sudo ufw delete 3 #根据编号删除
sudo ufw delete allow 8069 通过规则删除规则
iptables
关闭iptables
# netfilter-persistent是一个Debian系统上的工具,用于在系统重启时保存iptables规则
sudo apt-get purge netfilter-persistent
# 重启
sudo reboot
# 或者直接使用 systemctl
# 阿里云轻量 使用 sudo apt-get remove iptables
管理iptables
1、显示当前 iptables 规则:
sudo iptables -L
2、清除当前 iptables 规则:
sudo iptables -F
3、允许某个 IP 地址的所有流量:
sudo iptables -A INPUT -s <IP地址> -j ACCEPT
4、允许某个端口的所有流量:
sudo iptables -A INPUT -p tcp --dport <端口号> -j ACCEPT
5、阻止某个 IP 地址的所有流量:
sudo iptables -A INPUT -s <IP地址> -j DROP
6、阻止某个端口的所有流量:
sudo iptables -A INPUT -p tcp --dport <端口号> -j DROP
7、保存 iptables 规则:
sudo iptables-save > /etc/iptables/rules.v4
把当前的 iptables 规则保存到 /etc/iptables/rules.v4
文件中。
8、加载之前保存的 iptables 规则:
sudo iptables-restore < /etc/iptables/rules.v4
从 /etc/iptables/rules.v4
文件中加载之前保存的 iptables 规则。
nftables
管理nftables: systemctl
# 安装
sudo apt install nftables
# 查看状态
systemctl status nftables
# 启动;默认加载/etc/nftables.conf的配置文件
systemctl start nftables
基本用法
# 查看当前规则
sudo nft list ruleset
# 删除所有规则,使系统没有防火墙
sudo nft flush ruleset
# 从指定配置文件加载规则
sudo nfr -f /path/to/文件名
# 保存当前规则到指定文件
sudo nft -s list ruleset >> /path/to/nftables.conf
表
# 添加一个新表
sudo nft add table 族类型 表名
# 列出所有的表
sudo nft list tables
# 列出表中的链和规则
sudo nft list table 族类型 表名
# 删除一个表
sudo nft delete table
# 刷表表:重置表中的规则
sudo nft flush table 族类型 表名
链
# 添加基本链
sudo nft add chain 族类型 表名 链名 '{ type 链类型 hook 钩子类型 priority 优先级值 ; }'
# 添加常规链
sudo nft add chain 族类型 表名 链名
# 列出链中的规则
sudo nft list chain 族类型 表名 链名
# 删除链
sudo nft delete chain 族类型 表名 链名
# 重置链规则
sudo flush chain 族类型 表名 链名
规则
待整理
临时规则和永久规则
nftables 不区分命令行中制作的临时规则和从文件加载或保存到文件中的永久规则。
永久规则:写在配置文件中的规则
临时规则:使用终端命令添加的规则,比如使用nft add table 族类型 表名
命令,添加的规则,重启后会失效;
评论区