热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iptables命令学习

Iptables介绍iptables是Linux防火墙系统的重要组成部分,iptables的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者由

Iptables介绍

iptables 是 Linux 防火墙系统的重要组成部分,iptables 的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者由该设备转发、路由时,都可以使用 iptables 进行控制。


iptables 在普遍的应用场景中被用作配置防火墙,如果我们想要防火墙能够达到”防火”的目的,则需要在内核中设置关卡,所有进出的报文都要通过这些关卡,经过检查后,符合放行条件的才能放行,符合阻拦条件的则需要被阻止,于是,就出现了 input 关卡和 output 关卡,但是,这个关卡上可能不止有一条规则,而是有很多条规则,当我们把这些规则串到一个链条上的时候,就形成了”链”。

一共有五条链:



  • PREROUTING:路由前过滤, 数据包刚进入网络层 , 路由之前

  • INPUT:** 入站数据过滤**,路由判断,流入用户空间

  • OUTPUT:出站数据过滤,用户空间发出,后接路由判断出口的网络接口

  • FORWARD:转发数据过滤, 路由判断不进入用户空间,只进行转发

  • POSTROUTING:路由后过滤, 数据包通过网络接口出去。


常见的数据的流向:



  • 到本机某进程的报文:PREROUTING –> INPUT

  • 由本机转发的报文:PREROUTING –> FORWARD –> POSTROUTING

  • 由本机的某进程发出报文(通常为响应报文):OUTPUT –> POSTROUTING


“四表”是指 iptables 的功能,默认的 iptable s规则表有 filter 表(过滤规则表)、nat 表(地址转换规则表)、mangle(修改数据标记位规则表)、raw(跟踪数据表规则表):



  • filter 表:负责过滤功能,防火墙;内核模块:iptables_filter

  • nat 表:network address translation,网络地址转换功能;内核模块:iptable_nat

  • mangle 表:拆解报文,做出修改,并重新封装 的功能;iptable_mangle

  • raw 表:关闭 nat 表上启用的连接追踪机制;iptable_raw


表的优先级:

raw –> mangle –> nat –> filter


链与表的对应关系为:


规则

规则:根据指定的匹配条件来尝试匹配每个流经此处的报文,一旦匹配成功,则由规则后面指定的处理动作进行处理;

规则由匹配条件和处理动作组成。


匹配条件

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



  • 基本匹配条件: 源地址 Source IP,目标地址 Destination IP 上述内容都可以作为基本匹配条件。

  • 扩展匹配条件: 除了上述的条件可以用于匹配,还有很多其他的条件可以用于匹配,这些条件泛称为扩展条件,这些扩展条件其实也是 netfilter 中的一部分,只是以模块的形式存在,如果想要使用这些条件,则需要依赖对应的扩展模块。 源端口 Source Port, 目标端口 Destination Port 可以作为扩展匹配条件


iptables 语法

基本的语法格式:

iptables [-t table] COMMAND [chain] CRETIRIA -j ACTION

各参数的含义为:



  • -t:指定需要维护的防火墙规则表 filter、nat、mangle或raw。在不使用 -t 时则默认使用 filter 表。

  • COMMAND:子命令,定义对规则的管理。

  • chain:指明链表。

  • CRETIRIA:匹配参数。

  • ACTION:触发动作。


iptables 命令常用的选项











































选 项功 能
-A添加防火墙规则
-D删除防火墙规则
-I插入防火墙规则
-F清空防火墙规则
-L列出添加防火墙规则
-R替换防火墙规则
-Z清空防火墙数据表统计信息
-P设置链默认规则

iptables 命令常用匹配参数







































































触发动作功 能
[!]-p匹配协议,! 表示取反
[!]-s匹配源地址
[!]-d匹配目标地址
[!]-i匹配入站网卡接口
[!]-o匹配出站网卡接口
[!]--sport匹配源端口
[!]--dport匹配目标端口
[!]--src-range匹配源地址范围
[!]--dst-range匹配目标地址范围
[!]--limit四配数据表速率
[!]--mac-source匹配源MAC地址
[!]--sports匹配源端口
[!]--dports匹配目标端口
[!]--stste匹配状态(INVALID、ESTABLISHED、NEW、RELATED)
[!]--string匹配应用层字串

iptables 命令触发动作











































触发动作功 能
ACCEPT允许数据包通过
DROP丢弃数据包
REJECT拒绝数据包通过
LOG将数据包信息记录 syslog 曰志
DNAT目标地址转换
SNAT源地址转换
MASQUERADE地址欺骗
REDIRECT重定向

内核会按照顺序依次检查 iptables 防火墙规则,如果发现有匹配的规则目录,则立刻执行相关动作,停止继续向下查找规则目录;如果所有的防火墙规则都未能匹配成功,则按照默认策略处理。使用 -A 选项添加防火墙规则会将该规则追加到整个链的最后,而使用 -I 选项添加的防火墙规则则会默认插入到链中作为第一条规则。


参考文章

  • 扒一下一直不求甚解的 iptables

  • Linux iptables命令详解



推荐阅读
author-avatar
柒捌玖指向标
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有