找回密码
 注册
查看: 1308|回复: 4

firewall防火墙acl规则,以及介绍

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-1-17 10:08:56 | 显示全部楼层 |阅读模式
现在对安全的要求更严格了,对内网环境的特定服务器,现在只允许指定IP或IP段进行访问,其他一律屏蔽,配置步骤如下:; ]  n+ O3 Z- N, t* R% ~# v$ U9 H
检查防火墙是否启动:
) S/ b& k& v; V  z  [1 ~# F: Ysystemctl status firewalld.service, x% z7 j! H- d- F1 a( e$ C0 r4 P+ X
启动防火墙:/ h& j# S- C( D! y" |7 b
systemctl start  firewalld.service, e6 P. @- q) @
7 U/ X- N! |: C6 i  m

% N* S7 [4 r4 w% y开机启动防火墙:% a  D2 g0 j. t( X& O+ B% K2 Y
systemctl enable firewalld.service/ J+ Q+ k3 H. w# r* G/ g

8 H' E0 j6 d* h4 f; j' G

+ p8 \( p3 v/ ^8 s# {8 ?$ w$ M修改防火墙acl规则:
5 ^: N+ f  M% S, M6 y. b& E2 R通过编辑文件:6 T2 i, |* U8 H0 x
vim /etc/firewalld/zones/public.xml( x0 O1 r9 n3 k$ Z7 z$ v
4 B8 u8 U/ C; ^' }) m8 t& r0 f+ [
<?xml version="1.0" encoding="utf-8"?>& B) q5 b0 @7 Q: [9 D8 O0 p- x
<zone>
% F# p5 X0 j$ U8 R7 A1 \2 [+ W  <short>Public</short>
9 Y$ b5 P7 [+ X* g) c  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>& M' a& `  ^+ I3 r/ K
  <service name="ssh"/>9 H: ]5 k+ ^1 N/ V
  <service name="dhcpv6-client"/>9 p6 j; F3 U) t. U8 X, }2 B
</zone>- H4 q; n( d- l5 \- \4 \4 w: N$ b
~                  3 V$ u' [% B3 u

+ j) O0 i2 F" b' u* C& i' X3 T默认的防火墙规则2 D* a& L- ~6 T( y8 ~

- _* i; o" F5 ~. {; D& o' c第二种通过命令:& h7 V& N2 ^" _) t- y5 I

