|
|
楼主 |
发表于 2022-12-20 16:11:18
|
显示全部楼层
1、查询、禁用、删除、自定义 firewalld 服务的 ping 响应:! y% n# O% |( ]. _0 T( l7 A, z9 S5 W
" S+ |+ a+ g/ S! H2 D3 A" F
[root@centos-test ~]# firewall-cmd --zone=public --query-rich-rule="rule protocol value='icmp' drop"
, M8 n, f5 k" v* H% S. ~: f5 x
$ ^+ I) N* V% f9 p. W+ @/ }[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule protocol value='icmp' drop"
8 w( Z. w" t3 A/ }- G" w1 G1 W2 W- v4 S' ?3 F+ ?
[root@centos-test ~]# firewall-cmd --permanent --zone=public --remove-rich-rule="rule protocol value='icmp' drop"
7 a0 Q5 k3 F# r( s* W y1 d0 A0 ]9 C; e2 y9 r$ m% m( p
[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' protocol value='icmp' accept"
- }: `; l0 E1 O( g+ p* c. ~8 B, i5 d- L6 h. j' a+ A
# 允许172.16.1.10主机ping。
0 X+ F: }4 I% ~/ b
0 r/ b* ~* c) r4 W6 V; l' T" p. N! w
1 e; o5 y6 U+ }/ l2、添加或拒绝某个IP访问ssh端口:) ^: V# G# ^5 @
1 @) u$ U% A6 k* \[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='ssh' accept", o; M/ @* p' ~
* u! D5 o& I9 s* F |[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.0/24' port protocol='tcp' port='22' accept"7 F% M. G- d/ Y/ }$ F5 W1 @
9 i1 s; @/ t0 R/ a1 ~7 h# 允许172.16.1.0/24网段的主机访问22端口。4 b& T8 {' [3 ?! K q
- B9 G; J. X2 x
[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='ssh' reject"
7 }1 j. `' @1 w" f5 b, `
- l8 z/ |4 w! w3 F8 }[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='ssh' drop"
9 D- _0 p: P8 `: O- Q! C) s* ?0 d
0 `# R. }; _# @# reject 和 drop 的效果是一样的。
% R# l2 t& q* S/ z
. \: T, k+ E3 [' {1 f" _% ~% u" r4 \
9 `: u9 M9 t. B/ s; v& C3、列出所有多语言规则:
1 l j3 d3 r! B3 A/ y+ |8 Y T/ H1 g3 c% T% M
firewall-cmd --zone=public --list-rich-rules
9 Q+ d$ h/ M7 y% i' M# G1 b7 ?0 d; z4 x5 A4 ^
% F/ D/ D/ `1 I2 ^! Q
4 V, z6 L6 h& G3 n" }! j4、允许172.16.1.10主机所有连接:# O. Q' A$ |/ A* g+ a/ P9 M
0 {4 f5 B( ?6 ]' ^# h; ?
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' accept"
* c. f& q7 V$ Q, L+ ]. m% ^: R( f3 R5 B0 |$ |5 [8 a5 `
9 I2 s, G! [) Y& W' |$ q( k2 o l' v* p, O/ O
5、每分钟允许2个新连接访问ftp服务:+ _" v9 H' z0 Z* S4 _( F
0 o+ b4 v6 b! s6 e& Dfirewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' limit value='2/m' accept"2 e/ R2 O( N# t* F: J& Y
" r+ D6 P$ G3 m* `, L3 \, ~* q$ e; H S6 O' Q& E% |) n
& [/ h# _' I5 n2 K
6、同意新的 IPv4 和 IPv6 连接 FTP,并使用审核每分钟登录一次:5 r5 q! g+ U: k
! Y* }8 s, y3 p2 x( L3 Z# ifirewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' log limit value='1/m' audit accept"
; n) q. o" O; A- i; Y
( R; e! u; v+ @$ \9 g% G
" b6 }; t% q" I* |
7 C3 w# `4 l( N& i0 B7、允许172.16.1.0网段中的主机访问ftp服务:
7 O% u' q* o% T; c
5 K/ a# D0 R! ?" j# rfirewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.0/24' service name='ftp' accept"- N$ h2 D+ |0 G* Z6 W) ]8 n4 V }
7 o, S; ~7 i: U5 c& s/ ^) Q" H
& ]5 A$ p8 S: |2 q/ i
0 J1 q$ [' |$ X& j0 T8、将来自172.16.1.0/24网段访问本地8080端口的流量转发到172.16.1.208主机的80端口(源地址转换):8 p7 z* ~: c! Z5 E
- m: o, n0 P0 E2 X6 Q! Zfirewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.0/24' forward-port port='8080' protocol='tcp' to-port='80' to-addr='172.16.1.208'"
: | B' \. y: L/ y2 ]5 S* J/ k( L8 I7 l5 x* E2 p/ l, ?# ~" N
# 伪装(需要开启masquerade),将来自局域网172.16.1.0/24网段访问外网的流量映射为网络出口公网IP,即修改源IP地址。
/ M* O P( u; G( G& k
% {0 t; i1 s* _. J& ?/ Y7 s B- d# r" U( w" c7 \) j
4 o5 o; Q9 X& ]! a$ _9、禁止172.16.1.10访问https服务,并返回错误信息:
1 R7 S3 B# ]( t9 i5 z7 i N1 D: |" v1 [! Y: e/ j1 v. W2 d( A
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='https' reject"* [1 @- ?/ Z6 }; z% ?8 K
; P2 b- t1 Z3 |
# 如果是drop的话是直接丢弃,会返回timeout(连接超时)。
$ Q+ P& o. z+ S7 m4 e0 x5 j- j; ^& s" t" Q# x; c8 p! N+ X
. L6 \; R* |: L+ }$ i- `6 D3 C1 R" V; ^2 `4 k& }9 A! v
10、每分钟允许2个新连接访问ftp服务:
- H9 c* w9 F. u' A" p/ W0 [% E. O5 I: h% Z4 I/ A, a0 Q# T+ J5 D
firewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' limit value='2/m' accept"
, l( L1 w7 h" }4 g
; L0 R9 ~2 _- G; k6 s1 K
. v3 y3 P" H/ [ t2 o8 b& I/ `! F& T) w; {5 J+ V% Z/ T7 R$ L% i" Q
11、允许新的ipv4和ipv6连接ftp,并使用日志和审核,每分钟允许访问一次:
! v) X5 p7 Y1 G+ J1 e
# C: d; F9 w; k2 _# Kfirewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' log limit value='1/m' audit accept"$ `- w- D+ y9 d, D
. i1 G H5 U9 M+ X% C* K- S
9 f8 P) y8 a* r) h0 V
/ m" ?% P+ c N& K5 I$ B; T12、将来自172.16.1.0/24网段访问本机8080端口的流量转发到本机的80端口:# l3 C5 c6 X+ a* p6 M! c
' K4 A- { i4 k# V2 A, O. P9 Mfirewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.0/24' forward-port port='8080' protocol=tcp to-port=80"
1 o! }/ R; R! j+ T% ]3 _; a
0 d* N; Y6 f5 {; ?: o) o$ ~# U9 z/ f, M& {4 z1 B3 G
" T" ]; l, H1 s5 W; V" `9 K13、允许一个IP(172.16.1.10)仅能通过指定端口(8080-8090)访问到目标(172.16.1.12):( ^3 M* Y. r/ K" {; c* ~7 ?
/ ]6 m5 H9 M+ o Ffirewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' destination address='172.16.1.12/32' port port='8080-8090' protocol='tcp' accept"( t5 D8 h! t3 T
/ S/ E$ N* _' i6 ]) e
- [6 v; H% w7 A+ Z5 L3 i2 e$ t& G3 Y% G, z' B- v: F" Z: P. A
14、添加、删除 firewalld 服务可以访问的IP地址:
- w! _0 `& ?/ v0 l0 L5 ^" c5 M0 h' ?5 k+ [
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' port port='80' protocol='tcp' accept"( q$ B) D/ E. x% ]0 w0 D* v. @. E
1 G' |9 o: M4 F" Q5 K
# 允许172.16.1.10主机访问80端口。
2 X+ [( z2 c( u6 {3 Y, U1 e' `
" B: J) h7 ^* D8 afirewall-cmd --permanent --zone=public --remove-rich-rule="rule family='ipv4' source address='172.16.1.10' port port='80' protocol='tcp' accept"/ W1 I& _3 L$ c
" p( V9 a8 E% V. I) ~/ C1 D
# 移除172.16.1.10主机访问80端口的策略。, [3 k( |) Y8 j! [0 i
' |; d. O% y7 d& _" D
7 R r+ ^: X5 K* S6 M
. R, |, i. o9 S: t# h1 c; N, u2.5、补充:
+ X' Q& `! g' K$ I F) l9 A* a4 b: J/ I. J" y) N0 ^
1、地址转换问题:( P% u8 n4 @: k* `% v: D6 ?
# s4 s, s* n" [8 b% _, |; A(1)源地址转换,就是我们平常说的代理上网,应用场景就是代理内网用户上网。
6 H V0 N V$ ^1 \4 r9 y1 n4 }6 n4 R
(2)目的地址转换,就是我们常说的端口映射,应用场景是发布服务到外网。. G& D Y" c \
5 G1 l( N& [- A( R4 ?
(3)双向地址转换,就是先将数据包的目的地址转换后再转换源地址,应用场景是内网以公网ip访问内网的业务系统。, E0 S) M* a0 U+ ?
# w# J& m1 ]2 c n
4 Q8 v; U: _9 |. O m: m% k
. h' n# R( L2 | [! x7 C7 N2、如何清除 firewalld 服务规则:: I+ b! J, i$ a
4 K! O% n6 I, W' _) |(1)如果防火墙配置了规则很多如果清空规则呢,firewalld默认没有命令来清空规则。但是我们可以通过编辑配置文件来清除规则。, H/ T4 ]+ ?; O3 M+ X9 H. E- J
' z A z, O6 K# _% F6 i. X6 _4 x
/etc/firewalld/zones/ 此处为配置生效后保存的配置文件,当用命令每次将新的配置写入到配置文件之中后,系统会自动的备份以
6 }5 r$ d7 n9 T5 Z: v5 E
' \. {# ~2 U7 u! k7 P' Z: q! ~. ^前的文件。如果是手动修改需要先对配置文件进行备份。
0 {8 ?9 Y1 P" h1 w6 p4 V
4 M7 S3 ]3 N0 |( n* r[root@centos-test ~]# ls /etc/firewalld/zones; D u& w" F+ X1 r2 u) ^* m
7 {, ^$ h$ @4 A# r1 Y# V$ Qpublic.xml public.xml.old3 ?3 i4 q. I; P# R! ~2 H2 ~
/ G7 t& Q8 _, ]5 S# s+ v( Z; S5 [9 ]- p5 s2 D3 V0 [9 q, _$ m
6 A2 F3 W X9 N/ ^" J/ `$ [3、使用默认模板的形式添加服务(用于定制服务端口):$ }, E# g% ~ n0 X
/ }, i4 ?! [& x(1)所有的默认规则都可以在 /usr/lib/firewalld/ 中找到:) B- x7 `' C4 R& m, L4 n t; E# o* e
; h; G) p9 N) q0 [$ |+ M/ X+ B
[root@centos-test ~]# ls /usr/lib/firewalld/
. B* [) T6 m/ y4 _8 I4 {4 M* h% [+ L# D. P5 k Y* |
helpers icmptypes ipsets services xmlschema zones0 R3 ~! I: W8 d0 z
0 e9 {3 R# O3 q! q
1 i, W, H5 O2 m; T
5 X1 G9 W I$ {4 r4 M' I |; n2 F(2)复制默认目录下的规则到配置目录下:
) R! E- x5 h7 G$ L8 ~8 H; d' g" P! c0 _( o/ z. }7 K' n. N) Q
[root@centos-test ~]# cp -a /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/
- \! N/ V# |" U4 C: m1 S' i* n# o8 Z$ h( S6 U, b
+ s! P# `5 ?/ e% j6 p1 d# ]4 S9 m! t9 g- \" j; d0 S
(3)配置文件中包含了服务名,端口,还有服务的相关说明:
3 u: Z: O/ M5 B/ X) y- z
0 c8 I M' e- f; N" |[root@centos-test ~]# cat /etc/firewalld/services/ftp.xml
% X ?1 k7 H S+ m" N( p
a! H( t$ |3 [. p B( v( f<?xml version="1.0" encoding="utf-8"?>
0 c. M* Z/ j5 G) R7 l4 W9 a9 ?" e* F- w+ e- S" O1 O9 Z
<service>
; Y5 ^2 G F4 L1 a8 E* B2 h. v8 B; n7 z
<short>FTP</short>
. P. z0 w' j8 K
- O) X" u$ ^+ K% Y& @8 d2 o<description>FTP is a protocol used for remote file transfer. If you plan to make your FTP server publicly available, enable this option. You9 q0 p# e7 }% | ]
& I$ X7 c6 [& s# a" L0 X) d# F. Q
need the vsftpd package installed for this option to be useful.</description> <port protocol="tcp" port="21"/>
; H0 Y9 B, ]6 Q6 p F* g/ w5 {+ Y2 \5 l: Q9 }
<module name="nf_conntrack_ftp"/>
1 u+ W R( m a7 q4 }( i
& h5 ^8 V6 m% g6 b7 W$ i' j</service> m8 F% g. G: F: G* K
u. ~1 ]8 o1 W9 f" S: m
" U0 q6 a& J2 o6 f' G- P2 I3 J& n" W5 w: ` k7 S% Q
(4)在 /etc/firewalld/zones/public.xml 中增加一行 <service name="ftp"/>: j) o: `4 g, g
, Y/ E; u6 [, g; T7 ? V m( l; U
[root@centos-test ~]# vim /etc/firewalld/zones/public.xml
7 M1 K9 @5 h- C! M0 [# y: H/ I
<?xml version="1.0" encoding="utf-8"?>
- u. R# ]( L2 r5 j! [& ^1 y* \
& v! K/ M0 K4 x* x( `, E; A$ K<zone>& t" N- }, F# t" Z
9 @+ w9 F O, i: a) q, j% H
<short>Public</short>/ x( |' z% G3 }1 f( o
3 n7 Q: r* s( l9 l# w' R
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming conn: Q3 o/ G& p+ \, l) D
" d0 U9 C: N8 K8 kections are accepted.</description>
' ^0 `* G$ L6 ?# a' S: v( Y( W8 Y$ L3 V% k
<service name="ssh"/>
) o# k" {5 H6 J" e3 L& b; m& V; r4 ]9 L
<service name="dhcpv6-client"/>9 X- u: N; d- K$ x# T& G! o
5 |2 Z. L, v5 m<service name="ftp"/>
9 s0 u8 |& x$ k( `, B8 M2 a- i! y9 v. Y
</zone>( z8 v: i9 T. [
: H7 p# O2 N/ S4 h& g& x
1 | `& F8 x) z4 E4 L9 r
. a2 m0 _7 O/ V5 P( X$ }; d(5)重载firewalld:
5 H/ F$ t( N9 A+ b0 X" Q5 _
! W) f' a7 \3 a5 k$ X3 A3 J[root@centos-test ~]# firewall-cmd --reload
0 L( `) v% ^* D+ \! }4 O- m7 r m, x7 _7 |
' ^+ N ~, p: M" ~
" g- e- @% r" q+ e(6)查看服务:
M- X' ?( e! [- Q5 L' z7 R9 G* O3 h2 [! K7 @ Y7 Y
[root@centos-test ~]# firewall-cmd --zone=public --list-service
% h6 t4 c/ p1 X0 x
9 q& J1 E9 \, U) p- hssh dhcpv6-client ftp8 f' l5 _/ D4 ?, N/ E/ ^, c
' t' r+ C, r1 Y* D6 A6 h+ ]* } |
|