找回密码
 注册
查看: 583|回复: 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.xml0 _* R/ l: H) O8 d: ~/ y( k. n, v
public.xml      public.xml.old  
% m- q( T& s6 l) _2 K3 W5 }[root@example-dn-01 ~]# vim /etc/firewalld/zones/public.xml% h2 [, T( J* R1 f
删除需要删除的规则
& ~: x2 O2 m- K( w% e' F# V* N( G8 F8 T& v( k  N* i8 p) C. J
重启firewalld-cmd 服务- H; N, j: R' D9 e0 [
* a* m1 C/ N7 P3 p
$ l" `" y+ A- k- q

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-12-20 15:00:14 | 显示全部楼层
或者
2 P7 f( K* Z8 T# N% k4 Yfirewall-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 响应:2 n# t5 S$ P' f
! O5 y3 F# R! o
[root@centos-test ~]# firewall-cmd --zone=public --query-rich-rule="rule protocol value='icmp' drop"
. n; S: v& `5 m
" s7 S' H' R+ v2 W2 o7 W( _6 j[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule protocol value='icmp' drop"4 G8 `6 R6 D7 Z& a
% f8 t: J# \1 L4 @
[root@centos-test ~]# firewall-cmd --permanent --zone=public --remove-rich-rule="rule protocol value='icmp' drop"
; A6 A3 M& L; R4 u0 M! T4 u; ~* T- _* q; V; V0 o5 F0 G
[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' protocol value='icmp' accept"
( M1 E- C* L$ x  f5 r. C! ~9 v# @2 X. {" P# v, X8 ?
# 允许172.16.1.10主机ping。
* u& s9 I, d7 ]
) y, v  {9 i3 u" E
# z9 Q6 I. g  u' H$ x8 ]1 E3 ?+ g% ~, ]9 s. G
2、添加或拒绝某个IP访问ssh端口:! m7 `; R4 R( d+ l

9 @: ?& h) u) s% u8 s- J2 U) F[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='ssh' accept"# {. [9 F$ L3 [* p) P2 `3 I+ K

$ }4 [) N. U* ~# O! e[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"
$ b2 |9 l! D" R. ~7 \& c
# Z4 h9 r) A" z. K# 允许172.16.1.0/24网段的主机访问22端口。
) r' y9 A0 N9 B" e* s
" k1 ?! L/ R$ ][root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='ssh' reject"" B/ `. C0 K( c

' k! \2 g4 Q0 X8 }[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='ssh' drop"
8 V6 l" v' |/ _# S) r& i
9 [0 m9 C/ l/ c5 a# reject 和 drop 的效果是一样的。
( x* b4 I- C8 q4 A
& R( J  W1 p/ r8 P( ]5 i. v4 ~! m& u) T2 N$ ]7 E9 Z. B
$ _' O* V! ?6 s2 F( \. r
3、列出所有多语言规则:, H8 K; r; k6 B5 Z7 \

- X# I% ^4 b6 _- Mfirewall-cmd --zone=public --list-rich-rules
% W. O6 m9 u- @8 L' e  h: z4 J
4 K9 L1 `" N, f- q" C  k# z6 o2 J4 ]: D  Q, U" \. F3 \+ f" [

  w" {! ]6 K. Y3 f2 J4、允许172.16.1.10主机所有连接:
) }% X) R! m2 l
1 y% s/ m* b3 o0 y$ Afirewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' accept"
' i7 X; @, K' C+ ~; e' [
- L; v, u1 Z9 |. v+ [7 b, ^: h# l0 G& V% W% D3 X+ H
1 L" \1 ^1 u" v. K$ G" r
5、每分钟允许2个新连接访问ftp服务:
6 ]) |; u6 S/ a( U/ V* z6 d! u# ]8 {/ C7 q- E2 y9 C8 ^# p; o
firewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' limit value='2/m' accept"
$ U) n3 V2 `2 A* X
" G' d! `7 {) t: X$ C0 x2 @% G
* f6 G% i* M" b: T& ]1 g, D( l7 A, m4 V) P1 G; @: m
6、同意新的 IPv4 和 IPv6 连接 FTP,并使用审核每分钟登录一次:& L  p+ X; M7 t0 l* D

* j# y6 }; ?( |4 kfirewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' log limit value='1/m' audit accept"
! W. x5 J: N8 B9 L" m4 e4 v2 O( u* O% M( M

2 V9 H" A! E1 S; I& q
8 @$ ^" ]0 g( p; d. D2 N6 M7、允许172.16.1.0网段中的主机访问ftp服务:
. @; k' z2 s* o4 g4 T! Y# F1 F4 Z
" S$ ~' n/ k; G7 L) P/ R( i( Ofirewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.0/24' service name='ftp' accept"  l- j0 c- H& L* M* A# J* }( H. u
7 a, l! ~2 G) R

# b+ G1 p; Z9 N5 w4 ]; D
$ d& |/ B* {; X* u+ Z' v/ Y1 l8、将来自172.16.1.0/24网段访问本地8080端口的流量转发到172.16.1.208主机的80端口(源地址转换):2 ~* ?7 A  s* t, v; |

+ K, h0 t% a' Ifirewall-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'"* V* }& W3 \" T& R' d1 X9 [& h; t
* ~. L4 R) |( E. _
# 伪装(需要开启masquerade),将来自局域网172.16.1.0/24网段访问外网的流量映射为网络出口公网IP,即修改源IP地址。. c% B( h+ k" i& R

7 L' G" l2 Z8 T$ I8 D: v6 e1 b1 r- A% B! O- V7 j% Q
$ k" F! Z; o/ T' ?7 v
9、禁止172.16.1.10访问https服务,并返回错误信息:
' ~/ @& ~; {% N+ c4 `1 L/ n4 P! S( [/ a! j& C
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='https' reject"" n7 O* K' P: z, K! }

  S; e& Y$ [! {* ]$ \# 如果是drop的话是直接丢弃,会返回timeout(连接超时)。. F+ b) @; Y6 Y

6 W0 o8 ]* f* m' K) _1 u
, Y" t8 C2 I4 {. I
  O, ^* N+ u: c0 w9 T' v+ {# L10、每分钟允许2个新连接访问ftp服务:, k' \2 n4 I& S/ O
" U  }$ a/ F* \% A6 Q4 Q- Z$ P
firewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' limit value='2/m' accept"  k& Y! X* e3 U( r) X! x
# k. O+ D. a8 P: Z6 [( U) F/ r7 @1 l

% D' }  L, w! z/ r1 G' C5 D9 R
4 l8 y% S4 Q- G11、允许新的ipv4和ipv6连接ftp,并使用日志和审核,每分钟允许访问一次:
0 k% |$ T4 K. f- w3 i* P6 J- A
# V6 ]7 ^8 j) lfirewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' log limit value='1/m' audit accept"; G* K* W7 G: m6 v* Y9 v

' Q% z# _8 M( x! ?2 T& {9 s7 o, S) S4 G

( z+ F1 V9 p4 I! N  A, M3 @3 n/ e. Y2 V12、将来自172.16.1.0/24网段访问本机8080端口的流量转发到本机的80端口:  i0 N+ r9 x* b1 |1 h

% f3 u2 F9 [$ H0 sfirewall-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"
& f) Z9 F$ k5 ?  R2 Z6 b" }2 \! i4 a* N( o

$ d4 E5 K6 ^3 t' u2 O
3 Q) l" P$ d/ r; n5 v13、允许一个IP(172.16.1.10)仅能通过指定端口(8080-8090)访问到目标(172.16.1.12):
& k! t1 Z5 Z+ v7 s2 j( ~1 y& n$ g  M" Z  v, T
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"( r/ J. m' W" v5 |9 \
1 b1 ]% R7 Y5 z) G$ D
$ }+ Q- H1 A4 F* A% E% {5 \% O

) e$ V, R& l. {( u* b- g+ t14、添加、删除 firewalld 服务可以访问的IP地址:
& o: h9 ?: F0 c# v0 f! ^
) W" K& x* G" Q; f2 J1 D3 E  Lfirewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' port port='80' protocol='tcp' accept"
' \) q2 e: s9 S% F) u. _$ d
" F$ h3 y; M6 s9 L1 K% Q$ ~- _$ x# 允许172.16.1.10主机访问80端口。' c3 o( R4 I: ]- f
$ ]* [% s: f! Z" b, H
firewall-cmd --permanent --zone=public --remove-rich-rule="rule family='ipv4' source address='172.16.1.10' port port='80' protocol='tcp' accept"
, }7 F/ _4 \+ O5 @4 [& W" I8 z6 P3 k6 v
# 移除172.16.1.10主机访问80端口的策略。9 }2 l6 _3 s; z- m

; ~' }- G9 B3 j* ^3 g7 t2 v: V/ O- m/ f, U/ H: O

- V! N: p( F& z; Q& H. w/ h2.5、补充:) y, c1 P+ D% n% I. E1 [: B, g* G
  B- e- R: Y) H: y5 q# Q% V: h
1、地址转换问题:
  u7 H8 F$ T8 \/ K7 u
- U# W7 v+ b7 s3 j0 N4 B9 w(1)源地址转换,就是我们平常说的代理上网,应用场景就是代理内网用户上网。
0 c5 V; i1 S" v' v- U5 y5 f9 C4 A: E/ P
(2)目的地址转换,就是我们常说的端口映射,应用场景是发布服务到外网。' M% z, M" @+ T
. e, m" L# \- ]& R  h
(3)双向地址转换,就是先将数据包的目的地址转换后再转换源地址,应用场景是内网以公网ip访问内网的业务系统。
' K* O0 w& }  L2 k- m& P- I, x' O( q8 u$ M) U
$ P: N  R+ W. B! r

2 Y2 P2 `" R- O1 L; F, S. c: V2、如何清除 firewalld 服务规则:
6 d+ X2 y4 a2 v
! d" s4 @4 C  g+ f$ F" x! E(1)如果防火墙配置了规则很多如果清空规则呢,firewalld默认没有命令来清空规则。但是我们可以通过编辑配置文件来清除规则。$ O- c* e9 N7 P3 M

3 s5 w+ @0 a; ?# Y3 Z, b! U/etc/firewalld/zones/ 此处为配置生效后保存的配置文件,当用命令每次将新的配置写入到配置文件之中后,系统会自动的备份以: ?8 [/ C% {! }7 z

5 H. ^, A! [+ B# f! c前的文件。如果是手动修改需要先对配置文件进行备份。& n4 D/ O  N6 z" V3 a

) S+ ]4 O. a; M  W[root@centos-test ~]# ls /etc/firewalld/zones
# W/ c7 E0 d, V9 Q4 h: F
$ A3 U7 \) }: f" k$ B( c, Ipublic.xml public.xml.old
1 |! Y9 I6 l* v' v/ p, S3 s- n% x  B) M' t, K) B3 V( p( x3 z5 \

, O2 r; k0 ~9 c5 s0 y( E/ ]
/ Q1 z0 {' |- x1 A3、使用默认模板的形式添加服务(用于定制服务端口):
/ }. S' n) M  p$ O7 X6 c% z; L- O  P, ?! d3 I7 z
(1)所有的默认规则都可以在 /usr/lib/firewalld/ 中找到:
% o# c" i0 o; B5 i' \# m# Q. Q- M
[root@centos-test ~]# ls /usr/lib/firewalld/  {. Q! s2 o7 d! s
/ M: C! B5 |( Z; k( Q. w% v+ @
helpers icmptypes ipsets services xmlschema zones* T+ c8 H1 g) R( n) o
3 `& c- z+ S5 q5 B
+ W6 v3 a4 |- g6 s0 h" x

1 @8 H+ W( l8 c  i* t# B(2)复制默认目录下的规则到配置目录下:9 r( E. A) a) f0 o4 S

7 A: J8 ?' L, ?5 }+ D[root@centos-test ~]# cp -a /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/5 G2 ^4 O! _8 t
9 I' A+ e5 o9 c  a
$ P& a7 L4 E8 y$ o& H1 f
5 e! T4 @( d$ d# G
(3)配置文件中包含了服务名,端口,还有服务的相关说明:
  O& m/ Q* T/ ]
. a2 ]* t$ P1 E3 U" f  c[root@centos-test ~]# cat /etc/firewalld/services/ftp.xml
1 \1 y2 H7 I, B0 j
3 ^, b9 y' V# G) S<?xml version="1.0" encoding="utf-8"?>) b3 e$ C, t) M8 n
- W- x( r8 ~/ e4 |% D
<service># W% B! z" g' l. Z

- D  A- \  T% D6 e' M8 D<short>FTP</short>* n* S( O5 b+ Y+ p' c4 M' R. J
: F' j- c+ x% u5 f. g' i( {; ]: I
<description>FTP is a protocol used for remote file transfer. If you plan to make your FTP server publicly available, enable this option. You5 ^9 X& |" J, \& y" P* k: l5 J
& U0 t! i9 U8 K6 c9 H
need the vsftpd package installed for this option to be useful.</description> <port protocol="tcp" port="21"/>
5 w* [5 R# f/ K* K- k" l5 X: y4 X
<module name="nf_conntrack_ftp"/>
( U! E' I$ q7 J- _  L" ?" u
+ W2 j% z1 h' Z+ v+ g8 k</service>, Q) j! v1 e, l! `8 w! z& o

1 S/ U9 G, N0 W7 m' h! }5 V6 \9 G
9 J5 E  y) X- @
" L. Q8 S6 ~8 t) ]* G7 o8 U- Y(4)在 /etc/firewalld/zones/public.xml 中增加一行 <service name="ftp"/>:
" E. ^( J) s% `5 ^! d( }+ `7 G  O$ X* c" g3 t
[root@centos-test ~]# vim /etc/firewalld/zones/public.xml1 @' L% |1 T2 G2 \' k: B& ?* B
* x' w# d3 F* A
<?xml version="1.0" encoding="utf-8"?>
, S- H! V. ]3 v- M7 P2 v* U, t8 v3 \+ Q: Q3 l' N% G
<zone>! i7 ^: X/ v* G) n* P* W. d

) B1 V4 ]; i8 w  x' N<short>Public</short>6 w4 [) D. b7 r2 F
% q3 r& T) X  ~  p- Y2 \/ 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
  Q$ E- X9 e; J* g" [