1 |. q6 k2 U% ^# n! m1 d手动开放指定端口
0 Y, i4 X1 e/ B( Z( j8 _7 t% n# y/ j8 w8 H( j8 i& p; ?

firewall-cmd --permanent --add-port=3306/tcp


. W. T3 t8 v* {/ a, L
: P% O' F' a; s3 [5 y/ ~' l改完配置文件后重载一下防火墙服务$ K: A) _0 U( q# p
firewall-cmd --reload
; F9 O* E7 {5 |- e% T% `, M
9 u/ A8 |7 w& r- p7 W1 M& H+ L0 \. ~3 U
基本应用

firewall-cmd --state
5 A  d: u" t5 m6 @获取firewalld状态) c1 }! i$ P/ k9 U+ t* ?2 E
.9 V4 m* M6 f/ O3 m# ]
firewall-cmd --reload
* y& P8 t& E8 F' k7 s/ |4 K在不改变状态的条件下重载防火墙
( v# ~% C, t9 w.! N( v6 }% j3 n2 G, o
firewall-cmd --complete-reload) h6 i: a7 J1 t
完全重启,状态信息将会丢失
) [  G, ?9 n0 ^.
' ], r- P- u0 t  r: Lfirewall-cmd --get-zones# T, P% K: u' M3 H% `7 U
获取支持的区域% l$ U. Y7 w0 U0 z* t
.* M& T5 E  n) c$ b- ^9 G% P) E$ Z
firewall-cmd --get-services0 y  u* I4 k" a8 V$ ]
获取所有支持的服务,支持的服务存放在/usr/lib/firewalld/services目录下。# ^- [( H/ W8 P* {5 O' s% u
服务是firewalld所使用的有关端口和选项的规则集合。5 P9 }6 O" P& L* H
被启动的服务会在firewalld服务开启或运行是自动加载。
+ q8 T9 S1 F& @" D, B: i7 s我们还可以创建自己的服务,即添加端口和服务的对应关系,将在下面讲解。6 R  C0 |# U" R: X1 {6 E
.1 V( o; Z! H  E5 E3 G
firewall-cmd --get-icmptypes
. ?( T# k5 I. F3 G, ]' G获取所有支持的ICMP类型4 ~" P1 ~9 k; Y, n/ q
.- G! z4 P4 G  t  r, ^9 `2 h* |
firewall-cmd --list-all-zones
1 A# p$ y8 Z! F/ O9 F( f列出全部启用的区域的特性(即查询当前防火墙策略),特性是定义的防火墙策略。$ ~/ U/ B8 @/ }5 L6 L/ N' [
策略如:服务、端口和协议的组合、端口/数据报转发、伪装、ICMP拦截或自定义规则等。1 S0 w/ e5 j2 f  W! g
该命令会列出所有区域的所有特性,包括详细规则(rich-rules)。6 |& F8 l% x! O# v: M" @) j& S0 B- L
.
. V& q5 {/ }# r. q  ~! u( Efirewall-cmd [--zone=区域] --list-all
- ^/ K1 Q2 }, g2 y" v输出指定区域启用的全部特性,如果区域被省略,将显示默认区域的信息。* d! U1 g" W# @  l
.
+ ~" z3 Q$ c; t$ e+ P- Bfirewall-cmd --get-default-zone$ C9 f9 L! W1 Y* @/ ~0 Z
查默认区域,默认的默认区域为public# o  v7 c) b, v$ {
.
4 \& n2 q. N$ g1 W. l) ofirewall-cmd --set-default-zone=区域0 z% I) X) n5 T# f2 j
设置默认区域,也可通过/etc/firewalld/firewalld.conf中的DefaultZone配置项定义默认区域。
. {4 D: V9 v# E* ^流入默认区域中配置的接口的新访问请求将被置入新的默认区域。当前活动的连接将不受影响。* j: ~0 u. B. X9 p, a% f
.
# H1 I7 X; `& \6 Q; F1 Z4 ]' C+ Ifirewall-cmd --get-active-zones2 B$ r1 I/ j& A6 I
获取活动的区域,同时会输出活动区域所包含的接口。
; L. |  `) p# L- t# d.8 R" w* }  [5 |) _( f
firewall-cmd --get-zone-of-interface=网卡名) y# r' {! m2 W  W+ O
查指定接口属于哪个区域% i8 n5 X6 ?, @7 l; X. V
.$ c, M$ m: B1 h: `) i+ M
firewall-cmd [--zone=区域] --add-interface=接口名
0 S% S/ n0 y2 T$ C  l" s将指定接口增加到指定区域,如果区域被省略了,将会被添加到默认区域。+ }2 Y3 l7 ^- k) w
一个接口同时只能属于一个区域,接口会在防火墙重新加载后重新应用。
4 m& n# N/ ], u* P& @7 }. l7 b.1 T4 N8 j) P5 W5 G) O, y
firewall-cmd [--zone=区域] --change-interface=接口名
/ x- `+ \+ t% e修改接口所属区域,这个选项与--add-interface选项相似。
" z; x. d/ X  e( o& B但不同的是,当接口已经存在于另一个区域的时候,该接口将被重置到新的区域。  h4 X  Q, K0 i% |/ b+ D2 x: b" g
.3 B* R8 d  ]2 N( K
firewall-cmd [--zone=区域] --remove-interface=接口名1 ^$ K- }  |. w$ S
从指定区域中删除指定接口,删除后,这个接口的所有数据包将使用默认区域的规则。2 P& g; @2 \1 l0 \
.7 L; |4 P" i/ e* i: @
firewall-cmd [--zone=区域] --query-interface=接口名6 f% {/ X9 ^9 l
查指定区域中是否包含指定接口,如果区域被省略了,将被指定为默认区域。
2 R. I" Z4 o/ z8 G9 k' s.7 [" s, t  K9 o  [& Y0 |
firewall-cmd [--zone=区域] --list-services) [, p7 A% `; z- Y
列举区域中启用的服务,如果区域被省略了,将使用默认区域。
; n# @0 u, c, v4 ~% P! n2 X.
" ]/ f+ H0 H0 X" b! y  Xfirewall-cmd --query-masquerade 检查是否允许NAT转发0 f" M: s/ a# o
firewall-cmd --zone=public --add-masquerade --permanent 永久开启路由转发5 h1 }( A. x. z& w% p
firewall-cmd --remove-masquerade 禁止防火墙NAT转发
( }9 K" R% C% j.6 W0 S7 h8 {$ Q0 B
firewall-cmd --panic-on 启用应急模式,将阻断所有网络连接,以防出现紧急状况。. X+ Q) p7 |4 W  x, W5 p
firewall-cmd --panic-off 禁用应急模式
# j% o) r! s' m" Gfirewall-cmd --query-panic 查应急模式状态
- h5 Z" N; a& r) Y." \2 ^. @) f5 |4 y
其它相关的配置可在手册页man firewall-cmd中查看。


2 }5 Z. y: @6 r8 o5 q$ g, {7 E/ x) @% W' H. i8 m" j, ~

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-1-17 10:21:23 | 显示全部楼层
firewalld默认为我们提供了9个区域,默认就有一些区域是有效的。这些区域按照不信任到信任的顺序排序,如下。, R/ B5 C  V4 a# D; i' J
.
" Q, x$ t; c& `起---------------------------------: |' B7 ]% q+ I6 p6 e( B! c
丢弃区域(Drop Zone)8 P9 _/ E0 ?2 L9 i* o3 M
如果使用丢弃区域,任何进入的数据包都将被丢弃。" P9 \  f; Q7 V: \5 H" d+ l* r
这个类似于6.x版本中使用的iptables -j drop。3 w' l( P; k6 q6 M3 L$ P# C
使用丢弃规则意味着将不存在响应。/ Q. b( h" ?' Y' H: g: x& }
.$ E- c2 _4 j  e" V
阻塞区域(Block Zone)$ ]) S8 ~( e9 x2 y# x
阻塞区域会拒绝进入的网络连接,并返回icmp-host-prohibited。
  d% Q9 t, d* I$ S4 \只有服务器已经建立的连接会被通过,即只允许由该系统初始化的网络连接。
6 H, w$ Z* w! ]6 ~, V# b.) i8 k: n& r: J- s
公共区域(Public Zone)+ ^! e) v$ }' j- d. d. S
只接受被选中的连接,默认只允许ssh和dhcpv6-client。, k2 v4 {: |$ v3 \4 y9 Y/ X
这个zone是缺省zone,即被默认使用的Zone。, G# \- M( t/ k0 y5 i7 }
.
6 T3 Y8 M5 v: {2 ~  o' u: Z! O外部区域(External Zone)5 |# z3 i* Q7 a6 K
只有指定的连接会被接受,即ssh,而其它的连接将被丢弃或不被接受。
4 }/ F5 W/ c6 n) t这个区域类似于路由器的启用伪装(masquerading)选项。
( V) a8 f( O; z8 {$ ^0 R.2 _) D# p3 _- g; `% Y0 x
隔离区域(DMZ Zone)& B* J2 F! y2 d) q
该区域只允许被选中的连接通行。
' _1 z2 k& d, n5 [如果只允许部分服务能被外部访问,可以在DMZ区域中定义。0 P. D  ^# p. B
.  C" ^1 J+ @2 R. q5 I8 }5 r
工作区域(Work Zone)
. L9 d6 P4 w3 D5 _9 ]在这个区域,我们只能定义内部网络连接。# O/ x/ M# y2 i4 P
比如私有网络通信才被允许,只允许ssh, ipp-client和dhcpv6-client。
7 L9 D0 |: o& p* I3 J.
' I- E& G7 e% S& A- _家庭区域(Home Zone)
( H% h7 I6 o1 d, h这个区域专用于家庭环境。
; z5 p0 o7 W% n* ^2 ~它同样只允许被选中的连接,即ssh,ipp-client,mdns,samba-client和dhcpv6-client。7 t, e$ ]+ }: D' k8 v2 {
.- a& T, G, \- z2 a' x
内部区域(Internal Zone)2 g( J' @! |- z& r3 V8 ~
这个区域和工作区域类似,只有被选中的连接才可通行,和家庭区域一样。4 ~$ L- G5 |. k0 p9 i/ ]( v% A" \' N# e
.
; D; x7 L  |, K  H4 ^9 U信任区域(Trusted Zone)- t7 i$ {- [* V
信任区域允许所有网络连接通行。, j9 W% m0 p% Q5 K+ n' y; s
切记:trusted区域是最被信任的区域,使用该区域时,在不做任何配置的情况下允许所有连接通行。
) n, q# h* V  D: C) T2 A--------------------------------------始! p9 q) F( ]# q; N/ Q# |
.; `' }, P/ F7 u
以上是系统定义的所有的zone,但这些zone并不是都在使用,只有活跃的zone才有实际操作意义。! T! b( ?5 {6 r! z: u! @3 o
% R3 T1 e; V' X4 [9 N7 H
Firewalld 原则! M5 i  T( J" w4 O' Q0 h
.
" m. e# Z' }) v' a当一个客户端访问服务器时,服务器将根据以下原则决定使用哪个zone的策略去匹配。
+ K! G, V* |: Q: Z1 ].  y" O, s4 x8 R
1
9 P( j! S/ {$ x  L如果这个客户端数据包的源IP地址匹配zone的sources(来源),那么该zone的规则就适用这个客户端。
8 \, o; |. H% ?* Q6 M注意:一个源只能属于一个zone,不能同时属于多个zone。# u7 N6 x0 T! R7 _1 P8 }: J
.' X4 w$ l- I4 z" ?3 P
2" N) O) ^  K; q; W$ q
如果这个客户端数据包进入服务器的某一个接口(如eth0)区配zone的interfaces, 则么该zone的规则就适用这个客户端。
, @9 Z: j0 }# [3 j' P一个接口只能属于一个zone,不能同时属于多个zone。
' H$ \9 |/ S) }6 j8 I% P.
2 }; ~! w& q$ u: g3
4 i, z6 }1 r) X$ Z$ L! i如果上述两个原则都不满足,那么缺省的zone将被应用,即使用public区域。

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-1-17 10:24:43 | 显示全部楼层
实现过程/ h# P3 d: G. ?( C

# T* L% G6 R, u+ ^下面的命令将配置192.168.1.0/24整个网段的IP允许访问服务器的22端口
8 v; h% G$ L  m- U; U: M, L& m! h- @  B) Z* c1 {# P

4 M, r; A* U4 u0 ]' Y/ x5 R) m/ F8 x// 先移除默认开启的没有访问限制的ssh服务3 e$ ^/ B; g! X+ B/ L; g
# firewall-cmd --permanent --remove-service=ssh2 |* i8 ?4 ~- a# x+ x2 L. |# A
// 添加复杂规则,只允许指定IP段访问22端口# M& {; F0 ]9 C+ C  h7 O
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'0 C, c& y7 d5 b( B9 @8 ^
// 使上面配置生效5 U0 i) r% }! [( ^
# firewall-cmd --reload
4 N, t5 C$ {$ r$ L// 查看当前配置信息
4 S1 P6 N, N7 G0 o9 V$ E# firewall-cmd --list-all
' H$ M3 _% n9 v& b0 _ 6 N' {  _# J. {- J" ^
备注:
  I8 _1 @; d) K/ b  h# f source address也可以设置为单个IP地址,例如192.168.1.1
6 T; r: m: K2 P/ X8 K port可以为单个端口或端口范围,例如1-10000
4 |9 k. d1 ]4 R" o' X( H0 E% W+ p$ o3 R! p9 s) h

8 q, X% l6 o) b& p* ~' \3 o
# P# s3 P7 S6 O其他常用命令- B$ K: w2 ?" |5 H

  u, N% O' L+ P- Z- e0 b; w2 p删除之前的复杂规则,这里的内容需要与之前添加时的rule内容完全一致,可以复制粘贴过来
- _( m$ w6 M' J6 f
7 H: y) ~8 y, }% E+ z2 G. mfirewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'1 L6 u: o7 o& }7 m6 m% C/ h

' }& g& u5 S9 E; F手动开放指定端口1 x. S2 ~- A( K9 O% a+ ?) I
& j9 s( M- f: u, A
firewall-cmd --permanent --add-port=3306/tcp
1 t- k3 i- Q8 P- V4 _6 D
. k0 O% f% I! E1 `" _7 X删除开放的端口/ _0 X+ l! ^( Z% V

- Z4 s4 Q  {" }. v0 C1 M- Hfirewall-cmd --permanent --remove-port=3306/tcp% O; `, y* C6 \, x; O/ e& p

8 h! D2 A7 h* z; f1 j0 A开放指定服务(系统内置的)
* Q2 Z) v$ @+ ^  ~" z * H" y9 W* w% m( }" k
firewall-cmd --permanent --add-service=http
( D6 ?8 P2 f% }0 Y
9 q/ S" v/ ]$ M1 P- w  F7 O  h删除服务# C- y: L! a* Y" C# i
! S+ ^1 o9 A$ a1 `5 B
firewall-cmd --permanent --remove-service=http# |/ t  T, n3 B; @6 V( t

; Q) l0 [, h) }& P" S7 I添加白名单地址(单IP)) Y. y1 K: I; S" C; D* R0 g, Z

" j5 F1 `# T/ h7 y- D3 @- L5 Bfirewall-cmd --permanent --add-source=192.168.1.100
! |2 G( \5 S, |8 ^5 H  Y
3 D! c- @, I/ I- ~0 e( G$ k1 s注: 白名单中的IP可以任意访问所有服务器可用的端口 这个白名单的作用不是这样的,有待继续研究& S; w9 K+ E4 a3 C% G6 v2 D
/ i8 z: E% a3 P1 h: S7 O
# R4 X4 j9 K7 K& H2 v2 S3 U
添加白名单地址(指定网络段CIDR格式)
( {" A5 x! O: z; S ' o4 Y4 c3 m5 k' X% I# ^
firewall-cmd --permanent --add-source=192.168.1.0/242 U( k- ~- A# G$ p1 F5 P
$ W$ S6 s9 z' y+ n
删除白名单地址
3 G8 H5 y8 E/ y2 E
, W6 t* s, x6 }' z: _firewall-cmd --permanent --remove-source=192.168.1.100
' j* W. m( c3 X% [% s) R! O9 ~
1 P: e1 P. h5 k5 Y* R屏蔽指定IP地址% E1 c! V/ h( l4 i8 L

4 P, l& W1 G/ }4 R9 r* d& @+ |) nfirewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' reject"
9 q/ J  A/ X: ] & s6 h* b2 y; D; |) C; A3 V
屏蔽IP地址段
. u3 H7 ^5 c+ x: H; t 1 Z1 g5 }& p) E% y
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' reject"$ B! @6 w$ a" Y

7 i. I$ j" }$ a$ G/ N手动编辑xml配置文件
8 B: ~3 N9 L' x/ `0 N# A- [ " T) |4 u! @6 S. ^: g9 m1 x/ E* H; P
除了上面的命令添加规则外,还可以直接编辑/etc/firewalld/zones/public.xml文件(改完后记得执行firewall-cmd --reload生效)

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-1-17 10:26:05 | 显示全部楼层
1.firewalld的基本使用
2 S' e9 p2 v9 A2 m$ L
$ e/ L3 Y2 }; W. h9 J启动:  systemctl start firewalld( m) e2 t( c) k/ _, x+ a8 Z

