一、 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防火墙以及网络协议基本原理的更多相关文章

  1. iptables (一) 主机防火墙和网络防火墙

    Firewall : 防火墙,隔离工具:工作于主机或网络的边缘,对于进出本主机或网络的报文根据事先定义好的检测规则作匹配,对于能够被规则所匹配到的报文做出相应处理的组件:有主机防火墙和网络防火墙 Ip ...

  2. Netfilter/iptables防火墙

    http://os.51cto.com/art/201107/273443.htm [51CTO独家特稿]Linux系统管理员们都接触过Netfilter/iptables,这是Linux系统自带的免 ...

  3. Linux iptables 防火墙

    内容摘要 防火墙 防火墙定义 防火墙分类 netfilter/iptables netfilter 设计架构 iptables 简述 iptables 命令详解 命令语法 table 参数 comma ...

  4. 编译内核实现iptables防火墙layer7应用层过滤 (三)

    在前面的两篇文章中我们主要讲解了Linux防火墙iptables的原理及配置规则,想博友们也都知道iptables防火墙是工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙.以 ...

  5. 20条IPTables防火墙规则用法!

    导读 管理网络流量是系统管理员必需处理的最棘手工作之一,我们必需规定连接系统的用户满足防火墙的传入和传出要求,以最大限度保证系统免受攻击.很多用户把 Linux 中的 IPTables 当成一个防火墙 ...

  6. Iptables防火墙规则使用梳理

    iptables是组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤.封包重定向和网络地址转换(NAT)等功能 ...

  7. Iptables防火墙规则使用

    iptables是组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤.封包重定向和网络地址转换(NAT)等功能 ...

  8. centos6.5下系统编译定制iptables防火墙扩展layer7应用层访问控制功能及应用限制QQ2016上网

    iptables防火墙扩展之layer7应用层访问控制 概述: iptables防火墙是工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙.以基于网络层的数据包过滤机制为主,同 ...

  9. CentOS 7中firewall防火墙详解和配置以及切换为iptables防火墙

    官方文档介绍地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Gui ...

随机推荐

  1. COM技术开发(一)

    COM :基本的接口(IX,IY), 组件的实现(CA),以及对组件的调用 #include "pch.h" #include <iostream> #include ...

  2. AndroidStudio连不上天天模拟器

    问题:天天模拟器经常无法被Android Studio读取出来: 解决方法:手动连接它的端口: 方法一:找到Android\SDK\platform-tools目录,在当前目录下打开命令行窗口(shi ...

  3. excel数据比对,查找差异

    1.选中需比对的数据 2.开始->条件格式->突出显示单元格规则->重复值 3.选择唯一值,点击确定 4.结果展示 5.颜色标识的即:不同值

  4. 如何用纯 CSS 创作一个荧光脉冲 loader 特效

    效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/erRzzR 可交互视频教程 此视 ...

  5. Python_编程题集_002_菱形

    2.编写程序实现: n=5,输出: * *** ***** *** * n=6,输出: * *** ***** ***** *** * n为任意大于1的正整数. 解: #思路: # 第一步:判断行数, ...

  6. Numpy的基本操作和相关概念(一)

    基础操作 np.random.randn() 符合正态分布的数据 np.vstack((a,b)) 矩阵水平拼接 np.hstack((a,b)) 矩阵垂直拼接 np.dot(a,c) 点阵积 A@B ...

  7. 南阳理工 58 最少步数 (DFS)

    描述 这有一个迷宫,有0~8行和0~8列: 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0, ...

  8. include_once 问题

    最近在做微信小程序,在include_once 微信文件后,该方法return 前面会用特殊字符,导致我return 给前端的本来是json串变成了字符 解决方法 : ob_clean(); retu ...

  9. 最近的一些JAVA基础知识

    1,关于判断两个值是否相等 equal 和==是有区别到 2,判断一个数组集合 List是否为空 这个不能用"==null或者equal"要用isEmpty() , 对于不等于加一 ...

  10. Oracle数据库学习之存储过程--提高程序执行的效率

    存储过程是Oracle开发者在数据转换或查询报表时经常使用的方式之一.它就是想编程语言一样一旦运行成功,就可以被用户随时调用,这种方式极大的节省了用户的时间,也提高了程序的执行效率.存储过程在数据库开 ...