Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何使用UFW配置防火墙

如何使用UFW配置防火墙

作者头像
苏易北
修改于 2018-09-20 03:06:27
修改于 2018-09-20 03:06:27
5.5K0
举报
文章被收录于专栏:Linux 杂货铺Linux 杂货铺

如何使用UFW配置防火墙

使用UFW配置防火墙
使用UFW配置防火墙

UFW是什么?

UFW(Uncomplicated FireWall)是Arch LinuxDebianUbuntu中管理防火墙规则的前端工具。UFW通常在命令行环境下使用(尽管UFW也提供了图形界面),目的是让配置防火墙变得简单(或者说,没那么复杂)。

开始前的准备

  1. 熟悉入门指南,并按正确步骤设置好Linode的主机名及时区。
  2. 本指南会尽可能使用sudo权限。请阅读文档中保护您的服务器安全章节部分,以创建标准用户账号,加强SSH访问并移除不必要的网络服务。请不要遵循创建防火墙 章节的指引——本指南将介绍如何使用UFW来控制防火墙,这是iptables命令之外另一种控制防火墙的方法。
  3. 升级您的系统

Arch Linux

代码语言:txt
AI代码解释
复制
sudo pacman -Syu

Debian / Ubuntu

代码语言:txt
AI代码解释
复制
sudo apt-get update && sudo apt-get upgrade

安装UFW

UFW默认包含在Ubuntu中,但在Arch Linux及Debian中必须手动安装。Debian会自动启动UFW的systemd单元并使其在重启时启动,但Arch Linux并不会这样做。这与通知UFW启用防火墙规则不同,因为通过systemd或upstart启动UFW只会通知系统初始化程序启动UFW守护进程。

默认情况下,UFW的规则集为空——因此即使守护进程正在运行,也不会启用任何防火墙规则。启用防火墙规则集的内容将在页面下方进行介绍。

Arch Linux

1.安装UFW:

代码语言:txt
AI代码解释
复制
sudo pacman -S ufw

2.启动并启用UFW的systemd单元:

代码语言:txt
AI代码解释
复制
sudo systemctl start ufw
sudo systemctl enable ufw

Debian / Ubuntu

安装UFW

代码语言:txt
AI代码解释
复制
sudo apt-get install ufw

使用UFW管理防火墙规则

设置默认规则

大部分系统只需要一小部分端口为传入连接打开,其余所有端口均关闭。先从简单的基础规则开始,ufw default命令可用来设置对传入和传出连接的默认响应。要想拒绝所有传入连接并允许所有传出连接,请运行:

代码语言:txt
AI代码解释
复制
sudo ufw default allow outgoing
sudo ufw default deny incoming

ufw default命令还允许使用reject参数。

警告 除非有明确的允许规则,否则配置默认拒绝或拒绝规则可能会阻止您退出Linode。在应用默认拒绝或拒绝规则之前,请确保已按照以下部分为SSH和其他关键服务配置了允许规则。

添加规则

可以通过两种方式添加防火墙规则:声明端口号或声明服务名称

例如,要允许22端口上的传入和传出连接用于SSH,您可以运行:

代码语言:txt
AI代码解释
复制
sudo ufw allow ssh

您还可以运行:

代码语言:txt
AI代码解释
复制
sudo ufw allow 22

同样的,要拒绝某个端口上的流量(本例中为111端口),您只需运行:

代码语言:txt
AI代码解释
复制
sudo ufw deny 111

要进一步微调规则,您还可以允许基于TCPUDP的数据包通过。以下命令将允许80端口上的TCP数据包通过:

代码语言:txt
AI代码解释
复制
sudo ufw allow 80/tcp
sudo ufw allow http/tcp

而以下命令将允许1725端口上的UDP数据包通过:

代码语言:txt
AI代码解释
复制
sudo ufw allow 1725/ufw

高级规则

