前段时间开发基于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防火墙配置就介绍到这里。
发表评论