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

通过vi编辑文件删除firewalld的防火墙规则编辑使用文件方式 public.xml

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-12-20 15:00:13 | 显示全部楼层 |阅读模式
[root@example-dn-01 ~]# vim /etc/firewalld/zones/public.xml* L5 [, r0 W+ P: R% X! o2 _8 n, @# ]
public.xml      public.xml.old    N  f0 H8 ?; D$ Z/ [
[root@example-dn-01 ~]# vim /etc/firewalld/zones/public.xml
" l0 }* r% i  D3 t9 k5 Z8 y删除需要删除的规则
: u. O2 p9 ?* O) F: t+ \% s. z' \1 c7 P7 L7 l+ ?5 H
重启firewalld-cmd 服务
, K8 I1 o2 u' ~* u9 {: X. `3 t$ N1 `9 ~1 c: l1 [* d; Y
  [) w+ t; s% l# i

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-12-20 15:00:14 | 显示全部楼层
或者
7 x- n4 J9 ]2 Y% p8 lfirewall-cmd  --zone=public --remove-rich-rule="rule family=ipv4 source address="192.168.100.71" port port="9092" protocol="tcp" accept"    删除该条策略

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-12-20 16:11:18 | 显示全部楼层
1、查询、禁用、删除、自定义 firewalld 服务的 ping 响应:$ G) Z1 x  t3 |0 Q, @) I
- |3 A! s# {/ a
[root@centos-test ~]# firewall-cmd --zone=public --query-rich-rule="rule protocol value='icmp' drop"& o+ D2 w! `0 i5 i: B6 k