除了仅通过指定端口来添加允许或拒绝规则之外,UFW还可让您允许/阻止来自指定IP地址、子网或特定IP地址/子网/端口组合的连接。

允许来自指定IP地址的连接:

代码语言:txt
AI代码解释
复制
sudo ufw allow from 123.45.67.89

允许来自指定子网的连接:

代码语言:txt
AI代码解释
复制
sudo ufw allow from 123.45.67.89/24

允许来自指定IP地址/端口组合的连接:

代码语言:txt
AI代码解释
复制
sudo ufw allow from 123.45.67.89 to any port 22 proto tcp

可根据您的实际需求删除proto tcp参数或替换为proto udp,并且如有需要,所有示例中的allow都可替换为deny

删除规则

要想删除规则,请在规则语句前添加delete。如果您不在希望允许HTTP流量通过,则可运行:

代码语言:txt
AI代码解释
复制
sudo ufw delete allow 80

还可以通过指定服务名称来删除规则。

编辑UFW配置文件

虽然可以通过命令行添加简单的规则,但有些时候也需要添加或删除更加高级或特定的防火墙规则。在运行通过终端输入的规则之前,UFW会首先运行before.rules文件中的规则,该文件允许本地环回(loopback)、ping以及DHCP通过防火墙。要对这些规则添加修改,请编辑/etc/ufw/before.rules文件。在相同目录下同样存在一个名为before6.rules的文件用来对IPv6的规则进行配置。

同样的,还存在after.ruleafter6.rule文件,用来添加在UFW运行从命令行输入的规则后需要添加的任何规则。

另一个配置文件位于/etc/default/ufw。在该配置文件中可以禁用或启用IPv6,设置默认规则,还可以设置UFW来管理内置的防火墙链。

UFW状态

您可随时使用sudo ufw status命令查看UFW的状态信息。这将以列表的形式打印出所有的规则信息,并显示UFW是否处于活跃状态:

代码语言:txt
AI代码解释
复制
Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
22 (v6)                    ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

启用防火墙

根据您设置的规则,首次运行ufw status可能会输出Status: inactive。可通过以下命令启用UFW并强制执行防火墙规则:

代码语言:txt
AI代码解释
复制
sudo ufw enable

同样的,可通过以下命令禁用防火墙规则:

代码语言:txt
AI代码解释
复制
sudo ufw disable

注意 系统重启后UFW服务仍会启动并运行。

UFW日志

您可使用以下命令启用UFW日志记录:

代码语言:txt
AI代码解释
复制
sudo ufw logging on

日志级别可通过sudo ufw logging low|medium|high设置,lowmediumhigh分别对应从低到高的级别,默认级别为low

一条正常的日志记录与以下内容类似,它位于/var/logs/ufw

代码语言:txt
AI代码解释
复制
Sep 16 15:08:14 <hostname> kernel: [UFW BLOCK] IN=eth0 OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:00:00 SRC=123.45.67.89 DST=987.65.43.21 LEN=40 TOS=0x00 PREC=0x00 TTL=249 ID=8475 PROTO=TCP SPT=48247 DPT=22 WINDOW=1024 RES=0x00 SYN URGP=0

最开始的值分别表示日期,时间以及您的主机名。其他重要的字段包括:

  • UFW BLOCK:此位置表示日志描述所定位的位置。本例中,日志是在阻止连接时记录的
  • IN:如果该字段有值,表示这是一个传入连接
  • OUT:如果该字段有值,表示这是一个传出连接
  • MAC:目的MAC地址和源MAC地址的组合
  • SRC:数据包的源IP地址
  • DST:数据包的目的IP地址
  • LEN:数据包长度
  • TTL:TTL(Time To Live)包,或称为生存时间。表示在没有找到目的地址的情况下,数据包会在路由器之间传输多久直至过期
  • PROTO:数据包的协议
  • SPT:数据包的源端口
  • DPT:数据包的目标端口
  • WINDOW:发送方可以接收的数据包大小
  • SYN URGP:表示是否需要三次握手,0表示不需要
