iptables

iptables组成

3个表 5条链

规则表

mangle表:为数据包设置标记,用来做流量整形的.

nat表:修改数据包中的源、目标IP地址或端口.

filter表:确定是否放行该数据包(过滤)

5条链

INPUT:处理入站数据包

OUTPUT:处理出站数据包

FORWARD:处理转发数据包

POSTROUTING链:在进行路由选择后处理数据包

PREROUTING链:在进行路由选择前处理数据包

数据包转发流程

170558_vbqb_81653.png

170711_m2y2_81653.png

梳理顺序

表的优先顺序

mangle>nat>filter

规则链间的匹配顺序

入站数据:PREROUTING > INPUT

出站数据:OUTPUT > POSTROUTING

转发数据:PREROUTING > FORWARD > POSTROUTING

iptables 书写命令

iptables [-t 表名] <-A|I|D|R> 链名 [规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源ip|源子网] [--sport 源端口号] [-d 目的IP|目标子网] [--dport 目标端口号] [-j 动作]

172635_Tqcq_81653.png

  • 几个注意事项
    • 不指定表名时,默认表示filter表
    • 不指定链名时,默认表示该表内所有链
    • 除非设置规则链的缺省策略,否则需要指定匹配条件
  • 添加规则
    • -A:在一个链的最后面新增( append ) 一条规则
    • -I:在链内某个位置插入(insert)一条规则(默认插入第一个,加数字按数字位置加)
  • 清除规则
    • -D:删除指定位置或内容的规则
    • -F:清空规则链内的所有规则
    • -Z:清空计数器
  • 替换规则
    • -R:在链内某个位置替换(replace)一条规则
  • 显示规则
    • -L:列出一个链中的规则
  • 自定义规则链
    • -N:创建一条新的规则链
    • -X:删除自定义的规则链
例如:
#插入规则
/sbin/iptables -t filter -A INPUT -p tcp -j ACCEPT
/sbin/iptables -I INPUT -p udp -j ACCEPT
/sbin/iptables -I INPUT 2 -p icmp -j ACCEPT
/sbin/iptables -L INPUT --line-numbers
#删除规则
/sbin/iptables -D INPUT 2
/sbin/iptables -F INPUT
#清空计数器
/sbin/iptables --list -v -n
/sbin/iptables -Z
#修改chain目标
/sbin/iptables -P INPUT DROP
  • 协议匹配
    • 使用“-p 协议名”的形式
    • 协议名可使用在“/etc/protocols”文件中定义的名称
    • 常用的协议包括tcp、udp、icmp等
  • 地址匹配
    • 使用“-s 源地址”、 “-d 目标地址”的形式
    • 地址可以是单个IP地址、网络地址(带掩码长度)
  • 接口匹配
    • 使用“-i 网络接口名”、 “-o 网络接口名”的形式,分别对应接收、发送数据包的网络接口
#协议匹配
/sbin/iptables -I INPUT -p icmp -j REJECT
/sbin/iptables -A FORWARD -p ! icmp -j ACCEPT
#地址匹配
/sbin/iptables -A FORWARD -s 192.168.1.11 -j REJECT
/sbin/iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP
#接口匹配
/sbin/iptables -A FORWARD -o eth1 -d 61.35.4.3 -j DROP
  • 端口匹配
    • 使用“--sport 源端口”、“--dport 目标端口”的形式
    • 采用“端口1:端口2”的形式可以指定一个范围的端口
  • TCP标记匹配
    • 使用“--tcp-flags 检查范围 被设置的标记”的形式
    • 如“--tcp-flags SYN,RST,ACK SYN”表示检查SYN、RST、ACK这3个标记,只有SYN为1时满足条件
  • ICMP类型匹配
    • 使用“--icmp-type ICMP类型”的形式
    • ICMP类型可以使用类型字符串或者对应的数值,例如Echo-Request、Echo-Reply

1

2

3

4

5

6

例如:

/sbin/iptables -A FORWARD -p tcp --dport 22 -j ACCEPT

/sbin/iptables -A OUTPUT -p tcp --sport 80:8000 -j ACCEPT

/sbin/iptables -I INPUT -i eth1 -p tcp --tcp-flags SYN,RST,ACK SYN -j REJECT

/sbin/iptables -A INPUT -i eth0 -p icmp --icmp-type Echo-Request -j DROP

/sbin/iptables -A INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT

 

 

转载于:https://my.oschina.net/hnuweiwei/blog/845739

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值