现在对安全的要求更严格了,对内网环境的特定服务器,现在只允许指定IP或IP段进行访问,其他一律屏蔽,配置步骤如下:9 m5 _! Q; N* n- S; ?
检查防火墙是否启动:. p# G$ S$ t; ~2 E" [- F
systemctl status firewalld.service0 g0 X1 P6 J( B: c; Q \
启动防火墙:+ [ d0 [! ~: m2 d3 b
systemctl start firewalld.service
2 M; ^4 X" |' y$ @* P5 @) _0 \
6 a* i1 M/ B e
7 X5 J8 c' q h' u4 M开机启动防火墙:. t; u" ]: ^6 r
systemctl enable firewalld.service
. k) x2 F* S9 D1 m! C6 ?. y/ F7 M7 \* e+ I8 A6 u
( k) k# ]; T" ]; j修改防火墙acl规则:7 q" Y: S( }6 D, S' ^1 _
通过编辑文件:
* c1 X) n* K& y0 S5 U" H9 D/ {vim /etc/firewalld/zones/public.xml' ]9 b& Z" H4 i [
) E6 C! X) S- a) y& d. \- W h* j<?xml version="1.0" encoding="utf-8"?>
& s: \4 \1 j( r0 _' i3 {<zone>
* S: V9 c; C, p* S+ | <short>Public</short>5 N- Z: ]9 D% L1 e+ M! }
<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>
, ~0 W7 r, k5 g8 V <service name="ssh"/>
+ {5 d# W9 u9 P* l# h3 I- R <service name="dhcpv6-client"/>
$ ~. z& G) Y- x O3 _/ c</zone>$ b! m; D x/ l
~ - k7 X/ S( C* T0 C* D
* H4 |1 Z: F, J8 \! P: v默认的防火墙规则 k4 }( n. ^ J+ Y% H- a$ I/ I
6 n3 |# v7 q# V7 b8 `& R& Z0 D7 }第二种通过命令:
" d9 A: v, n1 S7 ?3 X* h! |& B. [0 L+ ]* d& s) u
手动开放指定端口
9 a) Y( q9 A/ ?2 d5 O
" j/ [! s, D& y( }; U7 t5 L4 gfirewall-cmd --permanent --add-port=3306/tcp - g- K: R9 X/ O4 \0 Q
( q& p( _' G: M, h; s$ o4 _2 M1 y改完配置文件后重载一下防火墙服务
4 d$ t) K1 k2 {0 P* B4 T/ |" rfirewall-cmd --reload
+ a# y# ^5 ?0 _0 B8 u% d% P5 [' k4 X3 L
S8 Q* f9 b8 {* N基本应用firewall-cmd --state" j; x0 O# g& i& |1 ~% |' d
获取firewalld状态' \% i7 d1 R ~2 x# C0 S' e6 K L
.# V( P- ~7 y- g
firewall-cmd --reload
2 Y; { x! Y7 C$ i3 [# d N4 e在不改变状态的条件下重载防火墙
: T: y1 D* I- o8 A. U.5 ?7 [7 D+ c, I8 @5 M9 |- t/ g; v
firewall-cmd --complete-reload8 t. ^3 |1 J6 H: X; G
完全重启,状态信息将会丢失
# k: p' S6 @; Y: C.. U& g5 @' t! j
firewall-cmd --get-zones
2 ?2 \; Q, w! _( b) V3 {1 i获取支持的区域0 b1 A$ n& u" j( s) P: j
.
) Z* ?: [! h- Ofirewall-cmd --get-services
: ~8 a" f1 m' s. a获取所有支持的服务,支持的服务存放在/usr/lib/firewalld/services目录下。
, V0 Y# \4 B6 c- d服务是firewalld所使用的有关端口和选项的规则集合。8 \0 E- J2 b$ Q, Y6 [# B
被启动的服务会在firewalld服务开启或运行是自动加载。& @& d5 M2 \2 @0 ^% o0 g
我们还可以创建自己的服务,即添加端口和服务的对应关系,将在下面讲解。7 O2 L' j& h4 d# @ Q
.7 v7 A, Q1 N2 u& Y3 P
firewall-cmd --get-icmptypes/ B: v& R- u1 `0 W
获取所有支持的ICMP类型) Y# P* l5 o$ T G# B
., G- P. D g5 A7 x; H8 L
firewall-cmd --list-all-zones
: E2 z U& {) v, |列出全部启用的区域的特性(即查询当前防火墙策略),特性是定义的防火墙策略。
, K b# Q1 x8 d' W8 a( V策略如:服务、端口和协议的组合、端口/数据报转发、伪装、ICMP拦截或自定义规则等。6 t) M# z" S n5 @. S
该命令会列出所有区域的所有特性,包括详细规则(rich-rules)。
0 W, W1 m W! [1 Y) P( y.
3 ^+ I3 ~2 x( D M( Cfirewall-cmd [--zone=区域] --list-all
+ `2 W8 }2 l" h7 a. x输出指定区域启用的全部特性,如果区域被省略,将显示默认区域的信息。( }2 j) ^. D4 y$ O; n
. m/ C5 }) n* m- w
firewall-cmd --get-default-zone
/ |! R+ p! V# ?( M8 p9 |查默认区域,默认的默认区域为public
( T" p M* K6 V5 _" ^9 E.! ]$ i+ y2 x2 K
firewall-cmd --set-default-zone=区域
+ B+ s5 ^" g4 w* a, L) P/ Z, r设置默认区域,也可通过/etc/firewalld/firewalld.conf中的DefaultZone配置项定义默认区域。
, R& G8 b! W- S2 M! H) V5 D流入默认区域中配置的接口的新访问请求将被置入新的默认区域。当前活动的连接将不受影响。
/ D% z5 ]+ q3 F' l: z0 H2 H.+ l$ A; b4 o) }( N) ]6 b: J- X. D( s
firewall-cmd --get-active-zones
/ E/ D& S! L- t8 v获取活动的区域,同时会输出活动区域所包含的接口。$ ]1 {3 Y, u7 R; ?% K& `
.* H9 \; q4 j9 X7 b5 Z. \
firewall-cmd --get-zone-of-interface=网卡名
7 v+ f1 g& N2 L5 L$ B查指定接口属于哪个区域& @& P: \& N! r% W
.
& H' i4 b* q' j! o, sfirewall-cmd [--zone=区域] --add-interface=接口名
' k& A0 g. z; ~# L将指定接口增加到指定区域,如果区域被省略了,将会被添加到默认区域。
( m8 l& p' l" n% [: I一个接口同时只能属于一个区域,接口会在防火墙重新加载后重新应用。
! e; O2 W/ R: _9 f. [7 M+ [.3 V% H) Y( |8 n- n" \- c6 p
firewall-cmd [--zone=区域] --change-interface=接口名
! [7 M, U9 U3 [2 G修改接口所属区域,这个选项与--add-interface选项相似。/ x/ t: H: I7 X7 `" y
但不同的是,当接口已经存在于另一个区域的时候,该接口将被重置到新的区域。4 X$ C/ [" B: j" `3 K! W
.; ^' H$ l( ~) w4 N" d+ y! w& \! M
firewall-cmd [--zone=区域] --remove-interface=接口名
: A' C$ H" D* @; L: R. u, {; J从指定区域中删除指定接口,删除后,这个接口的所有数据包将使用默认区域的规则。5 z4 a0 \* _2 G- M0 e( q& q0 x# ]9 {- A8 U
.% r6 J" `) j, {2 E% J- e" Y
firewall-cmd [--zone=区域] --query-interface=接口名4 h. U: D. j( v; x& l8 X
查指定区域中是否包含指定接口,如果区域被省略了,将被指定为默认区域。
4 b6 |) w& }1 J6 \4 c.
: M9 h5 [8 H8 J; ifirewall-cmd [--zone=区域] --list-services
7 t- J* A4 f5 E; ?4 R- ^列举区域中启用的服务,如果区域被省略了,将使用默认区域。3 F( y+ x# q! d* `
.$ J) p- \" {! G
firewall-cmd --query-masquerade 检查是否允许NAT转发! C0 E( r1 d. z+ c" N$ M
firewall-cmd --zone=public --add-masquerade --permanent 永久开启路由转发
# M) _. {: J9 n- W) Y$ mfirewall-cmd --remove-masquerade 禁止防火墙NAT转发
3 g+ M4 F$ ?2 }- \; v.3 ?: m5 E$ o3 @" Y* l$ X* X
firewall-cmd --panic-on 启用应急模式,将阻断所有网络连接,以防出现紧急状况。9 r$ H p/ |3 w# _( t7 e+ H
firewall-cmd --panic-off 禁用应急模式, B8 H+ P- z6 S) t$ K1 ~
firewall-cmd --query-panic 查应急模式状态8 Z: X) }# A$ T) }4 p/ B
.
7 R }1 ^1 q* ^6 Q# \' z其它相关的配置可在手册页man firewall-cmd中查看。 % r O4 n( ?$ x2 O t! i3 `
3 u3 O) G% c# o8 H
|