iptables命令使用

iptables [-t TABLE] SUBCOMMAND CHAINCRETERIA -j TARGET

-t TABLE:

默认为filter, 共有filter, nat, mangle, raw四个可用;

SUBCOMMAND:

链:

-F:flush,清空指定表的指定链上所有规则;省略链名时,清空表中的所有链;

示例:

# iptables -t filter -F INPUT #只清空filter表中的INPUT链

# iptables -t nat #清空整个nat表

-N:new, 新建一个用户自定义的链;自定义链只能作为默认链上的跳转对象,即在默认链通过引用来生效自定义链;

示例 : 创建新的链 webfules

[[email protected] ~]#  iptables -t filter -N webrules

-X:drop,删除用户自定义的空链;非空自定义链和内置链无法删除;

示例 删除webrules

# iptables -t filter -X webrules

-Z:zero,将规则的计数器置0;

-P:policy,设置链的默认处理机制;当所有都无法匹配或有匹配有无法做出有效处理机制时,默认策略即生效;

示例:设置filter表的forward链的默认策略为DROP

# iptables -t filter -P FORWARD DROP

filter表的可用策略:ACCEPT(接受), DROP(丢弃), REJECT(拒绝)

-E:rename,重命名自定义链;

示例: 讲webrules 修改为httpdrules

# iptables -t filter -E  webrules httpdrules

注意:被引用中的链,无法删除和改名

规则管理:

-A:append,在链尾追加一条规则;

-I:insert,在指定位置插入一条规则;默认会在第一条

-D:delete,删除指定的规则;

-R:replace,替换指定的规则;

规则查看:

-L:list,列出指定链上的所有规则;

-n:numeric,以数字格式显示地址和端口号,即不反解;

-v:verbose,详细格式,显示规则的详细信息,包括规则计数器等;

-vv:

-vvv:

--line-numbers:显示规则编号;

-x:exactly,显示计数器的精确值;

# iptables -L -n -v

pkts bytes target     prot opt in     out    source               destination

pkts: 被本规则所匹配到的包个数;

bytes:被本规则所匹配到的所包的大小之和;

target: 处理目标 (目标可以为用户自定义的链)

prot: 协议 {tcp,udp, icmp}

opt: 可选项

in: 数据包流入接口

out: 数据包流出接口

source: 源地址

destination: 目标地址;

CRETERIA:匹配条件

通用匹配

-s,--src, --source  IP|Network:检查报文中的源IP地址;

[!] -s, --src, --source  IP|Network:检查报文中的源IP地址进行取反;

-d,--dst, --destination:检查报文中的目标IP地址;

-p,--protocol:检查报文中的协议,即ip首部中的protocols所标识的协议;tcp、udp或icmp三者之一;

-i,--in-interface:数据报文的流入接口;通常只用于PREROUTING, INPUT, FORWARD链上的规则;

-o,--out-interface:检查报文的流出接口;通常只用于FORWARD, OUTPUT, POSTROUTING链上的规则;

示例:

放行172.16.6.62 对172.16.6.61所有服务的访问

# iptables -t filter -I INPUT-s 172.16.6.62 -d 172.16.6.61 -j ACCEPT

 修改上一条规则为: 只允许来自172.16.6.62主机对本级172.16.6.61  tcp的访问请求

# iptables -t filter -R INPUT 1-s 172.16.6.62 -d 172.16.6.61 -p tcp -j ACCEPT

放行172.16.6.62 对172.16.6.61 ping请求

# iptables -t filter -A INPUT-s 172.16.6.62 -d 172.16.6.61 -p icmp -j ACCEPT

限制172.16.6.62对本级172.16.6.61的ping请求只能通过eth0进入

# iptables -t filter -R INPUT 1-s 172.16.6.62 -d 172.16.6.61 -i eth0 -p icmp -j ACCEPT

扩展匹配

扩展匹配:使用iptables的模块实现进一步扩展性检查机制

隐式扩展

对通用匹配中-p中指定的对指定的协议的扩展

-p tcp:  TCP协议的扩展

--dport PORT[-PORT] #目标端口

--sport : 源端口

--tcp-flags LIST1 LIST2

LIST1:要检查的标志位;

LIST2:在LIST1中出现过的,且必须为1标记位;而余下的则必须为0;

示例:

# iptables -t filter  -I INPUT 1 -s 172.16.6.62 -d 172.16.6.61 -ptcp --tcp-flags syn,ack,fin,rst syn -j ACCEPT

# iptables -t filter  -I INPUT 1 -s 172.16.6.62 -d 172.16.6.61 -ptcp --syn -j ACCEPT

