IPTABLES 规则(Rules)
iptables详解及一些常用规则

iptables详解及⼀些常⽤规则iptables简介netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防⽕墙,与⼤多数的Linux软件⼀样,这个包过滤防⽕墙是免费的,它可以代替昂贵的商业防⽕墙解决⽅案,完成封包过滤、封包重定向和⽹络地址转换(NAT)等功能。
iptables基础规则(rules)其实就是⽹络管理员预定义的条件,规则⼀般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。
规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、⽬的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。
当数据包与规则匹配时,iptables就根据规则所定义的⽅法来处理这些数据包,如放⾏(accept)、拒绝(reject)和丢弃(drop)等。
配置防⽕墙的主要⼯作就是添加、修改和删除这些规则。
iptables和netfilter的关系:这是第⼀个要说的地⽅,Iptables和netfilter的关系是⼀个很容易让⼈搞不清的问题。
很多的知道iptables却不知道netfilter。
其实iptables只是Linux防⽕墙的管理⼯具⽽已,位于/sbin/iptables。
真正实现防⽕墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构。
iptables传输数据包的过程①当⼀个数据包进⼊⽹卡时,它⾸先进⼊PREROUTING链,内核根据数据包⽬的IP判断是否需要转送出去。
②如果数据包就是进⼊本机的,它就会沿着图向下移动,到达INPUT链。
数据包到了INPUT链后,任何进程都会收到它。
本机上运⾏的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。
③如果数据包是要转发出去的,且内核允许转发,数据包就会如图所⽰向右移动,经过FORWARD链,然后到达POSTROUTING链输出。
iptables加规则

iptables加规则iptables是一个强大的Linux防火墙工具,可以用来配置、管理网络规则,控制网络流量和保护系统安全。
通过添加规则,可以限制或允许特定的网络连接和通信。
以下是iptables加规则的相关参考内容,涵盖了常见的使用场景和示例:1. 设置默认规则:iptables有三个默认规则:ACCEPT(接受)、DROP(丢弃)和REJECT(拒绝)。
例如,设置默认规则为DROP:`iptables -P INPUT DROP`、`iptables -P FORWARD DROP`、`iptables -P OUTPUT DROP`。
2. 允许特定IP或IP范围:通过添加规则,可以允许特定的IP或IP范围通过防火墙。
例如,允许IP为192.168.0.1通过防火墙:`iptables -A INPUT-s 192.168.0.1 -j ACCEPT`。
3. 允许特定端口:可以通过添加规则来允许特定的端口通过防火墙。
例如,允许TCP协议的端口22通过防火墙:`iptables -A INPUT -p tcp --dport 22 -j ACCEPT`。
4. 防止SYN Flood攻击:SYN Flood攻击是一种常见的DoS(拒绝服务)攻击,使用大量虚假的TCP连接请求,耗尽系统资源。
可以通过限制每秒钟接受的新的TCP连接请求数量来防止SYN Flood攻击:```iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT iptables -A INPUT -p tcp --syn -j DROP```5. 设置反向链:反向链用于处理出站连接的流量,可以通过添加规则来配置。
例如,允许本地主机连接到外部网络:`iptables -A OUTPUT -j ACCEPT`。
6. 防止DDoS攻击:DDoS(分布式拒绝服务)攻击是一种通过使用多个计算机或设备来同时发送大量请求,使目标系统负载过载的攻击方式。
tc命令与iptables规则

