iptables建立规则和链的基本方法

   通过向防火墙提供有关对来自某个源、到某个目的地或具有特定协议类型的信息包要做些什么的指令,规则控制信息包的过滤。通过使用 netfilter/iptables 系统提供的特殊命令 iptables,建立这些规则,并将其添加到内核空间的特定信息包过滤表内的链中。关于添加/除去/编辑规则的命令的一般语法如下:

  代码如下:

  $ iptables [-t table] command [match] [target]

  表(table)

  [-t table] 选项允许使用标准表之外的任何表。表是包含仅处理特定类型信息包的规则和链的信息包过滤表。有三种可用的表选项:filter、nat 和 mangle。该选项不是必需的,如果未指定,则 filter 用作缺省表。

  filter 表用于一般的信息包过滤,它包含 INPUT、OUTPUT 和 FORWARD 链。nat 表用于要转发的信息包,它包含 PREROUTING、OUTPUT 和 POSTROUTING 链。如果信息包及其头内进行了任何更改,则使用 mangle 表。该表包含一些规则来标记用于高级路由的信息包,该表包含 PREROUTING 和 OUTPUT 链。

  注:PREROUTING 链由指定信息包一到达防火墙就改变它们的规则所组成,而 POSTROUTING 链由指定正当信息包打算离开防火墙时改变它们的规则所组成。

  命令(command)

  上面这条命令中具有强制性的 command 部分是 iptables 命令的最重要部分。它告诉 iptables 命令要做什么,例如,插入规则、将规则添加到链的末尾或删除规则。以下是最常用的一些命令:

  -A 或 –append:该命令将一条规则附加到链的末尾。

  示例:

  代码如下:

  $ iptables -A INPUT -s 205.168.0.1 -j ACCEPT

  该示例命令将一条规则附加到 INPUT 链的末尾,确定来自源地址 205.168.0.1 的信息包可以 ACCEPT。

  -D 或 –delete:通过用 -D 指定要匹配的规则或者指定规则在链中的位置编号,该命令从链中删除该规则。下面的示例显示了这两种方法。

  示例:

  代码如下:

  $ iptables -D INPUT –dport 80 -j DROP

  $ iptables -D OUTPUT 3

  第一条命令从 INPUT 链删除规则,它指定 DROP 前往端口 80 的信息包。第二条命令只是从 OUTPUT 链删除编号为 3 的规则。

  -P 或 –policy:该命令设置链的缺省目标,即策略。所有与链中任何规则都不匹配的信息包都将被强制使用此链的策略。

  示例:

  代码如下:

  $ iptables -P INPUT DROP

  该命令将 INPUT 链的缺省目标指定为 DROP。这意味着,将丢弃所有与 INPUT 链中任何规则都不匹配的信息包。

  -N 或 –new-chain:用命令中所指定的名称创建一个新链。

  示例:

  代码如下:

  $ iptables -N allowed-chain

  -F 或 –flush:如果指定链名,该命令删除链中的所有规则,如果未指定链名,该命令删除所有链中的所有规则。此参数用于快速清除。

  示例:

  代码如下:

  $ iptables -F FORWARD

  $ iptables -F

  -L 或 –list:列出指定链中的所有规则。

  示例:

  代码如下:

  $ iptables -L allowed-chain

  匹配(match)

  iptables 命令的可选 match 部分指定信息包与规则匹配所应具有的特征(如源和目的地地址、协议等)。匹配分为两大类:通用匹配和特定于协议的匹配。这里,我将研究可用于采用任何协议的信息包的通用匹配。下面是一些重要的且常用的通用匹配及其示例和说明:

  -p 或 –protocol:该通用协议匹配用于检查某些特定协议。协议示例有 TCP、UDP、ICMP、用逗号分隔的任何这三种协议的组合列表以及 ALL(用于所有协议)。ALL 是缺省匹配。可以使用 ! 符号,它表示不与该项匹配。

  示例:

  代码如下:

  $ iptables -A INPUT -p TCP, UDP

  $ iptables -A INPUT -p ! ICMP

  在上述示例中,这两条命令都执行同一任务 — 它们指定所有 TCP 和 UDP 信息包都将与该规则匹配。通过指定 ! ICMP,我们打算允许所有其它协议(在这种情况下是 TCP 和 UDP),而将 ICMP 排除在外。

  -s 或 –source:该源匹配用于根据信息包的源 IP 地址来与它们匹配。该匹配还允许对某一范围内的 IP 地址进行匹配,可以使用 ! 符号,表示不与该项匹配。缺省源匹配与所有 IP 地址匹配。

  示例:

  代码如下:

  $ iptables -A OUTPUT -s 192.168.1.1

  $ iptables -A OUTPUT -s 192.168.0.0/24

  $ iptables -A OUTPUT -s ! 203.16.1.89

  第二条命令指定该规则与所有来自 192.168.0.0 到 192.168.0.24 的 IP 地址范围的信息包匹配。第三条命令指定该规则将与除来自源地址 203.16.1.89 外的任何信息包匹配。

  -d 或 –destination:该目的地匹配用于根据信息包的目的地 IP 地址来与它们匹配。该匹配还允许对某一范围内 IP 地址进行匹配,可以使用 ! 符号,表示不与该项匹配。

  示例:

  代码如下:

  $ iptables -A INPUT -d 192.168.1.1

  $ iptables -A INPUT -d 192.168.0.0/24

  $ iptables -A OUTPUT -d ! 203.16.1.89

  目标(target)

  我们已经知道,目标是由规则指定的操作,对与那些规则匹配的信息包执行这些操作。除了允许用户定义的目标之外,还有许多可用的目标选项。下面是常用的一些目标及其示例和说明:

  ACCEPT:当信息包与具有 ACCEPT 目标的规则完全匹配时,会被接受(允许它前往目的地),并且它将停止遍历链(虽然该信息包可能遍历另一个表中的其它链,并且有可能在那里被丢弃)。该目标被指定为 -j ACCEPT。

  DROP:当信息包与具有 DROP 目标的规则完全匹配时,会阻塞该信息包,并且不对它做进一步处理。该目标被指定为 -j DROP。

  REJECT:该目标的工作方式与 DROP 目标相同,但它比 DROP 好。和 DROP 不同,REJECT 不会在服务器和客户机上留下死套接字。另外,REJECT 将错误消息发回给信息包的发送方。该目标被指定为 -j REJECT。

  示例:

  代码如下:

  $ iptables -A FORWARD -p TCP –dport 22 -j REJECT

  RETURN:在规则中设置的 RETURN 目标让与该规则匹配的信息包停止遍历包含该规则的链。如果链是如 INPUT 之类的主链,则使用该链的缺省策略处理信息包。它被指定为 -jump RETURN。示例:

  代码如下:

  $ iptables -A FORWARD -d 203.16.1.89 -jump RETURN

  还有许多用于建立高级规则的其它目标,如 LOG、REDIRECT、MARK、MIRROR 和 MASQUERADE 等。

  保存规则

  现在,您已经学习了如何建立基本的规则和链以及如何从信息包过滤表中添加或删除它们。但是,您应该记住:用上述方法所建立的规则会被保存到内核中,当重新引导系统时,会丢失这些规则。所以,如果您将没有错误的且有效的规则集添加到信息包过滤表,同时希望在重新引导之后再次使用这些规则,那么必须将该规则集保存在文件中。可以使用 iptables-save 命令来做到这一点:

  代码如下:

  $ iptables-save > iptables-script

  现在,信息包过滤表中的所有规则都被保存在文件 iptables-script 中。无论何时再次引导系统,都可以使用 iptables-restore 命令将规则集从该脚本文件恢复到信息包过滤表,如下所示:

  代码如下:

  $ iptables-rest

