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实现的功能和操作,详见下一篇博客。。。。

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2015-07-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JetpropelledSnake

Python Web学习笔记之TCP的3次握手与4次挥手过程

前言 尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。 面向连接意味...

426100
来自专栏流媒体

TCP详解+wireshark抓包演示简介

TCP提供了一种面向连接的、可靠的字节流服务。 面向连接:接双方在通信前需要预先建立一条连接,这犹如实际生活中的打电话。

24130
来自专栏拭心的安卓进阶之路

Android 进阶12:进程通信之 Socket (顺便回顾 TCP UDP)

不要害怕困难,这是你进步的机会! 前面几篇文章我们介绍了 AIDL 、Binder、Messenger 以及 ContentProvider 实现进程通信的方式...

50570
来自专栏微服务

pom.xml配置文件中所有标签及作用简单描述

** 我转载的是关于pom.xml文件中会使用到的基本上所有的标签以及标签的作用简单描述。 可能我们自己的项目所使用到的标签总数量不及此文的一半。 我转载仅...

38960
来自专栏Jerry的SAP技术分享

SAP C4C里如何实现Sales Unit和Seller的自动determination

先看一个效果,我录了一个视频,发布在视频网站上,大家可以先看看SAP Cloud for Customer里启用了partner 自动determination...

15430
来自专栏前端架构

在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP

如果对网络工程基础不牢,建议通读《细说OSI七层协议模型及OSI参考模型中的数据封装过程?》

17550
来自专栏彭湖湾的编程世界

【计算机网络】TCP通信的细节及TCP连接对HTTP事务处理性能影响

从三次握手的细节说起 刚开始尝试使用java等后端语言写IO流,或用套接字(socket)实现简单C/S通信的同学们,常常会接触到的一个概念:就是所谓的“三次握...

25160
来自专栏老安的博客

openstack windows 镜像密码注入的问题

25120
来自专栏SDNLAB

源码解读ODL与OpenFlow交换机建立过程

编者按:OpenDaylight两大技术特色:1.采用了OSGi框架;2.引入了SAL,而今天我们主要介绍服务抽象层(SAL)适配的南向协议之一OF协议模块。 ...

38840
来自专栏猿人谷

Linux下TCP连接过程总结

一、Linux服务器上11种网络连接状态: ?       图:TCP的状态机 通常情况下,一个正常的TCP连接,都会有三个阶段:1、TCP三次握手; 2、数...

35150

扫码关注云+社区

领取腾讯云代金券