tc命令与iptables规则tc命令与iptables规则是两个非常重要的Linux命令工具,它们在网络管理和安全方面起到了关键作用。
本文将一步一步回答关于这两个主题的问题,从基础知识到实际应用进行详细介绍。
一、什么是tc命令?tc命令是Linux中的一个网络管理工具,全称为Traffic Control,用于控制和配置网络流量。
通过tc命令,可以实现带宽控制、流量整形和优先级设置等功能,从而确保网络资源的有效分配和优化。
1. tc命令的基本语法tc命令的基本语法如下:tc [options] action command [command-options]其中,options是一些可选的参数,action是指定具体的操作(如add、change、del等),command表示要执行的具体操作(如qdisc、class、filter等),command-options是操作相关的选项参数。
2. tc命令中的关键概念在使用tc命令时,有几个关键概念需要了解:- qdisc(Queueing Discipline):队列调度器,用于控制数据包的排队和调度。
常用的qdisc包括pfifo、sfq、htb等。
- class(分类):用于对数据包进行分类和分组。
每个分类可以应用不同的qdisc和过滤规则。
- filter(过滤器):用于根据特定的条件过滤数据包。
可以根据源IP、目标IP、协议、端口等进行过滤。
二、什么是iptables规则?iptables规则是Linux中的一个防火墙工具,用于配置和管理网络包过滤。
通过iptables规则,可以实现网络流量的过滤、转发和NAT等功能,从而保护网络资源的安全。
1. iptables规则的基本语法iptables规则的基本语法如下:iptables -t table_name command [command-options] [match] [target]其中,table_name表示所使用的表,常用的表包括filter、nat、mangle 等;command表示具体要执行的操作,常用的操作包括-A、-D、-I等;command-options是一些选项参数;match是匹配条件,用于指定要匹配的字段和条件;target是要执行的动作,比如ACCEPT、DROP、REJECT 等。
Linux下防火墙iptables用法规则详及其防火墙配置

Linux下防⽕墙iptables⽤法规则详及其防⽕墙配置转:iptables规则规则--顾名思义就是规矩和原则,和现实⽣活中的事情是⼀样的,国有国法,家有家规,所以要遵纪守法的嘛。
当然在防⽕墙上的规则,在内核看来,规则就是决定如何处理⼀个包的语句。
如果⼀个包符合所有的条件,我们就⽤相应的处理动作来处理。
书写规则的语法格式为:iptables [-t table] command chains [creteria] -j action-t table就是表名,filter/nat/mangle三个表中的⼀个,默认是filter表command告诉程序如何做,⽐如:插⼊⼀个规则,还是删除等chains 链,有五个,PREROUTING POSTROUTING INPUT OUTPUT FORWARDaction 处理动作,有ACCEPT DENY DROP REJECT SNAT DNAT理⼀下思路下⾯⼀点点的说⼀、Tables选项-t⽤来指定⽤哪个表,它可以是下⾯的任何⼀个,默认的是filter表⼆、COMMANDScommand指定iptables对我们提交的规则要做什么样的操作。
这些操作可能是在某个表⾥增加或删除⼀些东西,或其他的动作。
⼀下是iptables可⽤的command(如不做说明,默认表是filter)和命令结合常⽤的选项三、chains简单说⼀下五个链的作⽤:PREROUTING 是在包进⼊防⽕墙之后、路由决策之前做处理POSTROUTING 是在路由决策之后,做处理INPUT 在包被路由到本地之后,但在出去⽤户控件之前做处理OUTPUT在去顶包的⽬的之前做处理FORWARD在最初的路由决策之后,做转发处理四、匹配条件4.1 基本匹配4.2 隐含扩展匹配这种匹配操作是⾃动的或隐含的装⼊内核的。
例如使⽤-p tcp时,不需要再装⼊任何东西就可以匹配只有IP包才有的特点。
隐含匹配针对三种不同的协议,即TCP UDP ICMP。
iptables命令、规则、参数详解

