如何设置防火墙权限(Firewalld--01 防火墙安全、基本指令、区域配置)

Firewalld防火墙安全、基本指令、区域配置

安全

1.按OSI七层模型 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 安全公司: 安全狗 知道创宇 牛盾云

物理环境:

物理环境: 硬件安全 机柜上锁,避免电源被拔(UPS, 可以双电源),网线被拔(打标签) 温度,硬件检查 网络安全 (硬件防火墙(防DOS),软件防火墙 (iptables/firewalld/selinux (仅允许公司的IP地址能连接服务器的22端口))做规则限制 服务安全 更新有漏洞的版本 nginx mysql redis... 所有主机都没有公网ip,大大的降低被攻击的风险 系统安全 没有公网ip,SSH安全(修改ssh默认端口号),权限控制(禁用root远程登录)。 web nginx,apache必须对外,除了80/443端口,其他都不要对外 waf防火墙 防DDOS攻击 漏洞注入 SQL注入

云环境

硬件 无需关心 网络 硬件防火墙 --> 高防DDOS 软件防火墙---->安全组 系统 SSH安全、权限控制、更新补丁、安骑士、堡垒机 web SSL、阿里云提供WAF、云安全中心 数据 备份 敏感数据保护

安全公司:

安全狗 www.safe.dog 牛盾云www.newdefend.com 知道创宇

牛盾云

知道创宇

安全狗

1. 防火墙安全基本概述

RHEL/CentOS 7系统中集成了多款防火墙管理工具,其中Firewalld(Dynamic Firewall Manager of Linux systems, Linux系统的动态防火墙管理器)服务是默认的防火墙配置管理工具,它拥有基于CLI(命令行界面)和基于GUI(图形用户界面)的两种管理方式。

​ 那么相较于传统的Iptables防火墙,Firewalld支持动态更新,并加入了区域zone的概念。简单来说,区域就是Firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。

Firewalld规则配置,从外访问服务器内部如果没有添加规则默认是阻止,从服务器内部访问服务器外部默认是允许

需要注意的是Firewalld中的区域与接口.

一个网卡仅能绑定一个区域,但一个区域可以绑定多个网卡。还可以根据来源的地址设定不同的规则。

比如:所有人能访问80端口,但只有公司的IP才可以访问22端口。

2. 防火墙使用区域管理

划分不同的区域,制定出不同区域之间的访问控制策略来控制不同程序区域间传送的数据流。

3. 防火墙基本指令参数

Firewall-cmd命令分类列表

4.防火墙区域配置策略

1). 为了能正常使用Firwalld服务和相关工具去管理防火墙,必须启Firewalld服务,同时关闭以前旧防火墙相关服务,同时需要注意Firewalld的规则分两种状态:

runtime运行时: 修改规则马上生效,但是是临时生效 [不建议]

permanent持久配置: 修改后需要reload重载才会生效 [强烈推荐]

#禁用旧版防火墙服务 [root@firewalld ~]# systemctl mask iptables [root@firewalld ~]# systemctl mask ip6tables #启动firewalld防火墙, 并加入开机自启动服务 [root@firewalld ~]# systemctl start firewalld [root@firewalld ~]# systemctl enable firewalld

2). Firewalld启动后,我们需要知道使用的是什么区域,区域的规则明细又有哪些?

#默认当前使用的zone [root@firewalld ~]# firewall-cmd --get-default-zone public #查看当前区域的规则有哪些 [root@firewalld ~]# firewall-cmd --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:

#显示所有的zone [root@web01 ~]# firewall-cmd --get-zones block dmz drop external home internal public trusted work #详细的显示所有zone的默认规则 [root@web01 ~]# firewall-cmd --list-all-zones block target: %%REJECT%% icmp-block-inversion: no interfaces: sources: services: ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

设置zone

#设置默认的区域 [root@web01 ~]# firewall-cmd --set-default-zone=trusted success #查看默认的区域 [root@web01 ~]# firewall-cmd --get-default-zone trusted #显示当前活动的区域及接口 [root@web01 ~]# firewall-cmd --get-active-zone public interfaces: eth0 eth1 #添加一个新的zone [root@web01 ~]# firewall-cmd --new-zone=test --permanent success #查看所有的zone [root@web01 ~]# firewall-cmd --get-zones block dmz drop external home internal public trusted work #重启firewalld的设置规则 [root@web01 ~]# firewall-cmd --reload success #查看所有的zone [root@web01 ~]# firewall-cmd --get-zones block dmz drop external home internal public test trusted work #删除zone [root@web01 ~]# firewall-cmd --delete-zone=test --permanent success [root@web01 ~]# firewall-cmd --get-zones block dmz drop external home internal public test trusted work #重启才会生效 [root@web01 ~]# firewall-cmd --reload success [root@web01 ~]# firewall-cmd --get-zones block dmz drop external home internal public trusted work

3).使用Firewalld中各个区域规则结合,当前默认区域拒绝所有的流量,但如果来源IP是10.0.0.0/24网段则允许。

#1.临时移除策略 [root@firewalld ~]# firewall-cmd --remove-service=ssh --remove-service=dhcpv6-client success #或者: [root@web01 ~]# firewall-cmd --remove-service={ssh,dhcpv6-client} success #2.添加来源是10.0.0.0/24网段,将其加入白名单 [root@firewalld ~]# firewall-cmd --add-source=10.0.0.0/24 --zone=trusted success #3.检查当前活动的区域及接口 [root@web01 ~]# firewall-cmd --get-active-zone public interfaces: eth0 eth1 trusted sources: 10.0.0.0/24 [root@web01 ~]# firewall-cmd --reload #重启服务之后,临时生效的失效 success [root@web01 ~]# firewall-cmd --get-active-zone public interfaces: eth0 eth1

拒绝10.0.0.0/24网段的所有服务

[root@web01 ~]# firewall-cmd --add-source=10.0.0.0/24 --zone=drop success [root@web01 ~]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: [root@web01 ~]# firewall-cmd --get-active-zone drop sources: 10.0.0.0/24 public interfaces: eth0 eth1

添加多个服务

#添加多个服务 [root@web01 ~]# firewall-cmd --add-service={https,mysql,redis} success [root@web01 ~]# firewall-cmd --list-services ssh http https mysql redis

移除多个服务

[root@web01 ~]# firewall-cmd --remove-service={http,https,mysql,redis} success [root@web01 ~]# firewall-cmd --list-services ssh

4). 查询public区域yi是否允许请求SSH、HTTPS协议的流量

[root@firewalld ~]# firewall-cmd --zone=public --query-service=ssh no [root@firewalld ~]# firewall-cmd --zone=public --query-service=https no

5). 开启public区域服务的流量

如何设置防火墙

[root@firewalld ~]# firewall-cmd --zone=public --add-service=ssh success [root@firewalld ~]# firewall-cmd --zone=public --query-service=ssh yes [root@firewalld ~]# firewall-cmd --zone=public --remove-service=ssh success [root@firewalld ~]# firewall-cmd --zone=public --query-service=ssh no

6). 修改其他区域的服务流量限制

[root@firewalld ~]# firewall-cmd --zone=trusted --query-service=ssh no [root@firewalld ~]# firewall-cmd --zone=trusted --add-service=ssh success [root@firewalld ~]# firewall-cmd --zone=trusted --query-service=ssh yes

7). 最后将配置恢复至默认规则,--reload参数仅能恢复临时添加的规则策略

[root@firewalld ~]# firewall-cmd --reload success [root@firewalld ~]# 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:

您可以还会对下面的文章感兴趣

最新评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友