( P/ B0 m) I) d! y, I% [# A查状态:systemctl status firewalld   Q& C6 S* c; ^1 K3 W$ D3 A& h
+ d! x5 _: e, b. M/ @  G3 t8 y
停止:  systemctl disable firewalld
3 }' h# r% ?7 h5 q% ^
4 j$ r" w* U+ j/ I+ Z- j禁用:  systemctl stop firewalld
0 m1 A0 o5 m$ p- w
; s. D* d) j) e* r- \在开机时启用一个服务:systemctl enable firewalld.service
7 x% u3 j& f1 o4 A( u' n$ m8 `6 _! J
在开机时禁用一个服务:systemctl disable firewalld.service' _8 S1 {$ B+ I# a8 A! L
' r' x+ J- K; x& ^
查看服务是否开机启动:systemctl is-enabled firewalld.service
; O, x; ]! j8 m( r* {
0 a; ?+ w0 T$ D8 V# f$ |/ x- L查看已启动的服务列表:systemctl list-unit-files|grep enabled
! @. r/ ]+ O8 B- ?4 ^
% l+ u4 w) \$ p8 \' L# T" ?查看启动失败的服务列表:systemctl --failed
* S) ?2 r+ r9 E4 g6 {% T! ^: W9 K: m) _" |

$ ~1 W" o0 W* F9 H* N2 e  A, i9 b3 {$ i
2.配置firewalld-cmd
: v; ^( R& A4 v7 p5 P) x# |' g0 B$ Q' [
查看版本: firewall-cmd --version2 _+ e. ?$ A5 Z* H/ Z; I