3 s8 w7 Y: F( z  d7 J[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule protocol value='icmp' drop"+ o+ j& S0 m( j

5 R* {0 \! O  T1 S* D* Q8 X[root@centos-test ~]# firewall-cmd --permanent --zone=public --remove-rich-rule="rule protocol value='icmp' drop"
: j9 L1 I! |! q" O9 e
% M: i1 O  G4 c# x[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' protocol value='icmp' accept"9 j. h) n% _1 j
' ?7 W& |2 U  f8 T: X- N
# 允许172.16.1.10主机ping。
# I# g* L2 y1 D: ?5 N1 P" f
5 r: b! Y+ B! \2 {) Z7 k% v$ ?
- h+ o2 v$ R* l# Y, J* z5 |& g
! m" _+ b( j' l- J- V! g* g2、添加或拒绝某个IP访问ssh端口:9 x& n; m2 s7 h3 \

0 A" c  {* ]% W% b5 S) k" K1 c' G[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='ssh' accept"
6 O- u# A- l7 C* h) J. O2 c' {* e9 n
[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"8 Q" E1 J4 j3 v* {+ J
+ C. _0 U: {" v' n9 K- d; P- C
# 允许172.16.1.0/24网段的主机访问22端口。
, l) ?4 Q  P& O  \
2 O, F  K; ^  I# j[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='ssh' reject"4 l) X* R+ \& y. ]+ J
9 G1 d" Y/ P2 Z& b1 V6 q; p
[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='ssh' drop", a1 m1 [2 R6 F# U6 F# v

, [2 u5 \* T7 [- K: C# reject 和 drop 的效果是一样的。% G3 x8 E, e/ C6 c

- Y- x! h8 K& m/ ^* Y7 @- |8 d) H. e1 \: X1 |8 H

- ^! U. y% A7 h- r3、列出所有多语言规则:) H; g! K. [; f1 k. S

; `  O# X  y( u4 ~) Zfirewall-cmd --zone=public --list-rich-rules( Z( Z" C9 a. q" }* Y* M
" ]7 h! t; {" @2 I. R

" x1 H+ a/ |- o9 y! g1 c8 \! i7 l& O) F! Z: Y' n  _
4、允许172.16.1.10主机所有连接:
) H. c) j& e" E, x) y) V* u. p& m: H. W' N! n
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' accept"
0 u' g) r  P9 k+ k
5 ~8 {' S- I: D- X) d7 q1 z
- {% V# @, `, o' N5 {
! z/ D1 M7 a+ t( G) s& q3 t5、每分钟允许2个新连接访问ftp服务:0 Y- l/ B2 J6 P4 G
- y4 z0 e) p+ h! q, n
firewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' limit value='2/m' accept"
6 l) a* u& V; v, i6 Y4 r* O  d  u9 E2 l3 E- |+ T( T& U& v- }) L
  i2 ^* A4 q) b5 e( _: U
+ A6 j. l* o! D0 A6 y
6、同意新的 IPv4 和 IPv6 连接 FTP,并使用审核每分钟登录一次:
! b% t8 h$ `6 U* [- R3 S7 J& U* p" w- [6 \9 I0 |$ ^  W
firewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' log limit value='1/m' audit accept"1 N% T5 U8 Q6 O# _+ J+ c

4 Z5 Y) W( F1 C8 u
* H, X6 D+ d# j& u3 G( o) I; P/ j/ r7 U; s
7、允许172.16.1.0网段中的主机访问ftp服务:. A$ J, @7 H/ O+ D% N
1 X+ s! E$ B* M6 o' R( M8 p
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.0/24' service name='ftp' accept"
; X: G/ R; S" M3 N6 h9 \+ |2 x* t6 H5 {

" F& L# D. a+ g/ H, \' {
1 w$ x' p) v6 O" _8、将来自172.16.1.0/24网段访问本地8080端口的流量转发到172.16.1.208主机的80端口(源地址转换):
' o! j+ E. p# H  g, F% [9 u7 c; i( D6 M8 k
firewall-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'"
( a: E$ f- ~: M0 S4 l* n$ |! \% s3 u% V7 \8 x+ Z8 M0 H2 m
# 伪装(需要开启masquerade),将来自局域网172.16.1.0/24网段访问外网的流量映射为网络出口公网IP,即修改源IP地址。* F; G6 h' d9 P* f( {+ h- x

$ Z- T; J' U; |' ]  W% G" J$ p' O. u. [: h  ?6 P* b6 a
* q# P- w' R- e: d7 F
9、禁止172.16.1.10访问https服务,并返回错误信息:- A  X$ P# `/ i0 `  G+ R* r
* O) u& k+ w. x! z( h
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='https' reject"
' r1 N' R6 ^* S7 X# @2 k4 z/ B  V" S" T
# 如果是drop的话是直接丢弃,会返回timeout(连接超时)。
. C* [3 j* d5 s$ Y! W. K, s4 L8 b+ Q' k+ V3 F
. u3 {$ W- G9 {0 T0 ~- i' e  |, K& V7 u

% S6 p2 F* U; K% M; C6 {10、每分钟允许2个新连接访问ftp服务:
$ W+ \+ S3 }4 m8 \' d
) ~' F7 [3 U% V% g% j4 Efirewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' limit value='2/m' accept"7 |4 A6 Y- c; a4 |
2 H7 X  O; D" b5 {0 [5 c
3 C8 k$ n0 I' i1 B+ p) f5 Y7 P$ b

9 b9 E: p& u2 J- B6 V  ]11、允许新的ipv4和ipv6连接ftp,并使用日志和审核,每分钟允许访问一次:
3 a2 _2 O. i$ \; e) Y: z( e4 ?2 F- h4 m) e$ }* I
firewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' log limit value='1/m' audit accept"1 G4 L8 g9 t3 \: O2 j: q
! q3 ~0 W# ]; J4 A& a
9 v4 y6 i* F. j0 \- g8 }

0 b$ c# h- O+ R" x- E: \6 }! m12、将来自172.16.1.0/24网段访问本机8080端口的流量转发到本机的80端口:
) F% d/ y+ d% l* Y0 I4 I7 p6 T8 g  ]6 N, I7 w! W  g
firewall-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"
, M9 X/ ?7 U1 l/ t
3 G, K- w/ R# l. m6 R1 c4 |2 R
+ P! P& U6 X' K/ O9 ~
* n7 v) Z$ I: v3 i13、允许一个IP(172.16.1.10)仅能通过指定端口(8080-8090)访问到目标(172.16.1.12):
7 |( E: g8 Q+ b& d
5 Z+ Y, a' ~- `% ^firewall-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") t2 q. _. ^! D8 ]

2 q+ e( V: H4 V: Q% Q8 |' z+ n8 c3 }' t: u6 p$ Z
  e- C& @5 E* x7 a2 N. \! Y
14、添加、删除 firewalld 服务可以访问的IP地址:
  B) [7 Z- |2 W3 A0 ^& o# l% x4 ]
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' port port='80' protocol='tcp' accept", c2 [; k  T, ?5 ]. A) }6 O
9 C0 A& X- b( U4 \
# 允许172.16.1.10主机访问80端口。1 L3 p% Z  d8 d( D( N7 X2 o4 f" l

& e1 E; L+ t) K4 @. \3 W+ G0 f/ Zfirewall-cmd --permanent --zone=public --remove-rich-rule="rule family='ipv4' source address='172.16.1.10' port port='80' protocol='tcp' accept"
7 E8 M1 a1 O" f: |/ F# }
# n% H" D3 e# Y- c# ~# 移除172.16.1.10主机访问80端口的策略。
4 m/ ?8 P9 E& ?
' P2 l! \' i- S- s+ F9 m( Q; J% ?: q

8 r0 t' r$ _2 m; ^2.5、补充:
6 `" b: k, Z& T( \2 \7 p1 I4 ~! I" x: \9 k1 y
1、地址转换问题:
" |5 U) ^8 `8 L& [0 j1 T5 z" S, Z8 s* \$ }! Z
(1)源地址转换,就是我们平常说的代理上网,应用场景就是代理内网用户上网。+ q" a' z! L* w$ G1 V

2 S# M/ Q4 R" O) f/ U+ r(2)目的地址转换,就是我们常说的端口映射,应用场景是发布服务到外网。
% D: I4 c' l9 X/ U; \$ v2 F0 B$ V
(3)双向地址转换,就是先将数据包的目的地址转换后再转换源地址,应用场景是内网以公网ip访问内网的业务系统。. {' E2 e& E( r+ ^" B- Q" l9 M

0 n' r6 W4 E% [+ O- j0 E" H! z) k/ \& L9 e
! ], I* A$ ~( ?/ Q* g' q
2、如何清除 firewalld 服务规则:3 L5 j' R+ P: Y- y" _. @

. v, w6 C, C% B4 U) X4 V(1)如果防火墙配置了规则很多如果清空规则呢,firewalld默认没有命令来清空规则。但是我们可以通过编辑配置文件来清除规则。- `2 X, U& d2 O% x" M" r

; C. \: k3 \% z/etc/firewalld/zones/ 此处为配置生效后保存的配置文件,当用命令每次将新的配置写入到配置文件之中后,系统会自动的备份以7 c( z" |8 ]% s5 z9 c

: Q3 K- a8 M1 Y' [前的文件。如果是手动修改需要先对配置文件进行备份。
- h- \& u& x7 ?( g. {. F5 t0 s9 L
( C6 b' W! h/ j/ C8 W; r  r[root@centos-test ~]# ls /etc/firewalld/zones' f! Q4 n: L1 |5 j( l9 e
* K8 ?1 u( h7 ?$ h* K- o. f
public.xml public.xml.old
; _: a5 }) m% u& B, w% T& o: \/ C5 z2 p' y  _! J$ F

2 s2 g# n. f+ Q6 r0 t  l! X2 {& K3 j- c: X# Z
3、使用默认模板的形式添加服务(用于定制服务端口):
) F7 x7 c- U  U& H
1 ~! e/ N. E2 s- I(1)所有的默认规则都可以在 /usr/lib/firewalld/ 中找到:
4 L; v7 V: Z6 g8 `3 @8 ~7 Q6 v0 C/ _& A, h$ {
[root@centos-test ~]# ls /usr/lib/firewalld/
* X- V/ g! k+ j, m% h& T+ z
. M& B5 i) U3 N& }$ lhelpers icmptypes ipsets services xmlschema zones
$ h. B/ C6 r) a
2 V5 x4 o( n7 H2 h, y3 P
4 j+ {1 S7 ~0 g9 U  K0 M1 J, t0 T) p6 g$ J
(2)复制默认目录下的规则到配置目录下:, E6 ^; Q7 Z2 \
0 F. U0 P9 b: D
[root@centos-test ~]# cp -a /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/
9 Q! h  b5 P0 ~6 X
" c  ~6 L4 w1 {9 x5 v* v4 r) ^; {7 k9 @, O. F) u

: A6 D# a2 t: z' ~4 x" D+ G2 Y(3)配置文件中包含了服务名,端口,还有服务的相关说明:1 A- B) [( m; H

/ [( ?/ T0 [' X- }[root@centos-test ~]# cat /etc/firewalld/services/ftp.xml
: R7 n# D* Y3 {) c8 p
& @# A6 G. C# @<?xml version="1.0" encoding="utf-8"?>. _8 i8 k3 Z" t$ G$ d6 Z' D

+ ^: P' G5 a/ {<service>$ {1 {5 A1 K0 z
3 e* b) C5 N) R4 d5 t% r9 w
<short>FTP</short>
/ X+ O/ g/ k3 n1 N$ {- H2 z3 \" u8 U6 j8 U( C
<description>FTP is a protocol used for remote file transfer. If you plan to make your FTP server publicly available, enable this option. You2 ~: }" C5 r# ^/ R

# b+ E$ `1 s4 F2 E$ k5 v3 Eneed the vsftpd package installed for this option to be useful.</description> <port protocol="tcp" port="21"/>
+ c: T" `- S5 T: V5 ~- Z0 Y2 g- a; Z) z9 j9 [  ?! h) u0 B
<module name="nf_conntrack_ftp"/>
& L. {6 f3 V' a9 g; m# B! G* C: D  p
</service>
4 M1 z* x% w; G1 N- k6 J0 o0 h
# I0 t+ m7 [2 V+ G/ b" r0 e5 Y- q

) o2 K. I9 Y4 [3 ^4 A7 i+ \( L(4)在 /etc/firewalld/zones/public.xml 中增加一行 <service name="ftp"/>:
) x2 i- Y( {) n' Q  i
# S* L" s8 f$ E- j7 H$ {$ ?$ u[root@centos-test ~]# vim /etc/firewalld/zones/public.xml# _# z1 A9 ~5 N' r

( U, d8 [: E) F1 @<?xml version="1.0" encoding="utf-8"?># T' _2 k1 V. c; @
- Y" M# ]  \: m2 B; N7 t% z
<zone>0 x! ~& l$ ?- o4 l# v: R  y
5 m5 S- v7 ~' E" ~2 Q4 S4 H8 n
<short>Public</short>* g- k# J" S/ `* d6 Y

7 H! i+ k- R0 K. }8 M<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming conn
( y) q2 G/ n9 i' G, ]+ ]+ `; ^% u. A/ }/ O- E1 V4 @' P: m+ M- `6 l' @" B
ections are accepted.</description>7 C! A# F# j0 {7 j
+ q: X3 P# s1 h+ f
<service name="ssh"/>
- p2 c3 f& ?! v- E# }
" i) D8 L9 T/ C( c3 |<service name="dhcpv6-client"/>
, c+ d( L- B* _* r
  p4 T% A2 C; r% k  `<service name="ftp"/>. g& k# w; e6 }# z) J1 m- B
' M5 x5 D/ l1 X- I* P/ g
</zone>9 |: R- S* S. X& y) e; Q7 ^3 g7 Z
: @6 q' P( |2 H; Z7 ^+ Q/ u4 V

5 B3 Q2 }/ I% l; w. Q. J% E3 y0 A
$ Y  u  o" g' ?" R/ t. A(5)重载firewalld:' H* G" U, {& w$ ?0 @- C

7 I2 h* \! m) S[root@centos-test ~]# firewall-cmd --reload
8 v. m' |/ W% r/ j. t# d+ w6 o' L2 X2 P# p
9 @4 z- v- b) u7 q
  j% p+ j4 c! b
(6)查看服务:
+ i* |( g4 ?7 t8 f8 U  E1 Z0 W9 H* W8 T8 P* D; r8 B
[root@centos-test ~]# firewall-cmd --zone=public --list-service; H" ?7 z& ^% w: Q, z! H; h1 a( n
- g' S- d8 y( d9 y/ j& W
ssh dhcpv6-client ftp) M5 i& M7 x/ N+ H
8 W0 _* h8 Y/ s& \1 z

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-12-20 17:40:44 | 显示全部楼层
! ]. S$ H2 I% n
<?xml version="1.0" encoding="utf-8"?>
$ R; m0 z* A# q' \: q<zone>0 w5 ^8 l: h/ p
  <short>Public</short>: T" {! s* L$ a6 s& ?
  <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>5 g5 |2 y, u/ t  F  |5 s! l4 I
  <service name="ssh"/>5 N' t0 t. i& G1 X* D- U- T5 v
  <service name="dhcpv6-client"/>
, G, a/ s% `5 A- E  <service name="http"/>
4 x; C. s& l/ q  ~1 U  <port protocol="tcp" port="80"/>
# s1 D; M' @" }7 M" e- m5 O  <port protocol="tcp" port="8080"/>: B9 W% C" N0 R) c  f: n$ G
  <forward-port to-port="3366" protocol="tcp" port="3306"/>
8 {3 d. J/ e% ?9 l. Z  <forward-port to-addr="192.168.22.55" to-port="8088" protocol="tcp" port="8080"/>' C! J5 A/ x9 ]6 s
</zone>/ Z5 H% {  C8 f( T- \) Y) l' a

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-12-20 17:41:20 | 显示全部楼层
firewall-cmd --zone=public --list-forward-ports
' y9 K: W: y( ?- S  i9 X1 O4 Mport=8080:proto=tcp:toport=8088:toaddr=192.168.22.55! P  j; ^. ?# V  R
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 01:56 , Processed in 0.023426 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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