iptables命令、规则、参数详解表 (table)包含4个表:4个表的优先级由高到低:raw-->mangle-->nat-->filterraw---RAW表只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。
一但用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了.filter---这个规则表是预设规则表,拥有INPUT、FORWARD 和OUTPUT 三个规则链,这个规则表顾名思义是用来进行封包过滤的理动作net----此规则表拥有prerouting和postrouting两个规则链,主要功能为进行一对一、一对多、多对多等网址转译工作(SNATDNAT)mangle--此规则表拥有prerouting、FORWARD、postrouting 三个规则链,除了进行网址转译工作会改写封包外,在某些特殊应用可能也必须去改写封包(ITL、TOS)或者是设定MARK(将封包作记号,以进行后续的过滤)这时就必须将这些工作定义在mangles规则表中常用命令:-A 追加规则-->iptables -A INPUT-D 删除规则-->iptables -D INPUT 1(编号)-R 修改规则-->iptables -R INPUT 1 -s 192.168.12.0 -j DROP 取代现行规则,顺序不变(1是位置)-I 插入规则-->iptables -I INPUT 1 --dport 80 -j ACCEPT 插入一条规则,原本位置上的规则将会往后移动一个顺位-L 查看规则-->iptables -L INPUT 列出规则链中的所有规则-N 新的规则-->iptables -N allowed 定义新的规则通用参数:-p 协议例:iptables -A INPUT -p tcp-s源地址例:iptables -A INPUT -s 192.168.1.1-d目的地址例:iptables -A INPUT -d 192.168.12.1-sport源端口例:iptables -A INPUT -p tcp --sport 22-dport目的端口例:iptables -A INPUT -p tcp --dport 22-i指定入口网卡例:iptables -A INPUT -i eth0-o指定出口网卡例:iptables -A FORWARD -o eth0-j 指定要进行的处理动作常用的ACTION:DROP:丢弃REJECT:明示拒绝ACCEPT:接受SNAT基于原地址的转换source--指定原地址比如我们现在要将所有192.168.10.0网段的IP在经过的时候全都转换成172.16.100.1这个假设出来的外网地址:iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 172.16.100.1(外网有效ip)这样,只要是来自本地网络的试图通过网卡访问网络的,都会被统统转换成172.16.100.1这个IP.MASQUERADE(动态伪装)--家用带宽获取的外网ip,就是用到了动态伪装iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADEDNAT目标地址转换destination-指定目标地址iptables -t nat -A PREROUTING -d 192.168.10.18 -p tcp --dport 80 -j DNAT --to-destination 172.16.100.210.18访问80端口转换到100.2上MASQUERADE:源地址伪装REDIRECT:重定向:主要用于实现端口重定向MARK:打防火墙标记的RETURN:返回在自定义链执行完毕后使用返回,来返回原规则链。
linux防火墙iptables常用规则(屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链)

linux防火墙iptables常用规则(屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链)一、iptables:从这里开始删除现有规则iptables -F(OR)iptables --flush设置默认链策略iptables的filter表中有三种链:INPUT, FORWARD和OUTPUT。
默认的链策略是ACCEPT,你可以将它们设置成DROP。
iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT DROP你需要明白,这样做会屏蔽所有输入、输出网卡的数据包,除非你明确指定哪些数据包可以通过网卡。
屏蔽指定的IP地址以下规则将屏蔽BLOCK_THIS_IP所指定的IP地址访问本地主机:BLOCK_THIS_IP="x.x.x.x"iptables -A INPUT -i eth0 -s "$BLOCK_THIS_IP" -j DROP (或者仅屏蔽来自该IP的TCP数据包)iptables -A INPUT -i eth0 -p tcp -s "$BLOCK_THIS_IP" -j DROP允许来自外部的ping测试iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPTiptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT允许从本机ping外部主机iptables -A OUTPUT -p icmp --icmp-type echo-request -jACCEPTiptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT允许环回(loopback)访问iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT二、iptables:协议与端口设定允许所有SSH连接请求本规则允许所有来自外部的SSH连接请求,也就是说,只允许进入eth0接口,并且目的端口为22的数据包iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state--state ESTABLISHED -j ACCEPT允许从本地发起的SSH连接本规则和上述规则有所不同,本规则意在允许本机发起SSH 连接,上面的规则与此正好相反。
1.iptables规则详解

