易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 578|回复: 4
收起左侧

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

[复制链接]
发表于 2022-12-20 15:00:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
[root@example-dn-01 ~]# vim /etc/firewalld/zones/public.xml
6 P; @6 [/ }; C" S3 X) I+ Z' ]public.xml      public.xml.old  $ |& j8 A; `7 S! z
[root@example-dn-01 ~]# vim /etc/firewalld/zones/public.xml3 `) k. |8 U) E0 {5 u2 ~
删除需要删除的规则
) T$ e& Q* m5 x$ a/ E' t9 k( o" B( O; ^8 A% S9 n* a
重启firewalld-cmd 服务: |1 Z, E  w7 S9 x! h5 t2 B4 h7 j

+ O6 p# |0 V# v6 V  [8 u0 I" ~* U+ t4 k1 H& _3 B
 楼主| 发表于 2022-12-20 15:00:14 | 显示全部楼层
或者
' \9 k% ?# g$ z* K& u0 W( Q9 v6 lfirewall-cmd  --zone=public --remove-rich-rule="rule family=ipv4 source address="192.168.100.71" port port="9092" protocol="tcp" accept"    删除该条策略
 楼主| 发表于 2022-12-20 16:11:18 | 显示全部楼层
1、查询、禁用、删除、自定义 firewalld 服务的 ping 响应:
; v; j4 f6 Q# J! `4 E/ ?2 ]9 q! i( f9 J
[root@centos-test ~]# firewall-cmd --zone=public --query-rich-rule="rule protocol value='icmp' drop"3 z; W1 R! [- m& X+ `
# \# [$ q$ \% O  e7 ?$ c
[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule protocol value='icmp' drop"
, X/ Y1 e. J7 N- s  f6 U0 T- |! p/ X1 a3 R' A5 O% A
[root@centos-test ~]# firewall-cmd --permanent --zone=public --remove-rich-rule="rule protocol value='icmp' drop"
6 V7 K0 B; \) T5 `: _' V6 P% F
* s' f" E1 ^( a: _, 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"
# {/ ]- N4 b9 i/ u) F2 f0 ]6 A& \" ~7 J
# 允许172.16.1.10主机ping。2 n3 p/ X* T- U* S% e- V
( o  ^5 c3 y3 K5 g: y+ F, M1 S  ?
- y7 G: z: I3 U
( l7 G  n. h  e7 q
2、添加或拒绝某个IP访问ssh端口:6 m1 }7 c/ N5 g6 h# q) z5 r4 s

# d: K4 _, U  A' F" I[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='ssh' accept"
7 ^7 P! |7 v" A( O  c/ b) \/ D& M" u
[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"
3 H* ]% z" s: G0 @) z: Y3 t( e6 {# R- S  z, S# P3 J' f
# 允许172.16.1.0/24网段的主机访问22端口。
7 ^+ _% _, u* |* X6 t& I6 X" ?) F4 ]- [8 d: l
[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='ssh' reject"
6 T" w' h- l6 S# T' X& }4 j( V: I3 {1 G: h
[root@centos-test ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='ssh' drop": b% p/ P9 _1 f
) X$ U. v# R& T% B: Y0 |
# reject 和 drop 的效果是一样的。7 e4 ]5 T5 e; U2 l- H

4 ], ^' i3 K& T  ~7 L4 C3 m; Z* E
+ I& q: g, m1 g1 G# b. g9 w) ^6 B2 g! c( V' o$ m+ G, d
3、列出所有多语言规则:% ^$ _- z# \" O5 t2 n

4 K7 F/ t; T, a0 n* E8 s1 pfirewall-cmd --zone=public --list-rich-rules
/ C( n* z1 ]1 r1 d8 R' k
6 k: \3 r$ b5 \! T9 N
+ E) ?2 ?' D+ X9 x
& ^; O2 c* l4 k7 U4、允许172.16.1.10主机所有连接:8 F" S) I1 v7 T1 A. Y
" a6 R& z& P9 C- z3 ~* y
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' accept"+ a) l( T- V, k4 Q9 X* `! F
7 R, a; a$ u; C# X

5 b" j* q0 f) B5 o* h; `
$ M: @1 j( z# d( R7 P& r9 G! f0 U6 d5、每分钟允许2个新连接访问ftp服务:( u" U1 S& f8 q3 T" z, m

0 p3 s) v; h% i4 n: z. W1 ~firewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' limit value='2/m' accept"
* V; Q2 c% W- q2 X9 w/ m
5 b' ?' d. o" r0 [, a
) L5 u8 g- x+ ^3 M/ k- K6 X, s4 C, z
6、同意新的 IPv4 和 IPv6 连接 FTP,并使用审核每分钟登录一次:+ X' q  S/ g  P