时间: 2024-10-28 06:22:54

iptables建立规则和链的基本方法的相关文章

建立有效外链的七大主流方法

外链推广是网站运营推广最基础的工作之一,也是网站前期推广的重要途径.做好外链推广能够最有效最直接的帮你带来流量,让你的网站得以传播的更好.同时外链推广也可以为你的搜索引擎优化添一把力,有效优质的外链能够帮助你的网站提高排名.今天就为大家讲一讲,建立有效外链的七大主流方法,让你轻松搞定外链推广. 一.动用人脉资源 作为站长虽说主要任务是运营维护你的网站,但建立自己的人脉资源也是日常工作中必不可少的重要部分.在互联网大家庭,如果你没有自己的人脉资源,只靠着单打独斗一腔热血是很难让你的网站发展壮大的.

linux系统防火墙iptables命令规则及配置

防火墙概述: 在互联网上我们的主机随时都有被攻击的可能,因此我们需要用到防火墙机制来保护我们互联网上的主机,在我们主机上面,防火墙主要是通过一些规则来限制一些不安全因素的网络信息传输,准确的说,防火墙就是制定一些有顺序的规则,来管理所负责的范围内的主机数据封包的一种机制,通过防火墙我们能够分析和过滤进出主机或者网络的封包数据,从而将一些不安全因素的包隔离开. iptables与netfilter: Linux上的防火墙是由iptables/netfilter组成,iptables是基于netfi

