firewalld预防火墙 - 01

防火墙管理 - 01

一、防火墙基本概述 (firewalld)
在CentOS7系统中集成了多款防火墙管理工具,默认启用的是firewalld(动态防火墙管理器)防火墙管理工具,Firewalld支持CLI(命令行)以及GUI(图形)的两种管理方式。

对于接触Linux较早的人员对Iptables比较熟悉,但由于Iptables的规则比较的麻烦,并且对网络有一定要求,所以学习成本较高。
但firewalld的学习对网络并没有那么高的要求,相对iptables来说要简单不少,所以建议刚接触CentOS7系统的人员直接学习Firewalld。

在这里插入图片描述

# 注:如果开启防火墙工具,是防止外部访问进入,而不是内部流量流出!

firewalld 只能做和IP/Port相关的限制,而web不受限制。

在这里插入图片描述

二、防火墙区域管理
那么相较于传统的Iptables防火墙,firewalld支持动态更新,并加入了区域zone的概念。
firewalld预防火墙提前准备了多套防火墙策略集合(策略模板),根据不同用户可以在不同的场景选择不同的策略模板,从而实现防火墙策略之间的快速切换。  ##w10里面的私有、专有网络

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xUk5fiWx-1618235986285)(C:\Users\17155\Desktop\下载图片\1618226395430.png)]

1.区域

在这里插入图片描述

#   必须记住的三个区域,其他区域了解 

trusted:白名单
public:默认区域
drop:黑名单
三、防火墙基本指令参数
1.firewall-cmd命令分类列表(添加服务server=http 而不是httpd/nginx )

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-raGgCsmt-1618235986289)(C:\Users\17155\Desktop\下载图片\1618227062899.png)]

#  先启动防火墙  systemctl restat firewalld
#  查看    firewall-cmd --get-default-zone 
           public
#更改防火墙  firewall-cmd --get-default-zone=public


[root@web01 zones]# cd /usr/lib/firewalld/
[root@web01 services]# cp http
https.xml  http.xml   
[root@web01 services]# cp http.xml nginx.xml
[root@web01 services]# firewall-cmd --reload 
success
[root@web01 services]# firewall-cmd --add-service=nginx
success

[root@web01 zones]# cp work.xml newzone.xml  #复制一个nginx服务文件,添加nginx服务文件 
[root@web01 ~]#firewall-cmd --add-service=nginx  #添加了nginx服务文件后,才可以添加nginx服务
四、防火墙区域配置策略
如果要用firewalld服务和相关工具去管理防火墙,必须启动firewalld服务,同时关闭以前旧的防火墙相关服务,需要注意firewalld的规则分为两种状态:
runtime运行时:修改规则马上生效,但如果重启服务则马上失效,测试建议。
permanent持久设置:修改规则后需要reload重载服务才会生效,生产建议。
1.禁用与取消禁用防火墙
#禁用防火墙
[root@web01 ~]# systemctl mask iptables
Created symlink from /etc/systemd/system/iptables.service to /dev/null.

#取消禁用防火墙
[root@web01 services]# systemctl unmask iptables
Removed symlink /etc/systemd/system/iptables.service
2.操作防火墙
[root@web01 ~]# systemctl restart firewalld
[root@web01 ~]# systemctl enable firewalld
[root@web01 ~]# systemctl stop firewalld

#重载防火墙配种或清理临时的防火墙配置
[root@web01 ~]# firewall-cmd --reload
3.firewalld防火墙常用命令
1、查看默认使用的区域
[root@web01 ~]# firewall-cmd --get-default-zone 
public
2、查看默认区域的规则
[root@web01 services]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources: 
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:
3、查看指定区域的默认规则
[root@web01 ~]# firewall-cmd --list-all --zone=trusted 

