一、 Linux 网络安全模型

1. 防火墙: 工作在主机或者网络边缘,对进出报文使用实现定义的规则进行检测,并且由匹配的规则进行处理的一组硬件或者软件。也可能两者结合。

1) 通常使用的防火墙设备

硬件防火墙:专门的一台防火墙硬件设备,工作在整个网络入口处。

软件防火墙:工作在主机中TCP/IP协议站上面的软件(工作在内核中)。

2) 防火墙工作位置

网络层:工作在网络层,类似路由器,主要拆除物理层和链路层协议,检测IP/TCP/UDP/ICMP网络层协和传输层协议首部,来进行规则定制

应用层:工作在应用层,拆除网络层和传输层首部,查看应用层内容。

2. IDSIntrusion-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. selelinum+PhantomJS 爬取拉钩网职位

    使用selenium+PhantomJS爬取拉钩网职位信息,保存在csv文件至本地磁盘 拉钩网的职位页面,点击下一页,职位信息加载,但是浏览器的url的不变,说明数据不是发送get请求得到的. 我们不 ...

  2. uva 1451 数形结合

    思路:枚举点t,寻找满足条件的点t': 计sum[i]为前i项合,平均值即为sum[t]-sum[t'-1]/t-t'+1 设(Pi=(i,Si),表示点在s中的位置,那么就可以画出坐标图,问题就转化 ...

  3. Microsoft Project 2010基础使用方法

    5.1 项目管理与Microsoft Project2010 Microsoft Project2010深受广大项目管理工程师的青睐. 5.1.1 项目管理的概念 项目管理是项目管理者在有限的资源约束 ...

  4. 查看本机的ip地址

    ifconfig可以查看本机的ip地址:inet addr:10.108.104.185

  5. CPP-基础:模板

    // template.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include <iostream> #include &l ...

  6. IOS学习笔记1—Iphone程序运行流程

    Iphone程序运行流程 main.m文件,iOS应用程序的主入口 main函数的两个参数为命令行参数,在ios开发中不会用到这些元素,包括这两个参数是为了与标准ANSI C保持一致 UIApplic ...

  7. DNS域名系统

    1. 什么是DNS? DNS是域名系统的缩写,DNS通过将域名与实际的Web服务器连接来帮助引导Internet上的流量.从本质上讲,它需要一个人性化的请求 – 像simcf.cc这样的域名 – 并将 ...

  8. 离散数学-集合的交并差集运算--STL-set类

    代码其实很简单,我们只需要知道set类的使用方法就可以了,比如迭代器的定义( set<T>::iterator it=a.begin() ),和简单的insert函数插入,以及find函数 ...

  9. Mysql 查询多个字段去重复

    今天需要统计信息,但是有过个重复的数据,需要去除,找了如下方法: SELECT *, COUNT(DISTINCT phone ) FROM apply_info GROUP BY phone

  10. IDEA中远程Debug调试

    一.设置JVM支持远程Debug调式 由于我的应用是springboot, 所以直接使用java -jar的方法将服务启动起来. java -Xdebug -Xrunjdwp:transport=dt ...