% [+ B7 D  p; }0 Dfirewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' log limit value='1/m' audit accept"
& P6 O! K6 s7 m
9 K3 x. y) ]2 |! {; G( E( ?5 r
3 _% Q/ _% D$ J: l, M/ j0 @8 c4 ?4 v; ]6 c0 D" Q6 g
7、允许172.16.1.0网段中的主机访问ftp服务:
+ ]1 `( g/ v7 X: }, U; E2 b) }
0 F+ F" j" |9 |; p8 C3 Mfirewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.0/24' service name='ftp' accept"
/ h( d( Z6 V5 L" i% q; N: Y
7 l& F( L$ t! b# Z' |9 m6 \, [
* y# n+ _2 o6 t& R: P  m4 ?0 X" S; |: S" m9 w
8、将来自172.16.1.0/24网段访问本地8080端口的流量转发到172.16.1.208主机的80端口(源地址转换):
/ C4 W8 x8 [- v3 p5 ~) L
) U+ b. E( }8 y# R3 F2 U6 Q5 n' [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'"
) S. r1 I6 W* t, O7 {& X
6 s5 L6 B; V4 J8 n# 伪装(需要开启masquerade),将来自局域网172.16.1.0/24网段访问外网的流量映射为网络出口公网IP,即修改源IP地址。
# s) r4 a& M" A5 d5 I
& a* t" @$ x2 |
4 e" @4 y& ?' ]) W; N
3 y* u# _3 I5 Q! t9、禁止172.16.1.10访问https服务,并返回错误信息:9 g/ A$ A# B" i* f+ d
- J. h& O. ]5 c/ N6 Z
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' service name='https' reject"
' B0 G8 Q% Z" }, b( y+ b
4 [8 p8 n9 h5 h# 如果是drop的话是直接丢弃,会返回timeout(连接超时)。
- g/ S# K! @( a. S" g2 z4 |4 u, V6 Q6 |; R# V6 R

0 H. L, k2 e$ D# C& p4 V
- ?$ C5 U. A; C6 b" m10、每分钟允许2个新连接访问ftp服务:
, Z$ Z9 R6 s! ?8 `) e6 J* [
* x" ^; j3 Y- q, V. K' A+ Yfirewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' limit value='2/m' accept"
/ D8 W8 p( [, R8 Y% V! `  ^' e
0 d0 ]6 x  o5 k, ^' s% C
! l+ e' j, U8 z' P! L5 `2 o- U  R- v
11、允许新的ipv4和ipv6连接ftp,并使用日志和审核,每分钟允许访问一次:+ H3 Y/ {) S, o" n' j
" q. Z7 H9 I! c& D/ H. E
firewall-cmd --permanent --zone=public --add-rich-rule="rule service name='ftp' log limit value='1/m' audit accept"+ X$ `2 D/ J' y: t9 Y3 D" D& Z6 L

. P( u, z) X0 S# I# Z2 t& }! y: B1 s: O4 F& X6 m' [+ {0 J1 [$ r
, K2 O6 \0 f6 T* W7 L
12、将来自172.16.1.0/24网段访问本机8080端口的流量转发到本机的80端口:) E( X( d- q9 B$ U

( ?1 E/ @) \0 V8 k; Ufirewall-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"
! F2 d, m1 A" N' F5 y# }7 C
  K0 h2 _% l& }8 a) ~; q6 a- P' U1 j- I6 `+ t$ }, P! m

- g3 x) X5 \6 q/ ^( G13、允许一个IP(172.16.1.10)仅能通过指定端口(8080-8090)访问到目标(172.16.1.12):
$ N- i1 r1 A# D/ J2 T5 i
: Y9 }( l) C1 R# l* @, w, M* \8 C2 yfirewall-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"
: H6 g( L' P( X5 V3 K, b, s, C- b9 m" L

& @1 I" k% K- U' t* n9 U$ `1 G( L+ A! o+ I0 \1 G
14、添加、删除 firewalld 服务可以访问的IP地址:( J" p8 B* n8 [2 _, P# H# M

$ C/ u- R  p* D* P2 Z- mfirewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='172.16.1.10' port port='80' protocol='tcp' accept"
, T" v+ m( Q0 t. ~( `* N6 E9 J" m2 B- A3 W% W( X6 @  u: h( H7 p
# 允许172.16.1.10主机访问80端口。
5 B+ F- m- ~. z% L- z$ ~7 k
/ l; M/ t: P# n' G# Wfirewall-cmd --permanent --zone=public --remove-rich-rule="rule family='ipv4' source address='172.16.1.10' port port='80' protocol='tcp' accept"& V1 ^& `" {" c/ `3 F, i$ t

2 B: J. g1 r7 o  [8 B9 s3 v# 移除172.16.1.10主机访问80端口的策略。
0 M/ ], i0 |" K& o
9 z. _2 r( e0 c# n1 g
: R9 A, p$ S! o% @% I. U& b; v- [, v1 z. A5 [* a
2.5、补充:
2 @0 J% f( S. J' u( L
3 G4 a! B; P  K: i1、地址转换问题:
0 V' @- Q) q+ _0 U0 I9 M2 f% ?# t
(1)源地址转换,就是我们平常说的代理上网,应用场景就是代理内网用户上网。
2 C+ K, m/ a. e  m+ W* Z4 [9 I. D7 u# G! _
(2)目的地址转换,就是我们常说的端口映射,应用场景是发布服务到外网。8 T" g0 j8 G( w& @. u$ z* r/ y
$ N2 A# d: y6 \/ o- s3 z
(3)双向地址转换,就是先将数据包的目的地址转换后再转换源地址,应用场景是内网以公网ip访问内网的业务系统。4 p+ X. W5 w& x8 h( H# i! _
- ], |( [7 n  Z6 M
8 W2 Z" y; x6 S
* w" q1 H8 t5 K4 C) F1 m' |; B
2、如何清除 firewalld 服务规则:
' B2 r6 P' k+ J& u9 z& E% Y
0 r4 ]: ~: }" O6 y* D. z(1)如果防火墙配置了规则很多如果清空规则呢,firewalld默认没有命令来清空规则。但是我们可以通过编辑配置文件来清除规则。
. c* o, V1 _5 ]: E! W& S  c' _
$ i4 L! Z$ m8 c/etc/firewalld/zones/ 此处为配置生效后保存的配置文件,当用命令每次将新的配置写入到配置文件之中后,系统会自动的备份以
$ {& C* N) l6 R1 M+ C8 A; X: i0 R5 E+ D
前的文件。如果是手动修改需要先对配置文件进行备份。
9 ], j2 L+ D3 n) |7 n$ [' o' L# {' J
[root@centos-test ~]# ls /etc/firewalld/zones! c9 W. t; u: s* ?# N9 Q
# y' o/ {& b/ E
public.xml public.xml.old
. O, u! `0 t" c6 Y- T
, L: H: g  g4 ^3 j9 p% \, u3 X$ y" B6 J
" |- R6 y( [( x* r: o
3、使用默认模板的形式添加服务(用于定制服务端口):" m$ D4 [7 `- F0 J
3 i) T( R) ]+ M% H1 y
(1)所有的默认规则都可以在 /usr/lib/firewalld/ 中找到:' A$ J6 I7 [3 A

+ y& I' Z1 K! l6 k8 _: ][root@centos-test ~]# ls /usr/lib/firewalld/0 b  Q! @- o3 a; @3 c

$ ~9 S+ L' q# h) r6 Ghelpers icmptypes ipsets services xmlschema zones
1 [1 D: X3 S" L9 V6 p- Y
- @# h6 s0 O, r7 A' g, i, e& ~, R7 T. m$ S/ b, I* z- a
, m' H9 a: [$ n; @* H
(2)复制默认目录下的规则到配置目录下:+ M+ s$ ^, Z1 p3 J0 }8 r4 D

) V/ ]5 r2 ]- Z: }: M/ v  l& l[root@centos-test ~]# cp -a /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/
( V9 M8 P) h( [- i) _5 N0 m$ l/ m5 L$ q, G; f, {( Z6 K3 s! \4 V
3 |/ Y& @4 n1 }
$ i5 y7 r9 j) o! E. g; Q
(3)配置文件中包含了服务名,端口,还有服务的相关说明:- N6 Q6 C% s9 h/ G3 N7 L! ?

/ S. ]; M+ ?# M, y& m[root@centos-test ~]# cat /etc/firewalld/services/ftp.xml
+ g; `4 ]& Y+ ]# R$ p  j0 q4 u) A# W7 G" ~& K! G0 Z
<?xml version="1.0" encoding="utf-8"?>/ R# j9 p- t3 z7 x- ]9 @

# [) \; E" I3 e; T0 ^& Q5 n4 E<service>
7 r' i7 b4 L5 e: Q
7 P9 [2 F/ r3 I<short>FTP</short>
# i/ t/ @0 k  n* V( }$ h/ K% z/ ?
<description>FTP is a protocol used for remote file transfer. If you plan to make your FTP server publicly available, enable this option. You0 i( b1 F2 F4 r6 z8 r
, R$ t3 j6 |4 S; [( t
need the vsftpd package installed for this option to be useful.</description> <port protocol="tcp" port="21"/>$ B' h& d" {8 j# b: g

( }$ L+ M1 S+ R) R4 Y  S& e/ B<module name="nf_conntrack_ftp"/>
* r* B6 O: t' m% {: {/ m+ E2 L1 T9 L' T$ t$ Q& w
</service>/ y: A# z% f+ b5 U2 {
6 U( i  U1 |3 X$ ?" x4 p& A1 j- l

0 u; ~7 _, y1 C0 {- r2 A& x  @% |
(4)在 /etc/firewalld/zones/public.xml 中增加一行 <service name="ftp"/>:& {* F' y9 I1 S) ~# v
9 w8 Z1 b" Z2 t. x$ c( p( W
[root@centos-test ~]# vim /etc/firewalld/zones/public.xml* `( p3 ~6 m% O& B( O
1 y2 Q$ e6 I/ O6 ]  a
<?xml version="1.0" encoding="utf-8"?>5 Z/ ?* y  v  m

6 P3 Y$ Z9 c6 F& m<zone>3 i1 ?6 D) l% ?' F8 d5 ~, p; y' a
$ H. L+ U# A6 L, {
<short>Public</short>
6 @' B, a6 l) R' v7 @
+ k* ^" }; x5 x<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming conn
2 N- f( u) y0 p1 U5 p& C3 C6 {$ q
ections are accepted.</description>' q& J& ^+ m% l
' D# u2 h9 x2 _0 c
<service name="ssh"/>+ i/ U. t& |: j

7 k1 ]' O1 d- R: |<service name="dhcpv6-client"/>7 d: t7 ^! W9 {( M: u# H
* L! Y5 l- |9 P- l% N
<service name="ftp"/>
. x! J- D( X# U0 y2 D* ~; o& ^9 P5 a9 }/ n" ^* Q( m
</zone>
3 K5 ^! y/ h# @! n! \# D: T6 S2 g" Q# q/ |. J# p

7 V( Q" E& s0 `7 S- k7 N! d4 p2 v' {/ J! T$ ?
(5)重载firewalld:
1 l* m; H0 L8 D6 l; Z9 E4 l/ h  e4 q. u, N6 P4 B; v
[root@centos-test ~]# firewall-cmd --reload
) }  y- G7 E! U' A  n; [! r- ~
8 m0 l3 J8 m; a9 b
) P4 Q6 W+ H, N% N2 V0 d( S- n4 Y$ [; t- [! l  S. D% |$ }' C: b. R+ [/ s
(6)查看服务:/ V" {  j2 @+ K- m- j

( F9 D8 p9 A) W. s: S[root@centos-test ~]# firewall-cmd --zone=public --list-service  T  N! u% Q7 |5 I
4 V5 N) P' z5 ^
ssh dhcpv6-client ftp) |0 o  x3 t, w: A6 A

- e& D% {" H; T$ u& \  A: {
 楼主| 发表于 2022-12-20 17:40:44 | 显示全部楼层

/ p! D) ]4 P+ L<?xml version="1.0" encoding="utf-8"?>4 e$ Q  N( ^: Y# U1 Q8 E7 w( a
<zone>: k0 L+ z- i( U' I3 P
  <short>Public</short>; R2 e# T7 t/ b
  <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>
1 o0 k% }* I: ]  m  I  <service name="ssh"/>! ]5 T' I7 J$ |8 r4 M$ j1 E% j
  <service name="dhcpv6-client"/>
: Y( C& v6 Q& _3 ~+ b# Z  <service name="http"/>* W7 l% T0 P( ~* \" U
  <port protocol="tcp" port="80"/>: j4 }+ E* q( M9 q0 Y# i* L
  <port protocol="tcp" port="8080"/>
4 E" I! @% P$ m, x# q1 x' S: V6 y! K  <forward-port to-port="3366" protocol="tcp" port="3306"/>4 d3 e( b$ K  A# x3 o' E- f, M
  <forward-port to-addr="192.168.22.55" to-port="8088" protocol="tcp" port="8080"/>0 [7 z- V9 J5 R" H1 d! h3 ]
</zone>7 M% v# d; k6 o2 X3 D
 楼主| 发表于 2022-12-20 17:41:20 | 显示全部楼层
firewall-cmd --zone=public --list-forward-ports
9 y- c" F' B# W% [port=8080:proto=tcp:toport=8088:toaddr=192.168.22.55
$ h3 h* g, f$ H7 H9 _9 G6 y
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-9 00:03 , Processed in 0.048666 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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