千家信息网

如何理解Linux中的防火墙ufw

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要讲解了"如何理解Linux中的防火墙ufw",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何理解Linux中的防火墙ufw"吧!我们来研究
千家信息网最后更新 2025年12月01日如何理解Linux中的防火墙ufw

这篇文章主要讲解了"如何理解Linux中的防火墙ufw",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何理解Linux中的防火墙ufw"吧!

我们来研究下 Linux 上的 ufw(简单防火墙),为你更改防火墙提供一些见解和命令。

ufw(简单防火墙Uncomplicated FireWall)真正地简化了 iptables,它从出现的这几年,已经成为 Ubuntu 和 Debian 等系统上的默认防火墙。而且 ufw 出乎意料的简单,这对新管理员来说是一个福音,否则他们可能需要投入大量时间来学习防火墙管理。

ufw 也有 GUI 客户端(例如 gufw),但是 ufw 命令通常在命令行上执行的。本文介绍了一些使用 ufw 的命令,并研究了它的工作方式。

首先,快速查看 ufw 配置的方法是查看其配置文件 -- /etc/default/ufw。使用下面的命令可以查看其配置,使用 grep 来抑制了空行和注释(以 # 开头的行)的显示。

$ grep -v '^#\|^$' /etc/default/ufwIPV6=yesDEFAULT_INPUT_POLICY="DROP"DEFAULT_OUTPUT_POLICY="ACCEPT"DEFAULT_FORWARD_POLICY="DROP"DEFAULT_APPLICATION_POLICY="SKIP"MANAGE_BUILTINS=noIPT_SYSCTL=/etc/ufw/sysctl.confIPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_netbios_ns"

正如你所看到的,默认策略是丢弃输入但允许输出。允许你接受特定的连接的其它规则是需要单独配置的。

ufw 命令的基本语法如下所示,但是这个概要并不意味着你只需要输入 ufw 就行,而是一个告诉你需要哪些参数的快速提示。

ufw [--dry-run] [options] [rule syntax]

--dry-run 选项意味着 ufw 不会运行你指定的命令,但会显示给你如果执行后的结果。但是它会显示假如更改后的整个规则集,因此你要做有好多行输出的准备。

要检查 ufw 的状态,请运行以下命令。注意,即使是这个命令也需要使用 sudoroot 账户。

$ sudo ufw statusStatus: activeTo    Action From--    ------ ----22    ALLOW 192.168.0.0/249090   ALLOW Anywhere9090 (v6)   ALLOW Anywhere (v6)

否则,你会看到以下内容:

$ ufw status

ERROR: You need to be root to run this script
加上 verbose 选项会提供一些其它细节:

$ sudo ufw status verboseStatus: activeLogging: on (low)Default: deny (incoming), allow (outgoing), disabled (routed)New profiles: skipTo    Action From--    ------ ----22    ALLOW IN 192.168.0.0/249090   ALLOW IN Anywhere9090 (v6)   ALLOW IN Anywhere (v6)

你可以使用以下命令轻松地通过端口号允许和拒绝连接:

$ sudo ufw allow 80  <== 允许 http 访问$ sudo ufw deny 25  <== 拒绝 smtp 访问

你可以查看 /etc/services 文件来找到端口号和服务名称之间的联系。

$ grep 80/ /etc/serviceshttp  80/tcp  www  # WorldWideWeb HTTPsocks  1080/tcp   # socks proxy serversocks  1080/udphttp-alt 8080/tcp webcache # WWW caching servicehttp-alt 8080/udpamanda  10080/tcp   # amanda backup servicesamanda  10080/udpcanna  5680/tcp   # cannaserver

或者,你可以命令中直接使用服务的名称。

$ sudo ufw allow httpRule addedRule added (v6)$ sudo ufw allow httpsRule addedRule added (v6)

进行更改后,你应该再次检查状态来查看是否生效:

$ sudo ufw statusStatus: activeTo    Action From--    ------ ----22    ALLOW 192.168.0.0/249090   ALLOW Anywhere80/tcp   ALLOW Anywhere  <==443/tcp   ALLOW Anywhere  <==9090 (v6)   ALLOW Anywhere (v6)80/tcp (v6)  ALLOW Anywhere (v6) <==443/tcp (v6)  ALLOW Anywhere (v6) <==

ufw 遵循的规则存储在 /etc/ufw 目录中。注意,你需要 root 用户访问权限才能查看这些文件,每个文件都包含大量规则。

$ ls -ltr /etc/ufwtotal 48-rw-r--r-- 1 root root 1391 Aug 15 2017 sysctl.conf-rw-r----- 1 root root 1004 Aug 17 2017 after.rules-rw-r----- 1 root root 915 Aug 17 2017 after6.rules-rw-r----- 1 root root 1130 Jan 5 2018 before.init-rw-r----- 1 root root 1126 Jan 5 2018 after.init-rw-r----- 1 root root 2537 Mar 25 2019 before.rules-rw-r----- 1 root root 6700 Mar 25 2019 before6.rulesdrwxr-xr-x 3 root root 4096 Nov 12 08:21 applications.d-rw-r--r-- 1 root root 313 Mar 18 17:30 ufw.conf-rw-r----- 1 root root 1711 Mar 19 10:42 user.rules-rw-r----- 1 root root 1530 Mar 19 10:42 user6.rules

本文前面所作的更改,为 http 访问添加了端口 80 和为 https 访问添加了端口 443,在 user.rulesuser6.rules 文件中看起来像这样:

# grep " 80 " user*.rulesuser6.rules:### tuple ### allow tcp 80 ::/0 any ::/0 inuser6.rules:-A ufw6-user-input -p tcp --dport 80 -j ACCEPTuser.rules:### tuple ### allow tcp 80 0.0.0.0/0 any 0.0.0.0/0 inuser.rules:-A ufw-user-input -p tcp --dport 80 -j ACCEPTYou have new mail in /var/mail/root# grep 443 user*.rulesuser6.rules:### tuple ### allow tcp 443 ::/0 any ::/0 inuser6.rules:-A ufw6-user-input -p tcp --dport 443 -j ACCEPTuser.rules:### tuple ### allow tcp 443 0.0.0.0/0 any 0.0.0.0/0 inuser.rules:-A ufw-user-input -p tcp --dport 443 -j ACCEPT

使用 ufw,你还可以使用以下命令轻松地阻止来自一个 IP 地址的连接:

$ sudo ufw deny from 208.176.0.50

Rule added

status 命令将显示更改:

$ sudo ufw status verboseStatus: activeLogging: on (low)Default: deny (incoming), allow (outgoing), disabled (routed)New profiles: skipTo    Action From--    ------ ----22    ALLOW IN 192.168.0.0/249090   ALLOW IN Anywhere80/tcp   ALLOW IN Anywhere443/tcp   ALLOW IN AnywhereAnywhere   DENY IN 208.176.0.50  <== new9090 (v6)   ALLOW IN Anywhere (v6)80/tcp (v6)  ALLOW IN Anywhere (v6)443/tcp (v6)  ALLOW IN Anywhere (v6)

总而言之,ufw 不仅容易配置,而且且容易理解。

感谢各位的阅读,以上就是"如何理解Linux中的防火墙ufw"的内容了,经过本文的学习后,相信大家对如何理解Linux中的防火墙ufw这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

命令 防火墙 防火 文件 配置 规则 学习 内容 研究 口号 可以使 名称 意味 状态 用以 端口 服务 检查 管理 输入 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 农行手机银行服务器连不上 维护网络安全文明上网电子小报 OA系统维护需要用到数据库 海淀区管理网络技术服务平台 视讯网络技术有限公司 绍兴服务器 福建服务器机房按需定制云服务器 云南软件开发特价 access是正规数据库吗 http服务器发起请求 数据库管理软件 定义 邯郸市宇晨软件开发有限公司 租网站服务器价格 网络安全岗位考核细则 517军警民网络安全宣传 教育部青少年网络安全知识竞赛 ORACLE数据库学习文案 网络安全技术分析句子成分 guns框架如何操作数据库 专家解读网络安全知识 用友u8采购入库数据库表 泰格至尊连不上数据库 网络安全法颁布时间实行 软件开发由于没有付费停用损失 软件开发如何能准确抓住需求 网络安全反恐手抄报内容文字 关于网络技术协会名称 有关网络安全的问卷调查 软件开发和执行过程 lsm数据库怎么用
0