1.入侵检测系统:不阻断任何网络访问,量化、定位来之内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,类似监控系统,一般采用旁路部署的方式
2.入侵防御系统:以透明模式工作,分析数据包的内容,如:溢出攻击,拒绝服务攻击、木马、系统漏洞等惊醒准确的分析判断,在判断为攻击行为后立即予以阻断,主动而有效的保护网络的安全,一般采用在线部署方式
3.防火墙:隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时间由规定定义的行为进行处理的一组功能的组件,基本上的实现都是默认情况下关闭所有的通过型访问,只开放允许访问的策略,会将希望外网访问的主机放在DMZ网络中
按保护范围划分:
1.主机防火墙:服务范围为当前一台主机
2.网络防火墙:服务范围为防火墙一侧的局域网
按实现方式划分:
1.硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于让软件实现
2.软件防火墙:运行于通用硬件平台之上的防火墙的应用软件
按网络协议划分:
1.网络层防火墙:OSI模型下四层,又称为包过滤防火墙
网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,被称为访问控制列表,通过检查数据流中每个数据的源地址,目的地址,所用端口号和协议状态等因素,或他们的组合来确定是否 允许该数据包通过
优点:对用户来说透明,处理速度快且易于维护
缺点:无法检查应用层数据,如病毒等
2.应用层防火墙/代理服务器:proxy代理网关,OSI模型七层
应用层防火墙/代理服务型防火墙,也称为代理服务器
将所有跨越防火墙的网络通信链路分为两段,内外网用户的访问都是通过代理服务器上的“链接”来实现
优点:在应用层对数据进行检查,比较安全
缺点:增加防火墙的负载
四表:
filter:过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表
nat:地址转换规则表
mangle:修改数据标记位规则表
raw:关闭启用的链接跟踪机制,加快封包穿越防火墙的速度
五表:
security:用于强制访问控制网络规则,由linux安全模块实现
五链:
INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
报文流向:
1.流入本机:PREROUTING --> INPUT-->用户空间进程(访问我的服务)
2.流出本机:用户空间进程 -->OUTPUT--> POSTROUTING(穿过我)
3.转发:PREROUTING --> FORWARD --> POSTROUTING(分摊流量)
规则表的作用:容纳各种规则链; 表的划分依据:防火墙规则的作用相似
规则链的作用:容纳各种防火墙规则;规则的作用:对数据包进行过滤或处理 ;链的分类依据:处理数据包的不同时机
总结:表里有链,链里有规则
基本语法
iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]
-t 指定表的名称
-p 网络协议名称
-i 入站网卡
-o 出站网卡
-s 指定数据包的来源ip地址 #可以是IP、网段、域名、空(任何地址)
-d 指定数据包的目的ip地址 #可以是IP、网段、域名、空(任何地址)
--sport 源端口号 #可以是个别端口、端口范围
--dport 目的端口号 #可以是个别端口、端口范围
--j 动作
- ACCEPT:允许数据包通过
- DROP:直接丢弃数据包,不给出任何回 应信息
- REJECT:拒绝数据包通过,必要时会给数据发送端一个响应信息
- LOG:在/var/log/messages 文件中记录日志信息,然后将数据包传递给下一条规则
- SNAT:修改数据包的源地址
- DNAT:修改数据包的目的地址
- MASQUERADE:伪装成一个非固定公网IP地址
管理选项 | 用法示例 |
---|---|
-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 multiport --sport 源端口列表
-m multiport --dport 目的端口列表
iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j ACCEPT
IP范围匹配:
-m iprange --src-range IP范围
iptables -A FORWARD -p udp -m iprange --src-range 192.168.80.100-192.168.80.200 -j DROP
#禁止转发源地址位于192.168.80.100-192.168.80.200的udp数据包
MAC地址匹配:
-m mac --mac-source MAC地址
iptables -A FORWARD -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
#禁止来自某MAC地址的数据包通过本机转发
状态匹配:
-m state --state 连接状态
常见的连接状态:
NEW :与任何连接无关的,还没开始连接
ESTABLISHED :响应请求或者已建立连接的,连接态
RELATED :与已有连接有相关性的(如FTP主被动模式的数据连接),衍生态,一般与
ESTABLISHED 配合使用
INVALID:不能被识别属于哪个连接或没有任何状态
iptables -A FORWARD -m state --state NEW -P tcp ! --syn -j DROP
#禁止转发与正常TCP连接无关的非--syn请求数据包