linux运维开发(四)---------- firewalld服务详解

防火墙初识

防火墙是整个系统安全性最重要的方面,能够有效的防止网络攻击。所以我们需要详细了解防火墙的知识。从centos 7开始,使用了firewalld替代了centos 6中的iptables。之前在linux运维开发(一)----------防火墙使用过以下命令:

firewall-cmd --zone=public -add-port=9999/tcp --permanent
firewalld-cmd --reload
firewall-cmd --zone=public --list-ports | grep 9999

接下来我们就来好好讲解这个命令的作用

通过了解以上命令,我们发现有一个–zone=public的参数设置,这是什么意思呢?讲到这里,我们就需要了解一个概念:区域。定义如下:

区域是预定义的规则集,用于根据计算机连接到的网络上的信任级别指定应允许的流量。您可以将网络接口和源分配给区域。

Bellow是FirewallD提供的区域,根据区域的信任级别从不信任到可信:

  • drop:删除所有传入连接而不发出任何通知。仅允许传出连接。
  • block:所有传入连接都被拒绝,其中包含用于IPv4的icmp-host-prohibited消息和用于IPv6n的icmp6-adm-prohibited。仅允许传出连接。
  • public:用于不受信任的公共场所。您不信任网络上的其他计算机,但您可以允许选定的传入连接。
  • external:用于在系统充当网关或路由器时启用NAT伪装的外部网络。仅允许选定的传入连接。
  • internal:用于在系统充当网关或路由器时在内部网络上使用。网络上的其他系统通常是可信的。仅允许选定的传入连接。
  • dmz:用于位于非军事区的计算机,该计算机对网络其余部分的访问权限有限。仅允许选定的传入连接。
  • work:用于工作机器。网络上的其他计算机通常是可信的。仅允许选定的传入连接。
  • home:用于家用机器。网络上的其他计算机通常是可信的。仅允许选定的传入连接。
  • trusted:接受所有网络连接。信任网络中的所有计算机。

打开/关闭防火墙

systemctl start firewalld
systemctl stop firewalld

启用/禁用防火墙

systemctl enable firewalld
systemctl disable firewalld

防火墙区域的查看

查看可用区域:

firewall-cmd --get-zones

查看默认区域:

firewall-cmd --get-default-zone

查看被激活的的区域:

firewall-cmd --get-active-zones

查看指定区域信息

查看端口信息:

firewall-cmd --zone=public --list-ports

查看服务信息:

firewall-cmd --zone=public --list-services

查看协议信息:

firewall-cmd --zone=public --list-protocols

查看网络接口信息:

firewall-cmd --zone=public --list-interfaces

查看所有信息:

firewall-cmd --zone=public --list-all

规则永久化

在进行修改操作后面使用 --permanment使命令永久化,–add-xxx、remove-xxx等命令

规则生效方式

–reload:重新载入配置信息,保持状态信息

firewall-cmd --reload

–complete-reload:重新载入配置信息,会丧失状态信息,相当于重启

firewall-cmd --complete-reload

添加规则

添加端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent

添加服务:

firewall-cmd --zone=public --add-service=mysql --permanent

添加协议:

firewall-cmd --zone=public -add=protocol=tcp --permanent

添加网络接口(将会使ens33接口处于work区域):

firewall-cmd --zone=work --add-interface=ens33 --permanent

等同

firewall-cmd --zone=work --change-interface=ens33 --permanent

删除规则

删除端口:

firewall-cmd --zone=public --remove-port=8080/tcp --permanent

删除服务:

firewall-cmd --zone=public --remove-service=mysql --permanent

删除协议:

firewall-cmd --zone=public --remove-protocol=tcp --permanent

删除接口:

firewall-cmd --zone=public --remove-interface=ens33 --permanent

验证规则绑定

查询端口信息:

firewall-cmd --zone=public --query-port=80/tcp

查询服务信息:

firewall-cmd --zone=public --query-service=mysql

查询协议信息:

firewall-cmd --zone=public --query-protocol=tcp

查询接口信息:

firewall-cmd --zone=public --query-interface=ens33

端口转发流量

1、为所需区域开启伪装:

firewall-cmd --zone=external --add-masquerade --permanent

2、验证是否开启伪装:

firewall-cmd --zone=external --query-masquerade --permanent

3、转发流量:

  • 将流量从端口80转发到同一服务器上的端口8080

firewall-cmd --zone=external --add-forward-port-80:proto=tcp:toport=8080 --permanent

  • 流量从端口80转发到IP 192.168.1.2的服务器上的端口80:

firewall-cmd --zone=external --add-forward-port=80:proto=tcp:toaddr=192.1681.2 --permanent

  • 流量从端口80转发到IP 192.168.1.2的服务器上的端口8080:

firewall-cmd --zone=external -add-forward-port=80:proto=tcp:toport=8080:toaddr=192.168.1.2 --permanent

4、为指定区域去除伪装:

firewall-cmd --zone=external --remove-masquerade --permanent

查看所有区域的所有信息:

firewall-cmd --list-all-zones

更多问题可以加公众号:代码小栈,期待为您解决更多问题

代码小栈

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值