iptables、四表五链、用例及练习

本文详细介绍了Linux防火墙iptables的工作原理,包括其构成的四表五链,规则的添加、修改与过滤操作,以及各类协议和动作的支持。涵盖了实战用例和练习,帮助读者理解并掌握iptables的配置和管理。

目录

一:什么是防火墙

1、什么是防火墙

2、防火墙分类

  3、防火墙的原理

4、防火墙是通过什么过滤网络    

5、什么是表

6、什么是链

7、链的使用场景

8、表和链之间的关系

9、iptables语法格式

10、表和链之间是怎么实现网络过滤的

11、支持过滤的协议有哪些

12、支持过滤的动作

14、Iptables的模块

1、用例及练习

2、用例2


一:什么是防火墙

1、什么是防火墙

防止别人恶意入侵服务器的软件。

2、防火墙分类

从逻辑上讲。防火墙可以大体分为主机防火墙和网络防火墙。
    主机防火墙:针对于单个主机进行防护。
    网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。
    网络防火墙和主机防火墙并不冲突,可以理解为,网络防火墙主外(集体), 主机防火墙主内(个人)。


从物理上讲,防火墙可以分为硬件防火墙和软件防火墙。
    硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高。
    软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低。

  3、防火墙的原理

通过iptables规则操作netfilter系统安全框架,从而实现对网络的安全过滤。

详细描述:
iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的”安全框架”中,这个”安全框架”才是真正的防火墙,这个框架的名字叫netfilter
netfilter才是防火墙真正的安全框架(framework),netfilter位于内核空间。
iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。
netfilter/iptables(下文中简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。


Netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:
网络地址转换(Network Address Translate)
数据包内容修改
以及数据包过滤的防火墙功能

所以说,虽然我们使用service iptables start启动iptables”服务”,但是其实准确的来说,iptables并没有一个守护进程,所以并不能算是真正意义上的服务,而应该算是内核提供的功能。

4、防火墙是通过什么过滤网络    

防火墙是通过四表五链来过滤网络的。

iptables 是集成在 Linux 内核中的包过滤防火墙系统。使用 iptables 可以添加、删除具体的过滤规则,iptables 默认维护着 4 个表和 5 个链,所有的防火墙策略规则都被分别写入这些表与链中。

5、什么是表

    表是具备某些具体功能的防火墙安全过滤规则。

“四表”是指 iptables 的功能,默认的 iptables规则表有 
filter 表(过滤规则表)防火墙
nat 表(地址转换规则表)network address translation网络地址转换功能;内核模块:iptable_nat
mangle(修改数据标记位规则表)、拆解报文,做出修改,并重新封装 的功能;iptable_mangle
raw(跟踪数据表规则表):关闭nat表上启用的连接追踪机制;iptable_raw

filter 表:控制数据包是否允许进出及转发,可以控制的链路有 INPUT、FORWARD 和 OUTPUT。
nat 表:控制数据包中地址转换,可以控制的链路有 PREROUTING、INPUT、OUTPUT 和 POSTROUTING。
mangle:修改数据包中的原数据,可以控制的链路有 PREROUTING、INPUT、OUTPUT、FORWARD 和 POSTROUTING。
raw:控制 nat 表中连接追踪机制的启用状况,可以控制的链路有 PREROUTING、OUTPUT。


6、什么是链

    链是将表的过滤规则放置在具体的位置去执行。

“五链”是指内核中控制网络的 NetFilter 定义的 5 个规则链。每个规则表中包含多个数据链:
INPUT(入站数据过滤)、
OUTPUT(出站数据过滤)、
FORWARD(转发数据过滤)、
PREROUTING(路由前过滤)、
POSTROUTING(路由后过滤)

防火墙规则需要写入到这些具体的数据链中。

 Linux 防火墙的过滤框架如下:

Linux命令

 如果是外部主机发送数据包给防火墙本机,数据将会经过 PREROUTING 链与 INPUT 链;如果是防火墙本机发送数据包到外部主机,数据将会经过 OUTPUT 链与 POSTROUTING 链;如果防火墙作为路由负责转发数据,则数据将经过 PREROUTING 链、FORWARD 链以及 POSTROUTING 链。
 

7、链的使用场景

流入:PREROUTING   --->   INPUT
	>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	
	流出:POSTROUTING  <---   OUTPUT
	<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
	
	流经:PREROUTING  --->  FORWARD  --->  POSTROUTING
	>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

 报文流向经过的链

到B网络某进程的报文:PREROUTING –> INPUT

由B网络的某进程发出报文:OUTPUT –> POSTROUTING

由B网络转发的报文:PREROUTING –> FORWARD –> POSTROUTING

 

8、表和链之间的关系


	filter : IN
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值