安装ufw
4 H2 m) X; F& ~. K) E4 b$ X( W在 Debian、Ubuntu 或其衍生版本上,打开终端并执行以下命令安装:! Z6 R- `8 b- b1 `+ v( ~. l& x) R
4 C4 V0 N% E2 u2 \- m
# 安装ufw
, e- x; t3 Y+ c7 m0 B! m, u8 w- sudo apt-get update, u- `7 i: D4 A. S' q
- sudo apt-get install ufw
复制代码
4 S6 H* L) K* a# N1 q; v; M6 D# 启动ufw
6 m& v) [ m8 J3 g
" _& R! b6 g' V% U& _# 设置为开机自启
/ R ~% z5 S1 r: M+ b: w+ `- sudo systemctl enable ufw
复制代码 : ~+ f* Q9 R \9 T( T& \
执行sudo ufw status查看当前状态,通常有3种状态:
0 l+ ~" c5 R: P7 [- Status: inactive(未启用):表示 UFW 没有启用,防火墙处于关闭状态。
8 |( D F; `1 {' p: Y- M - Status: active(已启用):表示 UFW 已经启用,并且防火墙规则正在应用于系统。
* k6 G6 z# Q# B. n+ |1 k8 r, { - Status: inactive (dead)(未启用且未运行):表示 UFW 已被禁用,并且防火墙未在系统中运行。
复制代码 0 h& o! L- A+ s; r' S
ufw放行端口) {; L- e0 M- ^" b% q |5 q t
ufw的命令比firewalld简洁许多,比如你想放行单个端口,只需要执行:
6 @" f3 H7 ?3 S% l" A4 K' g2 `# 将 <port> 替换为你要放行的具体端口号。例如,要放行 TCP 端口 80,可以执行 sudo ufw allow 80。
4 s9 S5 |4 C: p C% t如果需要放行特定协议的端口,我们需要加上协议:
" Y h& R; h1 z, q! C% w/ a9 G! g" A1 a9 k% X
# 将 <port> 替换为端口号,<protocol> 替换为协议类型(如 tcp、udp)。例如,要放行 UDP 端口 53,可以执行 sudo ufw allow 53/udp。& V: ^& X2 k: H
- sudo ufw allow <port>/<protocol>
复制代码 * i( g/ a% y! g
放行一个端口范围:, M: Z/ Q! E' j& p) r$ V
- sudo ufw allow <start-port>:<end-port>/<protocol>
复制代码 将 <start-port> 替换为起始端口号,<end-port> 替换为结束端口号,<protocol>为协议。例如,要放行 TCP 端口范围 8000 到 9000,可以执行- sudo ufw allow 8000:9000/tcp
复制代码 " \) Y$ H; _/ ~! w) a
ufw删除已经放行的规则或端口+ S" O V0 x$ X A w/ w
要在ufw(Uncomplicated Firewall)中删除已添加的规则,您可以通过规则号或者具体的放行条件来删除。以下是两种方法:
9 Q/ ]- D- P$ s1 Z2 n, Q1 _* j+ \
( t1 ^% h, n1 A% d- V方法1:通过规则号删除( C# W4 ^# i* V: C/ K+ X1 M
首先,运行以下命令以查看当前ufw的状态和现有规则:
8 O a! F q& }1 B1 {
5 o- n7 R! X* B, f这将显示带有编号的规则列表。
& {2 k$ M9 t6 Q9 E2 ~确定您要删除的规则的编号,然后使用以下命令删除它,将[rule_number]替换为实际的规则编号:
1 y& ?) o `& _0 B; G% v' A- sudo ufw delete [rule_number]
复制代码
( `0 m% h: }% J3 W( L2 p; W例如,要删除编号为1的规则,运行:5 B% H* ]3 T6 A* S1 [" V
# M T5 V% a h3 y: {+ V
方法2:通过放行条件删除
0 q }$ F( }) A! P7 Y; J( L您还可以通过指定放行条件(例如端口和协议)来删除规则。例如,要删除允许TCP端口80的规则,您可以运行:0 L% f) f, ?& E0 z* X. Y R# \
- sudo ufw delete allow 80/tcp
复制代码 ; x/ Z n/ B% I$ a
或者,如果要删除允许UDP端口5000的规则,您可以运行:9 o3 ^- V8 S4 Q, L1 p
- sudo ufw delete allow 5000/udp
复制代码 删除规则后,再次运行sudo ufw status以确认所选规则已从ufw中删除。6 K) b# C0 i' y6 t* p. X$ g
9 _1 Y8 P; Z( @* h D$ o7 X阻止某个特定的IP: Z1 P. s$ d$ a) B: p: ^8 f5 O
使用以下命令阻止来自特定IP(例如1.2.3.4)的连接:
4 f) M$ J% d1 y" K9 c1 w- sudo ufw deny from 1.2.3.4
复制代码 ' G- M! ~, Z1 F9 w: ^
允许特定IP访问特定端口
8 J9 E Y. @- h' B0 i/ }/ I9 [使用以下命令允许特定IP访问特定端口。将[ip_address]替换为要允许的实际IP地址,将[port_number]替换为要允许访问的实际端口号,将[protocol]替换为tcp或udp,具体取决于您要放行的协议:
6 W3 w8 o& F' G8 e" x5 c3 V- sudo ufw allow from [ip_address] to any port [port_number]/[protocol]
复制代码
1 _: C* S1 L. n8 Z: D) T- u) }例如,要允许IP地址1.2.3.4访问TCP端口22,您可以运行:% M d M! }& B9 l3 @4 s+ V& H
- sudo ufw allow from 1.2.3.4 to any port 22/tcp
复制代码
; W* f2 D$ Z* Z3 O |