评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
在 Ubuntu 中用 UFW 配置防火墙
UFW,即简单防火墙(uncomplicated firewall),是一个 Arch Linux、Debian 或 Ubuntu 中管理防火墙规则的前端。 UFW 通过命令行使用(尽管它有可用的 GUI),它的目的是使防火墙配置简单(即不复杂(uncomplicated))。
会长君
2023/04/25
1.2K0
debian/ubuntu 防火墙 ufw 简单使用
UFW,即简单防火墙 Uncomplicated FireWall,是一个管理防火墙规则的前端,大部分 Linux 系统都可以使用。它的目的就是为了使防火墙配置简单而不是复杂。本文的主要内容就是教你如何使用它。
宋天伦
2023/10/21
1K0
如何在 Ubuntu 20.04 上使用 UFW 来设置防火墙
本文最先发布在:https://www.itcoder.tech/posts/how-to-setup-a-firewall-with-ufw-on-ubuntu-20-04/
雪梦科技
2020/05/10
5.2K0
如何在 Ubuntu 20.04 上使用 UFW 来设置防火墙
如何在Ubuntu 14.04上使用UFW设置防火墙
UFW或简单防火墙是iptables的一个接口,旨在简化配置防火墙的过程。虽然iptables是一个可靠而灵活的工具,但初学者很难学会如何使用它来正确配置防火墙。如果您希望开始保护网络,并且您不确定使用哪种工具,UFW可能是您的正确选择。
爆栈工程师
2018/10/22
2.4K0
如何在Ubuntu 18.04上使用UFW设置防火墙
我们可以用iptable对防火墙进行设置。虽然iptables是一个可靠而灵活的工具,但初学者很难学会如何使用它来正确配置防火墙。如果您希望开始保护网络,并且您不确定使用哪种工具,UFW可能是您的正确选择。
一步
2018/07/24
3.7K0
Linux ufw(防火墙)使用指南,解决ufw和docker冲突问题,保护你的服务器/VPS
UFW 是 “简单防火墙” 的缩写,是更复杂的 iptables 实用程序的前端。它旨在使管理防火墙变得像设置端口打开和关闭以及调节允许通过的流量一样简单。
老K博客
2024/06/17
5.2K1
如何在 Debian 10 上使用 UFW 来设置防火墙
一个被正确配置的防火墙是所有系统安全中最重要的部分。UFW (Uncomplicated Firewall) 是一个用来管理 iptables 防火墙规则的用户友好的前端。它的主要目的就是为了使得管理 iptables 更简单,就像名字所说的,简单的。
雪梦科技
2020/05/11
9.8K0
如何在 Debian 10 上使用 UFW 来设置防火墙
ubuntu防火墙规则之ufw
因公司项目的需求,需要对客户端机器简便使用防火墙的功能,所以可在页面进行简便设置防护墙规则,当然,这个功能需求放到我手上我才有机会学到。因为客户端机器都是ubuntu的,所以当然用了ubuntu特有且简便的防火墙设置规则,那就是ufw,文章以ubuntu16.04为准,其它版本的用法应该也差不太多。本文着重介绍其常用的用法,至于其他的用法那就要等各位小伙伴再自行研究了。
Johnson木木
2019/08/21
2.7K0
如何管理Linux防火墙
防火墙是分层安全方法的重要组成部分。以下是如何定期监控和测试防火墙配置以确保安全。
云云众生s
2024/08/20
1930
如何管理Linux防火墙
Ubuntu默认防火墙安装、启用、配置、端口、查看状态相关信息
最简单的一个操作: sudo ufw status(如果你是root,则去掉sudo,ufw status)可检查防火墙的状态,我的返回的是:inactive(默认为不活动)。 sudo ufw version防火墙版本: ufw 0.29-4ubuntu1 Copyright 2008-2009 Canonical Ltd. ubuntu 系统默认已安装ufw. 1.安装 sudo apt-get install ufw 2.启用 sudo ufw enable sudo ufw default
98k
2018/04/13
10.7K0
Ubuntu开启防火墙端口
Ubuntu使用的防火墙名为UFW(Uncomplicated Fire Wall),是一个iptable的管理工具。因为iptable是根据系统管理员编写的一系列规则筛选网络数据包,比较复杂,所以UFW对其进行了简化。UFW可以帮助增强服务器安全,但是如果真正对服务器安全感兴趣,还是应该学习如何为 iptable 编写规则来更好的调整服务器的安全级别。
一个会写诗的程序员
2022/09/28
5.7K0
什么是防火墙以及它如何工作?
防火墙是一种通过基于一组用户定义的规则过滤传入和传出网络流量来提供网络安全性的系统。通常,防火墙的目的是减少或消除不需要的网络通信的发生,同时允许所有合法通信自由流动。在大多数服务器基础架构中,防火墙提供了一个重要的安全层,与其他措施相结合,可以防止攻击者以恶意方式访问您的服务器。
新巴子
2018/10/25
5.4K0
Ubuntu防火墙安装和配置
Ubuntu安装UFW防火墙 sudo apt-get install ufw 一般用户,只需如下设置: sudo apt-get install ufw sudo ufw enable sudo ufw default deny 以上三条命令已经足够安全了,如果你需要开放某些服务,再使用sudo ufw allow开启。 启用 sudo ufw enable sudo ufw default deny #运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。 #关闭所有外部对本机的访问,
昨天50还没用完
2018/06/29
1.8K0
防火墙配置问题:防火墙配置不当,存在安全漏洞
示例:关闭 HTTP (80) 和 HTTPS (443) 端口(假设这些端口不需要开放):
是山河呀
2025/02/06
1690
[译]使用iptables控制网络流量
iptables是一个允许用户配置特定规则的应用程序,这些规则由将由内核netfilter框架强制执行。它充当数据包过滤器和防火墙,可根据端口,协议和其他标准检查和定向流量。本指南将重点介绍iptables规则集的配置和应用,并提供常用方法的示例。
杜逸先
2018/08/30
7.3K0
ufw防火墙命令基础讲解
描述: UFW(Uncomplicated Firewall)在Ubuntu20.04操作系统中都是默认安装了,它是一款轻量化的工具,主要用于对输入输出的流量进行监控。
全栈工程师修炼指南
2022/09/28
3.4K0
防火墙
文章目录[隐藏] CentOS命令 CentOS命令 # 查看防火墙状态 systemctl status firewalld # 开启 systemctl start firewalld # 关闭防火墙 systemctl stop firewalld # 开启端口 firewall-cmd --permanent --zone=public --add-port=27017/tcp --permanent # 关闭端口 firewall-cmd --permanent --remove-port=2
用户10325771
2023/03/01
2.1K0
Ubuntu20.04 防火墙设置简明教程
Linux 2.4内核以后提供了一个非常优秀的防火墙工具:netfilter/iptables,他免费且功能强大,可以对流入、流出的信息进行细化控制,它可以 实现防火墙、NAT(网络地址翻译)和数据包的分割等功能。netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。
为为为什么
2022/08/06
1.8K0
Debian 操作系统安装文档
ufw(Uncomplicated Firewall)是一个简单易用的防火墙管理工具,基于 iptables。下面是一些常见的命令和简单配置步骤,适用于 Debian 系统。
Linux运维技术之路
2025/01/22
1030
Debian 操作系统安装文档
如何在Ubuntu 14.04上使用Iptables实现基本防火墙模板
实施防火墙是保护服务器的重要一步。其中很大一部分是在于对您的网络实施流量限制有决定性作用的个别规则和政策。防火墙iptables也允许您对应用规则的结构框架有发言权。
彼岸轮回
2018/09/28
1.2K0
相关推荐
在 Ubuntu 中用 UFW 配置防火墙
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档