目录
安全技术
安全技术
补充防水墙
防火墙的分类
按保护范围划分
按实现方式划分
按网络协议划分
iptables
iptables的五表五链
三种报文流向
iptables基本语法
数据包常见的控制类型
iptables的基本选项
显示扩展模块
保存规则
持久保存规则
加载规则
开机自动重载规则
入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,类 似于监控系统一般采用旁路部署(默默的看着你)方式。
入侵防御系统(Intrusion Prevention System):以透明模式工作,分析数据包的内容如:溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断,在判定为攻击行为后立即予以 阻断,主动而有效的保护网络的安全,一般采用在线部署方式。(必经之路)
防火墙( FireWall ):隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,基本上的实现都是默 认情况下关闭所有的通过型访问,只开放允许访问的策略,会将希望外网访问的主机放在DMZ (demilitarized zone)网络中.
广泛意义上的防水墙:防水墙(Waterwall),与防火墙相对,是一种防止内部信息泄漏的安全产品。 网络、外设接口、存储介质和打印机构成信息泄漏的全部途径。防水墙针对这四种泄密途径,在事前、事 中、事后进行全面防护。其与防病毒产品、外部安全产品一起构成完整的网络安全体系。
主机防火墙:服务范围为当前一台主机
网络防火墙:服务范围为防火墙一侧的局域网
硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:华为, 山石hillstone,天融信,启明星辰,绿盟,深信服, PaloAlto , fortinet, Cisco, Checkpoint, NetScreen(Juniper2004年40亿美元收购)等
软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows 防火墙 ISA --> Forefront
包过滤防火墙:只对osi模型下四层生效,速度快拆包少。
网络层防火墙:OSI模型下四层,又称为包过滤防火墙
应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层
五个表:filter、nat、mangle、raw、security
filter:过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表
nat:network address translation 地址转换规则表
mangle:修改数据标记位规则表
raw:关闭启用的连接跟踪机制,加快封包穿越防火墙速度
security:用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现 (了解)
五链:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
INPUT: 处理入站数据包,匹配目标IP为本机的数据包。
OUTPUT: 处理出站数据包,一般不在此链上做配置。
FORWARD: 处理转发数据包,匹配流经本机的数据包。
PREROUTING链: 在进行路由选择前处理数据包,用来修改目的地址,用来做DNAT。相当于把内网服务器的IP和端口映射到路由器的外网IP和端口上。
POSTROUTING链: 在进行路由选择后处理数据包,用来修改源地址,用来做SNAT。相当于内网通过路由器NAT转换功能实现内网主机通过一个公网IP地址上网。
流入本机:PREROUTING --> INPUT-->用户空间进程
流出本机:用户空间进程 -->OUTPUT--> POSTROUTING
转发:PREROUTING --> FORWARD --> POSTROUTING
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
- ACCEPT:允许数据包通过。
- DROP:直接丢弃数据包,不给出任何回 应信息。
- REJECT:拒绝数据包通过,必要时会给数据发送端一个响应信息。
- LOG:在/var/log/messages 文件中记录日志信息,然后将数据包传递给下一条规则。
管理选项 | 用法示例 |
---|---|
-A | 在指定链末尾追加一条 iptables -A INPUT (操作) |
-I | 在指定链中插入一条新的,未指定序号默认作为第一条 iptables -I INPUT (操作) |
-P | 指定默认规则 iptables -P OUTPUT ACCEPT (操作) |
-D | 删除 iptables -t nat -D INPUT 2 (操作) |
-p | 服务名称 icmp tcp |
-R | 修改、替换某一条规则 iptables -t nat -R INPUT (操作) |
-L | 查看 iptables -t nat -L (查看) |
-n | 所有字段以数字形式显示(比如任意ip地址是0.0.0.0而不是anywhere,比如显示协议端口号而不是服务名) iptables -L -n,iptables -nL,iptables -vnL (查看) |
-v | 查看时显示更详细信息,常跟-L一起使用 (查看) |
--line-number | 规则带编号 iptables -t nat -L -n --line-number /iptables -t nat -L --line-number |
-F | 清除链中所有规则 iptables -F (操作) |
-N | 新加自定义链 |
-X | 清空自定义链的规则,不影响其他链 iptables -X |
-Z | 清空链的计数器(匹配到的数据包的大小和总和)iptables -Z |
-S | 看链的所有规则或者某个链的规则/某个具体规则后面跟编号 |
显示扩展即必须使用-m选项指明要调用的扩展模块名称,需要手动加载扩展模块
[-m matchname [per-match-options]]
multiport扩展
以离散方式定义多端口匹配,最多指定15个端口
iprange扩展
指明连续的(但一般不是整个网络)ip地址范围
mac地址
mac 模块可以指明源MAC地址,,适用于:PREROUTING, FORWARD,INPUT chains
string 字符串
对报文中的应用层数据做字符串模式匹配检测
time模块
根据将报文到达的时间与指定的时间范围进行匹配(有 bug ubuntu没问题)
connlimit扩展
根据每客户端IP做并发连接数数量匹配,可防止Dos(Denial of Service,拒绝服务)攻击
state
状态类型:
NEW:新发出请求;连接追踪信息库中不存在此连接的相关信息条目,因此,将其识别为第一次发出的请求
ESTABLISHED:NEW状态之后,连接追踪信息库中为其建立的条目失效之前期间内所进行的通信状态
RELATED:新发起的但与已有连接相关联的连接,如:ftp协议中的数据连接与命令连接之间的关系
INVALID:无效的连接,如flag标记不正确
UNTRACKED:未进行追踪的连接,如:raw表中关闭追踪
centos 7,8:iptables-save > /PATH/TO/SOME_RULES_FILE
centos 6 :#将规则覆盖保存至/etc/sysconfig/iptables文件中
service iptables save
CentOS 7,8 重新载入预存规则文件中规则
iptables-restore < /PATH/FROM/SOME_RULES_FILE
iptables-restore选项
-n, --noflush:不清除原有规则
-t, --test:仅分析生成规则集,但不提交
centos6:#会自动从/etc/sysconfig/iptables 重新载入规则
service iptables restart
用脚本保存各个iptables命令;让此脚本开机后自动运行
.bashrc
在/etc/rc.d/rc.local文件添加:
iptables-save > /opt/iptables
vim ~/.basrc
iptables-restore < /opt/iptables