iptables防火墙以及网络协议基本原理
一、 Linux 网络安全模型
1. 防火墙: 工作在主机或者网络边缘,对进出报文使用实现定义的规则进行检测,并且由匹配的规则进行处理的一组硬件或者软件。也可能两者结合。
1) 通常使用的防火墙设备
硬件防火墙:专门的一台防火墙硬件设备,工作在整个网络入口处。
软件防火墙:工作在主机中TCP/IP协议站上面的软件(工作在内核中)。
2) 防火墙工作位置
网络层:工作在网络层,类似路由器,主要拆除物理层和链路层协议,检测IP/TCP/UDP/ICMP网络层协和传输层协议首部,来进行规则定制
应用层:工作在应用层,拆除网络层和传输层首部,查看应用层内容。
2. IDS(Intrusion-detection system) 入侵检测系统
HIDS(主机入侵检测系统):OSSEC
NISC(网络入侵检测系统):snort(可以作为网络嗅探器)
Filesystem: 文件系统级别检测入侵检测
3. IPS(入侵防御系统): IDS + Firewall两者联动
4. honeypot:蜜罐系统,用于诱捕黑客,获取证据。
5. 系统安全漏洞漏洞扫描工具,进行系统安全评估:Nessus, nmap 等
6. rootkit:直接在系统层植入后门,将无法防护,只能重新安装系统 。
二、 iptables工作机制
1. iptables/netfilter:网络层防火墙,可以链接追踪状态(状态检测), 是一个规则编写工具。规则通过内核中netfilter框架产生作用。
2. 设置iptables防护的五个位置(hook_function
位置)以及允许规则(五链四表):

1) PREROUTING: 主机外报文进入位置,允许的表mangle, nat(目标地址转换,把本机地址转换为真正的目标机地址,通常指响应报文)
2) INPUT:报文进入本机用户空间位置,允许的表filter, mangle
3) OUTPUT:报文从本机用户空间出去的位置,允许filter, mangle, nat
4) FOWARD:报文经过路由并且发觉不是本机决定转发但还不知道从哪个网卡出去,允许filter,
mangle
5) POSTROUTING:报文经过路由被转发出去,允许mangle,nat(源地址转换,把原始地址转换为转发主机出口网卡地址)
四表: filter, nat , mangle, raw
五链:PREROUNTING, INPUT, FORWARD, OUTPUT, POSTROUTING
3. 表与链的对应关系
1) filter: INPUT, FORWARD, OUTPUT
2) nat: PREROUTING, OUTPUT, POSTROUTING
3) mangle: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING
4) raw:

4. 规则:匹配到后的处理机制
1) 通: 默认为堵, 只对规则匹配到的进行开放
2) 堵: 默认为同, 只对规则匹配到的堵
5. 网络层和传输层协议检查内容
1) IP:
SIP: 源IP
DIP: 目标IP
2) TCP:
SPORT: 源端口
DPORT:目标端口
Flags:标识位
3) ICMP: ICMP-TYPE (ping 命令)
6. 关于TCP协议标识位以及有限状态机图解

