巧用iptables建立Linux防火墙


iptables能帮助Linux建立防火墙,具体的步骤如下:

如果你刚刚开始在Linux系统上启用一个防火墙,笔者建议你试用这样一个工具,如lokkit(它在Fedora/RedHat / Ubuntu等操作系统中是可用的)。它可以作为一个向导,让你一步一步地领略配置防火墙的过程。要使用这个工具,请运行此命令:gnome-lokkit

你可以从下面的链接得到此工具的详细信息或下载此工具:

不过,你可能对一个GUI(图形用户界面)的工具更感兴趣,而不是使用命令行工具来对iptables作出改变。如果你喜欢图形化的工具,现在互联网上有不少这样的工具。不妨到freshmeat.net找一下。

Iptables简介

对于那些不知道或不清楚iptables的人来说,这个Linux工具可以控制网络数据包,允许你借助于一套规则来对网络相关的事项执行精细控制,此工具本身已经出道有一段时间了。

在你用iptables命令开始创建规则之前,你还需要知道如果服务器重启的话,你创建的规则会丢失。由于这个原因,多数服务器管理员将其所用的iptables命令运用于一个服务器每次重启时运行的命令过程。对于某些Linux版本,你还可以像下面这样来运行一个命令:

service(服务) iptables save(保存)

这就保证可以保存你的配置,并且在启动时自动加载。

开始工作

要使用iptables,你应当将规则运用于进入或发出的网络数据包,或者通过你的服务器转发的数据包。

要查看目前运用于服务器的数据包,键入命令:

iptables -L

iptables基础

构建可正常发挥功能的防火墙规则依赖于你对服务器是如何运行的一些知识。

对于一个安全的服务器而言,最好先建立一个可以禁止所有进入通信的规则。一旦你这样做了,那么你可以建立一些明晰的规则,使其只允许如80号端口等例外端口的请求。这样做比你设法过滤想阻止的内容更加容易理解,也更容易配置,因为那样的话你可能会遗漏一些重要或者危险的东西,例如一个开放的可被用于攻击你的服务器的端口。

此外,将iptables与一个硬件防火墙结合使用也是很有益的,因为这会提供多层安全,并会减少你在配置中遗漏某些东西的可能性。

记住,你可以用命令man iptables得到所有的语法信息。

使用防火墙规则

下面让我们看三个示例性的规则及其核心部分。不过,需要注意,我们文章中的一些较长的命令有自动换行,因此你要确保键入了一个完整的命令,而不是仅仅一行命令。

iptables -P INPUT DROP

这个命令很容易,并且很安全。它对iptables工具进行了初始化,然后对所有进入(input)的数据包设置了一个策略(Policy(-P))。这个策略就是丢弃所有的数据包。非常安全。注意,你只能将策略用于iptables的内建命令。

iptables -A INPUT -i lo -j ACCEPT

这条规则比较实用,因为它允许发生在你的本地接口上的网络通信。注意添加的(-A)选项,因为这不是内建于策略中的一部分。这条新的规则被添加到所有进入的将要到达本地接口(interface:-i)的数据包上。这条规则要准许所有这些数据包(-j ACCEPT)。通常情况下,如果你碰到配置和安装应用程序方面的问题,这将开始于你准许本地主机的连接性,如下所示:

iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT

这个命令还将一条规则添加(-A)到所有通过以太网接口(-i eth0)进入(INPUT)的数据包中。不过它只应用于使用TCP协议(-p tcp)的数据包。此规则特别针对进入指定的80号端口(--dport 80)的数据包,而且设置为允许这些数据包通过(-j ACCEPT)。

通过文章的描述,想必大家都学会巧用iptables建立Linux防火墙,希望本文对大家有用!

相关内容