1. 安全技术
-
入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,类 似于监控系统一般采用旁路部署(默默的看着你)方式。
-
入侵防御系统(Intrusion Prevention System):以透明模式工作,分析数据包的内容如:溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断,在判定为攻击行为后立即予以 阻断,主动而有效的保护网络的安全,一般采用在线部署方式。(必经之路)
-
防火墙( FireWall ):隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,基本上的实现都是默 认情况下关闭所有的通过型访问,只开放允许访问的策略,会将希望外网访问的主机放在DMZ (demilitarized zone)网络中
-
防水墙 广泛意义上的防水墙:防水墙(Waterwall),与防火墙相对,是一种防止内部信息泄漏的安全产品。 网络、外设接口、存储介质和打印机构成信息泄漏的全部途径。防水墙针对这四种泄密途径,在事前、事 中、事后进行全面防护。其与防病毒产品、外部安全产品一起构成完整的网络安全体系。
2. 防火墙的保护范围划分
按保护范围划分:
- 主机防火墙:服务范围为当前一台主机
- 网络防火墙:服务范围为防火墙一侧的局域网
按实现方式划分:
- 硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:华为, 山石hillstone,天融信,启明星辰,绿盟,深信服, PaloAlto , fortinet, Cisco, Checkpoint, NetScreen(Juniper2004年40亿美元收购)等
- 软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows 防火墙 ISA --> Forefront
按网络协议划分:
-
网络层防火墙:OSI模型下四层,又称为包过滤防火墙
-
应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层
3. linux防火墙的基本认识
2.3.1 Netfilter
-
Linux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中
-
Netfilter 是Linux 2.4.x之后新一代的Linux防火墙机制,是linux内核的一个子系统。Netfilter采用模块化设计,具有良好的可扩充性,提供扩展各种网络服务的结构化底层框架。Netfilter与IP协议栈是无缝契合,并允许对数据报进行过滤、地址转换、处理等操作
-
linux真正的防火墙其实就是netfilter
4. 防火墙工具介绍
iptables
由软件包iptables提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包
[root@centos7 ~]# iptables --version
iptables v1.4.21
firewalld
从CentOS 7 版开始引入了新的前端管理工具
软件包:
firewalld
firewalld-config
管理工具:
firewall-cmd 命令行工具
firewall-config 图形工作
nftables
-
此软件是CentOS 8 新特性,Nftables最初在法国巴黎的Netfilter Workshop 2008上发表,然后由长期的
-
netfilter核心团队成员和项目负责人Patrick McHardy于2009年3月发布。它在2013年末合并到Linux内
-
核中,自2014年以来已在内核3.13中可用。
-
它重用了netfilter框架的许多部分,例如连接跟踪和NAT功能。它还保留了命名法和基本iptables设计的
-
几个部分,例如表,链和规则。就像iptables一样,表充当链的容器,并且链包含单独的规则,这些规
-
则可以执行操作,例如丢弃数据包,移至下一个规则或跳至新链。
-
从用户的角度来看,nftables添加了一个名为nft的新工具,该工具替代了iptables,arptables和
-
ebtables中的所有其他工具。从体系结构的角度来看,它还替换了内核中处理数据包过滤规则集运行时
-
评估的那些部分。
netfilter 中的四表五链
由信息过滤表(table)组成,包含控制IP包处理的规则集(rules),规则被分组放在链(chain)上
提示:从 Linux kernel 4.2 版以后,Netfilter 在prerouting 前加了一个 ingress 勾子函数。可以使用这
个新的入口挂钩来过滤来自第2层的流量,这个新挂钩比预路由要早,基本上是 tc 命令(流量控制工
具)的替代品。
三种报文流向
流入本机:PREROUTING --> INPUT-->用户空间进程(访问我的服务)
流出本机:用户空间进程 -->OUTPUT--> POSTROUTING(穿过我)
转发:PREROUTING --> FORWARD --> POSTROUTING(分摊流量)
链chain:
内置链:每个内置链对应于一个钩子函数
自定义链:用于对内置链进行扩展或补充,可实现更灵活的规则组织管理机制;只有Hook钩子调
用自定义链时,才生效。
5种规则链:
规则的作用:对数据包进行过滤或处理
链的作用:内容各种防火墙的规则
-
INPUT:处理入站数据包
-
OUTPUT:处理出站数据包
-
FORWARD:处理出站数据包
-
POSTROUTING:在进行路由选择后处理数据包
-
PREROUTING:在进行路由选择前处理数据包
4种表:
表的作用:容纳各种规则链
表的划分依据:防火墙规则的作用相似
- raw表:确定是否对该数据包进行状态跟踪
- mangle:为数据包设置标记
- nat表:修改数据包中的源目的ip地址或端口
- filter表:确定是否放行该数据包(过滤)
他们之间的优先级: raw-->mangle-->nat-->filter
5.iptables
1iptables组成概述
Linux 的防火墙体系主要工作在网络层,针对 TCP/IP 数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux 系统的防火墙体系基于内核编码实现, 具有非常稳定的性能和高效率,也因此获得广泛的应用。
-netfilter/iptables关系: netfilter:
属于“内核态”又称内核空间(kernel space)的防火墙功能体系。linux 好多东西都是内核态 用户态,那我们运维人员关注的是用户态, 内核我们关注不是很多,内核基本是我们开发人员关心的事情是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
iptables :
属于“用户态”(User Space, 又称为用户空间)的防火墙管理体系。是一种用来管理Linux防火墙的命令程序,它使插入、修改和删除数据包过滤表中的规则变得容易,通常位于/sbin/iptables目录下。 netfilter/iptables后期简称为iptables。iptables是基于内核的防火墙,其中内置了raw、mangle、 nat和filter四个规则表。表中所有规则配置后,立即生效,不需要重启服务。
2 实际操作
CentOS7默认使用firewalld防火墙,没有安装iptables,若想使用iptables防火墙。必须先关闭firewalld防火墙,再安装iptables
配置方式:
- 1、使用iptables命令行。
- 2、使用system-config-firewall centso7不能使用 centos 6可以使用
6 .SDNT DNAT
1.SNAT
SNAT原理与应用:
SNAT 应用环境:局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由)
SNAT原理:源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映谢
SNAT转换前提条件:
1.局域网各主机已正确设置IP地址、子网掩码、默认网关地址
2.Linux网关开启IP路由转发
linxu系统本身是没有转发功能 只有路由发送数据
2. DNAT
DNAT原理与应用:
DNAT应用环境:在Internet中发布位于局域网内的服务器
DNAT原理:目的地址转换,根据指定条件修改数据包的目的IP地址,保证了内网服务器的安全,通常被叫做目的映谢。
DNAT转换前提条件:
1.局域网的服务器能够访问Internet
2.网关的外网地址有正确的DNS解析记录
-
Linux网关开启IP路由转发
3.实验操作
实验内容
要将1主机通过服务器的ip地址转换连接上2主机的网络,其实就是内网能上外网
具体步骤
需要三台虚拟机才可以做实验,先设置服务器nat,服务器需要两张网卡先设置网卡
1.主机1:添加网络适配器;将添加的网络改成仅主机模式
2.ifconfig 查看
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36
vim ifcfg-ens36
编写ifcfg-ens36内容如下
删除唯一标识uuid
将%s/33/36/
4.systemctl restart network
vim /etc/sysctl.conf
编辑添加如下:
在最后一行下面添加:net.ipv4.ip_forword = 1
6.sysctl -p
主机2:
更改网络配置:vim /etc/sysconfig/network-scripts/ifcfg-ens33
将gateway 改成主机1的ip地址
systemctl restart network
主机3:
1点击虚拟机;打开设置点击网络适配器;点击仅主机模式。
2.再打开终端:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
编写如下:
1.将ip改成12.0.0.10
systemctl restart network
回到主机1:
1.iptables -F -t nat
2.ipatbles -F
3.iptables -t nat -A POSTROUTING -S 192.168.47.0/24 -o ens36 -j MASQUERADE
去主机2
1.ping 12.0.0.10
2.cd /var/www/html
3.vim index.html
文章内容:11111
4.systemctl restart httpd
回到主机1
iptables -t nat -A PREROUTING -i ens36 -s 12.0.0.0/24 -p tcp --dport 80 -j DNAT --to 192.168.47.74(第二台主机ip)
去虚拟机3
curl 12.0.0.1