目录
一、安全技术
1、入侵检测系统:
特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况
2、入侵防御系统:
以透明模式工作,分析数据包的内容如:溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断,在判定为攻击行为后立即予以 阻断,主动而有效的保护网络的安全,一般采用在线部署方式。(必经之路)
3、防火墙:
隔离功能
4、防水墙
广泛意义上的防水墙:防水墙(Waterwall),与防火墙相对,是一种防止内部信息泄漏的安全产品。
二、防火墙的分类
1、按保护范围划分:
。主机防火墙:服务范围为当前一台主机
。网络防火墙:服务范围为防火墙一侧的局域网
2、按实现方式划分:
。硬件防火墙:在专用硬件级别实现部分功能的防火墙
。软件防火墙:运行于通用硬件平台之上的防火墙的应用软件
3、按网络协议划分:
。网络层防火墙:OSI模型下四层,又称为包过滤防火墙
。应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层
三、防火墙的工作原理
1、收包 拆包检查没问题 装包
2、收包拆包,检查有问题 隔离或者丢弃
四、正向代理与反向代理
1、正向代理 :
翻墙,代理的是 客户端
绕开防火墙限制,加快访问速度
2、反向代理:
负载均衡,代理的是服务端
五、防火墙工具介绍
1、iptables
由软件包iptables提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包
2、firewalld
从CentOS 7 版开始引入了新的前端管理工具
软件包:
firewalld
firewalld-config
管理工具:
firewall-cmd 命令行工具
firewall-config 图形工作
3、nftables
它重用了netfilter框架的许多部分,例如连接跟踪和NAT功能。它还保留了命名法和基本iptables设计的几个部分,例如表,链和规则。就像iptables一样,表充当链的容器,并且链包含单独的规则,这些规则可以执行操作,例如丢弃数据包,移至下一个规则或跳至新链。
六、netfilter/iptables关系
1、netfilter:
属于“内核态”(Kernel Space, 又称为内核空间)的防火墙功能体系。 是内核的一部分,由一些数据包过滤表组成,这些表包含内核用来控制数据包过滤处理的规则集。
2、iptables:
属于“用户态”(User Space,又称为用户空间)的防火墙管理体系。 是一种用来管理Linux防火墙的命令程序,它使插入,修改和删除数据包过滤表中的规则变得容易,通常位于/sbin/iptables目录下。
3、netfilter/iptables
后期简称为iptables。iptables是基于内核的防火墙,其中内置了raw、mangle、 nat和filter四个规则表。
4、规则配置:
表中所有规则配置后,立即生效,不需要重启服务。
七、iptables的四表五链
Netfilter在内核中选取五个位置放了五个hook(勾子) function(INPUT、OUTPUT、FORWARD、PRE-ROUTING、POSTROUTING),而这五个hook function向用户开放,用户可以通过一个命令工具(iptables)向其写入规则。
1、四个表 (如何控制流量)
raw : 确定是否对该数据包进行状态跟踪(跟踪)
mangle : 为数据包设置标记(笔记)
nat : 修改数据包中的源、目标IP地址或端口(地址转换)
filter : 确定是否放行该数据包(流量过滤)
2、五个链(控制流量的时机)
pre-routing : 路由选择前
post-routing : 路由选择后
input : 进入入本机的流量
output : 出本机的流量
forward : 转发
3、表与链的关系:
表的作用是 存放链
链决定了 在什么地方控制流量
表中有链 链中有规则
八、iptables防火墙配置
1、配置方法
。使用iptables命令行。
。使用system-config-firewall centso7不能使用 centos 6可以使用2、基本语法:
iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]3、命令选项:(增删改查)
-A 追加策略 #iptables -A INPUT
-I 在序号前插入 #iptables -I INPUT 2
-D 删除 #iptables -D INPUT 2
-P 修改默认策略 #iptables -P INPUT DROP ACCEPT
-F 清空策略 #iptables -F
-R 替换策略 #iptables -R INPUT 2 新的规则
4、规则选项:
-s: 源地址
-d: 目的地址
-j: 指定规则
-p: 指定协议 #tcp udp icmp
-i: 进网卡 #从哪个网卡进
-o: 出网卡 #从哪个网卡出
--sport: 目的地址
--dport: 原端口
-m: 指定模块5、规则跳转:
DROP: 丢弃(已读不回)
REJECT: 拒绝(直接拒绝)
ACCEPT:接收
LOG: 日志 添加备注
SNAT: 源地址 转换
DNAT: 目的地址转换6、功能用法:
6.1 查看规则 -vnL
查看 iptables 的规则:iptables -vnL [-t表名]如果查看不是 filter 表需要指明表:iptables -vnL -t nat
给规则加上序号: iptables [-t表名] -vnL --line-num
6.2 添加规则 A
iptables -A INPUT -s 192.168.91.0 /24 -j ACCEPT或 DROP 或 REJECT
A 在末尾追加-I 需要指明序号 -I INPUT 1 在 INPUT 链的规则第一条前添加,我就变成第一条了
iptables -A INPUT -s 192.168.91.0 /24 -j ACCEPT
6.3 删除规则 D F
iptables[-t 表名] -F
iptables -D 链 规则序号
iptables -t filter -D INPUT 2
删除 filter 表中 INPUT链中的 第2条规则6.4 修改默认规则(默认允许通过 黑名单) P
iptables -P INPUT DROP
iptables -P INPUT ACCETP6.5 替换规则 R
iptables -R INPUT 1 -S 192.168.91.1 -j ACCEPT
九、实际操作
实验范例
#服务端IP地址:192.168.134.10
#客户端IP地址:192.168.134.20例子1:拒绝来自指定地址的流量
方法一:iptables -A INPUT -s 192.168.134.20 -j DROP
#在默认的filter表中 指定INPUT链,拒绝来自指定地址192.168.134.20 的所有流量iptables -F
#清空策略方法二:iptables -A INPUT -s 192.168.134.20 -j REJECT
#在默认的filter表中 指定INPUT链,拒绝来自指定地址192.168.134.20 的所有流量例子2 :接收来自指定地址的流量
iptables -I INPUT 1 -s 192.168.134.20 -j ACCEPT
#在默认的filter表中 指定INPUT链第一行添加 接收来自指定地址192.168.134.20 的所有流量 的规则例子3:禁止特定协议连接访问
iptables -A INPUT -p icmp -s 192.168.134.20 -j REJECT
#禁止主机 192.168.134.20 端上的 icmp 协议连通