Iptables是一个功能强大的应用软件,通过控制Linux内核的netfilter模块来管理网络数据包的流动和转送。它可以实现防火墙控制入站和出站流量,还能够进行端口转发等操作。它的核心概念包括表、链和规则。每个表都负责不同类型的数据包处理,链决定数据包是否能够穿越,规则则决定链中数据包的处理流程。
而在Ubuntu下,我们可以使用UFW(Uncomplicated Firewall)作为基于iptables的防火墙接口,以简化配置过程。默认情况下,UFW是关闭状态的。当它被打开时,所有传入链接都会被拒绝,所有传出链接都会被允许。这样可以确保任何人都无法连接到服务器,同时服务器内的应用程序可以自由地与外部世界通信。
然而,我们应该尽可能避免同时使用UFW和iptables。因为在这种情况下,两个防火墙可能会相互冲突,导致一些不必要的麻烦。如果我们需要使用UFW,最好将iptables完全禁用。反之亦然。
要在 Ubuntu 系统上安装 ufw 命令,可以通过以下步骤进行:
打开终端并使用 root 权限或 sudo 权限登录系统。
运行以下命令来更新系统软件包列表:
sudo apt-get update
运行以下命令来安装 ufw:
sudo apt-get install ufw
当您完成 UFW 安装后,可以使用以下命令来检查 UFW 是否已启用:
sudo ufw status
如果 UFW 未启用,则需要启用防火墙。可以使用以下命令:
sudo ufw enable
默认情况下,UFW 禁止所有传入连接,但允许所有传出连接。这意味着任何人在尝试访问服务器时都将无法连接,而服务器内的任何应用程序能够连接到外部世界。
可以使用以下命令来设置默认策略:
sudo ufw default deny incoming
sudo ufw default allow outgoing
这样设置后,UFW 将默认禁止所有其他主机连接到您的主机,但允许您的主机连接到外部世界。
使用以下命令可以允许特定的服务或端口:
sudo ufw allow ssh
sudo ufw allow 22
还可以允许特定协议的端口访问,例如:
sudo ufw allow 21/tcp
如果要允许特定端口范围,则可以使用以下命令:
sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp
还可以允许特定 IP 地址或主机访问:
sudo ufw allow from 192.168.1.100
sudo ufw allow from 15.15.15.0/24
如果您需要允许特定范围主机访问特定端口,则可以使用以下命令:
sudo ufw allow from 15.15.15.0/24 to any port 22
如果您需要允许连接到特定的网卡,则可以使用以下命令:
sudo ufw allow in on eth0 to any port 80
如果您需要删除规则,则可以使用以下命令:
sudo ufw status numbered
sudo ufw delete allow 2
sudo ufw delete allow ssh
如果您需要重置 UFW,则可以使用以下命令:
sudo ufw reset
如果您需要修改 UFW 的配置文件,则可以使用以下命令:
sudo vi /etc/default/ufw
在配置文件中,您可以进行各种设置,例如更改 UFW 是否启用 IPv6。
可以使用以下命令来开放一个 TCP 端口号:
sudo ufw allow <port>/tcp
其中 <port>
应该替换为实际的端口号。例如,如果要开放 80 端口,则应该运行以下命令:
sudo ufw allow 80/tcp
如果您要开放 UDP 端口,则应该将 /tcp
替换为 /udp
,例如:
sudo ufw allow 53/udp
您还可以限制访问规则到特定 IP 地址或 IP 地址范围,例如:
sudo ufw allow from 192.168.1.100 to any port 22/tcp
sudo ufw allow from 192.168.1.0/24 to any port 80/tcp
这将允许来自 IP 地址 192.168.1.100
的连接访问 SSH 端口,以及来自 192.168.1.0/24
网络的主机访问 HTTP 端口。
修改 UFW 配置后,需要重新启动防火墙以使其生效:
sudo ufw disable
sudo ufw enable
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/install-and-use-ufw-in-ubuntu/