|
|
; @2 c8 ~# w; Z: E7 V! nUFW(Uncomplicated Firewall)是 iptables 的一个前端接口,旨在提供一个简单易用的方式来管理 Linux 的网络防火墙。它允许用户通过更直观的命令来定义允许或拒绝特定端口、协议或 IP 地址的网络流量。) c: F1 v2 i2 Z5 s7 i7 T! I
* }' J) G0 `1 p: C }UFW 的主要优势包括:
! r8 y) Y; a1 w. g* M- ~5 C% ]易于使用: 相较于直接使用 iptables 命令,UFW 的语法更加简洁明了。) [* X% w/ T2 j$ o- F
默认策略: UFW 默认拒绝所有入站连接,只允许明确允许的连接,这提供了一个安全的起点。( Q- h9 m! Q% }
模块化: 支持预定义的应用程序配置文件,简化了常见服务的配置。' e: x- o; K E* J" U, L. h5 U h
IPv6 支持: UFW 同时支持 IPv4 和 IPv6。% q6 _7 S7 T; D% x) o9 ^
% h0 h1 y( R9 i/ W+ i- ]' r4 a安装ufw6 C7 j; o6 Y/ i. F9 E4 ]/ W
sudo apt-get install ufw
: l/ k5 ]( ?5 ~8 B4 D3 H
+ w1 _5 W3 Q& ], x5 @6 d阻止单个IP地址
: Z1 n# B) ^; D+ C( ^: ?sudo ufw deny from 192.168.1.100 to any
/ @9 B; s% p- g& g# `
9 R1 |- v! _5 A& y/ c- _) P阻止IP地址段7 n& y! h! n% b: ?
sudo ufw deny from 192.168.1.0/24 to any4 l' N' S2 B& i' S! E! ]$ I; U5 ?
& u8 U. o$ q( Z" {) X- U, W0 d允许所有 IP 地址访问 22/tcp 端口- {8 S, m: Q# U& s6 l
sudo ufw allow 22/tcp; Y8 y* p0 Z/ ^0 ]
# }9 h1 E8 a( E. f2 V* D, X E允许特定 IP 地址访问 22/tcp 端口 (更安全)0 ]# l, u& t5 S) H! S% t
sudo ufw allow from 192.168.1.100 to any port 22 proto tcp
- t8 a! l' I1 W$ r: |! O$ g' w: l& G D9 l# t$ [. q
4 M7 F F& }" d解释:- Y6 {+ p) y/ s# _
allow:表示允许流量。
+ U. _8 P6 Q1 c1 C0 f2 B; X22/tcp:指定端口号(22)和协议(TCP)。
% K' E; P; B" j2 S- c" z: h, Vfrom <IP地址>:指定允许的源 IP 地址。
$ \. T) P1 Z, [+ K3 Y8 C' mto any:表示目标地址是服务器上的任何接口。6 O: M* \5 E* b J6 K" F3 i& A0 A
proto tcp:指定协议为 TCP。
( H$ I3 Y2 W$ N5 a
* ]* w. k- o3 z允许特定子网访问 22/tcp 端口# d5 \4 |" k3 l; b1 _
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp; g# \' k& x& ?" c# G0 i$ C5 D
8 b$ X) M! @0 T允许通过服务名称(推荐)
1 M( S% V. Y2 S! [1 bUFW 支持通过预定义的服务名称来配置规则,这比直接指定端口号更具可读性和维护性。SSH 的服务名称通常是 ssh。" E$ F$ ~- e( N! S
sudo ufw allow ssh
% _5 V8 k6 I) }! x
# r* d9 K3 u0 k删除允许所有 IP 访问 80/tcp 端口的规则) e9 O' H% N: B$ r! v
sudo ufw delete allow 80/tcp
/ F" I$ K& m* n6 N: p+ {3 @$ ]' ^$ }7 W2 Z1 c [
通过行号删除 (推荐)
+ g/ K1 g& i# ]9 F
2 h) H. A8 f; p) s# F7 t Z( W1 D使用 sudo ufw status numbered 查看带有行号的规则,然后使用 sudo ufw delete <行号> 来删除。- k) v+ v n' E9 B: h5 R
假设您想删除行号为 2 的规则:sudo ufw delete 2! Z0 x" O- ?, [1 }
: z; \6 V) W# G& s
3 A+ m. i4 M1 O: c+ ~
如果您需要临时禁用防火墙,可以执行:sudo ufw disable/ L# U* c/ ~3 P9 N5 a n
& d4 Z3 N' y% d) G
如果您想删除所有已配置的规则,并恢复到初始的禁用状态(包括默认策略),可以使用:sudo ufw reset3 Z/ ~) h1 r7 t+ D
\, N# r0 S% e4 E8 e" G
允许特定端口范围$ C& ?- P& `7 }* u& b9 g
sudo ufw allow 60000:61000/tcp
0 J, W) s: S" lsudo ufw allow 60000:61000/udp/ _7 S3 `; \% g; K& e. B0 I
4 H( ^& d& `5 n, _% P3 {$ _& r
拒绝来自特定 IP 的所有连接
* p: I6 V: {2 Csudo ufw deny from 192.168.1.1003 S$ O/ Y) x6 P) i) Y- b
a" D& O" T) N
拒绝来自特定 IP 的特定端口连接
" w q! d P: A, M; ~" Esudo ufw deny from 192.168.1.100 to any port 22 proto tcp' s: z, ^; [' X! k0 U/ |
4 h' U2 Y6 M. q3 X4 m3 I+ e5 R. c查看可用应用程序配置文件, c9 S' c, l) Z" V+ R# W
sudo ufw app list
8 X& A& y8 {7 ?3 O' R) T3 Q7 a& K9 \: ]7 B
启用ufw并查看状态9 e8 q) g; t2 n" {
sudo ufw enable. ]2 p( L) F/ a Y8 w
sudo ufw status
7 m; }" P& s% K9 I% r: K% _" L/ H$ }& _; l% P0 t# U3 q
8 l5 R5 O* F/ v0 }1 E核心命令回顾:
$ [; N* \' L! |7 f( X- P: n h+ ^! i: D0 j% M
sudo ufw enable - 启用防火墙
9 @: F- e+ X: n, O' M+ e5 l( hsudo ufw disable - 禁用防火墙
6 M0 D6 b6 _% q- I5 V1 ]' msudo ufw status - 查看防火墙状态" i" D9 W# O, b. k, J" m8 b
sudo ufw status numbered - 查看带行号的防火墙规则
9 t2 M+ a% A5 w5 s& J6 Usudo ufw allow <port>/<protocol> - 允许流量
/ _( J- j6 C* O4 { c! Y; ssudo ufw deny <port>/<protocol> - 拒绝流量2 N% F3 m7 u: x4 L4 }+ o+ y) n
sudo ufw limit <port>/<protocol> - 限制连接频率
* ^- U$ J% P5 D! I6 K8 O! [sudo ufw delete <rule> - 删除规则
/ d/ ~6 e/ w$ w7 p- H( S: T6 jsudo ufw reset - 重置防火墙
; d- B& ?, F' Q+ \$ I* P
- ^+ X" O( B; [ m% z& \ |
|