Ubuntu中保存iptables防火墙规则的例子

 buntu下保存iptables规则并开机自动加载的方法: Saving iptables 保存设置 机器重启后,iptables中的配置信息会被清空.您可以将这些配置保存下来,让iptables在启动时自动加载,省得每次都得重新输入.iptables-save和iptables-restore 是用来保存和恢复设置的. Configuration onstartup 开机自动加载配置 先将防火墙规则保存到/etc/iptables.up.rules文件中 # iptables-save >

史上最全外链资源寻找方法

很久没来A5发布文章了,期间都在从事seo培训工作,今天笔者在闲暇之余为大家分享一篇<史上最全外链资源寻找方法>的文章. 外链资源寻找的方法是数不胜数,大家只需百度一下便可以看到N个,但是笔者今天想要分享的是集个人多年seo经验总结出来的希望大家在绿萝算法推出的今天,外链对网站权重提升变得微乎甚微的情况下用心去阅读,搜索引擎再变也抵不过你多方平台发布外链,多方制造高质量外链等. 下面我们直接进入正题:以上是20种外链寻找方法 1.最简单最直接domain:网址,这个可以基本看到对手所发外链信息

网站高权重外链获得的方法

今天给大家介绍一下关于外链建设方面的内容,确切的说应该是高权重外链的建设方法.外链在关键词排名中的作用曾经是极为重要的,以前是外链为王中王,而内容占有的分量是极为小的.但是现在外链对关键词排名的提升作用已经非常微弱了,但是如果你的外链非常强大你也可以在某些情况下获得一个很好的排名.那么今天给不给大家讲一些其他的外链建设,今天讲的是高质量高权重外链.什么叫高权重外链大家一定要有一个概念,高权重外链意味着这个外链的权重是非常高的,博客如果你的PR是在5或者6那么这个是OK的,可以算是高权重的外链.但

增加网站高质量外链的十种方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 做为一个seo的人员都知道这样一句经典名言"内容为王,外链为皇".本人同样在以前的文章中也多次提到,而且曾经总结了几条增加外链的方法.但总结得并不详细,一条高质量的外链能起到的效果要好于多条垃圾外链.笔者分享一些增加高质量外链的方法: 一:向网站分类目录提交网站. 如提交给开放目录DMOZ,这些分类目录一般都是采用人工审核

iptables误删了某个链,需要恢复

问题描述 iptables误删了某个链,需要恢复 一.用iptables -t nat -L PREROUTING查看到的结果的每一列是什么意思? 二.我将原来一行net_pre_wan_conn all -- anyway anyway这一行给删了怎么恢复,他原来在第13行. 解决方案 iptables -t nat -L PREROUTING 是查看nat表中的PREROUTING规则链.... 删除了,再添加这条规则不就好了...iptabes -t nat -A PREROUTING..

centOS7 下利用iptables配置IP地址白名单的方法_Linux

编辑iptables配置文件,将文件内容更改为如下,则具备了ip地址白名单功能 #vim /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -N whitelist -A whitelist -s 1.2.3.0/24 -j ACCEPT -A whitelist -s 4.5.6.7 -j ACCEPT -A INPUT -m state --state

linux系统防火墙iptables命令规则及配置的示例

linux系统防火墙iptables命令规则及配置的示例(本机IP为172.16.63.7): 1.允许172.16网段内的主机访问: #iptables -t filter -A INPUT -s 172.16.0.0/16 -d 172.16.63.7 -j ACCEPT 译:-t表,默认filter -A追加规则 INPUT进入 -s检查源 -d检查目标 -j处理动作 ACCEPT接受:入栈的目标是本机所以-d是本机IP: 2.以数值格式显示详细信息,列出表中链上的规则: #iptable