安装ufw
$ c1 v' H& ?: F1 C: f5 a7 Q在 Debian、Ubuntu 或其衍生版本上,打开终端并执行以下命令安装:
# q0 j. k( P; h+ a; o d0 l" X D% d5 o0 P! S4 Y& h2 x
# 安装ufw
6 S6 l* H. C. O) \1 ]- sudo apt-get update1 w* r: f) ~4 ?$ f$ a5 G
- sudo apt-get install ufw
复制代码
& k% S" U7 r# A; s# 启动ufw+ Q% A4 A1 s; d/ t: V1 A# N
2 h% ?# e3 a- m0 y# 设置为开机自启
: I8 _1 L6 q: z1 f' A8 [- sudo systemctl enable ufw
复制代码 - [& G b: D @" `
执行sudo ufw status查看当前状态,通常有3种状态:
1 T+ ^& I: |) c( Z1 T- Status: inactive(未启用):表示 UFW 没有启用,防火墙处于关闭状态。
/ P ^* S2 l2 t - Status: active(已启用):表示 UFW 已经启用,并且防火墙规则正在应用于系统。3 @! M- ~2 p" Q2 m5 G7 g4 N* q. o
- Status: inactive (dead)(未启用且未运行):表示 UFW 已被禁用,并且防火墙未在系统中运行。
复制代码
v7 ^: t* R! H! K( Yufw放行端口
2 D+ @) a& `9 l! b, dufw的命令比firewalld简洁许多,比如你想放行单个端口,只需要执行:, S P, f: }8 Z v& J7 G* [
# 将 <port> 替换为你要放行的具体端口号。例如,要放行 TCP 端口 80,可以执行 sudo ufw allow 80。
) Q& q: N! B1 O; w3 t- x如果需要放行特定协议的端口,我们需要加上协议:
( l3 S: X6 l* r% {; X" P! _" G' I& A; n8 m+ \* m% a+ c3 r
# 将 <port> 替换为端口号,<protocol> 替换为协议类型(如 tcp、udp)。例如,要放行 UDP 端口 53,可以执行 sudo ufw allow 53/udp。" d+ k" \. e. H
- sudo ufw allow <port>/<protocol>
复制代码 , k) t! C0 A; B7 L0 k! u
放行一个端口范围:
- \3 ^, \* F6 k0 j$ h$ o% q- sudo ufw allow <start-port>:<end-port>/<protocol>
复制代码 将 <start-port> 替换为起始端口号,<end-port> 替换为结束端口号,<protocol>为协议。例如,要放行 TCP 端口范围 8000 到 9000,可以执行- sudo ufw allow 8000:9000/tcp
复制代码 , B- Z4 P# c" Y' n. S9 X( t- o
ufw删除已经放行的规则或端口
N4 S, ?* D% I要在ufw(Uncomplicated Firewall)中删除已添加的规则,您可以通过规则号或者具体的放行条件来删除。以下是两种方法:
& q6 ^5 V0 e" o0 k1 k$ c8 ~$ k! ~( j
8 y: R+ v9 E. C: _/ Q方法1:通过规则号删除
m, U {5 P: O$ @, F5 w4 Q$ G首先,运行以下命令以查看当前ufw的状态和现有规则:+ J( x7 |5 }7 o W2 Z) ~* C
, \. `) `, w6 X) v* `
这将显示带有编号的规则列表。
5 O2 e# x. n; V2 o$ T1 t: {( O8 x确定您要删除的规则的编号,然后使用以下命令删除它,将[rule_number]替换为实际的规则编号:! O5 y+ [ s0 G" X' l" o
- sudo ufw delete [rule_number]
复制代码
0 [% U1 |3 S: c) i5 L, o: K- _例如,要删除编号为1的规则,运行:
; ~2 S V" f' x$ F ?
& Q/ \8 B6 u2 c0 F. g, v% k. V方法2:通过放行条件删除
$ z2 n9 k4 D$ N' y1 [您还可以通过指定放行条件(例如端口和协议)来删除规则。例如,要删除允许TCP端口80的规则,您可以运行:% ? M1 K6 _0 m* }; a+ V
- sudo ufw delete allow 80/tcp
复制代码
6 P' c) D8 L. l8 p- M或者,如果要删除允许UDP端口5000的规则,您可以运行:
+ |* k: f* y( N4 W- sudo ufw delete allow 5000/udp
复制代码 删除规则后,再次运行sudo ufw status以确认所选规则已从ufw中删除。
+ \, C) k1 B t+ J9 T% c
/ S$ t {1 Y. z6 Y/ `/ A: s阻止某个特定的IP
( S6 A' v4 I, V- K5 d( \使用以下命令阻止来自特定IP(例如1.2.3.4)的连接:, d8 t+ r5 _! U2 [* g& d# {$ E0 r
- sudo ufw deny from 1.2.3.4
复制代码 8 D) X9 S5 e. ~) P8 j" S
允许特定IP访问特定端口8 n0 t* ?- U: N8 m4 m
使用以下命令允许特定IP访问特定端口。将[ip_address]替换为要允许的实际IP地址,将[port_number]替换为要允许访问的实际端口号,将[protocol]替换为tcp或udp,具体取决于您要放行的协议:
( p, V4 `* t- e, t/ p3 p% n+ a- sudo ufw allow from [ip_address] to any port [port_number]/[protocol]
复制代码 8 }1 X' P: e' V5 a$ F3 F3 t1 K& m0 ^
例如,要允许IP地址1.2.3.4访问TCP端口22,您可以运行:9 N; X. U3 c; O9 R2 d3 e8 q
- sudo ufw allow from 1.2.3.4 to any port 22/tcp
复制代码
- j Z; q" x$ _+ `+ P# `$ s0 y9 Y |