安装ufw
, C( K1 z* S8 F2 J6 f在 Debian、Ubuntu 或其衍生版本上,打开终端并执行以下命令安装:
1 N: }9 t+ \! B k& a( U4 T
" D) }9 y Z G$ E% P' @: i# 安装ufw$ @( G% `; F% I) c# j- z
- sudo apt-get update. @2 e1 N$ p' }! b2 g4 _: y
- sudo apt-get install ufw
复制代码 / v/ X! F" ?6 j; b
# 启动ufw
8 `6 W# w6 j- |- \6 \- ~, K( V
$ w, ~" W+ }. [) \! Y" C2 a5 r# 设置为开机自启* S1 H; C' L: D
- sudo systemctl enable ufw
复制代码 2 m5 l" [/ F# B/ Y" k
执行sudo ufw status查看当前状态,通常有3种状态:) M" w/ p" F5 ?
- Status: inactive(未启用):表示 UFW 没有启用,防火墙处于关闭状态。
h4 r+ t, N5 y E - Status: active(已启用):表示 UFW 已经启用,并且防火墙规则正在应用于系统。
* ]* C7 z3 z$ d( J7 `9 O) ?+ P - Status: inactive (dead)(未启用且未运行):表示 UFW 已被禁用,并且防火墙未在系统中运行。
复制代码 ; f' n' u3 T4 D1 |( `! _5 T
ufw放行端口4 [3 U- H- F1 C0 V7 J- ^
ufw的命令比firewalld简洁许多,比如你想放行单个端口,只需要执行:/ i- i, {0 U3 ~
# 将 <port> 替换为你要放行的具体端口号。例如,要放行 TCP 端口 80,可以执行 sudo ufw allow 80。3 u6 V' @( S7 }- `( W, U2 S
如果需要放行特定协议的端口,我们需要加上协议:$ @$ d9 n9 R9 W% q
' q: t# q' Y' [* A G
# 将 <port> 替换为端口号,<protocol> 替换为协议类型(如 tcp、udp)。例如,要放行 UDP 端口 53,可以执行 sudo ufw allow 53/udp。
+ Z! k2 z1 b4 `$ K7 Q4 ]4 S- sudo ufw allow <port>/<protocol>
复制代码 3 [+ ]( u7 B1 v: F
放行一个端口范围:( O5 w; ~& N, Y( Y
- sudo ufw allow <start-port>:<end-port>/<protocol>
复制代码 将 <start-port> 替换为起始端口号,<end-port> 替换为结束端口号,<protocol>为协议。例如,要放行 TCP 端口范围 8000 到 9000,可以执行- sudo ufw allow 8000:9000/tcp
复制代码
( O9 ^# C5 X% j1 ?( wufw删除已经放行的规则或端口
. [+ e& r8 Q" C* s0 \( P1 V要在ufw(Uncomplicated Firewall)中删除已添加的规则,您可以通过规则号或者具体的放行条件来删除。以下是两种方法:
: b9 M/ l2 _" L4 Y- b1 Z) a! v9 O, V1 |) g2 X
方法1:通过规则号删除
0 ?7 d! N( X% C8 X7 e. f/ j首先,运行以下命令以查看当前ufw的状态和现有规则:% Z2 V) P* j( i# M% U3 k6 s7 o
3 `7 E, C7 a, X1 \8 j I0 ]# S, d; A B这将显示带有编号的规则列表。- A4 i+ q: Q" i! e
确定您要删除的规则的编号,然后使用以下命令删除它,将[rule_number]替换为实际的规则编号: I( x& ~& L5 ~. l# P6 \- V" Y' R
- sudo ufw delete [rule_number]
复制代码
) }6 M/ D6 R6 q/ r. p) {, A, g例如,要删除编号为1的规则,运行:
6 b7 U0 J9 W- G+ x( i6 X1 N
3 {3 N2 s; p0 Q5 y) ?& l! m- I: m方法2:通过放行条件删除4 h+ w- p; r+ \
您还可以通过指定放行条件(例如端口和协议)来删除规则。例如,要删除允许TCP端口80的规则,您可以运行:
; e; o1 s, }; b# Z- F- sudo ufw delete allow 80/tcp
复制代码 , C k' Q% c9 e
或者,如果要删除允许UDP端口5000的规则,您可以运行:0 G$ z% b' q5 } t0 a
- sudo ufw delete allow 5000/udp
复制代码 删除规则后,再次运行sudo ufw status以确认所选规则已从ufw中删除。
2 \8 p6 V: d/ u i9 O0 G/ S$ Y. Y3 r$ v ~) I( v$ b5 J
阻止某个特定的IP7 M' s1 q, T( [% R6 V4 y* q
使用以下命令阻止来自特定IP(例如1.2.3.4)的连接:
% V. w7 A. B) j b- sudo ufw deny from 1.2.3.4
复制代码 # {, H" _, {0 J8 L; o
允许特定IP访问特定端口" b: H$ T2 D7 K* k" ]
使用以下命令允许特定IP访问特定端口。将[ip_address]替换为要允许的实际IP地址,将[port_number]替换为要允许访问的实际端口号,将[protocol]替换为tcp或udp,具体取决于您要放行的协议:) q3 \. ^! ]' G1 @
- sudo ufw allow from [ip_address] to any port [port_number]/[protocol]
复制代码
8 [) d+ i- ^. U* o+ I1 P例如,要允许IP地址1.2.3.4访问TCP端口22,您可以运行:1 c' `( ~' f% D2 v. q; Y( `
- sudo ufw allow from 1.2.3.4 to any port 22/tcp
复制代码 - D1 @# q4 F6 }% K) r
|