博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iptables
阅读量:6897 次
发布时间:2019-06-27

本文共 2156 字,大约阅读时间需要 7 分钟。

hot3.png

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

你可能感兴趣的文章
Spring有几种事务处理方式?举例说明
查看>>
php中mb_strlen,mb_substr根据中文长度截取字符串
查看>>
convert image to base64
查看>>
第 67 章 DDL
查看>>
CSS几个竖直与水平居中盒子模型
查看>>
希望早几年知道的5个Unix命令
查看>>
C# 控件不刷新问题
查看>>
Structs+Spring+Hibernate快速入门
查看>>
[Erlang 0083] All about Erlang Shell
查看>>
EMF介绍系列(一、EMF与MDA)
查看>>
PyQt4 py2exe 打包 HardwareManager
查看>>
免费Gif图片录制工具
查看>>
Java 使用pipeline对redis进行批量读写
查看>>
【spring boot】配置文件 application.properties 属性解析
查看>>
Magicodes.WeiChat——使用AntiXssAttribute阻止XSS(跨站脚本攻击)攻击
查看>>
java多线程之:线程对象一些api
查看>>
丁夏畦同志去世
查看>>
技术方案之外你还能做什么
查看>>
是什么让C#成为最值得学习的编程语言
查看>>
不同机具的通用的第二代居民身份证读写
查看>>