无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 109406|回复: 102
打印 上一主题 下一主题

[原创首发]Linux防火墙iptables设置基础

  [复制链接]
跳转到指定楼层
#
发表于 2007-11-28 11:29:35 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
iptables设置基础
文本下载:
iptables设置基础.rar (49.46 KB, 下载次数: 1619)

原作:lvyanan EMAIL: lvyanan@hotmail.com
2005年11月19日

iptables是针对Linux防火墙 netfilter的管理配置工具。在进行iptables防火墙设置前,必须打开系统内核的IP转发功能,使系统成为路由器。在Red Hat中有以下两种方法实现:
1.修改内核变量ip_forward
#echo "1" > /proc/sys/net/ipv4/ip_froward
2.修改脚本/etc/sysconfig/network
将FROWARD_IPV4=false 改为 FROWARD_IPV4=true
一、数据包流经netfilter防火墙的路径
1.流入本机数据包的路径:
所属表           mangle         nat                    mangle    nat     filter
网络数据包 à PREROUTING à PREROUTING à 路由选择 à INPUT à INPUT à INPUT à 本地处理进程
2.流出本机数据包的路径:
所属表           mangle    filter                 mangle          nat
本地处理进程 à OUTPUT à OUTPUT à 路由选择 à POSTROUTING à POSTROUTING à 外部网络
3.流经本机转发的数据包的路径:
所属表      mangle       nat                      mangle    filter      mangle         nat
A端网络 à PREROUTING à PREROUTING à 路由选择 à FORWARD à FORWARD à POSTROUTING à POSTROUTING à B端网络

注:①.路径上某表链规则匹配数据包并进行ACCEPT、DROP、REJECT操作时,ACCEPT使数据包直接到达目的地,DROP和REJECT则当场丢弃数据包,该数据包不会在后续路径上再出现,故会影响其它表的操作。
②.PREROUTING和POSTROUTING链只对请求连接的包进行操作,对属于该连接的后续包,不予比对规则,只按已确定的规则自动进行操作,因此建议不要在此链上作过滤操作,否则将漏掉对后续包的过滤。
二、iptables指令的基本格式:
    <iptables> [-t table] < COMMAND>  [chains] [rule-matcher] [ -j target ]
      <指令>   [指定表] <指定操作命令> [指定链]  [指定匹配规则]  [指定目标动作]
    注:<>括起来的为必设项,[]括起来的为可设项。iptables指令要求严格区分大小写
三、iptables指令的语法规则要素:
1、netfilter表(Table)
netfilter的表操作是以-t或--table<table>来指定的,未指定时默认为filte表。共有以下三种表:
      .Filter表 (过滤表)
      .Nat表 (网络地址转换表)
      .Mangle表 (数据包处理表)
2、常用操作命令(Command)
-A 或--append 在所选的链尾加入一条或多条规则。
-D 或--delete 从所选的链中删除一条或多条匹配的规则。
-R 或--replace 在所选的链中替换一条匹配的规则,需指定规则中的数字。
-I 或--insert 按给出的规则号在所选的链中插入一条规则。
-L 或--list 列出指定链的全部规则,如未指定链,则列出所有链的全部规则。
-F 或--flush 清除指定链和表中的全部规则,如未指定链,则所有链都将被清。
-N 或--new-chain 以给定的名字创建一条新的用户自定义链,不能与已有的链同名。
-X 或--delete-chain 删除指定的用户自定义链,必须保证链中的规则不在使用才能删除,若未指定链,则删除所有用户自定义链。
-P 或--policy 为内置链指定默认规则(链政策)。用户自定义链没有默认规则,其默认规则是规则链中的最后一条规则,用-L命令时它显示在第一行。
-E 或--rename-chain 根据用户给出的名字对指定的自定义链进行重命名,该命令不影响Table的结构。
-C 或--check 检查给定的包是否与指定的规则相匹配。
-Z 或--zero 将指定链中所有规则的数据包(PKTS)和字节(byte)计数器清零。该计数器用来计算同一数据包出现的次数,是过滤阻断式攻击不可或缺的工具。
-h 或--help 给出当前命令语法的简短说明。
3、链(Chains)
①.INPUT链 处理输入的规则链。
②.OUTPUT链 处理输出包的规则链。
③.FORWARD链 处理转发包的规则链。
④.PREROUTING链 对到达且未经路由判断之前的包进行处理的规则链。
⑤.POSTROUTING链 对发出且经过路由判断之后的包进行处理的规则链。
⑥.用户自定义链 是由filter表内置链来调用的,它是针对调用链获取的数据包进行处理的规则链。
注:①.Filter表有INPUT、OUTPUT、FORWARD和自定义四种链形式。
    ②.Nat表有OUTPUT、PREROUTING、POSTROUTING三种链形式。
    ③.Mangle表有INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING五种链形式。