-p udp:  dup协议的扩展
--sport : 源端口
--dport : 目标端口
-p icmp:  icmp协议的扩展--icmp-types

8:echo request  # 8 响应请求(ECHO-REQUEST)

0:echo reply #0 响应应答(ECHO-REPLY)

阻止172.16.6.62 对本机172.16.6.1 httpd服务的访问

# iptables -t filter -I INPUT 1-s 172.16.6.62 -d 172.16.6.61 -p tcp -m tcp --dport 80 -j DROP

显式扩展

显式扩展:必须指明使用的扩展机制(模块名字);

-m模块名称 每个模块会引入新的匹配机制;

想知道有哪些模块可用吗?

## rpm -ql iptables| grep so$ #查看已有模块

[[email protected] ~]# rpm -qliptables| grep .so$

/lib64/xtables/libipt_CLUSTERIP.so

/lib64/xtables/libipt_DNAT.so

/lib64/xtables/libipt_ECN.so

/lib64/xtables/libipt_LOG.so

#小写字母,以.so结尾;通常都为扩展模块 如: libipt_CLUSTERIP.so 其中CLUSTERIP为模块名字

-m multiport 扩展:

以离散定义多端口匹配;最多指定15个端口;

multiport专用选项:

--source-ports, --sports PORT[,PORT,...] #源端口

--destination-ports, --dports PORT[,PORT,...] #目标端口

--ports PORT[,PORT,...]

示例: 同时放行 22 80 443

# iptables-I INPUT 1 -d 172.16.100.11 -p tcp -m multiport --dports 22,80,443 -j ACCEPT

-m  iprange扩展

指定连续的ip地址范围;在匹配非整个网络地址时使用;

专用选项:

[!]--src-range IP[-IP] #原地址范围

[!]--dst-range IP[-IP] #目标地址范围

示例: 放行本机telnet服务仅允许172.16.6.1-172.16.6.100的主机可以访问

iptables-A INPUT -d 172.16.100.11 -p tcp --dport 23 -m iprange --src-range172.16.100.1-172.16.100.100 -j ACCEPT

iptables-A OUTPUT -s 172.16.100.11 -p tcp --sport 23 -m iprange --dst-range172.16.100.1-172.16.100.100 -j ACCEPT

-m string扩展:

检查报文中出现的字符串,与给定的字符串作匹配;

字符串匹配检查算法:kmp, bm

专用选项:

--algo{kmp|bm}

--algo: 指定算法 常用字符串匹配的算法 kmp | bm

--string"STRING"

--string"要匹配的字符串"

--hex-string"HEX_STRING":HEX_STRING为编码成16进制格式的字串;

示例:

#iptables-I OUTPUT 1 -s 172.16.100.11 -p tcp --sport 80 -m string --string"sex" --algo kmp -j REJECT(丢弃)

-m time扩展:

基于时间区间做访问控制

专用选项:

--datestartYYYY[-MM][-DD][hh[:mm[:ss]]] #从什么日期开始 年-月-日 小时:分:秒

--dattestop#到日期结束

--timestart#从什么时间开始

--timestop#到什么时间结束

--weekdays DAY1[,DAY2,...] #星期几

#iptables -R INPUT 1 -d 172.16.100.11 -p tcp --dport 80 -m time --timestart08:30 --timestop 18:30 --weekdays Mon,Tue,Thu,Fri -j REJECT

-m connlimit扩展:

基于连接数作限制;对每个IP能够发起的并发连接数作限制;

专用选项:

--connlimit-above[n] 不能超过多少

#iptables -I INPUT 2 -d 172.16.100.11 -p tcp --dport 22 -m connlimit--connlimit-above 5 -j REJECT

-m limit扩展:

基于发包速率作限制;

专用选项:令牌桶算法

--limit  n[/second|/miniut|/hour|/day]

#n/second 每秒多少个数据包 ;

#n/minit; 每分钟多少个数据包;

#n/hour 每小时多少个数据包;

#n/day 每天多少个数据包;

--limit-burstn #最大突发速率

# iptables-R INPUT 3 -d 172.16.100.11 -p icmp --icmp-type 8 -m limit --limit 10/minute--limit-burst 5 -j ACCEPT

时间: 2024-10-09 03:13:27

iptables命令使用的相关文章

iptables命令使用基础(02)

