马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
现在对安全的要求更严格了,对内网环境的特定服务器,现在只允许指定IP或IP段进行访问,其他一律屏蔽,配置步骤如下:
7 W9 l3 V7 j6 t1 h- [' y2 {检查防火墙是否启动:" \% r' R- _: C+ g
systemctl status firewalld.service
) y! J( x$ ?, H* g* ^. D启动防火墙:; L4 }+ S" N$ m6 M
systemctl start firewalld.service
% W+ |& p5 S# g7 D% f
! p r% K3 }+ @2 W/ t u* Z- E/ d! l9 T2 N9 W. y
开机启动防火墙:
% y7 d1 |. \6 `/ g zsystemctl enable firewalld.service! a" a$ v) k9 x% J: A
* \( q1 F8 L3 ^
& l4 w* J; ]( A6 E; l: h/ T修改防火墙acl规则:
3 F) I0 a. y0 L |通过编辑文件:
4 c% ]/ B; H# E4 q9 e" C8 {vim /etc/firewalld/zones/public.xml
+ ]0 ?6 l4 @& m2 ^/ L w# ~2 ]/ ~8 [" J3 ?$ c
<?xml version="1.0" encoding="utf-8"?>
+ u; S" ~8 y# d- k2 d<zone>
6 x6 `" H7 c( p5 ~6 K( f <short>Public</short>
2 Z& K# Y2 z: V( W( g <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>4 q$ e" z4 a$ v$ J4 X( H% ?
<service name="ssh"/>- H- t. f* [$ v
<service name="dhcpv6-client"/>
' X% I& w0 G: p T% p/ |2 O</zone>
+ h: N B, {( J2 L# j( T" p~ 1 Z, a( {( z( \- [# u- K( @: `
3 M: W/ E3 q6 A- _
默认的防火墙规则
3 {5 T. V# \+ \/ D+ V( x" d1 a; D$ P' {9 r
第二种通过命令:$ [" w- ^! H P1 \( R. }
" @# j5 e; j: C9 M r- X$ |手动开放指定端口' I5 W7 j$ x# Q
3 d2 a6 ]6 w' J- b- O- l
firewall-cmd --permanent --add-port=3306/tcp # T6 N6 N6 w8 I5 U8 g8 s( s
^5 x) J, D. F; D/ v" \+ ]
改完配置文件后重载一下防火墙服务
" R/ d9 g3 z6 \0 G' x. _) D3 n( Pfirewall-cmd --reload
( B0 x- c y9 T; b/ t0 x& [( H! |9 B- n( g6 }% c$ `
I q3 a8 S9 _; G! R9 z# ]; u
基本应用firewall-cmd --state/ N! r" Q! f! x" T9 X
获取firewalld状态6 v) \2 E* P9 `
.
A* x* }/ G& f- zfirewall-cmd --reload
4 m8 x0 ~8 s5 O4 O, z8 k) F在不改变状态的条件下重载防火墙
$ J) j: I: g/ V+ F5 k& Q3 g6 I.& _# H, P9 ~- p& L, O/ A/ H
firewall-cmd --complete-reload
# R9 Q% b: A1 F; T0 U# B- A完全重启,状态信息将会丢失+ ]7 F- h- }2 V# s4 d* v
.
# i$ ^% [1 ]/ v2 y6 {1 ?; Z+ E$ nfirewall-cmd --get-zones! O; O @$ b0 q: a+ ]5 t; U
获取支持的区域% J0 w0 O: I* V8 X1 S& ?# s
.3 n$ q* T. \5 V0 P/ P+ A. y& T
firewall-cmd --get-services
: c5 U; S6 k3 i获取所有支持的服务,支持的服务存放在/usr/lib/firewalld/services目录下。
( Y- y% g, K# u8 c服务是firewalld所使用的有关端口和选项的规则集合。
, y0 x3 c2 i* w5 }+ i被启动的服务会在firewalld服务开启或运行是自动加载。! c$ c1 D4 s+ y9 b
我们还可以创建自己的服务,即添加端口和服务的对应关系,将在下面讲解。4 Q: W' Z* ~1 B, y8 |) O
.
$ r* q$ F% \% |firewall-cmd --get-icmptypes- t: p6 Y t5 a8 t, j2 o* h
获取所有支持的ICMP类型
+ T6 m% q" b9 s8 q: ].
4 z% ^% e* i5 cfirewall-cmd --list-all-zones( X9 ]: t& Q3 v( j6 X
列出全部启用的区域的特性(即查询当前防火墙策略),特性是定义的防火墙策略。- h6 c2 z2 W3 W1 \5 i9 `
策略如:服务、端口和协议的组合、端口/数据报转发、伪装、ICMP拦截或自定义规则等。9 F$ D$ L V9 V' H7 z
该命令会列出所有区域的所有特性,包括详细规则(rich-rules)。
) G2 O5 r7 k L8 K5 O& D9 q.
: {8 M6 N/ _" n$ e- C( x* i {/ _+ cfirewall-cmd [--zone=区域] --list-all# z# C# R- C8 P- D
输出指定区域启用的全部特性,如果区域被省略,将显示默认区域的信息。* s3 X S1 C, J8 @
.( D$ @, P5 H: g9 M. g- v1 u
firewall-cmd --get-default-zone
+ f0 E& U T; `, W2 u# y查默认区域,默认的默认区域为public e+ i9 N/ _8 z9 t3 }
.
9 E0 n7 @4 C: g) h- Z) d( l- t. Efirewall-cmd --set-default-zone=区域
5 |0 _) e! x% \/ v+ Z, P& A设置默认区域,也可通过/etc/firewalld/firewalld.conf中的DefaultZone配置项定义默认区域。4 j. r% G+ H9 r) r# L D
流入默认区域中配置的接口的新访问请求将被置入新的默认区域。当前活动的连接将不受影响。
5 X! e6 _& f& y' M* E8 Z.
_2 n7 R+ t- h' `% O# Vfirewall-cmd --get-active-zones
7 D3 _" [- C8 B: A- C获取活动的区域,同时会输出活动区域所包含的接口。0 \8 A. {" p+ ]) M
.
9 o3 {5 c9 @8 j; ]( b Sfirewall-cmd --get-zone-of-interface=网卡名+ ?1 ]* J1 W) l6 P
查指定接口属于哪个区域
% j) z4 S) U$ q( [1 d.$ E% l( I0 v3 O9 N
firewall-cmd [--zone=区域] --add-interface=接口名9 F& _% Q# z C. r% Q, w
将指定接口增加到指定区域,如果区域被省略了,将会被添加到默认区域。$ `, p$ d% d! Q9 M: p/ Y( G9 m6 w
一个接口同时只能属于一个区域,接口会在防火墙重新加载后重新应用。* Z7 r- _3 l8 U/ E4 H$ A- C7 B1 m
.
: {- T/ _3 `0 O( O) cfirewall-cmd [--zone=区域] --change-interface=接口名0 F! n# Q6 a! s( }. q6 |
修改接口所属区域,这个选项与--add-interface选项相似。
3 h+ @6 x; n3 `1 z$ V b0 Q; |但不同的是,当接口已经存在于另一个区域的时候,该接口将被重置到新的区域。
" ^6 p# D+ C; ~+ S& D+ X.
6 m* [) I7 b8 E$ `- a |firewall-cmd [--zone=区域] --remove-interface=接口名2 a X, P$ |* h# { U$ r
从指定区域中删除指定接口,删除后,这个接口的所有数据包将使用默认区域的规则。
! x9 F: o0 r. ?+ B! U3 Q.6 b% |3 |0 g# H6 z* U
firewall-cmd [--zone=区域] --query-interface=接口名8 q% Z3 T8 L% n/ h( r
查指定区域中是否包含指定接口,如果区域被省略了,将被指定为默认区域。
3 v% ]+ z# O/ @( d; A- ~0 s5 x, c+ V.8 Q; Y$ X N3 W) V
firewall-cmd [--zone=区域] --list-services8 e# a* @( J3 K S7 L
列举区域中启用的服务,如果区域被省略了,将使用默认区域。
4 F7 e3 t- ?: @- A! ].
& w. E" U- U6 A" @& I$ I8 Vfirewall-cmd --query-masquerade 检查是否允许NAT转发
0 p# Q( g1 l# S* Vfirewall-cmd --zone=public --add-masquerade --permanent 永久开启路由转发
5 X( h6 ^4 i9 L2 s1 O/ `$ P1 g0 x1 |firewall-cmd --remove-masquerade 禁止防火墙NAT转发$ u9 A& p. D+ h2 q7 S
.- ?( p4 T4 o. k! r1 Z
firewall-cmd --panic-on 启用应急模式,将阻断所有网络连接,以防出现紧急状况。
: V5 R U# ^8 t/ e8 }5 ^firewall-cmd --panic-off 禁用应急模式/ B' L: B0 M6 [( ~+ ^7 J8 J+ `
firewall-cmd --query-panic 查应急模式状态
9 A+ I2 f, y' D3 t# T.
+ y* z7 C& t7 j) [' a) d- s其它相关的配置可在手册页man firewall-cmd中查看。 P/ S0 ~1 ~3 _* g$ A
$ y6 a+ ]3 ?; Q |