Centos7-Firewalld

Firewlld

1、Firewalld 防火墙有了区域的概念,常用的区域有 dorp、public、trusted三个区域如下图所示:

Firewalld关系图

2、在这里需要注意的是Firewalld中的区域与接口:

1)、一个网卡仅能绑定一个区域。比如:eth0-->A区域
2)、但是一个区域可以绑定多个网卡。比如:B区域-->eth0、eth1
3)、可以根据来源的地址设定不同的规则。比如:所有人都能访问80端口,只有公司才能访问22端口

3、为了能够正常使用firewalld服务和相关工具去管理防火墙,必须启动防火墙服务,通知瓜关闭以前的

旧版的防火墙(iptables),在这里需要注意防火墙的两种状态:

1)、runtime状态:立即生效,修改规则马上生效,重启失效。
2)、permanent状态:持久生效,修改规则后需要reload服务才能生效
关闭旧版防火墙服务
[root@lb01 ~]# systemctl mask iptables
[root@lb01 ~]# systemctl mask ip6tables
开启firewalld防火墙
[root@lb01~]#systemctl start firewalld.service

4、Firewall 区域查看

查看默认区域
root@lb01 ~]# firewall-cmd --get-default-zone
public
[root@lb01 ~]#

查看活动区域
[root@lb01 ~]# firewall-cmd --get-active-zones 
查看区域下的规则明细
[root@lb01 ~]# firewall-cmd  --zone=public --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
    
[root@lb01 ~]# 

5、Firewalld小练习

1、使用firewalld各区域规则结合配置,调整默认public区域拒绝所有流量,但如果来源IP是 10.0.0.8/32 则放行所有流量

[root@lb01 ~]#  firewall-cmd --remove-service=ssh --remove-service=dhcpv6-client
success
[root@lb01 ~]# 
[root@lb01 ~]# firewall-cmd --add-source=10.0.0.8/32 --zone=trusted
success
[root@lb01 ~]# 
测试:使用10.0.0.8主机登录当前机器

6.Firewalld端口、服务规则配置

#放行端口
[root@m01 ~]# firewall-cmd --add-port={80,8080,9090}/tcp        #添加多个端口
success
[root@m01 ~]# firewall-cmd --remove-port=80/tcp         #移除
success
[root@m01 ~]# firewall-cmd --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh dhcpv6-client
  ports: 80/tcp 8080/tcp 9090/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

放行服务

[root@m01 ~]# firewall-cmd --add-service=http
[root@m01 ~]# firewall-cmd --remove-service=http

*Firewalld 定义服务,但是这里要注意,服务名即调用服务的名称,文件名必须以.xml结尾

[root@lb01 /usr/lib/firewalld/services]# cat http.xml 
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>WWW (HTTP)</short>
  <description>HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.</description>
  <port protocol="tcp" port="80"/>
</service>
[root@lb01 /usr/lib/firewalld/services]# 

[root@lb01 /usr/lib/firewalld/services]# touch zibbax.xml
[root@lb01 /usr/lib/firewalld/services]# vim zibbax.xml 
[root@lb01 /usr/lib/firewalld/services]# systemctl restart firewalld
[root@lb01 /usr/lib/firewalld/services]# firewall-cmd --add-service=zibbax 
success
[root@lb01 /usr/lib/firewalld/services]# cat zibbax.xml 
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>zibbax (HTTP)</short>
  <description>HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.</description>
  <port protocol="tcp" port="10051"/>
</service>
[root@lb01 /usr/lib/firewalld/services]# 

7、Firewall 防火墙富规则(富规则拒绝优先)

Firewalld中富规则表示的更细致、更详细的防火墙策略配置,他尅针对系统服务、端口号、源地址、和目标地址等诸多信息进行更有针对的策略配置,
优先级在所有防火墙中也是最高的的。

[root@Firewalld ~]# man firewall-cmd            # 帮助手册
[root@Firewalld ~]# man firewalld.richlanguage  # 获取富规则手册
    rule
        [source]
        [destination]
        service name |port|protocol|icmp-block|masquerade|forward-port
        [log]
        [audit]
        [accept|reject|drop]

rule [family="ipv4|ipv6"]
source address="address[/mask]" [invert="True"]
service name="service name"
port port="port value" protocol="tcp|udp"
forward-port port="port value" protocol="tcp|udp" to-port="port value" to-addr="address"
accept | reject [type="reject type"] | drop

举例1、允许10.0.0.1主机能够访问HTTP服务,允许172.16.1.0/24能访问22端口

[root@lb01 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.0.0.1/32 port port=80 protocol=tcp accept'
success
[root@lb01 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.1.0/24 port port=22 protocol=tcp accept'
success
[root@lb01 ~]# firewall-cmd --zone=public --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
    rule family="ipv4" source address="10.0.0.1/32" port port="80" protocol="tcp" accept
    rule family="ipv4" source address="172.16.1.0/24" port port="22" protocol="tcp" accept
# 这里是临时配置,永久配置需要 --permanent 

举例2、默认public区域开放所有人通过ssh 服务连接,但是拒绝172.16.1.0/24 网段通过ssh服务连接服务器

[root@lb01 ~]# firewall-cmd --add-service=ssh
success
[root@lb01 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source  address=172.16.1.0/24 port port=22 protocol=tcp drop'
success
[root@lb01 ~]# firewall-cmd --zone=public --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
    rule family="ipv4" source address="172.16.1.0/24" port port="22" protocol="tcp" drop
[root@lb01 ~]# 
# 这里是临时配置,永久配置需要 --permanent 

举例3、使用firewalld,允许所有人能访问http.https服务单只有10.0.0.1主机可以访问ssh服务

[root@lb01 ~]# firewall-cmd --add-service=http --permanent
success
[root@lb01 ~]# firewall-cmd --add-service=https --permanent
success
[root@lb01 ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.0.0.1/32 port port=22 protocol=tcp accept' --permanent 
success
[root@lb01 ~]# firewall-cmd --zone=public --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: http https
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
    rule family="ipv4" source address="10.0.0.1/32" port port="22" protocol="tcp" accept 

永久配置最终都保存在这个文件里(/etc/firewalld/zones/public.xml),如果规则过多,可以直接修改配置文件后reload即可
[root@lb01 ~]# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <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>
  <service name="ssh"/>
  <rule family="ipv4">
    <source address="10.0.0.1/32"/>
    <port protocol="tcp" port="22"/>
    <accept/>
  </rule>
</zone>
[root@lb01 ~]# 

8、Firewalld实现内部主机共享上网

第一步开启firewalld 的masquerade 功能

[root@lb01 ~]# firewall-cmd --add-masquerade --permanent
success
[root@lb01 ~]# systemctl reload firewalld
[root@lb01 ~]# firewall-cmd --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
[root@lb01 ~]# 

第二步配置内网主机网卡配置文件:


[root@lb02 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth1
DEVICE=eth1
ONBOOT=yes
GATEWAY=172.16.1.5
IPADDR=172.16.1.6
PREFIX=24
DNS1=223.5.5.5
[root@lb02 ~]# systemctl restart network
[root@lb02 ~]# ifdown eth0
[root@lb02 ~]# ping www.baidu.com
PING www.a.shifen.com (220.181.38.149) 56(84) bytes of data.
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=1 ttl=127 time=8.93 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=2 ttl=127 time=8.02 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=3 ttl=127 time=5.95 ms
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 5.950/7.638/8.935/1.249 ms


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容