iptables 介绍

iptables 介绍

iptable过滤流程

这里写图片描述

这里写图片描述

  1. 命令格式
    iptables [-t table] command [chain] [match][target]

  2. table
    filter: 默认表,处理包的过滤的表。没有-t就指filter表
    nat: 处理网络地址转换的表(network address translation)
    mangle:可以修改包的信息,如ttl,tos
    raw:高级用法,根据链接状态做相应处理

  3. chain: Rule的集合,通常跟数据流向有关
    默认的chain:
    filter: INPUT (接收的数据包), OUTPUT(发出去的数据包), FORWARD(要转发的数据包)
    nat: PREROUTING(路由前处理), POSTROUTING(路由后处理), OUTPUT
    mangle: INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING
    raw: PREROUTING, OUTPUT

  4. command:对chain操作的命令,这是立即生效的
    -P :设置默认策略的(设定默认门是关着的还是开着的)
    iptables -P INPUT (DROP|ACCEPT) 默认是关的/默认是开的
    -F: FLASH,清空规则链的
    iptables -t nat -F PREROUTING清空nat表里的PREROUTING chain
    N:NEW 新建一个链
    -X: 用于删除用户自定义的空链(先清空再删除)
    -E:重命名chain
    -Z:清空链,及链中默认规则的计数器的

  5. target指的是要做什么操作。
    系统定义的target有ACCEPT(接收), DROP(直接丢弃), QUEUE(数据返回到用户空间处理) and RETURN(返回到调用的链,略过后面的rule处理), 还有一些扩展target,如REJECT,MASQUERADE(源地址伪装),REDIRECT(重定向,主要用于实现端口重定向)。DROP和REJECT的区别就是DROP直接丢包,而REJECT会返回一个错误数据。

  6. rule
    对rule的操作:
    -A(append) 在指定链的末尾添加一条新的规则
    -I (insert)在指定链中插入一条新规则,为指明插入位置
    -D(delete)删除制定链里的某条规则
    -R (replace)修改、替换指定链的某条规则,按序号或内容确定要替换的规则

    -L (list) 查看规则rule命令:
    -t table 显示某表的所有规则
    -n 显示ip address
    -v 显示verbose,指较多信息

    规则匹配
    -s 源地址匹配
    -d 目标地址匹配
    -p 协议匹配,如tcp, udp, icmp
    -i 接收输入的网络接口匹配
    -o 发送输出的网络接口匹配

    规则匹配扩展
    如对协议的-p扩展
    –dport 指定目标端口
    –sport 指定源端口
    –tcp-fiags:检查TCP的标志位 (SYN,ACK,FIN,PSH,RST,URG)

    举例
    iptables -t filter -A INPUT -p tcp -s 192.168.1.11 -j DROP
    iptables -A INPUT -i ppp0 -p tcp –sport 80 -j ACCEPT

  7. SNAT & DNAT
    SNAT基于原地址的转换一般用在我们的许多内网用户通过一个外网的口上网的时候,这时我们将我们内网的地址转换为一个外网的IP,我们就可以实现连接其他外网IP的功能。
    iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT –to-source 172.16.100.1
    iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE

    DNAT对于目标地址转换,数据流向是从外向内的,外面的是客户端,里面的是服务器端通过目标地址转换,我们可以让外面的ip通过我们对外的外网ip来访问我们服务器不同的服务器,而我们的服务却放在内网服务器的不同的服务器上。
    iptables -t nat -A PREROUTING -d 192.168.10.18 -p tcp –dport 80 -j DNAT –todestination 172.16.100.2

    iptables -t nat -A PREROUTING -d 0.0.0.0/0 -p tcp –dport 80 -j DNAT –to 192.168.43.1:8080
    不管目标IP地址是什么,只要是发往80端口的tcp包,都转发到192.168.43.1的8080端口

参考文档
http://blog.chinaunix.net/uid-22780578-id-3346350.html
https://en.wikipedia.org/wiki/Iptables

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值