Iptables隶属于netfileter.org的一个包过滤框架的一个项目软件,基本在linux 2.4.x以后的版本中都在内核中支持。Iptables的项目https://git.netfilter.org/iptables/.
主要功能
Iptables提供包过滤、网络地址转换和其他包封装处理,主要功能如下所示:
1、 无状态包过滤(IPv4 and IPv6)
2、 有状态包过滤(IPv4 and IPv6)
3、 各种网络地址和端口转换,比如NAT或者NAPT(IPv4 and IPv6)
4、 灵活的和可扩展的基础设施
5、 用于第三方扩展的多层API
我能用iptables做什么?
1、 基于有状态或无状态包过滤来建立互联网防火墙
2、 部署高可用有状态或无状态集群
3、 使用NAT或者伪装来共享外网接口来代理内网上网
4、 使用NAT来实现透明的代理
5、 有助于TC和iproute2,用于构建复杂的QOS和策略路由
6、 数据包分组,比如修改IP报头的TOS/DSCP/ECN
我能从哪里获得最新版iptables
1、 http://www.netfilter.org/projects/iptables/downloads.html
2、 https://git.netfilter.org/iptables/
3、 2.4.X内核以后的Linux都自带iptables,不过不是最新版,这个要注意
4、
下载iptables
确认一下操作系统自带的iptables版本
iptables –V
wget http://www.netfilter.org/projects/iptables/files/iptables-1.6.1.tar.bz2
Iptables概念
表、链、策略
Iptables 和ip6tables命令用于在内核中设置、维护ipv4和ipv6包过滤,内置了几个不同的表,每个表又包括一到多个内置链或者用户定义的链,每个链都是一些规则的列表,每个规则来指定哪些包应该数据包的用途,这个被称为target。
策略结果解释
Iptables防火墙匹配的结果有3个,accept、drop、return,accept的意思是,允许数据包通过,而drop的意思是丢弃数据包,这些都好理解,我们来看看return,return 如果被触发,就会返回上一个链,如果是一个内置的链,将由target策略来决定去留。
表解释
Filter: 这个是默认表,包含了内置的链,分别为input、output、forward
Nat: 这个表主要对新建立的链接,关联了四个内置的链,分别为prerouting、input、output、postrouting
Mangle: 此表用于专门的包更改,内核到2.4.17后,它有两个内置的链,prerouting和output,2.4.18开始,它有了三个内置的链,input、forward、postrouting
Raw: 这个表主要用于和NOTRACK target相结合,它在netfileter中,在ip_conntrack之前以高优先级注册,它由两个内置的链提供prerouting、output
Security: 这个表用于MAC网络规则