目录
一、安全技术概述
二、防火墙的分类
三、Linux 防火墙工具
四、四表五链
1、四表
2、五链
五、iptables 防火墙
1、 iptables基本语法
2、管理选项(需要大写 )
3、匹配条件之通用匹配
4、匹配条件之模块匹配
4.1隐式拓展 不用加-m选项
4.2 显示拓展 需要加-m选项
安全技术分为入侵检测系统、入侵防御系统和防火墙三类。 入侵检测系统特点是不阻断来自内外网络的威胁情况,主要提供报警和事后监督。入侵防御系统特点是对攻击进行准确的分析判断,在判定为攻击行为后立即予以阻断,主动而有效的保护网络的安全。防火墙特点是提供隔离功能,工作在网络或主机边缘,防止有问题的流量进入内网。
1、按保护范围划分:
主机防火墙:服务范围为当前一台主机
网络防火墙:服务范围为防火墙一侧的局域网,服务于较多的服务器
2、按实现方式划分:
硬件防火墙:在专用硬件级别实现部分功能的防火墙,另一个部分功能基于软件实现
软件防火墙:运行于通用硬件平台之上的防火墙的应用软件
3、按网络协议划分:
网络层防火墙:OSI模型下四层,又称为包过滤防火墙。检查数据流中每个数据的源地址,目的地址,所用端口号和协议状态等因素,或他们的组合来确定是否允许该数据包通过
应用层防火墙/代理服务器:OSI模型七层,可以在应用层对真实数据进行检查,比较安全 。
Linux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中。防火墙工具有iptables、firewalld和netfilter三种。
Netfilter在内核中选取五个位置放了五个勾子函数,分别为INPUT、OUTPUT、FORWARD、
PREROUTING、POSTROUTING,而这五个钩子函数向用户开放,用户可以通过一个命令工具
iptables向其写入规则。
Linux 的防火墙体系主要工作在网络层,针对 TCP/IP 数据包实施过滤和限制,属于典型的包过滤防火墙。Linux 系统的防火墙体系基于内核编码实现, 具有非常稳定的性能和高效率,也因此获得广泛的应用。iptables由五个表和四个链以及一些规则组成。
raw表:确定是否对数据进行状态跟踪
mangle表:为数据包设置标记
nat表:修改数据包中的源、目标IP地址或端口
filter表:确定是否放行该数据包,起到过滤的作用,是最常用的一个表项
PREROUTING链: 在进行路由选择前处理数据包,用来修改目的地址。
INPUT: 匹配进入了本机的数据包
OUTPUT: 处理出本机的数据包,一般不在此链上做配置
FORWARD: 处理转发数据包,匹配流经本机的数据包
POSTROUTING链: 在进行路由选择后处理数据包
表的作用是存放链,链的作用是确定在什么地方控制流量。
CentOS7默认使用firewalld防火墙,没有安装iptables,若想使用iptables防火墙必须先关闭firewalld防火墙,再使用yum安装iptables
iptables [ -t 表名 ] 管理选项 [ 链名 ] [ 匹配条件 ] [ 控制类型 ]
表名、链名用来指定 iptables 命令所操作的表和链,未指定表名时将默认使用 filter 表
管理选项:表示iptables规则的操作方式,如插入、增加、删除、查看等
匹配条件:用来指定要处理的数据包的特征,不符合指定条件的数据包将不会处理
控制类型指的是数据包的处理方式,如ACCEPT允许、REJECT拒绝、DROP丢弃等
-A :在指定链末尾追加一条
-I :在指定行前插入一条,未指定序号默认作为第一条。-I INPUT 1表示在第一行前添加。
-P :表示修改默认规则,默认允许流量通过,使用黑名单。
iptables -P INPUT DROP或REJECT (白名单)
iptables -P INPUT ACCEPT (黑名单)
-R :修改、替换某一条规则,-R INPUT 1表示修改第一条规则
-D :表示删除单个,-D INPUT 1表示删除第一条规则
-F :清除链中所有规则,清空iptables
-vnL -t 表名:查看指定 iptables规则列表,filter表可以省略-t
-vnL -line-num :加上行号查看iptables规则列表
-s :源地址或不连续的IP地址
-d :目的地址或不连续的IP地址
-p :指定协议,对具体协议进行控制,可以控制tcp、udp、icmp等协议
-i :入站网卡
-o :出站网卡
--sport :匹配报文源端口
--dport :匹配报文目的端口
①multiport扩展
以离散方式定义多端口匹配,最多指定15个端口
--sports :指定多个源端口 逗号隔开
--dports :指定多个目标端口 逗号隔开
②iprange扩展
指明连续的(但一般不是整个网络)ip地址范围
--src-range :源IP地址范围,用 - 隔开
--dst-range :目的IP地址范围,用 - 隔开
③mac 模块
mac 模块可以指明源MAC地址 ,格式为-m mac --mac-source
④time模块
根据将报文到达的时间与指定的时间范围进行匹配,要使用格林威治时间,使用命令data -u查看
--datestart :开始日期
--datestop :结束日期
--timestart :开始时间
--timestop :结束时间
⑤connlimit扩展
根据每客户端IP做并发连接数数量匹配,可防止Dos攻击
--connlimit-upto N :连接的数量小于等于N时匹配
--connlimit-above N :连接的数量大于N时匹配
⑥limit 限制流量
--limit -burst number :前多少个包不限制
--limit [/second|/minute|/hour|/day] :每秒或每分钟或每小时或每天允许通过多少个包
⑦state
状态类型:
NEW:新发出请求;连接追踪信息库中不存在此连接的相关信息条目,因此将其识别为第一次发出的请求
ESTABLISHED:NEW状态之后,连接追踪信息库中为其建立的条目失效之前期间内所进行的通信状态
RELATED:新发起的但与已有连接相关联的连接,如:ftp协议中的数据连接与命令连接之间的关系
INVALID:无效的连接,如flag标记不正确
UNTRACKED:未进行追踪的连接,如:raw表中关闭追踪
--state NEW
--state ESTABLISHED