trusted							   #区域的名字
target: ACCEPT				       #状态:允许
icmp-block-inversion: no		   #icmp块设置
interfaces: 					   #区域绑定的网卡
sources: 						   #允许流量通过的网段
services: 					       #允许流量通过的服务
ports: 						       #允许流量通过的端口
protocols: 					       #允许流量通过的协议
masquerade: no					   #IP伪装
forward-ports: 					   #端口转发
source-ports: 					   #端口转发的来源端口
icmp-blocks: 					   #icmp块设置
rich rules:						   #富规则

  [root@web01 services]# firewall-cmd --list-all --zone=drop
drop
  target: DROP
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

4、查看区域是否允许某服务
[root@m01 ~]# firewall-cmd --zone=public --query-service=ssh
yesss
[root@m01 ~]# firewall-cmd --zone=public --query-service=https
 Error: INVALID_SERVICE: htpps
五、防火墙配置
1.firewalld防火墙放行服务
1、firewalld防火墙放行一个服务
[root@web01 ~]# firewall-cmd --add-service=http
success
2、firewalld防火墙放行多个服务
[root@web01 ~]# firewall-cmd --add-service={http,nginx}
success

#  如果nginx 报错 Warning: INVALID_SERVICE: nginx
[root@web01 services]# cp http.xml nginx.xml

[root@web01 ~]# vim /etc/firewalld/services/nginx.xml
<service>
  <short>Nginx</short>
  <description>nginx</description>
  <port protocol="tcp" port="80"/>
</service>
3、自己添加服务,配置规则
[root@web01 ~]# cp /usr/lib/firewalld/services/{http.xml,suibian.xml}
[root@web01 ~]# firewall-cmd --reload
success
[root@web01 ~]# firewall-cmd --add-service=suibian
success
2.firewalld防火墙放行端口
1、firewalld防火墙放行一个端口
[root@web01 ~]# firewall-cmd --add-port=80/tcp
success
## 不放行端口
[root@web01 ~]# firewall-cmd --remove-port=80/tcp
success
2、firewalld防火墙放行多个端口
[root@web01 ~]# firewall-cmd --add-port={81/tcp,82/tcp}
success
3.firewalld防火墙放行网段
[root@web01 ~]# firewall-cmd --add-source=10.10.0.0/24 --zone=trusted(drop)(public)
success
4.配置测试
#要求:使用firewalld各个区域规则结合配置,调整默认public区域拒绝所有流量,但如果来源IP是10.10.0.0/24网段则允许

1.去除配置中的规则
[root@web01 ~]# firewall-cmd --remove-service=ssh
success

## 然后连接web01就连接不上了

2.配置允许10.10.0.0/24网段
[root@web01 ~]# firewall-cmd --add-source=10.10.0.0/24 --zone=trusted 
success
六、防火墙配置端口转发
端口转发是指传统的目标地址映射,实现外网访问内网资源
流量转发命令语法为:
firewalld-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>
1.端口转发实践
# 实例:需要将本地的10.10.0.7:6666端口转发至172.16.1.5:22端口

firewalld-cmd --add-forward-port=port=6666:proto=tcp:toport=22:toaddr=172.16.1.5
#1.添加端口转发
[root@web01 ~]#firewall-cmd --add-forward-port=port=6666:proto=tcp:toport=22:toaddr=172.16.1.5
success

#2.开启ip伪装
[root@web01 ~]# firewall-cmd --add-masquerade 
success

#3.查看防火墙配置
[root@web01 services]# firewall-cmd --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: yes
  forward-ports: port=6666:proto=tcp:toport=22:toaddr=172.16.1.5
  source-ports: 
  icmp-blocks: 
  rich rules: 
  
#4.测试连接   # 通过web01的6666的端口连接lb01的机器
[D:\~]$ ssh 10.10.0.7:6666


Connecting to 10.10.0.7:6666...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Mon Apr 12 14:26:36 2021 from 10.10.0.1
[root@lb01 ~]# 
2、端口转发原理图:

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FikL-09-19

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值