赞
踩
一、安全防御概述
1.常见的攻击手段
拒绝式攻击(DOS):通过大量的访问请求使服务器资源耗尽,无法向正常用户处理请求连接。常见的解决手段是使用云服务商的流量清洗功能;
口令破解:常用的攻击手手段俗称“跑字典”,常见的解决方法设置登录错误次数限制;
已知漏洞:通过已知漏洞进行数据获取或提权,常见的解决手段是定时更新防御补丁;
欺骗权限用户:又称社会工程学,通过欺骗权限用户得到授权资格的方法
2.常见的安全防御设备
基础类防火墙:主要实现包过滤防火墙
IDS防火墙:入侵检测系统提供报告和事后监督为主
IPS防火墙:入侵防御系统,分析数据包内容,根据模式匹配去阻断非法访问
主动安全类防火墙:对特定服务类型进行转向防御,换成那个键的设备:WAF、DAF
二、基础类防护墙
1.何为防火墙
工作在主机边缘或网络边缘处对数据报文进行检测,并且能够根据事先定义好的规则,对数据报文进行相应处理的模块
2.防火墙的分类
结构: 软件 iptables 硬件 深信服、网御、华为
工作机制:
包过滤防火墙:源地址、目的地址、源端口、目标端口、连接状态
应用层防火墙:URL
模块:内核态 netfilter 用户态:iptables
3.iptables工作结构
user iptables
kernel netfilter
4.iptables历经的构造变化
kernel 2.0.X firewall ipfw
kernel 2.2.X firewall ipchains
kernel 2.4.X netfilter iptables
kernel 3.13.X netfilter firewall
5.iptables四表五链
五链:入站:INPUT 出站:OUTPUT 转发:FORWARD
路由前应用规则:修改目标地址PREROUTING
路由后应用规则:修改源地址POSTROUTING
四表(规则表):raw:状态跟踪 mangle:标记TTL nat:实现地址转换 filter:过滤
防火墙链表结构
防火墙相关顺序
规则匹配顺序:由上至下,匹配即停止(LOG策略除外),若找不到相匹配规则,则按该链的默认策略处理
表应用:raw>mangle>nat>filter
链的应用顺序:入站PREROUTING>INPUT
出站OUTPUT>POSTROUTING
转发PREROUTING>FORWARD>POSTROUTING
数据处理流程图
①当入站请求时,先经过raw表的PREROUTING链、mangle表的PREROUTING链、nat表的PREROUTING链,再经过mangle表的INPUT链、filter表的INPUT链;
②当出站时,先经过raw表的OUTPUT链、mangle表的OUTPUT链、nat表的OUTPUT链、filter表的OUTPUT链,再经过mangle表的POSTROUTING链、nat表的POSTROUTING链;
③转发请求时,先经过raw表的PREROUTING链、mangle表的PREROUTING链、nat表的PREROUTING链,再经过mangle表的FORWARD链、filter表的FORWORD链,再经过mangle表的POSTROUTING链、nat表的POSTROUTING链。
6.iptables语法规则
书写规则
语法构成:iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
几个注意事项:不指定表名时,默认指的是filter表
不指定链名时,默认指的是表内的所有链
除非设置链的默认策略,否则必须制定匹配条件
选项、链名、控制类型使用的是大写字母,其余均为小写
常见动作类型:
ACCEPT:允许通过;
DROP:直接丢弃,不做出任何回应;
REJECT:拒绝通过,必要时会给出提示;
LOG:记录日志信息,然后传给下一条规则继续匹配;
SNAT:修改数据包源地址;
DNAT:修改数据包源地址;
REDIRECT:重定向
常见选项:
添加规则:-A 在链的末尾追加一条规则
-I 在链的开头(或指定序号)插入一条规则
查看规则列表:-L 列出所有规则条目
-n 以数字形式显示地址、端口号等信息
-v 以更详细的方式显示规则信息
--line-number 查看规则时,显示规则的序号
删除、清空规则:-D 删除链内指定的序号(或内容)的一条规则
-F 清空所有的规则
设置默认策略:-P 为指定的链设置默认规则
7.基于centos6演示iptables
首先清空规则并查看:iptables -F iptables -L
我们在filter表的INPUT链里的末尾加入一行允许TCP协议的通过规则:
- iptables -t filter -A INPUT -p tcp -j ACCEPT
- iptables -L #查看
我们在filter表的INPUT链里的开头加入一行允许ICMP协议的拒绝规则:
- iptables -I INPUT -p icmp -j DROP
- iptables -L #查看
我们用本机再去ping这个虚拟机,进行查看,可以看到请求超时,我们再讲DROP动作换成REJECT
换成REJECT后再进行ping,他会显示无法连接到端口,这就是DROP和REJECT的区别,所以在做优化时,这也是一个重要选择,DROP是不做出回应,不会消耗资源,REJECT要做出回应,所以会消耗资源。
我们再进行友好显示:我们能够看到处理的数据包数量和所处理的比特数,所在这也是一个优化的地方,在一些大量的数据包处理的规则时,我们优先将处理的多的放前面,避免因查找浪费资源
iptables -L -v
按行号显示,并在第二行加入一条规则:
- iptables -L --line-numbers #(行号显示)
- iptables -t filter -I INPUT 2 udp -j ACCEPT
- iptables -L --line-numbers
我们看到,有两个ICMP规则,所以删除第三个:
iptables -t filter -D INPUT 3 #删除第三条规则
我们再添加基于端口的策略:
- iptables -t filter -A INPUT -p tcp --dport 80 -j REJECT
- ipyables -L --line-numbers
我们拒绝了80端口,在进行浏览器访问时不能正常访问了
我们再添加默认策略:
- iptables -P INPUT DROP
- iptables -L --line-numbers
(注:不正之处还请批评指正)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。