安装ufw
4 a3 u6 q3 w% I; x. Y# F& {在 Debian、Ubuntu 或其衍生版本上,打开终端并执行以下命令安装:
- }0 V9 h) \- D- }; Q. f
0 @ X# Q8 d3 j# 安装ufw
1 M4 x) f! S0 `& z- sudo apt-get update- n% R3 v! x7 }5 P% q" J
- sudo apt-get install ufw
复制代码
" V: R' z" h8 G1 E0 C- b& Q# 启动ufw' S! U3 T! p1 C6 E/ ~) b' q
+ q- u' ]# [- D$ }' v# 设置为开机自启
/ I& d& v4 i- p7 y# A- sudo systemctl enable ufw
复制代码 5 t7 I( ^9 x$ P" X
执行sudo ufw status查看当前状态,通常有3种状态:
2 g, Q! H/ c/ k+ }0 j6 ^- Status: inactive(未启用):表示 UFW 没有启用,防火墙处于关闭状态。. `9 s3 @7 X g% T: ~7 E7 X* y9 q
- Status: active(已启用):表示 UFW 已经启用,并且防火墙规则正在应用于系统。/ y" ^" x! {' h* F4 v
- Status: inactive (dead)(未启用且未运行):表示 UFW 已被禁用,并且防火墙未在系统中运行。
复制代码 + O, v! |9 d3 I( d
ufw放行端口
8 y; ^) X: I9 \* h* j# ]+ A( _& Bufw的命令比firewalld简洁许多,比如你想放行单个端口,只需要执行:8 N* F; _( h$ Q x W
# 将 <port> 替换为你要放行的具体端口号。例如,要放行 TCP 端口 80,可以执行 sudo ufw allow 80。* i) B& M6 i) H3 E& u% y6 k T: Z8 o
如果需要放行特定协议的端口,我们需要加上协议:, e* Y8 U% C3 L/ \
6 `$ e- Q- u: n# 将 <port> 替换为端口号,<protocol> 替换为协议类型(如 tcp、udp)。例如,要放行 UDP 端口 53,可以执行 sudo ufw allow 53/udp。
9 P9 ]5 g' N1 N R: c- sudo ufw allow <port>/<protocol>
复制代码 ( U3 m1 e' J& \/ W% G2 j# ^. V! ]4 B
放行一个端口范围: f! K: | O9 M0 _% k/ i
- sudo ufw allow <start-port>:<end-port>/<protocol>
复制代码 将 <start-port> 替换为起始端口号,<end-port> 替换为结束端口号,<protocol>为协议。例如,要放行 TCP 端口范围 8000 到 9000,可以执行- sudo ufw allow 8000:9000/tcp
复制代码
8 R7 {1 r: J Q1 R& X9 v- d* Aufw删除已经放行的规则或端口" L9 q+ r: M8 ~. l1 p
要在ufw(Uncomplicated Firewall)中删除已添加的规则,您可以通过规则号或者具体的放行条件来删除。以下是两种方法:7 d5 d0 c8 W# y G3 x
2 v" \' b/ Q; ~- a3 P方法1:通过规则号删除9 s% u/ L6 t6 }8 M* K# G
首先,运行以下命令以查看当前ufw的状态和现有规则:4 U% U+ A# W5 V4 k
& X5 d* L* M3 O, u7 a3 d& L' m7 {
这将显示带有编号的规则列表。
1 F, U a) ^0 X& Q0 Q, |& K确定您要删除的规则的编号,然后使用以下命令删除它,将[rule_number]替换为实际的规则编号: ~! l* {. k* n/ I7 j! x, N
- sudo ufw delete [rule_number]
复制代码 S3 Z! k; e# M& j9 L* `: i
例如,要删除编号为1的规则,运行:
* C2 H% l5 E' i, h3 v: B8 `: ?: R" s: n
方法2:通过放行条件删除
" \% h% V( J- J. n/ r( `3 ]您还可以通过指定放行条件(例如端口和协议)来删除规则。例如,要删除允许TCP端口80的规则,您可以运行:
5 Q) @- k9 E5 u" ~/ o- sudo ufw delete allow 80/tcp
复制代码
0 ?" H( s, K4 } m( S. l8 I0 j4 i7 S& t$ H或者,如果要删除允许UDP端口5000的规则,您可以运行:
( j( [4 x" Q4 {( Z, r- sudo ufw delete allow 5000/udp
复制代码 删除规则后,再次运行sudo ufw status以确认所选规则已从ufw中删除。
: n2 V3 ~6 S/ T) `( `7 p. \. @
! w& s% U }* i! M阻止某个特定的IP
' _! ]5 [! N; w) ~7 X3 p# ]7 Q+ J使用以下命令阻止来自特定IP(例如1.2.3.4)的连接:8 X0 \% }9 n9 I% d+ m. _
- sudo ufw deny from 1.2.3.4
复制代码
Q$ _$ `: ?; J允许特定IP访问特定端口* s/ S: m* d4 P9 L- T
使用以下命令允许特定IP访问特定端口。将[ip_address]替换为要允许的实际IP地址,将[port_number]替换为要允许访问的实际端口号,将[protocol]替换为tcp或udp,具体取决于您要放行的协议:8 l- `+ M1 g$ g) p3 f/ X1 J
- sudo ufw allow from [ip_address] to any port [port_number]/[protocol]
复制代码 0 [' ?8 k5 d+ l4 D: ~
例如,要允许IP地址1.2.3.4访问TCP端口22,您可以运行:' ~4 C9 x( u/ }5 |' k& [% e" P- e
- sudo ufw allow from 1.2.3.4 to any port 22/tcp
复制代码
& U3 i$ Z# T$ z5 G G" U |