最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

什么是iptables_iptable的常见命令

XAMPP新闻 admin 172浏览 0评论
说iptables之前,先简单了解一些防火墙的概念。防火墙从物理特性上可分为硬件防火墙和软件防火墙

硬件防火墙: 硬件防火墙是指把防火墙程序做到芯片里面,由硬件执行这些功能,能减少CPU的负担,往往处于网络入口或边缘,在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障。针对于网络入口进行防护。

软件防火墙:软件防火墙单独使用软件系统来完成防火墙功能,将软件部署在系统主机上,其安全性较硬件防火墙差,同时占用系统资源,在一定程度上影响系统性能。其一般用于单机系统或是极少数的个人计算机,windows的firewall、Linux的iptables都是软件防火墙。

一、什么是iptables
iptables,经常接触Linux的对其或多或少的都有些了解。iptables是Linux平台系统自带的防火墙工具。全称应该是netfilter/iptables。iptables其实不是真正的防火墙,iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的安全框架中,这个安全框架才是真正意义上的防火墙,这个框架就是netfilter。netfilter是运行在Linux内核之中的,对数据包进行分析处理(同时支持NAT功能);iptables是提供用户的一个配置管理工具。
Netfileter/iptables是基于包过滤的防火墙工具、它的功能十分强大、使用非常灵活、可以对流入、流出及流经服务器的数据包进行精细的控制。根据设定好的规则来判断报文是否允许通过。
二、iptables规则

iptables使用一个叫做表(table)的结构,而这些表(tables)包含了一系列规则(set of rules),我们称这些规则为链(chain),链(chain)会过滤进/出服务器的数据包(data packets)。

1、iptables的四表五链

drf0029

(1)表(tables):

提供特定的功能,iptables内置了4个表,即filter表、nat表、mangle表和raw表,分别用于实现包过滤,网络地址转换、包重构(修改)和数据跟踪处理。

表名称 对应链 作用 内核模块
filter INPUTFORWARDOUTPUT 过滤数据包 iptables_filter
nat PREROUTINGPOSTROUTINGOUTPUT 网络地址转换 iptables_nat
mangle PREROUTINGPOSTROUTINGINPUTOUTPUTFORWARD 修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块 iptables_mangle
raw OUTPUTPREROUTING 数据跟踪处理 iptables_raw

 

(2)链(chains):

链是数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一条或数条规则。当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据该条规则所定义的方法处理该数据包;否则iptables将继续检查下⼀条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定义的默认策略来处理数据包。链一共有五种

1.INPUT(数据包流入口)——进来的数据包应用此规则链中的策略

2.OUTPUT(数据包出口)——外出的数据包应用此规则链中的策略

3.FORWARD(转发管卡)——转发数据包时应用此规则链中的策略

4.PREROUTING(路由前)——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时候都先由这个链处理)

5.POSTROUTING(路由后)——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时候都先由这个链处理)

(3)规则(policy):

规则(policy)就就是iptables一系列过滤信息和具体操作方法、要求等。规则由匹配条件和处理动作组成

3.1匹配条件

匹配条件分为基本匹配条件与扩展匹配条件

(3.1.1)基本匹配条件:

源地址Source IP,目标地址 Destination IP

(3.1.2)扩展匹配条件:

源端口Source Port, 目标端口Destination Port

这些扩展条件其实也是netfilter中的一部分,只是以模块的形式存在,如果想要使用这些条件,则需要依赖对应的扩展模块。

 

3.2处理动作

常见的处理动作大致有以下几种:

动作 作用
accept 允许通过
drop 直接丢弃数据包,不给任何回应信息,过超时时间会有反应
reject 拒绝数据包通过,但是会有响应信息,客户端刚请求就会收到拒绝的信息
snat 源地址转换
dnat 目的地址转换
redirect 本地做端口映射
log 在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则,除了记录以外不对数据包做任何其他操作。

 

通俗来说。netfileter/iptables就是单元楼,表tables就是一个房间,链chain就是房间的家具,规则policy就是摆放规则。
2、iptables的表链匹配顺序
(1)iptables表的匹配顺序

raw–>mangle–>nat–>filter

(2)iptables链的匹配顺序

链之间的匹配顺序主要分为三种情况:

【1】入站数据方向:

外界数据包到达之后,先被PERROUTING规则链处理(判断是否修改数据包)进行路由之后,数据包目的主机如果是本机,会将其交给INPUT链处理决定是否通过该数据包

【2】转发数据流:

外界数据包到达之后,先被PERROUTING规则链处理(判断是否修改数据包)进行路由之后,数据包目的主机是其他站点,则传递给FORWARD进行处理(是否进行转发),然后交给POSTROUTING链,看是否需要修改数据包的地址等

【3】出站数据方向:

防火墙本机向外网访问时,首先被OUTPUT链处理,之后进行路由选择,传递给POSTROUTING(是否修改数据包地址)等进行处理。

 

3、iptable的常见命令

iptables操作无非就是简单的增删改查。

(1)查

 -V:查看iptables版本

drf00029

查看某个表里链的具体规则–要注意大小写
-t:指定查看的表名,不指定情况下默认是filter
-L:(list),列出链中的所有规则,

drf000029

-v:(verbos)查看详细信息

–line-numbers:采用行数显示规则编号

-n:使用数字形式显示输出结果

drf28

其中:

pkts(packets) 规则匹配的报文个数
bytes(字节) 规则匹配到的报文的大小
target 采取的动作
prot(procotol) 规则对应协议
opt(optional) 可选项
in 数据包流入的网卡接口
out 数据包流出的网卡接口
source 规则对应的源地址
destination 规则对应的目的地址
(2)增

-I:在指定链中插入一条新的规则,默认在第一行添加

-s:指定源ip

-d:指定目的ip

-j:指定动作(包括accept、drop、reject、log、snat、dant)

drf028

-A:在指定链的末尾添加⼀条新的规则–注意先后匹配的顺序

drf0028

(3)删
-D:删除(delete)指定链中的某⼀条规则,可以按规则序号和内容删除

drf00028

-F:清除指定链的所有规则

(4)改
-R:修改、替换(replace)指定链中的某⼀条规则,可以按规则序号和内容替换

drf000028

最终可以用service iptables save来保存iptables的更改。

转载请注明:XAMPP中文组官网 » 什么是iptables_iptable的常见命令