TCP协议通信时,伴随着标识位的相互传输,以及在各个状态之间的转换。这些标识位将成为规则检测的内容。
7. 扩展检测机制:
1)time(根据时间),
2)应用层协议(如qq)
3)string 敏感字符
4)state(connection-tracking) 连接追踪
8. 匹配到的报文处理机制:
1) DROP: 默默的丢弃
2) REJECT:拒绝,不建议使用,容易拉仇恨
3) ACCEPT:接受
4) SNAT: 源地址转换
5) DNAT:目标地址转换
6) REDIRECT: 端口映射
7) LOG:日志
8) RETURN: 返回
iptables防火墙以及网络协议基本原理的更多相关文章
- iptables (一) 主机防火墙和网络防火墙
Firewall : 防火墙,隔离工具:工作于主机或网络的边缘,对于进出本主机或网络的报文根据事先定义好的检测规则作匹配,对于能够被规则所匹配到的报文做出相应处理的组件:有主机防火墙和网络防火墙 Ip ...
- Netfilter/iptables防火墙
http://os.51cto.com/art/201107/273443.htm [51CTO独家特稿]Linux系统管理员们都接触过Netfilter/iptables,这是Linux系统自带的免 ...
- Linux iptables 防火墙
内容摘要 防火墙 防火墙定义 防火墙分类 netfilter/iptables netfilter 设计架构 iptables 简述 iptables 命令详解 命令语法 table 参数 comma ...
- 编译内核实现iptables防火墙layer7应用层过滤 (三)
在前面的两篇文章中我们主要讲解了Linux防火墙iptables的原理及配置规则,想博友们也都知道iptables防火墙是工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙.以 ...
- 20条IPTables防火墙规则用法!
导读 管理网络流量是系统管理员必需处理的最棘手工作之一,我们必需规定连接系统的用户满足防火墙的传入和传出要求,以最大限度保证系统免受攻击.很多用户把 Linux 中的 IPTables 当成一个防火墙 ...
- Iptables防火墙规则使用梳理
iptables是组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤.封包重定向和网络地址转换(NAT)等功能 ...
- Iptables防火墙规则使用
iptables是组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤.封包重定向和网络地址转换(NAT)等功能 ...
- centos6.5下系统编译定制iptables防火墙扩展layer7应用层访问控制功能及应用限制QQ2016上网
iptables防火墙扩展之layer7应用层访问控制 概述: iptables防火墙是工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙.以基于网络层的数据包过滤机制为主,同 ...
- CentOS 7中firewall防火墙详解和配置以及切换为iptables防火墙
官方文档介绍地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Gui ...
随机推荐
- vue 异步请求数据后,用v-if,显示组件,这样初始化的值就在开始的时候传进去了
请求到数据才会有的一个组件,并把数据传进组件中 https://www.cnblogs.com/LuckyWinty/p/6246698.html
- Format a Hard Drive in Csharp
Article Author(s): Audric Thevenet All Rights Reserved. Here's how to format hard drives, floppies, ...
- xshell通过xftp传输Windows文件到Linux:在输入put后,再摁 TAB 键,可显示当前文件夹的文件
在输入put后,再摁 TAB 键,可显示当前文件夹的文件 sftp:/home/yan> put $Recycle.Bin\ BluestacksCN\ ...
- kvm使用kickstart文件自动安装系统
假定kvm已经准备好 1.创建磁盘 qemu-img create -f qcow2 /kvm/os/vm-01.qcow2 16G 2.上传或下载安装镜像 mkdir -p /kvm/iso cd ...
- debian 添加永久环境变量方法
添加临时环境变量方法: export PATH=$PATH:/usr/local/....(你的环境变量路径) 永久添加环境变量,步骤如下: #在~/.bashrc文件末尾添加如下: PATH = $ ...
- tarjan 学习记
1.强连通分量是什么 强连通分量指的是部分点的集合如果能够互相到达(例如 1→3,3→2,2→1(有向图)这种,132每个点都能互相抵达) 或者说,有一个环,环上点的集合就是一个强连通分量 2.那怎么 ...
- MongoDB中WiredTiger的数据可用性设置
此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. MongoDB中WiredTiger的参数配置主要通过 wiredtiger_open (http://so ...
- 跟初学者学习IbatisNet第三篇
这一章我们主要介绍一下IbatisNet里面的动态sql语句的运用,比如有时候我们想进行模糊查询,参数是动态加入的.或者要实现top n ,order by ,分页等功能的时候,我们就不得不用动态拼接 ...
- Linux如何查看CPU负载
负载(load)是Linux机器的一个重要指标,直观了反应了机器当前的状态.如果机器负载过高,那么对机器的操作将难以进行. linux的负载高,主要是由于CPU使用.内存使用.IO消耗三部分构成.任意 ...
- php基础语句 变量 符号
中心主题 标记与注释 // /* */ 输出语句 echo输出 echo可以输出多个字符串,逗号隔开 print输出 print只能输出一个字符串,返回true或false print_r() 可以把 ...