- 积分
- 16844
在线时间 小时
最后登录1970-1-1
|

楼主 |
发表于 2022-1-17 10:26:05
|
显示全部楼层
1.firewalld的基本使用
% G' v5 a! L: K$ h- F$ i3 ]+ J* Y7 y8 ~1 ~
启动: systemctl start firewalld
0 U# a O5 O1 L2 O
) l7 `% f9 [9 Q0 N查状态:systemctl status firewalld / `9 ]( {; t# j- o( T U
0 N* a7 D& a& Q6 ^; F2 C1 D2 }停止: systemctl disable firewalld! T- w$ |/ }4 `0 Y
- N# g% N7 D& f" e6 B
禁用: systemctl stop firewalld
, b3 t& e8 i2 n, H I
' W3 r6 E4 @. o( H# @在开机时启用一个服务:systemctl enable firewalld.service- Z$ Y* D P( Q8 D, ^$ p; ^$ Y
5 L9 w, f. K& s% L3 D9 w$ v9 r: ?
在开机时禁用一个服务:systemctl disable firewalld.service
) \9 }1 R/ U Y) v. ]/ W/ K& e
, R! x) o/ s- [3 \2 Q/ P6 J9 A查看服务是否开机启动:systemctl is-enabled firewalld.service
% o- h b* f+ g
8 F8 |+ T! t* X查看已启动的服务列表:systemctl list-unit-files|grep enabled
" H+ a! d6 O1 X3 M- F7 I6 t, s
2 c7 q) M/ _5 r6 D u- G6 E查看启动失败的服务列表:systemctl --failed! E% g4 p1 T! M7 u* a
$ M$ h5 }4 |! C5 w
3 r+ i n6 S: T$ ?. Y
% k) c# g Q( ]& Y2.配置firewalld-cmd
$ o9 j6 ]3 o' N6 b1 F G8 f% U. i0 c9 N1 r3 o
查看版本: firewall-cmd --version
! ^8 k; X& y8 ]3 L! v! ?, R5 c. i4 N, ]3 u" r Y
查看帮助: firewall-cmd --help
) T8 T( r# {4 ]$ a) {, J) m/ [* {+ S
显示状态: firewall-cmd --state
8 ^: n# l' K9 s) c7 C: l: x3 O8 `- j* n4 ?2 R
查看所有打开的端口: firewall-cmd --zone=public --list-ports3 |; d) R9 u! Y# B5 [- P. k" F
; @5 N) C7 t Y& n' n. f# |更新防火墙规则: firewall-cmd --reload
! ]8 }. U3 o; r7 U1 j1 ]8 k8 u; w; R8 u
查看区域信息: firewall-cmd --get-active-zones/ R6 b, b- q+ T; Q' p/ T6 {7 F0 m5 i
, g2 |; H u/ P5 J+ I' I
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
0 @3 n0 l$ O" ?4 [( w5 L; o( Z' a# o+ p6 w& N( H6 S) x9 t% _
拒绝所有包:firewall-cmd --panic-on7 l, h0 ^3 t3 u$ [6 h$ Z
% m1 ]; M0 C% m( ]
取消拒绝状态: firewall-cmd --panic-off
, J+ a* S% l/ ~& A; f8 h: X+ Z; T/ u3 v: `
查看是否拒绝: firewall-cmd --query-panic
' P3 ~; w: p/ q. Z, c8 v; j& m
+ p9 z5 ?9 |5 d4 x. m9 H( F2 n9 ^7 h& w" m. ^1 K1 m
8 t' u2 O4 ^" _5 _6 a/ b9 L% j* H
3.添加/删除 一条规则
M7 `, M- }2 K) n8 C
# f+ i" D" f8 J% r% s$ Z
* O5 |' A0 p( l" @3 R3 z! u, W3 U
% W# ?1 w9 ~9 A添加; I3 M2 l/ W! o+ i& L$ i6 v
8 l( Q0 n1 p. x% O$ d9 g3 Tfirewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(永久生效)8 K7 z% v: k1 P0 E; G! f
; ^: f' J" }$ P$ Q. s8 q1 K
firewall-cmd --zone=public --add-service=http --permanent
# i: G. L1 C1 x: B% r% s2 S) s/ h7 Y# t1 m
firewall-cmd --reload # 重新载入,更新防火墙规则
# w+ I* b5 A1 Y3 i6 o [6 z9 N
5 V# y! [! x4 Y. O7 Ffirewall-cmd --zone= public --query-port=80/tcp #查看
# Q5 ` Z5 y" m) U: u; l' x) Q7 W. Y7 |0 U
: L4 o8 _- }' s K
3 X1 G" u% b) i/ _$ O) O- H4 @ E
删除9 T" _" d2 h- {
6 g- c, W7 X& n: c8 g
firewall-cmd --zone= public --remove-port=80/tcp --permanent # 删除+ K: a0 w( f6 R! e
/ a4 q& }; `8 \, f, Q- U5 Y# ~
! n% ?9 k' C: c! |( g& P: p
, ]8 v5 k7 `8 K3 @
firewall-cmd --list-services
" q, _+ K4 c! w) g9 u0 I4 b1 v& F! N( H
firewall-cmd --get-services
3 d! s, }9 a! d
& F: G# X( y: L" a4 _firewall-cmd --add-service=<service>, F { K7 F0 G( p2 `7 G- [6 }; e
0 l H% v; q ^1 k) L8 Pfirewall-cmd --delete-service=<service>
. L$ Q( Z$ I; X6 n0 x; g/ w
: S6 @5 ^" \4 V: K X0 ~! \, w- \在每次修改端口和服务后/etc/firewalld/zones/public.xml文件就会被修改,所以也可以在文件中之间修改,然后重新加载' T. `1 ~1 j' I6 ]8 L2 e2 `" E
) B0 y2 T( k. B/ j( e- Q
使用命令实际也是在修改文件,需要重新加载(firewall-cmd --reload)才能生效。, l0 ]) B! z+ b. z* j
2 a9 H- g; f# U' B- j5 d# C" J4 ?5 Y1 b s
_" j! Q) w$ `% S; a
firewall-cmd --zone=public --query-port=80/tcp$ N% _& x3 Q8 L5 L/ H
' p6 k7 u5 p* x# M+ W! h1 O# Jfirewall-cmd --zone=public --query-port=8080/tcp
7 @0 l/ m( @: w7 X6 Y" Q( N6 C$ Q% o. q/ A* v. J
firewall-cmd --zone=public --query-port=3306/tcp
1 l, G' g: m4 T5 C g2 U% F3 o2 m X) Y! w9 }' R! [% l5 J- D. |
firewall-cmd --zone=public --add-port=8080/tcp --permanent
, l; U% l: x& z) `) t
5 Y K2 C, j6 U' Z) Afirewall-cmd --zone=public --add-port=3306/tcp --permanent: f' t% W; {" W1 E' ?) V
) E& ?& U7 h4 U: e. l" zfirewall-cmd --zone=public --query-port=3306/tcp
" S- K7 i$ l# l W! ]( |+ P$ M
: s2 v1 p2 I" m4 V+ I, ofirewall-cmd --zone=public --query-port=8080/tcp* D5 W2 F" a4 r3 j6 ?+ D; B
& m' ~( p" R; I8 xfirewall-cmd --reload # 重新加载后才能生效- r4 m5 T( i: D2 S( L1 V8 P
/ i: I q" Z! `/ H. o6 ^9 e
firewall-cmd --zone=public --query-port=3306/tcp# y/ O1 w8 N' ]" k4 @7 [
8 y# V8 ?% B) D& r! xfirewall-cmd --zone=public --query-port=8080/tcp
$ X& H' b- r; _% Q" ~3 E. z3 H! g# o* M0 ~( a3 ~
( F! c' U1 Y( b3 I
& z" Q1 a1 L/ C2 s" T9 ]
4.参数解释
( e/ i. h6 _( X8 s. f
4 n+ \6 _& v+ `7 ?, N–add-service #添加的服务
4 V9 y! D6 g4 k8 ~- d. Q v6 w5 o( |9 k% S7 {1 t
–zone #作用域! c3 N' C2 U5 ~3 G
3 O6 u3 ?" s- ^, e) [
–add-port=80/tcp #添加端口,格式为:端口/通讯协议, B, U: [2 L$ X( H
( Y' W I( f, v' ~" E! V–permanent #永久生效,没有此参数重启后失效
8 A7 t$ \8 h* x
& E1 M( H& O8 \" m7 R" w; E0 i2 G# A' w7 c0 L! L
/ D: K, z) A/ E2 z( l r
5.使用举例
4 g% Z1 l. D- f3 R9 N* @) P6 d& G' K. ]* f0 N8 u
6 ]6 K& z; i' W7 l- ]8 ?* j8 c9 b& j% l
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.4/24" service name="http" accept' //设置某个ip访问某个服务
4 k+ Q2 B& ]; e! v
6 d, F4 u& z! v# v0 Pfirewall-cmd --permanent --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.0.4/24" service name="http" accept' //删除配置
+ ]; R( l+ R' f. G% @) h& p4 ~
( Q* d' }4 F" D: \. Y9 Efirewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.0.1/2 port port=80 protocol=tcp accept' //设置某个ip访问某个端口6 w3 s6 [2 N/ o+ b, R \
5 O0 {7 u8 e- ffirewall-cmd --permanent --remove-rich-rule 'rule family=ipv4 source address=192.168.0.1/2 port port=80 protocol=tcp accept' //删除配置1 {: T7 Y" @+ h6 S8 c1 k$ p" n
( n: g$ m2 x9 a9 Q* v- D( \ z
* d, c2 l3 j# I( V7 Q) `
- X% A- I* K' y+ P- J" C! kfirewall-cmd --query-masquerade # 检查是否允许伪装IP; Z/ \. \4 ~# D1 i( F: I
8 _9 E) s' q; T2 W# z4 {firewall-cmd --add-masquerade # 允许防火墙伪装IP5 |9 E/ d7 [0 P9 M. x" ?
% s5 V% a$ i) E _; w
firewall-cmd --remove-masquerade # 禁止防火墙伪装IP
1 [+ g* D, E. Z* |, ?7 Y. K' Z% U6 Z
( W f1 A: z! d+ X- @) E
+ B* x! s- @7 e& B7 ^- [9 ^
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 # 将80端口的流量转发至8080
( Y: g5 F/ h; G7 V# V9 t' r a% r! T
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1 # 将80端口的流量转发至192.168.0.1
' {$ x. ?0 @, V0 [9 P4 L* J6 |
0 e! R' h- z, Q) N& d0 `) jfirewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080 # 将80端口的流量转发至192.168.0.1的8080端口- L7 ] H) o' S9 u
7 ~) E" [* ], V) r' V/ e$ |
|
|