《Linux 防火墙》读书笔记第3章——iptable:传统的Linux防火墙管理程序 (1)

第三章 iptables:传统的Linux防火墙管理程序(1)

3.1 iptables(防火墙)与 netfilter

3.1.1 Linux 包过滤防火墙的架构

Linus Torvalds 在 2016 年 12 月 11 日发布了 Linux 内核 4.9 的正式版本,据说 将在 2018年发布 5.x 版本。而实际上 从3.13 版本的内核开始,一个新的过滤机制 nftables 被加入。

3.1.2 netfilter/iptables 几点区别理解介绍

   =================================================netfilter/iptables 简介:(1)IP 数据包过滤系统由 netfilter 和 iptables 两个组件构成。(2)netfilter 是集成在内核中的一部分,其作用是定义、保存相应的规则。(3)iptables 是一种工具,用来修改信息的过滤规则及其他配置,而这些规则会保存在内核空间之中。(4)netfilter 是Linux核心中的一个通用架构,其提供了一系列的表(tables)每个表由若干个链(chains)组成,而每条链可以由一条或若干条规则(rules)组成。(5)iptables 与 netfilter 使用术语可以互换,但两者还是有区别。netfilter 是 Linux 内核空间的程序代码,它在 Linux内核里实现了防火墙。它要么直接编译进内核,要么被包含在模块集中。而 iptables 是用于管理 netfilter 防火墙的用户程序。(6)iptables 只是防火墙与用户之间的接口,真正起作用的是 Linux 内核中运行的 netfilter 。Linux 平台下的包过滤防火墙由 netfilter 组件和 iptables 组件组成,其中 netfilter 运行在内核态,而 iptables 运行在用户态,用户通过 iptables 命令来调用 netfilter 来实现防火墙功能。=================================================

3.1.3 Netfilter 与 Iptables 简介

(1) Netfilter 组件

Netfilter 组件 是 Linux 内核中的一个用于扩展各种网络服务的结构化底层架构。该架构定义了包过滤子系统功能的实现,提供了 filter 、nat 和 mangle 3个表,默认使用并起防火墙作用的是 filter 表。每个表中包含若干条内建的链(chains),用户可在表中创建自定义的链。在每条连中,可定义一条或多条过滤规则(rules)。每条规则应指定所要检查的包的特征以及如何处理与这对应的包,这被称为目标(target)。目标值可以是用户自定义的一个链名,也可以是 ACCEPT、DROP、REJECT、RETURN 等值。

(2) Iptables 组件

Iptables 组件 是一个用来指定 Netfilter 规则和管理内核包过滤的工具,用户通过它来创建、删除或插入链,并可以在链中插入、删除以及修改过滤规则。iptables 仅仅是一个包过滤工具,对过滤规则的执行则是通过 Netfilter 和 相关的支持模块实现的。

3.2 IP 防火墙(IPFW)和 Netfilter 防火墙机制的不同

3.2.1 IPFW 数据包传输

IPFW 下(ipfwadm 和 ipchains),有三种内置过滤规则被使用:INPUT(输入规则链)、FORWARD(转发规则链)、OUTPUT(输出规则链)。

所有到达接口的数据包都按照 INPUT 规则被过滤。如果数据包被接受,它将被传递到路由模块。路由功能决定数据包是被传递到本地还是被转发到另一个传出(OUTPUT)接口。

如果被转发,数据包将由 FORWARD 规则进程第二次过滤。如果数据包被接受则将被传输到 OUTPUT 规则链。

所有本地产生的传出数据包和将被转发的数据包都被传递到 OUTPUT 规则链。如果数据包被接受则将从接口被发出。

收到并被发送到本地(回环)的数据包会通过两个过滤器(INPUT、OUTPUT),而转发数据包则通过了三个过滤器(INPUT、FORWARD 和 OUTPUT)。

回环路包括两个规则链(OUTPUT、INPUT)。每个回环路数据包在“传出”回环接口之前都会经过输出过滤器,接下来便会被传递到回环的输入接口。然后将应用输入过滤器。

这里的伪装是早期 Linux 版本中的概念。现在网络地址转换(NAT)完全是由 iptables 实现的。在此之前,NAT 在 Linux 中被称为伪装。源地址转换的一个简单、部分实现的版本(即伪装),被站点的所有者所使用,他们有一个公网 IP 地址,并希望私有网络中的其他主机也能够访问互联网。从这些内部主机发出的数据包源地址被伪装成那个公用的、可路由的 IP 地址。