4、常用匹配规则(rule Matcher)
-c或--set-counters 重新设置规则的计数器,可指定PKTS和BYTES选项来设置计数器计数规则。
-s 或--source [!] address[/mask] 指定匹配规则的源主机名称、源IP地址或源IP地址范围。
--sport 或--source-port [!] port[:port] 指定匹配规则的源端口或源端口范围,可用端口号,也可用/etc/services文件中的名字, 端口范围格式xxx:yyy。
-d 或--destination [!]address[/mask] 指定匹配规则的目的地址或目的地址范围。
--dport 或--destination-port [!] port[:port] 指定匹配规则的目的端口或目的端口范围,可用端口号,也可用/etc/services文件中的名字, 端口范围格式xxx:yyy。
-i 或--in-interface [!]interface name[+] 指定匹配规则的对内网络接口名,默认则符合所有接口,可制定暂未工作的接口,待其工作后才起作用,该选项只对INPUT、FROWARD和PREROUTING链是合法的。
-o 或—out-interface[!]interface name[+] 指定匹配规则的对外网络接口名,默认则符合所有接口,可制定暂未工作的接口,待其工作后才起作用,该选项只对OUTPUT、FROWARD和POSTROUTING链是合法的。
-j 或--jump 指定规则的目标即动作或跳转,如未指定则此规则无任何效果。
-p 或--protocol [!] protocol 指定匹配规则的通讯协议,如:tcp、udp、icmp、all,如未指定则匹配所有通讯协议。
--icmp-type [!]typename 指定匹配规则的ICMP消息类型,选项后需有一个icmp名称类型、数字类型(如3)、或一对用/号分隔的数字类型和编码(如3/3),可用以下命令查看有效的icmp类型名表: iptables -p icmp -h
-f  
规则应用于IP数据包第二分片以后的分片。

--tcp-option 这个选项后需接一个数字,用来匹配tcp选项等于该数字的数据包。如果需要检查tcp选项,那些tcp表头部完整的数据包就会被自动删除。
--tcp-flags 此选项后需接2个参数,以对TCP标志进行筛选。第一个参数表示屏蔽(MASK),它可用来指定数据包中需要检查的TCP标志,而第二个参数表示需要设置的标准,可用的标志包括:SYN、ACK、FIN、RST、URG、PSH、ALL和NONE等,如果指定多个标志,则每个标志间需以逗号分隔。以下范例表示所有标志都要检查,但只有SYN和ACK被设置。
例:iptables –A INPUT –protocol tcp –tcp-flags ALL SYN,ACK –j DENY
-l 在系统日志/var/log/messages中记录与该规则匹配的数据包。
-v 详细输出。
-n 当显示时,不对IP地址执行DNS查找。
[!] -y -y表明tcp握手中的连接请求标志位SYN;!-y表示对该请求的响应。
[!]-syn 指定仅仅匹配设置了SYN位,清除了ACK、FIN位的TCP包,该参数仅针对TCP协议类型使用。
-m -state 标记数据包。
注:“!”为逻辑非;接口名后跟“+”表示所有以此接口名开头的接口都会被匹配。
附:匹配条件扩展:
 TCP-----匹配源端口,目的端口,及tcp标记的任意组合,tcp选项等。
 UPD-----匹配源端口和目的端口
 ICMP----匹配ICMP类型
 MAC-----匹配接收到的数据的mac地址
 MARK----匹配nfmark
  OWNE----(仅仅应用于本地产生的数据包)来匹配用户ID,组ID,进程ID及会话ID
   TOS——匹配IP头的TOS字段的值。
  LIMIT---匹配特定时间段内的数据包。这个扩展匹配对于限制dos攻击数据流非常有用。
  STATE---匹配特定状态下的数据包(由连接跟踪子系统来决定状态),可能的状态包括:
  INVALID---不匹配于任何连接的数据包
  ESTABLISHED--- 属于某个已经建立的连接的数据包
  NEW--- 请求建立连接的数据包
   RELATED---属于某个已建立连接产生的新连接的数据包,例如一个ICMP错误消息或ftp数据连接
