您当前的位置:首页 > 电脑百科 > 安全防护 > 网络安全

iptables 命令实战详解

时间:2022-08-17 10:08:48  来源:今日头条  作者:技术瘾君子

一.iptables介绍

iptables并不是真正意义上的防火墙,我们可以理解为一个客户端工具,用户通过ipatbles这个客户端,将用户 的安全设定执行到对应的"安全框架"中,这个"安全框架"才是真正的防火墙,这个框架的名字.NETfilter。 netfilter才是防火墙真正的安全框架,netfilter位于内核空间。

iptables是一个命令行工具,位于用户空间,通过这个命令行工具来操作netfilter。 netfilter/iptables(简称为iptables)组成linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包 过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能

二.iptables的四表五链

说明

filter

过滤,防火墙

nat

网络地址转换 ;用于修改源ip或目标ip,也可以改端口

mangle

拆解报文,做出修改,并重新封装起来

raw

关闭nat表上启用的连接追踪机制

 

链(内置):

PREROUTING

INPUT

FORWARD

OUTPUT

POSTROUTING

在实际使用中,我们通常是用表来操作,这里列出表和链的关系:

raw

PREROUTING, OUTPUT

mangle

PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

nat

REROUTING,OUTPUT,POSTROUTING(centos7中还有INPUT,
centos6中没有)

filter

INPUT,FORWARD,OUTPUT


 

报文流向:
流入本机:PREROUTING --> INPUT
由本机流出:OUTPUT --> POSTROUTING
转发:PREROUTING --> FORWARD --> POSTROUTING

 

三.iptables基本用法

规则格式:iptables [-t table] COMMAND chAIn [-m matchname [per-match-options]] -j targetname [per-target-options]

-t table:

raw, mangle, nat, filter(默认)

COMMAND

链管理:

-F:flush,清空规则链:省略链,表示清空指定表上的所有的链;

-N:new, 自定义一条新的规则链;

-X: delete,删除自定义的规则链;

-Z: zero,清零,置零规则计数器;

注意:仅能删除 用户自定义的 引用计数为0的 空的 链;

-P:Policy,设置默认策略;对filter表中的链而言,其默认策略有:

ACCEPT:接受

DROP:丢弃

REJECT:拒绝

-E: rEname 重命名自定义链;引用计数不为0的自定义链不能够被重命名,也不能被删除;

规则管理

-A:Append,追加;

-I:insert, 插入,要指明位置,省略时表示第一条;

-D:delete,删除;

(1) 指明规则序号;

(2) 指明规则本身;

-R:replace,替换指定链上的指定规则;

-F:flush,清空指定的规则链;

-Z:zero,置零;

iptables的每条规则都有两个计数器:

(1) 匹配到的报文的个数;

(2) 匹配到的所有报文的大小之和

查看

-L:list, 列出指定鏈上的所有规则;

-n:numberic,以数字格式显示地址和端口号; -v:verbose,详细信息; -vv, -vvv -x:exactly,显示计数器结果的精确值;  --line-numbers:显示规则的序号;

chain

PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

-j targetname(处理动作)

 

常用规则匹配器

 

命令用法总结

 

四.iptables进阶用法

扩展匹配条件:

隐式扩展:在使用-p选项指明了特定的协议时,无需再同时使用-m选项指明扩展模块的扩展机制;

显式扩展:必须使用-m选项指明要调用的扩展模块的扩展机制;

显示扩展:

iprange扩展模块

用iprange扩展模块可以指定"一段连续的IP地址范围",用于匹配报文的源地址或者目标地址。

–src-range:源地址范围

–dst-range:目标地址范围

]# iptables -t filter -I INPUT -m iprange --src-range 192.168.1.128-192.168.1.254 -j DROP

string扩展模块

使用string扩展模块,可以指定要匹配的字符串,如果报文中包含对应的字符串,则符合匹配条件。

-m string:表示使用string扩展模块