3.2.2 Netfilter 数据包传输


Netfilter(iptables)使用了三个内置的过滤器:INPUT、OUTPUT、FORWARD。传入数据包需要经过路由功能,它决定了是将数据包传递到本地主机的 INPUT 规则链还是到 FORWARD 规则链。

【阅读推荐】

  • 防火墙和iptables
  • Linux 下iptables 网络防火墙的研究和实现
  • iptables(防火墙)与netfilter
  • 朱双印-iptables

iptables:传统的Linux防火墙管理程序(1)相关推荐

  1. 《Linux防火墙(第4版)》——1.5 主机名和IP地址

    本节书摘来自异步社区<Linux防火墙(第4版)>一书中的第1章,第1.5节,作者:[美]Steve Suehring(史蒂夫 苏哈林)著,更多章节内容可以访问云栖社区"异步社区 ...

  2. linux 防火墙文件路径,linux防火墙设置

    手机评站网今天精心准备的是<linux防火墙设置>,下面是详解! linux如何关闭防火墙 一.Linux下开启/关闭防火墙命令 1) 永久性生效,重启后不会复原 开启: chkconfi ...

  3. linux防火墙过滤规则

    一.linux防火墙基础 防火墙分为硬件防火墙和软件防火墙. 1.概述 linux 防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙. 包过滤机制:netfil ...

  4. linux防火墙配置80端口,Linux配置防火墙 开启80端口

    Linux配置防火墙 开启80端口的方法 命令行输入: vi /etc/sysconfig/iptables 将 -A INPUT -m state --state NEW -m tcp -p tcp ...

  5. Linux防火墙iptables学习

    http://blog.chinaunix.net/uid-9950859-id-98277.html 要在网上传输的数据会被分成许多小的数据包,我们一旦接通了网络,会有很多数据包进入,离开,或者经过 ...

  6. Linux 防火墙配置(iptables和firewalld)

    目录 防火墙基本概念 Iptables讲解 Iptables表 Iptables规则链 Iptables控制类型 Iptables命令配置 firewalld讲解 Firewalld区域概念 Fire ...

  7. Linux防火墙与iptables命令

    Linux防火墙与iptables命令 防火墙概念 一.Firewalld与iptables简介 1.1Firewalld 1.2Firewalld.iptables 二.iptables 2.1四表 ...

  8. linux 防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  9. 共创Linux防火墙,Linux防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

最新文章

  1. 对比两个同类型的泛型集合并返回差异泛型集合 ——两个List类名的比较
  2. 2015春节期间读完两本书,立贴为证。
  3. Semaphore 源码分析
  4. jQuery如何选择表格每行中的第三列?
  5. Cheatsheet: 2011 12.01 ~ 12.12
  6. java重入锁,再探JAVA重入锁
  7. 是什么造就了伟大的程序员?
  8. 将数据从MySql导入数据至SQL Server 2000
  9. Mybatis根据IdType生成不同类型的主键id
  10. python元组是有序还是无序_python-03 元组和字典
  11. SQlite数据库的C编程接口(三) 预处理语句(Prepared Statements) ——《Using SQlite》读书笔记 .
  12. 307.区域和检索-数组可修改
  13. HDFS 纠删码 EC
  14. 鼠标划定区域的屏幕翻译 python3
  15. 全网最全最新的免版权图库
  16. java 反射 protected_通过Java反射机制访问private,protected变量和方法
  17. 设计模式之禅【组合模式】
  18. HTML设置格式化时间
  19. 访问者模式 Visitor
  20. 嵌入式系统和嵌入式操作系统

热门文章

  1. 2017年Java开发就业前景分析
  2. 容器网络连接被重置?这篇文章教你如何去定位及分析
  3. Unity 之 解决包体过大问题记录和纹理相关知识点整理
  4. 知网的html查重报告看不了,知网查重报告单怎么看
  5. 用python来打印数字金字塔
  6. 版本控制工具Git(完美整理版)
  7. CSRF跨站点伪造请求攻击之——CSRF钓鱼添加管理员账号及安全防范
  8. Scratch(二十一):开船钓鱼
  9. mysql8.0源代码解析_源码解读:MySQL 8.0 InnoDB无锁化设计的日志系统
  10. 根据身份证号获取地址、年龄、星座、生肖、生日、性别等基本信息