5、目标动作(Target)
当规则匹配一个包时,要执行的目标动作以-j参数标识。
①.Filter表的目标动作:
ACCEPT 允许数据包通过。
DROP 丢弃数据包。
②.Nat表的目标动作:
SNAT 修改数据包的源地址。
MASQUERADE 修改数据包的源地址,只用于动态分配IP地址的情况。
DNAT 修改数据包的目标地址。
REDIRECT 将包重定向到进入系统时网络接口的IP地址,目标端口改为指定端口。
③.Mangle表的目标动作:
TTL
TOS 用来设置IP表头中8位长度的TOS字段的值,此选项只在使用Mangle Tables时才有效。
MARK 对数据包进行标记,供其它规则或数据包处理程序使用,此选项只在Mangle表中使用。
④.扩展的目标动作:
REJECT 丢弃数据包的同时返回给发送者一个可配置的错误信息
LOG 将匹配的数据包信息,传递给syslog()进行记录
ULOG 将匹配的数据包信息,使用用户空间的log进程进行记录。
MIRROR 互换源和目的地址以后重新传输该数据包。
TOS 改写包的TOS值。
QUEUE 表示把这个包重导入本机的队列中。
RETURN 表示跳离这条链的匹配,如果是用户自定义链,就会返回原链的下一个规则处继续检查,如果是内置链,那会参考政策来处理数据包。
注:要使用扩展的目标动作,必须在内核中激活相应选项或装载相应内核模块。
四、iptables规则集的保存、恢复和启动
1、保存与恢复
用iptables指令在内存中逐条建立起来的规则集,经测试通过后,可用iptables-save命令保存,其中/etc/sysconfig/iptables是iptables守护进程调用的默认规则集文件。
保存规则集命令:
#/sbin/iptables-save > /etc/sysconfig/iptables
恢复规则集命令:
#/sbin/iptables-restore < /etc/sysconfig/iptables
2、iptables规则集脚本的启动
①.默认脚本的启动
Red Hat iptables的启动脚本文件/etc/rc.d/init.d/iptables在每次启动时都要使用/etc/sysconfig/iptables提供的规则进行规则恢复,并可以使用如下命令保存规则:
#service iptables save
②.自定义脚本的启动
用户可以在自定义脚本中直接用iptables命令编写一个规则集,并在启动时执行这个脚本。设用户自定义脚本文件名为/etc/fw/rules,则可以在启动脚本/etc/rc.d/rc.local中加入代码:if[-x/etc/fw/rules];then /etc/fw/rules;fi;即可在每次启动时执行该脚本。
注:如果使用此种方式,建议使用ntsysv命令关闭系统的iptables守护进程。

[ 本帖最后由 lvyanan 于 2009-2-26 08:11 编辑 ]

点评

辛苦了  发表于 2024-6-4 19:11

评分

参与人数 2无忧币 +7 收起 理由
yyz2191958 + 2 赞一个!
grub4dos + 5

查看全部评分

推荐
发表于 2007-12-20 00:08:02 | 只看该作者
一个简单的shell命令,可以用来拒绝某个IP对80端口的访问。如
sh ipadd.sh 10.0.0.1

ipadd.sh
  1. iptables -I INPUT -s $1/32 -p tcp -m tcp --dport 80 -j DROP
  2. iptables-save > /etc/sysconfig/iptables
复制代码
回复

使用道具 举报

推荐
发表于 2007-12-19 23:55:45 | 只看该作者
学习一下,这个挺有用的,我马上要用上它。加精华!
回复

使用道具 举报

推荐
 楼主| 发表于 2007-12-15 10:53:49 | 只看该作者
没人顶就只好自己躺沙发了,一些朋友想学习Linux系统,而一旦开始学习,马上会遇到一个难题,即如何面对Linux防火墙的问题,网上一般是教你如何去回避它,将其功能关闭,我以为这样做是不对的,Linux系统的网络功能是最强的,这是它的长处,而其防火墙功能又是网络功能的保障和扩展,掌握了它我们可以很容易的将一台Linux主机设置为一台网关、路由器以及防火墙,性能决不逊于专用防火墙和专用路由器,特别是其针对多网卡的灵活配置,是Windows系统望尘莫及的,我希望有志于从事网络方面工作的朋友,花一些时间去研究它,一旦有所掌握,对你网络技术的提高,必将产生突飞猛进的推动作用。我学习Linux就是从研究其防火墙技术而真正开始的,用了半年时间搜集资料和研究实验,终于掌握了该技术,本帖是我学习的精华,网上很难找到,此地是原创首发,居然无人识货,悲哀!太悲哀了!我断定此文必将是墙内开花墙外香!

[ 本帖最后由 lvyanan 于 2008-1-15 03:51 PM 编辑 ]
回复

使用道具 举报

98#
发表于 2023-6-23 18:07:27 | 只看该作者
感谢分享
回复

使用道具 举报

97#
发表于 2023-6-23 09:43:29 | 只看该作者
学习一下
回复

使用道具 举报

96#
发表于 2023-6-23 05:11:52 | 只看该作者
很好的学识。支持了!
回复

使用道具 举报

95#
发表于 2023-3-25 14:28:53 | 只看该作者
楼主辛苦了
回复

使用道具 举报

94#
发表于 2023-3-25 13:23:32 来自手机 | 只看该作者
多谢!
回复

使用道具 举报

93#
发表于 2022-12-24 12:24:15 来自手机 | 只看该作者
linux慢慢用着感觉比windows好用了。主要是不玩游戏。
回复

