您的位置:首页 > 运维架构 > Linux

Linux 中使用iptables配置防火墙

2016-05-02 16:29 531 查看

小疑惑

我们的Linux老师余老师讲TCP_Wrappers工作在user-space,iptables工作在kernel-space,但是自己在通过搜索引擎进一步了解的时候有许多文章介绍iptables都不一样,有人说是在user-space,还有人说是在kernel-space。PS:正是带着这样的小疑惑,我才打算写这篇文章的。

netfilter/iptables IP信息包过滤系统

先讲讲什么是netfilter,维基百科上给出了这样的解释——Netfilter,在Linux内核中的一个软件框架,用于管理网络数据包。不仅具有网络地址转换(NAT)的功能,也具备数据包内容修改、以及数据包过滤等防火墙功能。利用运作于用户空间的应用软件,如iptable等,来控制Netfilter,系统管理者可以管理通过Linux操作系统的各种网络数据包。

那么iptables是什么就已经很明显了。iptables它还是像TCP_Wrappers一样,是一个工作在user-space的工具,但是它能够去控制处于kernel-space的netfilter。这样一来,我们就可以通过对iptables的修改,实现对防火墙的控制了。

其实在Linux中,还有其它的工具可以对防火墙进行配置,比如说firewalld、ipchains等等。而且就目前来讲,iptables也许已经过时了,在IBM的Linux文档库中有篇文章讲到, firewalld能动态的管理防火墙, 而iptables 管理防火墙是静态的,每次修改都要求防火墙完全重启。而且维基百科介绍iptables时讲到“新版Linux内核(3.13后)则使用nftables取而代之”。所以,可能iptables可能不是那么流行了,但是,目前iptables仍然是还能工作的,而且也非常实用,还有许多的人在学习并使用它。

iptables的三表五链

我们要通过iptables去控制防火墙,就的先明白iptables是怎样制定防火墙规则的。

三表:filter、mangle、nat(表名全小写)

filter表,顾名思义它就是一个过滤器,过滤根据filter中写好的规则,过滤掉某些数据包。

nat表,对数据包进行网络地址转换。

mangle表,可以实现对数据包内容的修改,比如说进行IP伪装。

五链:PREROUTING、FORWARD、POSTROUTING、INPUT、OUTPUT(链名全大写)

PREROUTING链,报文到达本机,进行路由决策之前会经过此链。

FORWARD链,经由本机转发的报文会经过此链。

POSTROUTING链,报文由本机发出,进行路由决策之后会经过此链。

INPUT链,目的地址是本机的报文,进行路由决策之后会经过此链。

OUTPUT链,本机发出的报文,进行路由决策之后会经过此链。

我们可以参考下面的图解:



iptables语法概述

在这里写了一大段,发现越写越烦,是在太多了,而且markdown还没有玩熟,有许多格式还不能控制。所以,这里我就上传一下余老师给我们讲课时的ppt吧,里面主要是讲iptables编写时的语法,写的挺详细的。(点击这里下载PPT)

如有雷同,不是巧合。本菜鸟是在通过老师讲解和Google才了解的iptables,所以这篇博客只是根据了自己的一些理解来总结一下而已。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iptables 防火墙 linux