1.iptables规则详解1.什么是防⽕墙,防⽕墙的种类有哪些防⽕墙:古⼈⽤来隔绝失⽕后的⾼墙,阻挡外来的⽕势,起到了隔离的⼿段。
在互联⽹上,我们会采⽤类似于防⽕墙的⽅法,来保护我们的⽹络不受外来攻击,为此我们需要设定⼀些防⽕墙的规则,确定哪些数据允许通过,哪些不能通过,具有这种功能的设备或软件,我们将其称为防⽕墙防⽕墙的种类:逻辑层⾯:主机防⽕墙:针对单个主机进⾏防护,例如Windows防⽕墙⼀般是软件⽹络防⽕墙:处于⽹路⼊⼝的边缘,针对⽹络⼊⼝进⾏防护⼀般是硬件,也可以⽤软件物理层⾯:硬件防⽕墙:⼀个实体的硬件,嵌⼊软件,实现防⽕墙的功能,性能⾼,成本⾼软件防⽕墙:通过软件的⽅式,模拟防⽕墙的功能,运⾏在操作系统上⾯,性能低,成本低2.iptables介绍1.什么是iptables?iptables可以理解为是⼀个代理程序,⽤户通过代理程序,将安全规则添加到安全框架中 net filter(内核空间)netfilter/iptables 是Linux中的包过滤型防⽕墙,是免费的,可以代替昂贵的商业防⽕墙解决⽅案,可以实现数据包的过滤,实现数据包的转换。
2.什么是包过滤防⽕墙?包过滤型防⽕墙在我们⽹络层拦截⽹络数据包的包头(header),可以针对数据包的包头,与我们事先准备好的防⽕墙规则进⾏⽐对,与规则相匹配的包放⾏,不匹配的包丢弃或者执⾏⼀些复杂的动作,包过滤型防⽕墙⼀般作⽤在我们的⽹络层,故通常header中带有客户端来源IP,源端⼝,⽬标IP,⽬标端⼝,协议类型:tcp udp icmp,根据这些状态信息来判断,是否符合我们的IP tables的过滤规则,符合通过,不然拒绝。
3.包过滤型防⽕墙是怎么实现的?是基于net filter安全框架实现的,是内核的⼀部分,如果我们想要让防⽕墙达到防⽕的⽬的,需要我们在内核中,设定⼀些关卡,所有进出的报⽂,根据设定的这些关卡进⾏检查,将符合条件的放⾏,不符合的阻⽌,在net filter中,这些关卡就是链3.iptables链的概念1.什么是链?防⽕墙的作⽤就是在于将经过的报⽂与设定的规则进⾏⽐对,然后执⾏响应的动作,报⽂经过链时,必须匹配链的规则,在链上不⽌⼀条规则,存在着很多规则,当我们将这些规则穿在⼀起的时候就形成了链链的匹配规则,如下图所⽰,当有报⽂经过时,会以此往下匹配规则,如果匹配成功,则执⾏相对于的动作,如果匹配不成功,就以此往下匹配,直到最后⼀条规则还是没有匹配成功,会执⾏链的默认规则。
kvm iptables 规则