使用道具 举报

92#
发表于 2022-10-6 19:42:31 | 只看该作者
MARK
回复

使用道具 举报

91#
发表于 2022-9-14 13:12:46 | 只看该作者
多谢楼主提供教程,下载学习
回复

使用道具 举报

90#
发表于 2022-1-26 14:39:04 来自手机 | 只看该作者
多谢分享受生活
回复

使用道具 举报

89#
发表于 2021-3-11 23:40:21 来自手机 | 只看该作者
学习学习
回复

使用道具 举报

88#
发表于 2021-2-1 11:09:48 | 只看该作者
好深奥啊刚接触不是太懂学习中
回复

使用道具 举报

87#
发表于 2020-10-31 10:03:50 | 只看该作者
现在国家推出国产操作系统银河麒麟,linux的优点会被大家发现,发展光大的。
回复

使用道具 举报

86#
发表于 2020-10-20 11:37:51 | 只看该作者
感谢lz的干货分享,最近在学到这个
回复

使用道具 举报

85#
发表于 2020-10-20 07:53:08 | 只看该作者
牛人的教程
回复

使用道具 举报

84#
发表于 2020-6-23 21:48:49 来自手机 | 只看该作者
不错
回复

使用道具 举报

83#
发表于 2020-1-21 11:26:38 | 只看该作者
防火墙别随手关
还是学学怎么开放端口吧
回复

使用道具 举报

82#
发表于 2019-10-14 11:27:19 | 只看该作者
不错  很详细~~ 很实用~
回复

使用道具 举报

81#
发表于 2016-3-26 13:23:27 | 只看该作者
这个有用
回复

使用道具 举报

80#
发表于 2015-1-11 01:00:51 | 只看该作者
精品,谢谢分享
回复

使用道具 举报

79#
发表于 2014-11-27 10:47:19 | 只看该作者
感谢楼主,对我这样的新手来说这非常实用。,,认真学习iptables,,
回复

使用道具 举报

78#
发表于 2014-9-4 17:15:11 | 只看该作者
好贴,搞了好久没搞懂的这个,学习,收藏,感谢楼主!!
回复

使用道具 举报

77#
发表于 2014-7-28 15:53:09 | 只看该作者
好深奥啊刚接触不是太懂
回复

使用道具 举报

76#
发表于 2014-6-10 00:05:23 | 只看该作者
下游软件多了我就会用的!
回复

使用道具 举报

75#
发表于 2014-4-17 12:51:53 | 只看该作者
防火墙必须支持!!!!!
回复

使用道具 举报

74#
发表于 2014-4-6 19:21:33 | 只看该作者
很有知识的贴子,顶一个。
回复

使用道具 举报

73#
发表于 2014-2-8 21:10:13 | 只看该作者
5年后的今天这些精华依然有用,虽然我是初学者,但是楼主却给了我一个方向,那就是linux的防火墙的功能非常强大,用好了不逊色于专业的防火墙和专业的路由器。
回复

使用道具 举报

72#
发表于 2013-12-27 11:34:59 | 只看该作者

Womens Barbour Storm Down Waxed Quilted Gilet

Barbour. Cheap Uggs. The filters have a good lifespan; each filter can effectively clean 3000 gallons of water, providing you 6000 gallons in total. You need to go for Moses baskets that have sturdy stands. You can transport them almost everywhere you go to get good sleep while you travel. Basically, they are in the audio version of any content, where the book is read aloud by a person with good reading skills. Womens Barbour Gilets Jackets. There are so many styles to choose from it can be quite daunting knowing where to begin. But, how to do this in the best cost-effective manner. Womens Barbour Storm Down Waxed Quilted Gilet. Perhaps, he was well aware that it was way better to give a gift to all his women college friends instead of facing their being fussy. While most online forms may only ask for an individual's name, address, telephone number, etc. For starters,this robot hasyet to pick a losing stock. ost Madagascar craftsmen enter into agreements with foreign groups to help them promote their products. Organic products will smell just like the ingredients they are made of, such as lavender, coconut milk, papaya, and other sweet-smelling ingredients.
Article Source: http://www.8onshop.com/
  
   Cheap Canada Goose Womens Camp Hooded Jacket Brown
  
   PJS Parajumpers UGO Super Lightweight Spring 2013
  
   Hot Sale Discount Youth s Canada Goose Chilliwack
回复

使用道具 举报

71#
发表于 2013-10-16 21:36:25 | 只看该作者
確是好文章, 對初學者大有幫助.
回复

使用道具 举报

70#
发表于 2013-4-4 18:54:33 | 只看该作者
好帖子对于学习linux 是非常爽的
回复

使用道具 举报

69#
发表于 2013-1-13 08:44:54 | 只看该作者
不错不错,目前还用不上,先顶顶顶顶上。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-14 05:01

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表