目录
1.安全技术
入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,类 似于监控系统一般采用旁路部署(默默的看着你)方式。
入侵防御系统(Intrusion Prevention System):以透明模式工作,分析数据包的内容如:溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断,在判定为攻击行为后立即予以 阻断,主动而有效的保护网络的安全,一般采用在线部署方式。(必经之路)
防火墙( FireWall ):隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,基本上的实现都是默 认情况下关闭所有的通过型访问,只开放允许访问的策略,会将希望外网访问的主机放在DMZ (demilitarized zone)网络中.
2.防火墙
1.防火墙的分类
按保护范围划分
主机防火墙:服务范围为当前一台主机
网络防火墙:服务范围为防火墙一侧的局域网
按实现方式划分
硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现
软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows 防火墙 ISA --> Forefront
按网络协议划分
网络层防火墙:OSI模型下四层,又称为包过滤防火墙
应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层
2.防火墙原理
收包 拆包 检查没问题 装包
收包 拆包 检查有问题 隔离或者丢弃
正向代理
翻墙 代理的是客户端
绕开防火墙机制
加快访问速度
反向代理
代理的是服务端
负载均衡
3.Linux 防火墙的基本认识
1.Netfilter
Linux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中
Netfilter 是Linux 2.4.x之后新一代的Linux防火墙机制,是linux内核的一个子系统。Netfilter采用模块化设计,具有良好的可扩充性,提供扩展各种网络服务的结构化底层框架。Netfilter与IP协议栈是无缝契合,并允许对数据报进行过滤、地址转换、处理等操作
2.防火墙工具
1.iptables
由软件包iptables提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包
[root@localhost ~]# iptables --version
iptables v1.4.21
2.netfilter 中五个勾子函数和报文流向
三种报文流向
流入本机:PREROUTING --> INPUT-->用户空间进程(访问我的服务)
流出本机:用户空间进程 -->OUTPUT--> POSTROUTING(穿过我)
转发:PREROUTING --> FORWARD --> POSTROUTING(分摊流量)
四表五链
四表:
raw:跟踪数据包
mangle:标记 优先级
nat:地址转换
filter:流量过滤 筛选数据包哪些可以通过 哪些不可以通过
五链
input 进入本机的流量
output 出本机的 流量
forward 转发数据包
prerouting 路由判断前
postrouting 路由判断后
4.iptables
1.iptables的组成概述
IP 信息包过滤系统,它实际上由两个组件 netfilter 和 iptables组成。
主要工作在网络层,针对IP数据包,体现在对包内的IP地址、端口等信息的处理。
iptables属于“用户态”(User Space, 又称为用户空间)的防火墙管理体系。是一种用来管理Linux防火墙的命令程序,它使插入、修改和删除数据包过滤表中的规则变得容易,通常位于/sbin/iptables目录下。 netfilter/iptables后期简称为iptables。iptables是基于内核的防火墙,其中内置了raw、mangle、 nat和filter四个规则表。表中所有规则配置后,立即生效,不需要重启服务。
ptables由四个表table和五个链chain以及一些规则组成
raw:跟踪数据包
mangle:标记 优先级
nat:地址转换
filter:流量过滤 筛选数据包哪些可以通过 哪些不可以通过
优先级的顺序
raw-->mangle-->nat-->filter
表的作用:容纳各种规则链
表的划分依据:防火墙规则
表里有链,链里有规则
数据包的传输过程
当一个数据包进入网卡时,数据包首先进入PREROUTING链,内核根据数据包目的IP判断是否需要 转送出去
如果数据包是进入本机的,数据包就会沿着图向下移动,到达INPUT链。数据包到达INPUT链后, 任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包经过OUTPUT链,然后到达
如果数据包是要转发出去的,且内核允许转发,数据包就会向右移动,经过FORWARD链,然后到达POSTROUTING链输出
5.实际操作
CentOS7默认使用firewalld防火墙,没有安装iptables,若想使用iptables防火墙。必须先关闭firewalld防火墙,再安装iptables
基本语法:
iptables -t 指定表 子命令 指定链 规则
所有语法
-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 新的规则
1.加新的防火墙规则
iptables -t filter -A INPUT -s 192.168.17.130 -j DROP
不允许130主机访问本机
2.查看规则表
iptables -nvL
iptables -vnL --line-numbers
显示规则序号
3.删除、清空、替换规则
删除
-D
删除单个规则
iptables -D INPUT 1
删除规则1
清空
-F
iptables -F INPUT
清空所有的input规则
替换
-R
iptables -A INPUT -s 192.168.17.130 -j DROP
iptables -R INPUT 1 -s 192.168.17.130 -j ACCEPT
策略1不允许访问换成允许130的流量访问
4.修改默认规则(默认是允许通过的黑名单)
iptables -P INPUT DROP
iptables -P INPUT ACCEPT
iptables -I INPUT -s 192.168.17.130 -j REJECT
黑名单 拒绝130的所有流量
5. 通用匹配
基本匹配条件:无需加载模块,由iptables/netfilter自行提供
直接使用,不依赖于其他条件或扩展,包括网络协议、IP地址、网络接口等条件
白名单
配置只能192.168.17.60访问
iptables -P INPUT DROP
iptables -I INPUT 2 -i lo -j ACCEPT
iptables -t filter -A INPUT ! -p icmp -j ACCEPT
iptables -F
iptables -P INPUT ACCEPT
iptables -A INPUT -s 192.168.17.60 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT
6.隐含扩展
man iptables-extensions
查看扩展帮助
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
#禁止其它主机ping本机
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
#允许本机ping其它主机
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
#当本机ping不通其它主机时提示目标不可达
7.显示 扩展模块
显示扩展即必须使用-m选项指明要调用的扩展模块名称,需要手动加载扩展模块
multiport
以离散方式定义多端口匹配
iptables -A INPUT -s 192.168.17.60 -p tcp -m multiport --dports 22,80,3306 -j REJECT
#阻止 ip地址来自192.168.17.60 访问当前机器 的tcp 80 8080端口
iprange扩展
指明连续的(但一般不是整个网络)ip地址范围
iptables -A INPUT -m iprange --src-range 192.168.17.131-192.168.17.133 -j REJECT
# 指定 源地址为192.168.17.131-192.168.17.133 3个地址无法访问 当前主机
8.mac地址
可以指名源mac地址
9.time模块
根据将报文到达的时间与指定的时间范围进行匹配(有 bug ubuntu没问题)
iptables -A INPUT -m time --timestart 14:00 --time 16:00 -j REJECT
14:00 ———16:00中不允许主机登录
10.state
NEW:新发出请求;连接追踪信息库中不存在此连接的相关信息条目,因此,将其识别为第一次发出的请求
ESTABLISHED:NEW状态之后,连接追踪信息库中为其建立的条目失效之前期间内所进行的通信状态
RELATED:新发起的但与已有连接相关联的连接,如:ftp协议中的数据连接与命令连接之间的关系
INVALID:无效的连接,如flag标记不正确
UNTRACKED:未进行追踪的连接,如:raw表中关闭追踪
iptables -A INPUT -m state --state NEW -j REJECT
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
新用户不可以访问 旧用户可以访问