安全技术和防火墙

127 阅读9分钟

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

  1. Linux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中

  2. Netfilter 是Linux 2.4.x之后新一代的Linux防火墙机制,是linux内核的一个子系统。Netfilter采用模块化设计,具有良好的可扩充性,提供扩展各种网络服务的结构化底层框架。Netfilter与IP协议栈是无缝契合,并允许对数据报进行过滤、地址转换、处理等操作

  3. 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

  1. 此软件是CentOS 8 新特性,Nftables最初在法国巴黎的Netfilter Workshop 2008上发表,然后由长期的

  2. netfilter核心团队成员和项目负责人Patrick McHardy于2009年3月发布。它在2013年末合并到Linux内

  3. 核中,自2014年以来已在内核3.13中可用。

  4. 它重用了netfilter框架的许多部分,例如连接跟踪和NAT功能。它还保留了命名法和基本iptables设计的

  5. 几个部分,例如表,链和规则。就像iptables一样,表充当链的容器,并且链包含单独的规则,这些规

  6. 则可以执行操作,例如丢弃数据包,移至下一个规则或跳至新链。

  7. 从用户的角度来看,nftables添加了一个名为nft的新工具,该工具替代了iptables,arptables和

  8. ebtables中的所有其他工具。从体系结构的角度来看,它还替换了内核中处理数据包过滤规则集运行时

  9. 评估的那些部分。

netfilter 中的四表五链

由信息过滤表(table)组成,包含控制IP包处理的规则集(rules),规则被分组放在链(chain)上

提示:从 Linux kernel 4.2 版以后,Netfilter 在prerouting 前加了一个 ingress 勾子函数。可以使用这

个新的入口挂钩来过滤来自第2层的流量,这个新挂钩比预路由要早,基本上是 tc 命令(流量控制工

具)的替代品。

image.png

三种报文流向

流入本机: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系统本身是没有转发功能 只有路由发送数据

image.png

2. DNAT

DNAT原理与应用:

DNAT应用环境:在Internet中发布位于局域网内的服务器

DNAT原理:目的地址转换,根据指定条件修改数据包的目的IP地址,保证了内网服务器的安全,通常被叫做目的映谢。

DNAT转换前提条件:

1.局域网的服务器能够访问Internet

2.网关的外网地址有正确的DNS解析记录

  1. Linux网关开启IP路由转发

image.png

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