8 Z! u7 c9 w9 k9 R! n1 _. Y4 dections are accepted.</description>+ C# N$ Q. G* p. u( q( ]

* `  J, ?3 P' r& ]<service name="ssh"/>
- j4 ?7 M9 l7 |9 z- K  L7 K7 k3 A
<service name="dhcpv6-client"/>+ I# o: S: U) L! d4 K

  J, N$ A# U* _: M' `<service name="ftp"/>
3 j0 n0 F5 H; C/ W
7 X" t& b. g( A</zone>( w- s" p% _0 k; C
. ^: R0 a# Z& I8 e! X

4 j4 U9 h$ f; H1 a: i
% U7 Q9 z) D. Y* l" a6 ]8 O* C7 s(5)重载firewalld:
$ g, q  q# @. ^( j: H( l/ ]3 ^& E
7 x2 _+ g, r1 D% j) K, z( ^. Q$ Q  O[root@centos-test ~]# firewall-cmd --reload
& |* F6 ?2 [; {2 Z; D: @7 P4 B% z" o! H( {
, `% \; o/ n  [
0 |+ H% u+ F0 }. m- P
(6)查看服务:9 z% @: K0 d/ M3 v) X
3 x; ], J/ V9 z6 O  f' V) `, |
[root@centos-test ~]# firewall-cmd --zone=public --list-service
6 Y2 [" E0 P, H
* c  |! U8 Q2 ^6 ?6 I+ xssh dhcpv6-client ftp/ z* ^; ^. T  p$ k" L% ?( t1 @( y

8 w" W5 H8 q) j

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-12-20 17:40:44 | 显示全部楼层
) J4 k- A  G$ V% X
<?xml version="1.0" encoding="utf-8"?>
* z% n5 d! s( [<zone>) ?  @2 o4 J& k! Z- x9 |
  <short>Public</short>: L+ M2 u+ M' o2 j( `# }
  <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>
) P2 g! {5 O7 g$ d0 R1 y2 p$ P  }( `! j  <service name="ssh"/>
1 d6 Q) J0 b) l& q/ r& H& G6 j  <service name="dhcpv6-client"/>4 {( M9 R" t- j1 c; Q
  <service name="http"/>5 S. |8 W" G$ b# X! M; T
  <port protocol="tcp" port="80"/>* t4 {) G+ H# y  x/ G
  <port protocol="tcp" port="8080"/>9 a/ F5 u( P% E6 ?5 W
  <forward-port to-port="3366" protocol="tcp" port="3306"/>
- [* N& D& @& B$ \! w9 x# [+ Q  <forward-port to-addr="192.168.22.55" to-port="8088" protocol="tcp" port="8080"/>
% L/ p; t! X% e</zone>" M! X- ~8 V8 m

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-12-20 17:41:20 | 显示全部楼层
firewall-cmd --zone=public --list-forward-ports
9 ?+ K& ]- C5 vport=8080:proto=tcp:toport=8088:toaddr=192.168.22.55* E0 q# |+ l3 q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 03:02 , Processed in 0.016801 second(s), 21 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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