Linux应用开发之Ubuntu的UFW防火墙配置

摘要:前段时间开发基于Ubuntu的应用程序,遇到了端口被内置UFW防火墙关闭而导致无法通信的情况。今天这篇文章特别记录一下UFW防火墙的配置。

前段时间开发基于Ubuntu的应用程序,遇到了端口被内置UFW防火墙关闭而导致无法通信的情况。今天这篇文章特别记录一下UFW防火墙的配置。

“UFW”是英文“Uncomplicated Firewall”的缩写,即“简单防火墙”。UFW基于iptables,不过使用起来更加简单。

Ubuntu桌面版及服务器版本都预装了UFW防火墙,如果你使用的版本没有安装,(联网)运行下面的命令安装:

sudo apt-get install ufw

默认情况下UFW并没有启动。要启用防火墙,运行下面的命令:

sudo ufw enable

UFW启用后,默认情况下,允许流量传出,但拒绝流量传入。这意味着可以浏览网站或者使用wget,apt-get等命令下载安装服务。但不允许外部程序访问本机(比如将本机作为TCP协议服务器)。如果由于某些原因这些规则被改变了,而你想恢复默认规则,如下操作:

如果想启用默认的流量传出,运行下面的命令:

sudo ufw default allow outgoing

如果想启用默认的流量传入,运行下面的命令:

sudo ufw default deny incoming

如果想允许外部访问本机特定的端口或协议,运行下面的命令:

sudo ufw allow 端口号/协议

例如,允许通过TCP协议访问本机的2024端口,运行下面的命令:

sudo ufw allow 2024/tcp

如果对2024端口没有协议要求,运行下面的命令:

sudo ufw allow 2024

如果想允许某个端口范围,例如2024~2030的TCP协议,运行下面的命令:

sudo ufw allow 2024:2030/tcp

如果想允许外部访问本机SSH服务器,运行下面的命令:

sudo ufw allow ssh

如果想允许外部访问本机Web服务器(基于http和https协议),运行下面的命令:

sudo ufw allow httpsudo ufw allow https

如果想禁止外部访问某个端口/协议,运行下面的命令:

sudo ufw deny 端口号/协议

例如,禁止外部UDP协议访问2025端口,运行下面的命令:

sudo ufw deny 2025/udp

如果只想允许特定IP地址或子网访问本机,运行下面的命令:

sudo ufw allow from ip地址/子网掩码

例如,允许IP地址为192.168.0.1,子网掩码为255.255.255.0的主机通过TCP协议访问本机的22端口,运行下面的命令:

sudo ufw allow from 192.168.0.1/24 22/tcp

如果想查看所有已经配置的规则,运行下面的命令:

sudo ufw status verbose

如果想查看用户添加的规则,运行下面的命令:

sudo ufw show added

如果想删除某条规则,运行下面的命令:

sudo ufw delete 规则

例如,想删除之前“禁止外部UDP协议访问2025端口”的规则,运行下面的命令:

sudo ufw delete deny 2025/udp

除此之外,还可以通过规则序号来删除。首先运行下面的命令获取规则编号:

sudo ufw status numbered

再通过下面的命令删除相应的规则:

sudo ufw delete number

例如,删除编号为1的规则,运行下面的命令:

sudo ufw delete 1

如果想禁用UFW,运行下面的命令:

sudo ufw disable

好了,关于Ubuntu的UFW防火墙配置就介绍到这里。

来源:北岛李工

相关推荐