红联Linux门户
Linux帮助

netfilter模块及iptables基本概念

发布时间:2014-08-04 15:08:41来源:linux网站作者:linwaterbin

㈠ netfilter

linux一般都是作为服务器使用,对外提供一些基于网络的服务

通常我们都需要对服务器进行一些网络访问控制,类似防火墙的功能

常见的访问控制包括:哪些IP可以访问服务器,可以使用哪些协议,哪些接口,是否需要对数据包进行修改等等

如服务器可能受到来自某IP的攻击,这时就要禁止来自该IP的所有访问

linux的内核集成了网络访问的控制功能,通过netfilter模块实现

linux内核通过netfilter模块实现网络访问控制功能

在用户层我们可以通过iptables程序对netfilter进行控制管理

netfilter可以对数据进行允许、丢弃、修改操作

netfilter支持以下方式对数据包进行分类:

●源IP地址

●目标IP地址

●使用接口

●使用协议

●端口号

●连接状态

注释:

① filtering point:过滤点,你需要选择合适的过滤点

★ input:输入的数据

★ forward:转发的数据

★ output:服务器发出的数据

★ prerouting:路由前的数据

★ postrouting:路由后的数据

② table:netfilter的功能的划分

★ filter:用以对数据进行过滤

★ nat:用以对数据包的源、目标地址进行修改

★ mangle:用以对数据包进行高级修改

当你需要创建一条访问控制策略时,首先要选择正确的过滤点,然后选择合适的功能

常用功能(流量也就是数据包)

作为服务器使用

▲ 过滤到本机的流量:在input过滤点,使用filter表

▲ 过滤到本机发出的流量:在output过滤点,使用filter表

作为路由器使用

▲ 过滤转发的流量:在forward过滤点,使用filter表

▲ 对转发数据的源、目标IP 进行修改:在prerouting或postrouting过滤点,使用nat表


 ㈡ iptables

iptables通过策略对数据进行访问控制

一个策略使用一行配置

策略按顺序排列

当收到、发出、转发数据包时,使用策略对数据包进行匹配,并且按策略顺序进行逐条匹配

数据包按照第一个匹配上的策略执行相关动作:丢弃、放行或者修改

没有匹配的策略时,则使用默认动作(每个过滤点都拥有各自默认的动作,一般是放行)

策略

通过iptables命令创建一条策略

策略包含以下几个部分

例子:iptables -t filter -A INPUT -s 192.168.1.1 -j drop

● 表:规定使用的表(filter、nat、mangle,不同表有不同功能)

● 过滤点:规定过滤点

● 匹配属性:规定匹配数据包的特征

● 匹配后的动作:放行、丢弃、记录