iptable能够为Unix、Linux和BSD个人工作站创建一个防火墙,也可以为一个子网创建防火墙以保护其它的系统平台。iptable只读取数据包头,不会给信息流增加负担,也无需进行验证。要想获得更加好的的安全性,可以将其和一个代理服务器(比如sqiud)相结合。
每当有人紧急要求你开放或关闭特定通讯端口(为了让某种重要的网路通讯能通过防火牆,或是阻挡某种攻擊),或是请你在防火牆设置某种功能,本文将能协助你尽速解決问题。本文以直接的语法和务实的范例,帮助你记忆iptables的各种用法,並提供一些适当的意见,让你的防火牆尽可能保持安全。我们将iptables的选项分成「防火牆」、「流量统计」、「NAT」三类,以适合实务查询的方式编排,帮助管理员在最短时间內找到相关选项的语法和說明。
操作范例如下:
让我们来一个简单的iptables命令:
iptables -t nat -A PREROUTING -i ethl -p tcp - -dport 80
-j DNAT - - to -destination 192.168.1.3:8080
(表1)是解释这个iptables命令的意义。

▓ 概念
Linux核心的包处理流程中,共设置了五个(鱼钩)拦截点(hook points),分别是PREROUTING、INPUT、FORWARD、POSTROUTING以及OUTPUT。內建链结只能作用在这些拦截点;你可以针对个別拦截点设置一系列处理规则,每条规则各代表一次影响(或监测)包处理流程的机会。
*************************************
▓ 诀窍
我们常看到很多說明文件有着『...nat表格的PREROUTING串链...』这樣的說法,隐喻著链结是属于表格。然而,链结与表格两者之间並沒有统属关系,最多只有隐讳的关联性而已。链结(chains)的真正含意是「包(package)径路上的拦截点」而表格(tables)则是象征「处理效果」。然而,为了措词上的方便,本文仍免不了出现『...某表格的某链结...』之类的說法请读者注意。
*************************************
※ 图1、2、3分別展示了表格与链结的三种有效组合,以及各种组合所象征的包处理流程。其中《图l》是包经过「网址转换系统」(NAT)的流程,相关链结是作用於nat表格。

※ 图2: 是包流经「包过滤系统」的流程,相关链结是作用于filter(过滤)表格。

※ 图3: 是包流经「包内容调整系统」的流程,相关链结是作用于mangle表格。

表2》說明五种拦截点(链结)的作用,以及各拦截适合处理的包类型。

注解:
混杂模式(promiscuous mode):Ethernet网卡的一种特殊作业模式,在此模式下,即使目的地MAC位址不是指向自己的Ethernet包,也会被收下来。Ethernet网卡通常是在非混杂模式下作业,也就是只接受MAC指向自己的Ethernet包。
*************************************
诀窍
好奇的读者,可从核心原始程式的/usr/include/linux/netfilter_ipv4.h标头档查出各拦截点的定义;它们的名称类似NF-IP_FORWARD、NF_IP_LOCAL_{IN,OUT}、和NF_IP_{PRE,POST}_ROUTING。
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 手册 应用 规则 表格 拦截 《表 iptables 设置 流程 处理 |
注册
个人空间