一.iptables命令 规则:根据指定的匹配条件来尝试匹配每个流经此处的报文,一旦匹配成功,则由规则后面指定的处理动作进行处理: 匹配条件:分为基本匹配条件和扩展匹配条件,扩展匹配条件又分为隐式扩展和显式扩展: 基本匹配条件:源地址,目标地址,传输协议: 扩展匹配条件:需要借助于扩展模块进行指定的匹配条件: 隐式扩展:已经在基本匹配条件中指明的协议相关的扩展: 显式扩展:隐式扩展之外的其它扩展匹配条件: 处理动作:分为基本动作和扩展动作: 基本动作:ACCEPT,DROP,REJECT 扩展动

iptables 命令

iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分.可以直接配置,也可以通过许多前端和图形界面配置. 语法 iptables (选项)(参数) 选项 -t<表>:指定要操纵的表:  -A:向规则链中添加条目:  -D:从规则链中删除条目:  -I:向规则链中插入条目:  -R:替换规则链中的条目:  -L:显示规则链中已有的条目:  -F:清楚规则链中已有的条目:  -Z:清空规则链中的数据包计算器和字节计数器:  -N:创建新的用户自定义规则链:  -P:定

iptables命令基本用法(2)

iptables命令基本用法 # man iptables NAME        iptables - administration tool for IPv4 packet filtering and NAT SYNOPSIS        iptables [-t table] {-A|-C|-D} chain rule-specification        iptables [-t table] -I chain [rulenum] rule-specification       

iptables命令使用详解

iptables的主要功能是实现对网络数据包进出设备及转发的控制.当数据包需要进入设备.从设备中流出或者经该设备转发.路由时,都可以使用iptables进行控制. 环境 操作系统:CentOS7.3 ip地址:172.16.55.7 1.iptables中的"四表五链"及"堵通策略" A."四表"是指,iptables的功能--filter, nat, mangle, raw. filter, 控制数据包是否允许进出及转发(INPUT.OUTPU

iptables命令应用实例

iptables 优化规则:尽量减少规则条目,彼此不相关的匹配,用较多放在上面,属于同一功能匹配规则更严格的放在上面 一.netfilter:     四个表:raw,mangle,nat,filter     五链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING     分别在那些链上使用         filter:INPUT,FORWARD,OUTPUT         nat:PREROUTING(DNAT),POSTROUTING(SNAT),

iptables命令、规则、参数详解

表    (table)包含4个表:4个表的优先级由高到低:raw-->mangle-->nat-->filterraw---RAW表只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理.一但用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了.filter---这个规则表是预设规则表,拥有 INPUT.FORWARD 和 OUTPUT 三个规则链,

iptables命令结构之命令

下面列出了iptables命令: --append:-A将rule-specifications指定的规则添加到规则链chain的末尾.如果分组匹配rule-specifications中的所有规则,那么目标target就会来处理它. iptables -A chain rule-specifications --jump target --delete:-D将一条或多条规则从规则链chain中删除,rule-numbers或rule-specifications指定被删除的规则. iptabl

linux下iptables命令的应用与详解

一.iptables的规则表和链. 表(tables)提供特定的功能,iptables内置了4个表,即filter表.nat表.mangle表和raw表,分别用于实现包过滤,网络地址转换.包重构(修改)和数据跟踪处理.   链(chains)是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一 条或数条规则.当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件.如果满足,系统就会根据 该条规则所定义的方法处理该数据

防火墙及iptables命令

防火墙: IT领域的防火墙:一整套安全隔离工具: 1. 软件防火墙: 应用软件处理逻辑而运行通用硬件实现的防火墙: iptables/netfilter 包过滤防火墙: 2. 硬件防火墙: 在硬件级别能实现一部分防火墙功能,而另一部分功能依然要基于软件实现: 防火墙的介绍:所谓防火墙,指的是工作于主机或网络的边缘,对于经由防火墙的数据报文根据预先定义的匹配规则(识别条件)进行检测,对于能够被规则匹配到的报文要采取某些预先定义好的处理机制予以处理,而对于没有被规则匹配的报文要设置默认访问控制处理机

iptables命令提取总结&lt;取自朱双印博客&gt;

以下内容只是一些命令相关的,以朱双印博客中的iptables的教程提取出来的.纯粹只是命令的总结,如果需要看理论的知识,建议去看朱老师的博客,目前还没有看到写得比这个好的了. <http://www.zsythink.net/archives/category/%e8%bf%90%e7%bb%b4%e7%9b%b8%e5%85%b3/%e9%98%b2%e7%81%ab%e5%a2%99/> 看完朱老师的博客,理论上面是理解过了,但是一些命令的东西总是要返回去找,所以自已就提取了下一些命令,写