9 n* z9 q8 x: D查看帮助: firewall-cmd --help
. Y/ b( c0 e& l7 p3 J1 U! S
8 ~3 }3 K# G0 x显示状态: firewall-cmd --state- ^: z/ @  L7 ~+ o! g, k" G
9 m, A, e, F  p
查看所有打开的端口: firewall-cmd --zone=public --list-ports4 u/ S3 O- w) U6 g2 u

0 E( C& U. z# C2 A% o更新防火墙规则: firewall-cmd --reload
  ]' F- h, s8 L7 f2 i* j$ k" t7 y2 B2 D
查看区域信息:  firewall-cmd --get-active-zones4 Y% L, c% [6 u" t5 O3 Z

( Y/ O- s/ V. _5 ]/ A, P5 J( F- n: S查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
6 t7 N% N% c0 s4 c) L9 S" Z6 ^% C6 o# v: k0 c+ {4 C) f
拒绝所有包:firewall-cmd --panic-on
# i+ k( ~8 Z& v9 p6 l# u( J6 b  m/ E5 N; S3 G& N! z8 x$ {
取消拒绝状态: firewall-cmd --panic-off
7 q& b" G; j2 _" `+ R6 n9 v5 ~4 k# A  Z: Q- N( W8 l+ B
查看是否拒绝: firewall-cmd --query-panic
5 p7 G8 e- J% q1 S2 N9 w, U9 Z' |  R- c

0 r6 \; R2 Q: ^) o" H7 W0 V/ m
, e  w: G5 U+ F* D) z3.添加/删除  一条规则
/ J0 f" B; R! a# z( O
+ N5 }. w1 b, c6 b7 o, O' z( L6 s5 H8 ?; T) F" t

. m. `3 ~% ~7 o2 r( X5 O添加
1 E, u5 r1 J: n1 K
0 L# y+ G. N1 }" i1 N+ |: ifirewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(永久生效)* P$ }( V. Y: j5 ?0 a# s

/ ?8 b8 ]- K" L, Nfirewall-cmd --zone=public --add-service=http --permanent# M; @! N* U7 X4 z  d* ]' \

* I, H+ T# u6 g9 M* J4 ifirewall-cmd --reload    # 重新载入,更新防火墙规则
" V8 G' {$ D% M( [# e
5 q1 i: [& `8 E7 X/ _  d! Pfirewall-cmd --zone= public --query-port=80/tcp  #查看3 O$ t" A. Z2 X" n& @6 A
: q# {% S" }3 m2 d7 U$ f; Y
( S6 I( r; x. h% e& E
. A6 o! ^7 y: m; e
删除
# y8 E) U& M! L9 |. G
6 A0 f* P. C" e- B4 ~; jfirewall-cmd --zone= public --remove-port=80/tcp --permanent  # 删除
4 h1 d1 L: a; Q2 V+ P# r# N7 n
  Z% l1 d# ]7 ]1 v
  m3 d" c) S) D( |0 A. p: A5 P9 i) n5 f: b
firewall-cmd --list-services
; a  J: {& r* O- }  h6 i  V7 A9 a% i  }
firewall-cmd --get-services" l1 n# M, C+ d! N+ K$ A) u) v

2 C# t& Q# m( p  O+ Wfirewall-cmd --add-service=<service>$ _9 q* d5 n: Z0 \3 w6 Y
: y, ?* ^$ ]1 q8 H/ v1 ?5 d
firewall-cmd --delete-service=<service>/ f9 |# J3 Y# E7 \2 `5 C

0 N4 l4 j% a7 \  k5 }" Y9 e# h! x在每次修改端口和服务后/etc/firewalld/zones/public.xml文件就会被修改,所以也可以在文件中之间修改,然后重新加载
0 p. L& T6 l* ~8 b
) k2 w# s( m  ?使用命令实际也是在修改文件,需要重新加载(firewall-cmd --reload)才能生效。
: M0 k6 s# C2 `, V/ b2 P% m5 d$ |. }- |/ m; a" d

