iptables入门和提高

这iptables是关于安全的,不得不把基础先搞清楚。
重要的两个链接:
文档的链接: iptables.man.
extensions文档的链接: iptables-extensions.man.

什么是链、规则和表,iptables的命令格式

linux防火墙的实现实在内核中,具体工作在网络的哪一层,查了查百度,似乎在网络层,但我不确定。
内核中的一个数据包处理模块netfilter,它的功能有:
1)网络地址转换(NAT)
2)数据包内容修改
3)数据包过滤【防火墙功能】
我们在这个后面“表”其实是对应的。

我们来看一个图
图中棕色位置就是iptables中的链。也就是说核心对网卡过来的数据包经过图上这个路径后再出到网卡,图中每个棕色的方块就是我们iptables可以控制的地方。每个地方给了一个名字:prerouting、forward、input、output、postrouting。这些控制位置称为“链:chain”。这个chain只在帮助文件中看到,代表以上五个链的名称。
如何对这些地方进行控制呢,是不是每个地方开发一个功能模块呢,其实不需要。我们再看看核心模块netfilter的功能就知道。下面先来看看表的分类再来谈功能模块。

iptables一共有四张表(最新还有第五表security):filter、nat、mangle、raw,分别是这样描述
filter表:确定是否放行该数据包(过滤)
nat表:修改数据包中的源、目标IP地址或端口
raw表:确定是否对该数据包进行状态跟踪
mangle表:为数据包设置标记
这样就能看出来,表对应着功能模块。比如filter的功能,是不是在每个链都需要这样的一个功能,所以就复用一下这个功能就可以了,只是改一下功能的参数而已。总之,表对应着功能。

规则

每一个链,使用功能模块进行控制的时候,不可能只有一种控制方式,可以有很多种控制方式,一般都是是这样的形式:如果xxxx,那么功能模块应该xxxx做。所以每个链里面有很多这样的关于功能模块怎么操作的if、then结构 ,这就是规则。
那么这个规则记录在表里还是记在链里呢?实际上应该是iptables就是一个规则的数据表,每个功能模块读取这个表来完成处理流程。iptables的命令格式就知道这个规则应该怎么存放在数据库里面了。那么这个数据库依靠什么分类呢,就是按照“表”,就是按照功能分类的,不是按照链分类的。

linux对firewall及iptables的英文解释

The Linux kernel includes the netfilter subsystem, which is used to manipulate or decide the fate of network traffic headed into or through your computer. All modern Linux firewall solutions use this system for packet filtering.
The kernel’s packet filtering system would be of little use to users or administrators without a user interface with which to manage it. This is the purpose of iptables. When a packet reaches your computer, it is handed off to the netfilter subsystem for acceptance, manipulation, or rejection based on the rules supplied to it via iptables. Thus, iptables is all you need to manage your firewall (if you’re familiar with it). Many front-ends are available to simplify the task, however.
大致意思是:linux核心包含netfilter子系统,这个子系统用来用来操纵进入或者经过这几计算机的network traffic,所有目前linux系统都用这个防火墙来进行包过滤。但如果没有一个用户界面,那么这个子系统将很少被使用。所以iptables应运而生。当一个packet进入计算机,它被移交给netfilter子系统进行接受、操纵、拒绝,这些操作是根据iptables传递给netfilters的rules来进行的。所以,你想操纵防火墙,你就操纵iptables就可以了。当然,还有很多前端工具可以把此项工作简单化。

Iptables is the database of firewall rules and is the actual firewall used in Linux systems. The traditional interface for configuring iptables in Linux systems is the command-line interface terminal. The other utilities in this section simplify the manipulation of the iptables database.
iptables是一个防火墙规则的数据库,是一个lilnux里面实际的防火墙。传统的iptables是命令行界面。其他工具实际上是简化了操作iptables数据库而已。

iptables的命令格式

通过以上的解释,可以看到,iptables是一个防火墙规则数据库,甚至可以猜到iptables的数据库里记录每行大致应该是这样:
什么功能模块 在什么链 条件满足什么时 怎么做;
数据库的操作无非就是增删改查,如何增删改查这个防火墙数据库呢,创建iptables的人就用iptables这个词做了命令,于是就有了“iptables”这个command-line。iptables的命令格式大致无非就是以下几

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值