|
|
/ I* e, X) }2 E p, m; XUFW(Uncomplicated Firewall)是 iptables 的一个前端接口,旨在提供一个简单易用的方式来管理 Linux 的网络防火墙。它允许用户通过更直观的命令来定义允许或拒绝特定端口、协议或 IP 地址的网络流量。
: g# @7 a$ \6 z) r% B) H9 d# `! L& R3 {2 m8 _0 a a/ A
UFW 的主要优势包括:
; c4 }6 Z6 s0 I! Q {) O: a易于使用: 相较于直接使用 iptables 命令,UFW 的语法更加简洁明了。
7 [# [# Q+ L( D) K j2 H默认策略: UFW 默认拒绝所有入站连接,只允许明确允许的连接,这提供了一个安全的起点。2 ^8 }3 S8 u% d6 V& c$ ?+ t" Y7 @
模块化: 支持预定义的应用程序配置文件,简化了常见服务的配置。. p1 m* R. u" H
IPv6 支持: UFW 同时支持 IPv4 和 IPv6。3 I& p& p8 Q& D2 h2 E) ~# T
9 a5 l7 _! c; R$ c0 t- z. N
安装ufw
' M/ ^1 i9 t) ?$ `sudo apt-get install ufw
) ^, d# ?& [1 [2 h$ V3 G* V0 ^1 @7 e) L" R# r/ g L3 D L7 {
阻止单个IP地址5 H/ a! L: C" s% Y0 c u$ y1 h
sudo ufw deny from 192.168.1.100 to any( e6 a- X7 x/ S, @$ ]7 O
1 M" U6 b+ X+ [ U阻止IP地址段
3 @6 u/ W+ E* w$ asudo ufw deny from 192.168.1.0/24 to any
# W$ O/ }* Q' k4 u; }
0 b/ F/ p! ~4 o2 h. w% S允许所有 IP 地址访问 22/tcp 端口8 O0 @8 {% M- j* R
sudo ufw allow 22/tcp
. {5 ]( z) x9 _, g
- l6 G) |8 \" e! ?* K允许特定 IP 地址访问 22/tcp 端口 (更安全)" Z$ I, d/ ?* j
sudo ufw allow from 192.168.1.100 to any port 22 proto tcp
2 i$ ^4 [ X( k$ [ Z- a: D4 {8 K t* S+ ~& ?( E
+ U4 r+ P( }% @! R/ T解释:
2 I$ z8 `: n) E! K1 c7 V* Pallow:表示允许流量。 v: @' B# R3 T9 [
22/tcp:指定端口号(22)和协议(TCP)。
3 z9 o1 K" z, k! d2 jfrom <IP地址>:指定允许的源 IP 地址。
% B* I& I* V0 ` Z1 l1 {5 zto any:表示目标地址是服务器上的任何接口。: u; W! n: c' d# @
proto tcp:指定协议为 TCP。+ S. I6 ^/ r% W4 }
* l# h; y1 s8 h" `( ~
允许特定子网访问 22/tcp 端口& s0 v0 i: j; V9 }) x% L+ b
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
1 k0 ]; y8 g' m( x: j# x, S5 I4 x1 x6 T9 h* U
允许通过服务名称(推荐)1 D( r; D" }) k
UFW 支持通过预定义的服务名称来配置规则,这比直接指定端口号更具可读性和维护性。SSH 的服务名称通常是 ssh。
# C- m1 w& ~6 A& }sudo ufw allow ssh* r1 b1 @8 Z3 N q+ W. e' _ Q
: H F5 n& {3 t m9 s删除允许所有 IP 访问 80/tcp 端口的规则, p& s, [5 g% S) H0 Q
sudo ufw delete allow 80/tcp
7 z% @7 k, s% D2 P! N1 t# `- {2 c% S, O
通过行号删除 (推荐)
) H$ V, W, X* B2 X; v3 P5 ^" j8 K: X
使用 sudo ufw status numbered 查看带有行号的规则,然后使用 sudo ufw delete <行号> 来删除。
4 M7 f* U+ m7 u' {9 [ {: e2 }假设您想删除行号为 2 的规则:sudo ufw delete 2
V, Z$ r' E6 X! O$ v O
0 i. E8 \; K8 {) H5 ~, Y
; @ O: [3 p- Y7 j, S# T如果您需要临时禁用防火墙,可以执行:sudo ufw disable
8 ]3 B, n8 E" B. L
3 i- G7 M& P x: t& g如果您想删除所有已配置的规则,并恢复到初始的禁用状态(包括默认策略),可以使用:sudo ufw reset
* K0 z0 f3 p6 }+ y% S% \/ Y$ ~1 K* h" E& C- B8 M" V
允许特定端口范围
' d) u8 n( T; [sudo ufw allow 60000:61000/tcp
2 e, R6 K0 J& R. |# `, Hsudo ufw allow 60000:61000/udp
& t- {. K: I9 j# ^7 r
4 V* ~! o1 K9 `" g% X4 o拒绝来自特定 IP 的所有连接8 ^2 B8 k+ p; \" b; \# f1 G- ?
sudo ufw deny from 192.168.1.1009 R' n1 a9 _$ E$ h9 x% L9 Z% g* i' B
( D. ^ j$ c/ d" k6 r拒绝来自特定 IP 的特定端口连接5 j4 c; h* R3 Y" j* z+ Z0 U, E! X* B( A
sudo ufw deny from 192.168.1.100 to any port 22 proto tcp- }) x- ~5 U1 z( D) _& A
' v+ `; M, l9 ~ _, ]/ U
查看可用应用程序配置文件. |+ z& D* r, s) g# P% C
sudo ufw app list4 d% a/ O$ L! } L) }# \ X
9 h7 j, x, ~! Q& a3 c
启用ufw并查看状态; d6 t9 n* D# s. t/ W
sudo ufw enable
' b4 B! I/ p* j |" {sudo ufw status
* b% C, f8 j+ Q K" i. z- d9 h. t$ _" o6 b5 H* a8 N: ~5 q: h0 z% l
% K3 C4 d9 ]* r/ f$ F核心命令回顾:3 s: ?% z R! \: G3 X" d8 E
0 I: d/ }5 k2 W* i0 H) M. q5 l
sudo ufw enable - 启用防火墙1 Y0 }% N6 [+ S5 }- M$ G+ o
sudo ufw disable - 禁用防火墙
/ `/ r5 u. x5 p9 H6 L; b/ Ysudo ufw status - 查看防火墙状态
* q7 U" m" d! } W1 |0 @/ a( y$ C8 o3 }2 psudo ufw status numbered - 查看带行号的防火墙规则
" n) n0 o. _4 B. D0 rsudo ufw allow <port>/<protocol> - 允许流量( X$ Q- i0 b& M: `
sudo ufw deny <port>/<protocol> - 拒绝流量+ G. r; x) c) Z; @% \
sudo ufw limit <port>/<protocol> - 限制连接频率
' o) C+ B! D2 }0 k+ Zsudo ufw delete <rule> - 删除规则* q. x9 m0 R2 ?9 c7 }1 G
sudo ufw reset - 重置防火墙6 i# X9 q& r0 h) g% G
6 H' K! f" r0 s! }, k( s |
|