1.Firewalld防火墙的概述

  1. RHEL/CentOS 7系统中集成了多款防火墙管理工具,其中firewalld是默认的防火墙配置管理工具它拥有基于CLI(命令行界面)和基于GUI(图形用户界面)的两种管理方式。

  2. firewalld支持动态更新,并加入了区域zone的概念

  3. zone就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换

2. 安全框架方向:

1. 硬件层   电源 (UPS) 机架上锁  服务器温度监控  定期的硬件检查  磁盘报警
2. 网络层 设置防火墙仅能公司的IP 地址能够连接服务器的22端口 公有云的话 安全组设置
3. 系统层 服务器没有公网IP 修改ssh端口号,禁止ROOT直接登录,统一使用密钥认证方式,使用防火墙限制-->某个来源IP才能连接SSH,软件更新 内核升级 --->已运行很久系统不要升级内核
4. 服务层 定期更新服务 mysql redis 防止漏洞注入
- 不要有公网IP地址
- 如果有公网IP,不要监听在0.0.0.0
- 一定要设定比较复杂的密码认证
- web: nginx tomcat 应用层
- HTTPS
- WAF -->web应用防火墙 (防火墙+WAF防火墙) --> http/https协议
5. web层 漏洞注入,sql注入,XSS跨站,ddos攻击 可以采用第三方软件 waf防火墙 全栈的https协议(ssl证书,保证网站的传输安全)
6. SLA :服务等级协议
99.9 8.76小时
99.99 52.6分钟
99.999 5.26分钟
宕机的时间
7.网络安全产品推荐:
安全狗
知道创宇
牛盾云
安全宝
阿里云 8.云环境:
- 系统层面:
- SSH
- 安骑士(免费版) 云安全中心(收费版)
- 快照 ---> 使用快照需要购买存储空间
- 服务层面: redis mysql
- 不要有公网IP地址
- 如果有公网IP,不要监听在0.0.0.0
- 一定要设定比较复杂的密码认证
- 安全组(防火墙)
- web层面:
- HTTPS
- 云WAF
- 数据层面:
- 备份
- 异地备份
- 上网 --->VPC --->NAT网关 (端口映射) 找几家做安全公司, nginx+lua 9.云架构
- 高防IP --->DDOS
- WAF防火墙 --->漏洞注入
- HTTPS ---->防劫持 防篡改

3.HTTPS+WAF+负载均衡

4.HTTPS+高仿IP+WAF+负载均衡

高防需要配置HTTPS --> WAF也需要配置HTTPS --> 源站 http

考虑安全 性能差

考虑性能 安全弱

5. Firewalld防火墙

- firewalld  --->   无需网络知识		--->     自动挡汽车      不支持花活

- iptables   --->   依赖网络知识     ---->    手动挡汽车     花活

firewalld比iptables简单--->

  - 图形界面操作   GUI     太复杂
- 命令行操作 CLI 简单 - 端口80 22 3306 - 一个网卡仅能绑定一个区域。比如: eth0-->A区域 - 但一个区域可以绑定多个网卡。比如: B区域-->eth0、eth1、eth2 - 还可以根据来源的地址设定不同的规则。比如:所有人能访问80端口,但只有公司的IP才允许访问22端口。

6.Firewalld防火墙使用区域管理

1.查看我们使用的是哪个区域?
[root@manager ~]# systemctl start firewalld
[root@manager ~]# firewall-cmd --get-active-zones
public
interfaces: eth0 eth1 2.使用--list-all 获取当前默认区域的规则
[root@manager ~]# 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:

6.1使用firewalld各个区域规则结合配置,调整默认public区域拒绝所有流量,但如果来源IP是10.0.0.0/24网段则允许。 复规则实现(只需要一个区域)

