Ubuntu 24.04.2 LTS管理UFW防火墙
一、环境
自从CentOS宣布停止维护后,运维人员首先还是ubuntu,虽然性能相比之下可能逊色一点,但依然还是最好的选择。不担心停止维护的风险。由于发行商的不同,管理的方式会有所不同。比如,今天要讲的防火墙配置,ubuntu采用的是ufw进行管理,当然也可以直接采用内核级别的iptables进行管理。二者选其一即可,不然有冲突。来看看今天的系统主角:
Linux VM-12-12-ubuntu 6.8.0-59-generic #61-Ubuntu SMP PREEMPT_DYNAMIC Fri Apr 11 23:16:11 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
root@VM-12-12-ubuntu:/etc/ufw# cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.2 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo
root@VM-12-12-ubuntu:/etc/ufw#
今天着重来讲一下UFW,如果需要了解iptables的配置,也可以查阅之前的文档:Ubuntu 24.04.2 LTS 通过iptables共享上网。
注意:iptables 和UFW 同时启用后,可能会有所冲突,如果开启了UFW了,就尽量都用UFW设置,要不就不用,直接用iptables进行管理。
二、配置
UFW不需要,再进行安装,系统已经默认安装了。只需要启动配置即可操作了。
首先查看一下帮助命令:
root-12-12-ubuntu:/etc/ufw# ufw -h
Usage: ufw COMMAND
Commands:
enable enables the firewall
disable disables the firewall
default ARG set default policy
logging LEVEL set logging to LEVEL
allow ARGS add allow rule
deny ARGS add deny rule
reject ARGS add reject rule
limit ARGS add limit rule
delete RULE|NUM delete RULE
insert NUM RULE insert RULE at NUM
prepend RULE prepend RULE
route RULE add route RULE
route delete RULE|NUM delete route RULE
route insert NUM RULE insert route RULE at NUM
reload reload firewall
reset reset firewall
status show firewall status
status numbered show firewall status as numbered list of RULES
status verbose show verbose firewall status
show ARG show firewall report
version display version information
Application profile commands:
app list list application profiles
app info PROFILE show information on PROFILE
app update PROFILE update PROFILE
app default ARG set default application policy
root-12-12-ubuntu:/etc/ufw#
基本上,涵盖了日常需要的基本操作。下面列举几个主要的操作:
- 查看当前状态和防火墙规则
ufw status #Status: active 服务激活;如果没有配置规则,将不显示防火墙规则
- 设置默认动作
ufw default allow/deny #对未配置的端口执行默认允许/拒绝动作
- 添加允许/拒绝端口的规则
ufw allow 22/tcp #允许 22 tcp封包;还可以换成 22/udp,表示允许22端口 udp封包
ufw deny 22 #拒绝 22 端口 (udp+tcp)
- 删除允许/拒绝端口的规则
ufw delete allow/deny 20 #删除规则同添加一致 添加 22/tcp就删除 22/tcp,不能删除 22
- 启动/关闭/重载防火墙
通过ssh远程连接建议先设置 22/tcp允许规则再启动防火墙服务
ufw enable/disable/reload
三、转发
- 打开系统内核转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 #增加或修改该字段,值设为1
sysctl -p # 直接生效
- 开启UFW转发
vim /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT" # DROP 设置为 ACCEPT
- UFW的FORWARD配置
vim /etc/ufw/before.rules
# 注意默认规则内容都包含在 *filter...COMMIT 内
# 添加如下内容时注意 *nat...COMMIT 不能放在 *filter...COMMIT 内
# 172.16.0.0是私网保留网段
*nat
:PREROUTING - [0:0]
:POSTROUTING - [0:0]
-A POSTROUTING -s 172.16.0.0/16 -o eth0 -j MASQUERADE
COMMIT
一般不建议直接这样配置,很有可能会破坏系统原有的配置,不如一些云系统。所以尽量先用用iptables去配置生成后,再复制下来进行配置。如以下操作:
先执行:iptables -t nat -A POSTROUTING -s 172.31.25.0/24 -j MASQUERADE
再执行:iptables-save这时候,它会把当前的配置打印到屏幕终端。这时候,复制下来即可。
如示例:
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [201:13199]
-A POSTROUTING -s 172.31.25.0/24 -o eth0 -j MASQUERADE
COMMIT
以上配置完成后,重启防火墙ufw reload 即可。
本文来自博客园,作者:刘文江,转载请注明原文链接:https://www.cnblogs.com/liuwenjiang/p/18899206

浙公网安备 33010602011771号