–algo:用于指定匹配算法,可选的算法有bm与kmp,此选项为必须选项,我们不用纠结于选择哪个算法,但 是我们必须指定一个。

–string:用于指定需要匹配的字符串

]# iptables -t filter -I INPUT -m string --algo bm --string “bit” -j REJECT

time扩展模块

过time扩展模块,根据时间段区匹配报文,如果报文到达的时间在指定的时间范围以内,则符合匹配条件。

-m time:表示使用time扩展模块

–timestart:选项用于指定起始时间,00:00:00格式时分秒。

–timestop:选项用于指定结束时间。

–weekdays:选项用于用数字指定星期几,还能用缩写表示,例如:Mon, Tue, Wed,Thu, Fri, Sat, Sun

–monthdays,–datestart,–datestop:指定日期范围

~]# iptables -t filter -I OUTPUT -p TCP --dport 80 -m time --timestart 08:55:00 --timestop 17:00:00 -j REJECT

~]# iptables -t filter -I OUTPUT -p TCP --dport 80 -m time --weekdays 1,2,3,4,5 -j REJECT

~]# iptables -t filter -I OUTPUT -p TCP --dport 8080 -m time -monthdays 1,2 -j REJECT

~]# iptables -t filter -I OUTPUT -p TCP --dport 8080 -m time -datestart 2019-04-20 --datestop 2019-04-21 -j REJECT

connlimit扩展模块

connlimit扩展模块,可以限制每个IP地址同时链接到server端的链接数量,注意:我们不用指定IP,其默认就 是针对"每个客户端IP",即对单IP的并发连接数限制。一般和协议、端口配合使用

–connlimit-above:限制连接上限

–connlimit-mask:按照网段限制连接上限

~]# iptables -t filter -I OUTPUT -p TCP --dport 22 -m connlimit -connlimit-above 2 -j REJECT

limit扩展模块

limit模块对"报文到达速率"进行限制,我们可以以秒为单位进行限制,也可以以分钟、小时、天作为单位进行限

制。

–limit限制比较有意思,主要用来限制单位时间内可以流入的数据包的数量。

使用"–limit"选项时,可以选择的时间单位有多种,如下 /second /minute /hour /day

~]# iptables -t filter -I INPUT -p icmp -m limit --limit 10/min -j REJECT

tcp-flags模块

tcp-flags模块也属于我们之前讲到过的tcp扩展模块中的内容。 --tcp-flags指的就是tcp头中的标志位,看来,在使用iptables时,我们可以通过此扩展匹配条件,去匹配tcp报 文的头部的标识位,然后根据标识位的实际情况实现访问控制的功能。在网络部分我们讲了三次握手,四次挥手,讲 了TCP的包头,这里主要指tcp包头中的标志位,SYN,ACK,FIN,RST,URG,PSH。

他的匹配规则是:“SYN,ACK,FIN,RST,URG,PSH SYN”,怎么来理解,我们可以把这串字符拆成两部分去理解,第一部分为"SYN,ACK,FIN,RST,URG,PSH",第二部分为"SYN"。

第一部分表示:我们需要匹配报文tcp头中的哪些标志位,那么上例的配置表示,我们需要匹配报文tcp头中的6 个标志位,这6个标志位分别为为"SYN、ACK、FIN、RST、URG、PSH",我们可以把这一部分理解成需要匹配的标 志位列表。

第二部分表示:第一部分的标志位列表中,哪些标志位必须为1,上例中,第二部分为SYN,则表示,第一部分 需要匹配的标志位列表中,SYN标志位的值必须为1,其他标志位必须为0。

~]# iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN -j REJECT #匹配第一次握手

~]# iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN,ACK -j REJECT #匹配第二次握手

state扩展

state是一个非常重要的扩展,可以基于连接追踪功能去查看每一报文当前所处的状态。不论什么协议,客户端 第一次访问时,服务器会去内核内存中的追踪表查看他之前是否来过,查不到就证明是第一次来,记录入追踪表,如 果查到以前来过就不检查规则,直接允许访问,这称为连接追踪机制。在访问量特别大的场景下,比如负载均衡服务 器不建议开启,追踪表大只能记录6万多的条目,访问数超过就会无法记录出错,导致所有的连接失败。