[root@manager ~]# firewall-cmd --remove-service={ssh,dhcpv6-client}
[root@manager ~]# firewall-cmd --add-source="10.0.0.0/24" --zone=trusted
[root@manager ~]# firewall-cmd --get-active-zones
public
interfaces: eth0 eth1
trusted
sources: 10.0.0.0/24 --->>>清空配置
[root@manager ~]# firewall-cmd --reload

7.firewalld放行端口

1.添加放行端口【80,8081,8082】
[root@manager ~]# firewall-cmd --add-port=80/tcp
[root@manager ~]# firewall-cmd --add-port={8081/tcp,8082/tcp} 2.移除放行端口
[root@manager ~]# firewall-cmd --remove-port=80/tcp
[root@manager ~]# firewall-cmd --remove-port={8081/tcp,8082/tcp} 3.获取当前区域的规则
[root@manager ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: ssh dhcpv6-client
ports: 80/tcp 8081/tcp 8082/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

8.放行服务--->对应的还是端口-->比端口看起来更清晰

1.firewalld放行某个服务的流量
[root@manager ~]# firewall-cmd --add-service=http
[root@manager ~]# firewall-cmd --add-service=https
[root@manager ~]# firewall-cmd --add-service={zabbix-agent,zabbix-server}
[root@manager ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0 eth1
sources:
services: ssh dhcpv6-client http https zabbix-agent zabbix-server
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules: PS:注意--permanent 如果添加则代表永久,否则都算临时 2.移除被放行的服务
[root@manager ~]# firewall-cmd --remove-service={zabbix-agent,zabbix-server}

9.自定义服务名称--->服务对应的端口 8080 8081 8082 -->api业务

1. 名称代表后面添加的服务名称
[root@manager services]# cd /usr/lib/firewalld/services
[root@manager services]# cp http.xml api.xml
[root@manager services]# cat api.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>API (HTTP)</short>
<port protocol="tcp" port="8081"/>
<port protocol="tcp" port="8082"/>
<port protocol="tcp" port="8083"/>
</service> 2.重载firewalld
[root@manager services]# firewall-cmd --reload
success 3.添加自定义后的服务名
[root@manager services]# firewall-cmd --add-service=api
success

10.firewalld实现端口转发

  • 路由器 ---------->TPLINK

  • 虚拟机Vmware

  • Nginx四层TCP/IP (类似 和lvs不一样)

  • Firewalld

firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>

0.firewalld实现端口转发(端口映射)只能转发tcp相关的服务
[root@manager ~]# firewall-cmd --add-forward-port=port=5555:proto=tcp:toport=22:toaddr=172.16.1.31 1. 地址伪装
[root@manager ~]# firewall-cmd --add-masquerade
------------------------------------------------------->
2.管理上抓包
[root@manager ~]# tcpdump port 5555 -nn 3.后端主机的抓包
[root@nfs ~]# tcpdump -i eth1 port 22 -nn

11.Firewalld富规则

[root@Firewalld ~]# man firewalld.richlanguage      # 获取富规则手册
rule
[source]
[destination]
service|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

11.1允许10.0.0.1主机能够访问 http服务,允许172.16.1.0/24能访问8080端口

10.0.0.1   --->    80         http     除此以外都不可以访问
172.16.1.x ---> 8080 api 除此以外都不可以访问 1.重载firewalld
[root@manager ~]# firewall-cmd --reload 2.允许10.0.0.1主机能够访问 http服务
[root@manager ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.0.0.1/32 service name="http" accept' 3.允许172.16.1.0/24能访问8080端口
[root@manager ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.1.0/24 service name="api" accept'

11.2默认public区域对外开放所有人能通过ssh服务连接,但拒绝172.16.1.0/24网段通过ssh连接服务器

[root@manager ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.16.1.0/24 service name="ssh" drop'

11.3使用firewalld,允许所有人能访问http,https服务,但只有10.0.0.1主机可以访问ssh服务

1.重载firewalld
[root@manager ~]# firewall-cmd --reload 2.允许所有人可以访问服务名称为http,https的
[root@manager ~]# firewall-cmd --add-service={http,https} 3.移除ssh服务
[root@manager ~]# firewall-cmd --remove-service=ssh 4.只有10.0.0.1主机可以访问ssh服务
[root@manager ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.0.0.1/32 service name="ssh" accept' PS:使用端口方式 2222
[root@manager ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=10.0.0.1/32 port port="2222" protocol=tcp accept'

11.4当用户来源IP地址是10.0.0.1主机,则将用户请求的5555端口转发至后端172.16.1.31的22端口

1.任何人访问10.0.0.61 5555端口都给转发
10.0.0.1 ---> 10.0.0.61 5555 ---> 172.16.1.31 22 [root@manager ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address="10.0.0.1/32" forward-port port="5555" protocol="tcp" to-port="22" to-addr="172.16.1.31"' 2.开启转发功能(伪装)
[root@manager ~]# firewall-cmd --add-masquerade

12.firewalld实现共享上网

在指定的带有公网IP的实例上启动Firewalld防火墙的NAT地址转换,以此达到内部主机上网。

详细流程:



1.firewalld防火墙开启masquerade, 实现地址转换

[root@Firewalld ~]# firewall-cmd --add-masquerade --permanent
[root@Firewalld ~]# firewall-cmd --reload

2.客户端将网关指向firewalld服务器,将所有网络请求交给firewalld

[root@web03 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
GATEWAY=172.16.1.61

3.客户端还需配置dns服务器

[root@web03 ~]# cat /etc/resolv.conf
nameserver 223.5.5.5

4.重启网络,使其配置生效

[root@web03 ~]# ifdown eth1 && ifup eth1

5.测试后端web的网络是否正常

[root@web03 ~]# ping baidu.com
PING baidu.com (123.125.115.110) 56(84) bytes of data.
64 bytes from 123.125.115.110 (123.125.115.110): icmp_seq=1 ttl=127 time=9.08 ms

13.firewalld共享上网方式不是特别推荐 (阿里云上如何实现---> 提交工单)

推荐:

物理环境: 使用路由器来实现上网

云环境: 推荐使用NAT网关设备

安全体系: OSI七层模型 --->

云架构 ( 高防IP + WAF防火墙 ) | 单机架构| 集群架构 |多机房 | SOA

WAF+负载均衡配置

  • 1.配置负载均衡+多web节点
  • 2.配置WAF ---> 指向负载均衡的公网IP地址 --->完成后会生成一个cname的域名.
  • 3.配置DNS 解析---> 指向WAF cname
  • 4.配置HTTPS,请将证书传一份至WAF上, 至于负载均衡需不需要看情况.

高防IP + WAF防火墙 + 负载均衡

Firewalld 默认是拒绝所有端口

​ 区域概念

​ 放行端口

​ 放行服务

​ 端口转发

​ 共享上网

​ 富规则

24.Firewalld防火墙的更多相关文章

  1. 第8章 Iptables与Firewalld防火墙

    章节简述: 红帽RHEL7系统已经用firewalld服务替代了iptables服务,新的防火墙管理命令firewall-cmd与图形化工具firewall-config. 本章节基于数十个防火墙需求 ...

  2. CentOS7、REHL7的firewalld防火墙使用简单说明

    title: CentOS7.REHL7的firewalld防火墙使用简单说明 categories: Linux tags: - Linux timezone: Asia/Shanghai date ...

  3. 第7章 Iptables与Firewalld防火墙。

    第7章 Iptables与Firewalld防火墙.     Chapter7_听较强节奏的音乐能够让您更长时间的投入在学习中. <Linux就该这么学> 00:00/00:00     ...

  4. 9.Iptables与Firewalld防火墙

    第9章 Iptables与Firewalld防火墙 章节简述: 保障数据的安全性是继保障数据的可用性之后最为重要的一项工作.防火墙作为公网与内网之间的保护屏障,在保障数据的安全性方面起着至关重要的作用 ...

  5. CentOS7 firewalld防火墙规则

    在CentOS7里有几种防火墙共存:firewalld.iptables.ebtables,默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等. f ...

  6. 19、Firewalld防火墙

    安全的考虑方向: 安全框架 OSI七层模型 硬件 机架上锁(机柜) 温度 硬件检查 网络 iptables/firewalld 仅允许公司的IP地址能连接服务器的22端口 公有云使用 安全组 系统 没 ...

  7. 工程师技术(一):启用SELinux保护、自定义用户环境、配置IPv6地址、配置聚合连接、配置firewalld防火墙

    一.启用SELinux保护 目标: 本例要求为虚拟机 server0.desktop0 配置SELinux: 确保 SELinux 处于强制启用模式 在每次重新开机后,此设置必须仍然有效 方案: SE ...

  8. firewalld 防火墙

    firewalld防火墙   firewalld简述 firewalld:防火墙,其实就是一个隔离工具:工作于主机或者网络的边缘对于进出本主机或者网络的报文根据事先定义好的网络规则做匹配检测,对于能够 ...

  9. firewalld防火墙详解

    众所周知,在RHEL7系统中,firewalld防火墙取代了iptables防火墙.我们都知道iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的,而firewalld则是 ...

随机推荐

  1. 超级详细Mysql安装步骤图解

    数据库忘记装了,然后今天才装上.刚开始有点蒙蔽,进入mysql官网一堆英文,小声逼逼没有学号英语的我.废话不都说,直接上图 1.输入网址 https://www.mysql.com/downloads ...

  2. Internet History,Technology,and Security -Transport Control Protocol(TCP)(Week6)

    Week6 Technology: Transport Control Protocol(TCP) Welcome to Week 6 of IHTS. We are in our second we ...

  3. Docker network整理

    一.简介 默认情况下容器与容器.容器与宿主机的网络是隔离开来的, 当你安装docker的时候,docker会创建一个桥接器docker0,通过它才让容器与容器.容器与宿主机之间通信. Docker安装 ...

  4. wx-all

    学习这部分时也学了不少代码,一段一段往这上面写实在有点~~~ 直接把代码部署到代码该在的地方吧,哈哈哈 这是网址 把代码放这上面就好多了,不怕代码丢,还可保证代码完整,嘻嘻嘻~~~~~~

  5. Caffeine批量加载浅析

    最近项目中的本地缓存,看是从Guava改成了Caffeine,据说是性能更好,既然性能更好的话,那么就用起来吧.不过在使用过程中,发现了单个load和批量loadall方面的一些小设置,记录一下. 一 ...

  6. 利用keras自带房价数据集进行房价预测

    import numpy as np from keras.datasets import boston_housing from keras import layers from keras imp ...

  7. 使用 ASP.NET Core MVC 创建 Web API——响应数据的内容协商(七)

    使用 ASP.NET Core MVC 创建 Web API 使用 ASP.NET Core MVC 创建 Web API(一) 使用 ASP.NET Core MVC 创建 Web API(二) 使 ...

  8. Ajax之处理不同格式的JSON数据

    JSON是一种网络中的数据格式,主要用于网络间的数据传输,它比XML格式的数据传输速度快,使用更广. 1.Ajax处理对象格式的JSON数据: <script src="../JS/j ...

  9. C#通用查询器

    很多通用查询器,对查询条件中的AND及OR的支持度不是很好,要么全部是AND要么全部是OR.笔者通过一段时间的摸索,终于完成了一个自己较为满意的通用查询器, 可以实现多条件的AND及OR,现将实现过程 ...

  10. python网络编程:UDP方式传输数据

    UDP --- 用户数据报协议(User Datagram Protocol),是一个无连接的简单的面向数据报的运输层协议. UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能 ...