" o5 m# v' _/ X6 G5 U( {8 D) u+ J3 X1 H8 K7 o
firewall-cmd --zone=public --query-port=80/tcp) M1 `# r1 j4 h; P/ c( X% y4 @
/ O- P2 q) M5 j
firewall-cmd --zone=public --query-port=8080/tcp$ D! D2 [) O# ^& `, E

8 W! p) {# @' Ffirewall-cmd --zone=public --query-port=3306/tcp
, p! R  c# Q% D/ Y8 |4 Q: i) _$ m. |" n' v3 g( T
firewall-cmd --zone=public --add-port=8080/tcp --permanent5 n' B' |" B' A, c  Y1 @' p
* ]  K% ~# d% H+ I/ s- g2 B  f
firewall-cmd --zone=public --add-port=3306/tcp --permanent
+ y0 w7 x9 V) Z' {) r$ Z& r; q0 X/ b
# V7 a8 @+ j( ?8 ]: K* H- d3 Ufirewall-cmd --zone=public --query-port=3306/tcp
, ~# k* d7 x6 V4 `; G2 w) a0 w/ y7 X/ S  o7 V2 q9 k, J9 p/ B! M' P
firewall-cmd --zone=public --query-port=8080/tcp
9 S0 T4 M- g" _8 |, M! |( p$ b" B: M2 G1 Q. I* H3 ]- N7 i
firewall-cmd --reload  # 重新加载后才能生效- v# f& p( f" z6 }/ U
5 e; `" Y7 t8 ]1 W1 D) D6 R0 V
firewall-cmd --zone=public --query-port=3306/tcp
" @3 W. Y  z) u, o
6 ]$ P# d7 a2 m% y+ a* @- X4 \firewall-cmd --zone=public --query-port=8080/tcp+ G8 X# t* D9 O, ~3 q

6 ]- I: t9 ^" t+ \$ u* T% h1 g$ ]9 q6 `9 y9 T  r8 W6 z
( w5 K7 k: Q5 z3 @% J3 ~; W% w
4.参数解释4 t1 b4 |5 `/ C8 G4 P7 J$ V
; G% u* H* s$ |; P3 q  y. p. k; C, }9 v
–add-service #添加的服务2 P) L! G$ ^' M/ ~+ b
5 o9 U' e1 t! Q0 _2 ?5 V
–zone #作用域
' e% M& D; T1 Z/ V, k* C
2 b2 s: K# E6 h6 ^6 [0 c/ N; s, a3 @–add-port=80/tcp #添加端口,格式为:端口/通讯协议5 C8 j; |( i. K

8 y/ {% @4 |: Q  v4 w3 U6 \–permanent #永久生效,没有此参数重启后失效- V* A) h2 g  e
) \  v+ x; p( }9 g6 f
: i" n% }; ~( Z* v3 I6 n# i
. m- k2 j) a7 F. w1 t" \9 l
5.使用举例
0 K+ Z+ `* H+ K& K  {: X+ ~2 q/ N* a% L7 G! U3 V; j0 M

' U, O9 I: D1 u; D$ L
$ p' _/ c( G; E7 C+ U: L7 |firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.4/24" service name="http" accept'    //设置某个ip访问某个服务
3 ~' m( G: @  \) P7 r0 |
) E: ~$ N4 i3 g/ v- P" Y7 Pfirewall-cmd --permanent --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.0.4/24" service name="http" accept' //删除配置
: y0 e9 m' e4 N8 w6 c% E' H$ d; r" G# s/ ~/ X+ c' e
firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.0.1/2 port port=80 protocol=tcp accept'     //设置某个ip访问某个端口
+ W3 m; w6 j' p, _, N/ P- @. E/ M' L% i
firewall-cmd --permanent --remove-rich-rule 'rule family=ipv4 source address=192.168.0.1/2 port port=80 protocol=tcp accept'     //删除配置
; `  @! E" R4 V: l* c: v! [4 w- _, M! U8 [# U, }

0 \" p5 Q/ C4 w2 ]2 r7 D0 t! A# y2 N7 F
% y: p% H8 ?+ V# R5 X0 ?1 q* u, [. Afirewall-cmd --query-masquerade  # 检查是否允许伪装IP) W+ S' x1 s# z7 f. l( N. Y+ {

- |% Z% d2 J! z. M9 \firewall-cmd --add-masquerade    # 允许防火墙伪装IP
% i4 v  N5 F  W' I, _: K
1 H8 r  y( w5 s% ?firewall-cmd --remove-masquerade # 禁止防火墙伪装IP
5 F9 O7 E( Z3 |% c! f+ O3 i" D5 m( L% c

% E4 Q6 E$ A9 i9 n* a1 W! n$ X# `; l! j
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080   # 将80端口的流量转发至8080, T; h) D; A9 ?, V$ {
+ V9 R: u& E$ W* S' M5 P
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1 # 将80端口的流量转发至192.168.0.1( I2 L( n) q8 a( ?: z

/ O! x: p) D0 r& L  }; ffirewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080 # 将80端口的流量转发至192.168.0.1的8080端口( K! X2 s8 m( m
4 ^% s7 d- \4 a' Y( _

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-1-17 11:40:00 | 显示全部楼层
开放指定服务(系统内置的)
8 R7 T* {1 Q3 b( D1 Yfirewall-cmd --permanent --add-service=http
5 c% L* E+ O' H! v5 P6 m- v; L7 T1* T1 ]) L$ C4 Z! _& B: k8 U* v
删除服务  q0 B7 c+ i. q( E
firewall-cmd --permanent --remove-service=http
/ H: q( M6 D: j! t, ]2 K. l/ O; H1
* q1 X" v; i; Q4 ~添加白名单地址(单IP)
8 N0 Q" M5 m" ~& ffirewall-cmd --permanent --add-source=192.168.1.1006 B9 I( e' i0 I% F
1( V+ b( m8 a/ _- _! w
注: 白名单中的IP可以任意访问所有服务器可用的端口 这个白名单的作用不是这样的,有待继续研究
4 K" ~2 k9 J. ?' R2 p: }8 H$ V) n
! `: W) c) w( U添加白名单地址(指定网络段CIDR格式)
- ?5 y7 d. s' c2 w8 y& D! xfirewall-cmd --permanent --add-source=192.168.1.0/24
2 n; `4 K: a- s' m. K( ~1
7 K7 q2 j% ~2 F  ~# i" w& t  y5 L删除白名单地址# r4 v+ X+ ?2 n. y% Z# \
firewall-cmd --permanent --remove-source=192.168.1.100
0 u* S& r8 B/ E, ]6 T' x: y1
, P+ f: r$ G% a. j屏蔽指定IP地址
. t( m2 H: g* J( Ofirewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' reject"( O1 w# _& q/ O+ E0 i: Y
1
8 i5 h9 W  W: n屏蔽IP地址段
" E& D; I$ A, P/ {: c, _firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' reject"
5 V8 H- ?' Z1 S( h: T% s- c5 h1# j& e- c5 E6 S+ L3 X
手动编辑xml配置文件) ?" w% f9 U% A( _% M
除了上面的命令添加规则外,还可以直接编辑/etc/firewalld/zones/public.xml文件(改完后记得执行firewall-cmd --reload生效)& d! r# s, y4 H2 o& X
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 01:59 , Processed in 0.017915 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表