UFW(Uncomplicated Firewall)是iptables的一个接口,为不熟悉防火墙概念的初学者提供了易于使用的界面,同时支持IPv4和IPv6。以下是UFW的基本用法和示例:
安装UFW
在Ubuntu和Debian上,可以使用以下命令来安装UFW:
apt-get install ufw -y
在CentOS上,需要先安装EPEL软件源,然后再安装UFW:
yum install epel-release -y
yum install --enablerepo="epel" ufw -y
启动和关闭UFW
启动UFW:
ufw enable
关闭UFW:
ufw disable
查看UFW状态
查看已经定义的UFW规则:
ufw status
设置UFW默认策略
UFW默认策略设置为阻止所有传入流量并允许所有传出流量,你可以使用以下命令来设置自己的默认策略:
ufw default allow outgoing
ufw default deny incoming
设置规则
要将防火墙配置为允许传入SSH连接,可以使用以下命令:
ufw allow ssh
这将创建防火墙规则-允许端口22上的所有连接,这是SSH守护程序默认监听的端口。实际上也可以通过直接指定端口来创建等效规则,下面这条命令将产生相同的结果:
ufw allow 22
如果你的SSH守护程序配置在其他端口,则需要手动指定相应的端口。
UFW可以基于TCP或UDP协议来过滤数据包,命令如下:
ufw allow 80/tcp
ufw allow 21/udp
还可以使用以下命令随时拒绝指定端口任何传入和传出的流量:
ufw deny 80
ufw deny 21
如果要删除HTTP允许的规则,只需在原始规则前加上delete即可,如下所示:
ufw delete allow http
ufw delete deny 21
特定端口范围
某些应用程序使用多个端口而不是单个端口,你可能需要使用UFW指定端口范围,指定端口范围时,必须指定规则应适用的协议(tcp或udp)。例如,要允许使用端口9000-9002范围内的连接,可以使用以下命令:
ufw allow 9000:9002/tcp
ufw allow 9000:9002/udp
特定的IP地址
出于某些情况,你可能需要允许/禁用来自特定IP地址的连接,如下:
ufw allow from 192.168.29.36
ufw deny from 192.168.29.36
还可以在UFW中允许IP地址范围,以下命令将允许从192.168.1.1到192.168.1.254的所有连接:
ufw allow from 192.168.1.0/24
要允许IP地址192.168.29.36连接特定的端口80,可以运行以下命令:
ufw allow from 192.168.29.36 to any port 80
进一步的,可以指定TCP/UDP:
ufw allow from 192.168.29.36 to any port 80 proto tcp
以上大致简述了UFW的基本使用,日常使用基本够用。除此之外,UFW还支持更多的高级特性例如允许与特定网络接口的连接、配置NAT等等。
让UFW允许转发端口
编辑 /etc/default/ufw 文件,找到 DEFAULT_FORWARD_POLICY 行,将 DROP 改为 ACCEPT1。
保存并关闭文件。
重启ufw以使更改生效:
sudo ufw disable sudo ufw enable
apt update && apt install ufw -y && ufw allow 708 && ufw allow 22 && sed -i 's/DEFAULT_FORWARD_POLICY="DROP"/DEFAULT_FORWARD_POLICY="ACCEPT"/' /etc/default/ufw ufw disable echo "y" | ufw enable
添加允许/拒绝IP段并查看详细信息
这是通过以下规则实现ufw
允许了来自 192.168.191.0/24
子网的所有流量:
sudo ufw allow from 192.168.191.0/24
这一规则表示允许所有源IP地址在 192.168.191.0/24
子网中的数据包进入系统。这通常用于在内部网络中允许特定子网的流量。
如果想要进一步验证这一规则是否已正确添加,可以使用以下命令:
sudo ufw status
此命令将显示当前的防火墙规则。你应该能够看到类似以下的行:
To Action From
-- ------ ----
192.168.191.0/24 ALLOW Anywhere
如果想要添加规则以允许特定端口或服务,可以使用类似以下的命令:
sudo ufw allow from 192.168.191.0/24 to any port [PORT_NUMBER]
请将 [PORT_NUMBER]
替换为希望允许的端口号。例如,如果要允许SSH(端口22),可以使用:
sudo ufw allow from 192.168.191.0/24 to any port 22
确保在添加、删除或修改规则后重新加载防火墙配置,可以使用以下命令:
sudo ufw reload
这将确保新的规则立即生效。
查看防火墙所有规则-详细版本
如果想要查看已添加的规则的详细信息,包括具体的IP地址或IP段,可以使用以下命令:
bashCopy code
sudo ufw show raw
这将显示更详细的防火墙规则,包括源和目标的 IP 地址。请注意,这些规则可能比 ufw status
显示的更加详细,但可能需要更多的解释。
欢迎指出任何有错误或不够清晰的表达,可以在下面评论区评论。