报文状态有五种:

NEW: 第一次连接时

ESTABLISHED:已建立的连接;

INVALID:无法识别的连接;

RELATED:相关联的连接,当前连接是一个新请求,但附属于某个已存在的连接

UNTRACKED:row表上关闭连接追踪功能

~]# iptables -t filter -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT



Tags:iptables   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
iptables 命令实战详解
一.iptables介绍iptables并不是真正意义上的防火墙,我们可以理解为一个客户端工具,用户通过ipatbles这个客户端,将用户 的安全设定执行到对应的"安全框架"中,这个"安全框架"才是...【详细内容】
2022-08-17  Search: iptables  点击:(471)  评论:(0)  加入收藏
Centos7配置iptables来实现白名单访问固定端口
iptables配置方法1.查看之前是否打开iptablessystemctl status iptables #查看当前是否打开iptablesiptables -nL #查看当前规则2.如果没有安装iptables,需要安装wget htt...【详细内容】
2022-08-01  Search: iptables  点击:(786)  评论:(0)  加入收藏
linux防火墙过滤技术iptables的原理及操作命令详解
iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的"安全框架"中,这个"安全框架"才是真正的防火墙,这个框...【详细内容】
2022-08-01  Search: iptables  点击:(404)  评论:(0)  加入收藏
Linux防火墙之iptables防火墙
一、iptables防火墙概述 Linux系统的防火墙:IP信息包过滤系统,它实际上由两个组件 netfilter 和 iptables 组成 主要工作在网络层,针对IP数据包。体现在对包内的IP地址、端口...【详细内容】
2022-06-28  Search: iptables  点击:(506)  评论:(0)  加入收藏
Linux之iptables防火墙
所谓防火墙也称之为防护墙,它是一种位于内部网络与外部网络之间的网络安全系统。一项信息安全的防护系统。按照给定的规则,允许或者限制网络报文通过。 硬件防⽕墙:通过硬件和...【详细内容】
2022-05-06  Search: iptables  点击:(426)  评论:(0)  加入收藏
linux防火墙iptables常用操作笔记
介绍其实Iptables服务不是真正的防火墙,只是用来定义防火墙规则功能的"防火墙管理工具",将定义好的规则交由内核中的netfilter即网络过滤器来读取,从而真正实现防火墙功能。fil...【详细内容】
2021-10-18  Search: iptables  点击:(366)  评论:(0)  加入收藏
几个简单的实例教你使用firewalld工具轻松管理iptables防火墙
iptables是Linux内核自带的防火墙,功能强大,但是因为其配置比较复杂,往往会让新手望而生畏。想当年,我在学习iptbles的时候就花费了不少精力,全凭自己零碎地摸索积累,着实走了不少...【详细内容】
2020-06-16  Search: iptables  点击:(640)  评论:(0)  加入收藏
VMware实现iptables NAT及端口映射
1. 前言本文只讲解实战应用,不会涉及原理讲解。如果想要了解iptables的工作流程或原理可参考如下博文。具体操作是在PC机的VMware虚拟机上进行的,因此涉及的地址都是内网IP...【详细内容】
2020-05-17  Search: iptables  点击:(319)  评论:(0)  加入收藏
超级实用的 iptables 防火墙脚本
本文档详细介绍生产环境中超级实用的iptables脚本。创建 iptables.sh 脚本[root@Jaking ~]# vim iptables.sh #!/bin/bash#清空 filter 表和 nat 表iptables -Fiptables -t...【详细内容】
2020-04-28  Search: iptables  点击:(347)  评论:(0)  加入收藏
▌简易百科推荐
2023年最需要注意的九大安全威胁
2023年又是全球网络安全威胁形势持续严峻,在叠加了地缘政治、经济竞争的因素后,具有政府/组织背景的APT组织屡屡在网络功空间之中兴风作浪,而各种新兴技术的应用也催生了大量的...【详细内容】
2023-12-21    FreeBuf.COM  Tags:安全威胁   点击:(99)  评论:(0)  加入收藏
IP地址攻击与防范措施:维护网络安全的关键
IP地址是互联网通信的基本组成部分,然而,它也成为网络攻击的目标。本文将深入探讨IP地址可能面临的攻击方式,以及如何采取有效的防范措施来维护网络的安全。第一部分:IP地址攻击...【详细内容】
2023-12-19  IP数据云    Tags:IP地址   点击:(133)  评论:(0)  加入收藏
CSRF攻击:一种不可忽视的网络威胁
随着网络技术的飞速发展,网络安全问题日益凸显。其中,CSRF(Cross-siteRequestForgery,跨站请求伪造)攻击成为了一种常见的网络威胁,给企业和个人带来了严重的安全隐患。本文将详细...【详细内容】
2023-12-19  小青爱生活    Tags:CSRF攻击   点击:(122)  评论:(0)  加入收藏
2024年影响安全领域的五大技术趋势
即使对于我们这些在科技行业工作了几十年的人来说,过去12个月的变化速度也是惊人的。我们再次确信,技术创新不仅带来了巨大的机遇,也带来了比我们以前面临的更复杂的挑战,而且没...【详细内容】
2023-12-11    千家网  Tags:安全领域   点击:(146)  评论:(0)  加入收藏
网络安全工程师都要了解的勒索威胁新趋势
Zscaler 安全威胁实验室发布《2023 年全球勒索软件报告》中预测了未来将出现的7个勒索威胁新趋势。一、公共服务设施成为勒索软件攻击的目标增加。市政服务部门、执法部门、...【详细内容】
2023-11-16  网盾网络安全培训中心    Tags:网络安全   点击:(210)  评论:(0)  加入收藏
威胁情报趋势
威胁情报是指对各种威胁的收集、分析和推测,以便提前预防和应对威胁。随着技术的不断发展,威胁情报的趋势也在不断变化。本文将对当前的威胁情报趋势进行深入解析,并展望未来可...【详细内容】
2023-11-08  信安天途    Tags:威胁情报   点击:(209)  评论:(0)  加入收藏
如何防范生成式AI的钓鱼邮件攻击
今年ChatGPT火爆全网,近年来AI人工智能取得了长足的进步,给各行各业带来了革命性的变化。然而,与任何技术一样,总是有人试图利用它来达到恶意目的。如今,黑客正在使用一种名为Wor...【详细内容】
2023-10-26  区块软件开发  今日头条  Tags:钓鱼邮件   点击:(231)  评论:(0)  加入收藏
杭州亚运会大火背后,是网安和黑产的疯狂对抗
10月8日晚,第十九届亚运会在杭州圆满落幕,中国代表团以201枚金牌的佳绩耀居榜首,成为历届亚运会以来金牌数量首次突破200枚的国家。根据亚运会主新闻发言人毛根洪10月7日在杭州...【详细内容】
2023-10-12  互盟数据中心    Tags:网安   点击:(344)  评论:(0)  加入收藏
Web 安全之 HSTS 详解和使用
HSTS(HTTP Strict Transport Security) 是一种网络安全机制,可用于防范网络攻击,例如中间人攻击和 CSRF(Cross-Site Request Forgery)等攻击。本文将详细介绍 HSTS 的工作原理、应...【详细内容】
2023-09-27  路多辛  今日头条  Tags:HSTS   点击:(250)  评论:(0)  加入收藏
如何使用Noir从源代码检测攻击面
关于NoirNoir是一款功能强大的代码安全检测工具,在该工具的帮助下,广大研究人员能够轻松从源代码层面检测目标应用程序的潜在攻击面。功能介绍1、从源代码自动识别编程语言和...【详细内容】
2023-09-27    FreeBuf.COM  Tags:Noir   点击:(373)  评论:(0)  加入收藏
站内最新
站内热门
站内头条