kvm iptables 规则KVM(Kernel-based Virtual Machine)是一种开源的全虚拟化解决方案,它将Linux内核转变为一个Hypervisor(虚拟机监控程序),允许在一台物理机上同时运行多个虚拟机。
而iptables是在Linux系统中常用的防火墙工具,用于控制和过滤网络流量。
本文将详细介绍在KVM虚拟化环境下如何使用iptables 来设置防火墙规则,保护虚拟机的网络安全。
第一步:安装KVM和iptables在开始之前,我们需要先安装KVM和iptables。
KVM的安装可以通过包管理器,如yum或apt-get,来完成。
对于iptables,它通常已经预装在大部分Linux 发行版中,如果没有安装,可以通过类似的方式进行安装。
第二步:了解iptables基础知识在深入讲解如何使用iptables设置防火墙规则之前,我们需要先了解一些iptables的基础知识。
iptables使用规则链(rules chain)来确定数据包的处理方式。
默认情况下,iptables有三个主要的规则链:INPUT(输入)、FORWARD (转发)和OUTPUT(输出)。
- INPUT链用于过滤来自网络或其他虚拟机的数据包,目的是保护宿主机。
- FORWARD链用于过滤转发给其他虚拟机的数据包。
- OUTPUT链用于过滤离开虚拟机的数据包。
每个规则链包含一系列规则(rules),这些规则指定了数据包的处理方式。
每个规则由若干个匹配条件和一个跳转目标组成。
当数据包匹配到规则中的所有条件时,iptables将执行该规则中指定的操作或跳转至目标。
第三步:创建iptables规则在KVM虚拟化环境中,我们可以使用iptables来设置网络防火墙规则,以保护虚拟机的网络安全。
接下来,让我们一步一步创建几个常见的iptables规则。
1. 基本防火墙规则首先,我们可以设置一些基本的防火墙规则,以阻止未经授权的访问。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、IPTABLES 规则(Rules)牢记以下三点式理解 iptables 规则的关键: Rules 包括一个条件和一个目标(target) 如果满足条件,就执行目标(target)中的规则或者特定值。
如果不满足条件,就判断下一条 Rules。
目标值(Target Values)下面是你可以在 target 里指定的特殊值: ACCEPT – 允许防火墙接收数据包 DROP – 防火墙丢弃包 QUEUE – 防火墙将数据包移交到用户空间 RETURN – 防火墙停止执行当前链中的后续 Rules, 并返回到调用链(the calling chain)中。
如果你执行 iptables --list 你将看到防火墙上的可用规则。
下例说明当前系统没 有定义防火墙,你可以看到,它显示了默认的 filter 表,以及表内默认的 input 链, f orward 链, output 链。
# iptables -t filter --list Chain INPUT (policy ACCEPT) target prot opt source destinationChain FORWARD (policy ACCEPT) target prot opt source Chain OUTPUT (policy ACCEPT) target prot opt source 查看 mangle 表: # iptables -t mangle --list 查看 NAT 表: # iptables -t nat --list 查看 RAW 表:destinationdestination# iptables -t raw --list /!\注意:如果不指定-t 选项,就只会显示默认的 filter 表。
因此,以下两种命令形 式是一个意思: # iptables -t filter --list (or) # iptables --list 以下例子表明在 filter 表的 input 链, forward 链, output 链中存在规则:# iptables --list Chain INPUT (policy ACCEPT) num target prot opt source 1 RH-Firewall-1-INPUT all -Chain FORWARD (policy ACCEPT) num target prot opt source 1 RH-Firewall-1-INPUT all -Chain OUTPUT (policy ACCEPT) num target prot opt sourcedestination 0.0.0.0/0 0.0.0.0/0destination 0.0.0.0/0 0.0.0.0/0destinationChain RH-Firewall-1-INPUT (2 references) num target prot opt source 1 ACCEPT all -- 0.0.0.0/0 2 ACCEPT icmp -- 0.0.0.0/0 p type 255 3 ACCEPT esp -- 0.0.0.0/0 4 ACCEPT ah -- 0.0.0.0/0 5 ACCEPT udp -- 0.0.0.0/0 dpt:5353 6 ACCEPT udp -- 0.0.0.0/0 dpt:631 7 ACCEPT tcp -- 0.0.0.0/0 dpt:631 8 ACCEPT all -- 0.0.0.0/0 te RELATED,ESTABLISHED 9 ACCEPT tcp -- 0.0.0.0/0 te NEW tcp dpt:22 10 REJECT all -- 0.0.0.0/0 ect-with icmp-host-prohibited 以上输出包含下列字段:num – 指定链中的规则编号 target – 前面提到的 target 的特殊值 prot – 协议:tcp, udp, icmp 等 source – 数据包的源 IP 地址 destination – 数据包的目标 IP 地址destination 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 224.0.0.251 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0icmudp udp tcp sta sta rej三、清空所有 iptables 规则在配置 iptables 之前,你通常需要用 iptables --list 命令或者 iptables-save 命令查看有无现存规则,因为有时需要删除现有的 iptables 规则: iptables --flush 或者 iptables -F 这两条命令是等效的。
但是并非执行后就万事大吉了。
你仍然需要检查规则是不是 真的清空了,因为有的 linux 发行版上这个命令不会清除 NAT 表中的规则,此时只 能手动清除:iptables -t NAT -F四、永久生效当你删除、添加规则后,这些更改并不能永久生效,这些规则很有可能在系统重启 后恢复原样。
为了让配置永久生效,根据平台的不同,具体操作也不同。
下面进行 简单介绍:1.Ubuntu首先,保存现有的规则:iptables-save > /etc/iptables.rules 然后新建一个 bash 脚本,并保存到/etc/network/if-pre-up.d/目录下: #!/bin/bash iptables-restore < /etc/iptables.rules 这样,每次系统重启后 iptables 规则都会被自动加载。
/!\注意: 不要尝试在.bashrc 或者.profile 中执行以上命令, 因为用户通常不是 root, 而且这只能在登录时加载 iptables 规则。
2.CentOS, RedHat # 保存 iptables 规则 service iptables save # 重启 iptables 服务 service iptables stop service iptables start 查看当前规则: cat /etc/sysconfig/iptables五、追加 iptables 规则可以使用 iptables -A 命令追加新规则,其中-A 表示 Append。
因此,新的规则 将追加到链尾。
一般而言, 最后一条规则用于丢弃(DROP)所有数据包。
如果你已经有这样的规则了, 并且使用-A 参数添加新规则,那么就是无用功。
1.语法 iptables -A chain firewall-rule -A chain – 指定要追加规则的链 firewall-rule – 具体的规则参数 2.描述规则的基本参数以下这些规则参数用于描述数据包的协议、源地址、目的地址、允许经过的网络接 口,以及如何处理这些数据包。
这些描述是对规则的基本描述。
-p 协议(protocol) 指定规则的协议,如 tcp, udp, icmp 等,可以使用 all 来指定所有协议。
如果不指定-p 参数,则默认是 all 值。
这并不明智,请总是明确指定协议 名称。
可以使用协议名(如 tcp),或者是协议值(比如 6 代表 tcp)来指定协议。
映射关系请查看/etc/protocols 还可以使用–protocol 参数代替-p 参数-s 源地址(source) 指定数据包的源地址 参数可以使 IP 地址、网络地址、主机名 例如:-s 192.168.1.101 指定 IP 地址 例如:-s 192.168.1.10/24 指定网络地址 如果不指定-s 参数,就代表所有地址 还可以使用–src 或者–source-d 目的地址(destination) 指定目的地址 参数和-s 相同 还可以使用–dst 或者–destination-j 执行目标(jump to target) -j 代表”jump to target” -j 指定了当与规则(Rule)匹配时如何处理数据包 可能的值是 ACCEPT, DROP, QUEUE, RETURN 还可以指定其他链(Chain)作为目标-i 输入接口(input interface) -i 代表输入接口(input interface) -i 指定了要处理来自哪个接口的数据包 这些数据包即将进入 INPUT, FORWARD, PREROUTE 链 例如:-i eth0 指定了要处理经由 eth0 进入的数据包 如果不指定-i 参数,那么将处理进入所有接口的数据包 如果出现! -i eth0,那么将处理所有经由 eth0 以外的接口进入的数据包 如果出现-i eth+,那么将处理所有经由 eth 开头的接口进入的数据包 还可以使用–in-interface 参数-o 输出(out interface) -o 代表”output interface” -o 指定了数据包由哪个接口输出 这些数据包即将进入 FORWARD, OUTPUT, POSTROUTING 链 如果不指定-o 选项,那么系统上的所有接口都可以作为输出接口 如果出现! -o eth0,那么将从 eth0 以外的接口输出 如果出现-i eth+,那么将仅从 eth 开头的接口输出 还可以使用–out-interface 参数3.描述规则的扩展参数对规则有了一个基本描述之后,有时候我们还希望指定端口、TCP 标志、ICMP 类型 等内容。
–sport 源端口(source port)针对 -p tcp 或者 -p udp 缺省情况下,将匹配所有端口 可以指定端口号或者端口名称,例如”–sport 22″与”–sport ssh”。
/etc/services 文件描述了上述映射关系。
从性能上讲,使用端口号更好 使用冒号可以匹配端口范围,如”–sport 22:100″ 还可以使用”–source-port”–-dport 目的端口(destination port)针对-p tcp 或者 -p udp 参数和–sport 类似 还可以使用”–destination-port”-–tcp-flags TCP 标志 针对-p tcp 可以指定由逗号分隔的多个参数 有效值可以是:SYN, ACK, FIN, RST, URG, PSH 可以使用 ALL 或者 NONE-–icmp-type ICMP 类型 针对-p icmp –icmp-type 0 表示 Echo Reply –icmp-type 8 表示 Echo4.追加规则的完整实例:仅允许 SSH 服务本例实现的规则将仅允许 SSH 数据包通过本地计算机,其他一切连接(包括 ping) 都将被拒绝。