08-linux网络管理-iptables扩展模块

news2024/11/16 17:48:23

文章目录

  • 1. 概述
  • 2. icmp 模块
    • 2.1 示例(禁止本机ping其它主机)
    • 2.2 示例(其他主机ping本机)
    • 2.3 --icmp-type 说明
  • 3. iprange模块
  • 4. multiport 模块
  • 5. state 模块
    • 5.1 语法
    • 5.2 完整示例
  • 6. limit模块
    • 6.1 语法
    • 6.2 完整示例
  • 7. connlimit
    • 7.1 语法
    • 7.2 完整示例( 限同一IP最大连接数为2)
  • 8. time模块
  • 9. comment模块
  • 10. mark模块

1. 概述

  • 作用:

-m 指定

  • 语法
iptables -m M_NAME

说明:如果命令行 -p 指明了协议,则不必手动添加

2. icmp 模块

使用-m icmp引用该模块

2.1 示例(禁止本机ping其它主机)

iptables -t filter -I INPUT -p icmp -m icmp --icmp-type echo-reply -j REJECT

查下边--icmp-type可知 echo-reply对应的TYPE只为0,因此可以写做:

iptables -t filter -I INPUT -p icmp -m icmp --icmp-type 0 -j REJECT

2.2 示例(其他主机ping本机)

iptables -t filter -I INPUT -p icmp -m icmp --icmp-type echo-request -j REJECT

查下边--icmp-type可知 echo-reply对应的TYPE只为8,因此可以写做:

iptables -t filter -I INPUT -p icmp -m icmp --icmp-type 8 -j REJECT

2.3 --icmp-type 说明

TYPECODEDescriptionQueryError
00Echo Reply——回显应答(Ping应答)x
30Network Unreachable——网络不可达x
31Host Unreachable——主机不可达x
32Protocol Unreachable——协议不可达x
33Port Unreachable——端口不可达x
34Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特x
35Source routing failed——源站选路失败x
36Destination network unknown——目的网络未知x
37Destination host unknown——目的主机未知x
38Source host isolated (obsolete)——源主机被隔离(作废不用)x
39Destination network administratively prohibited——目的网络被强制禁止x
310Destination host administratively prohibited——目的主机被强制禁止x
311Network unreachable for TOS——由于服务类型TOS,网络不可达x
312Host unreachable for TOS——由于服务类型TOS,主机不可达x
313Communication administratively prohibited by filtering——由于过滤,通信被强制禁止x
314Host precedence violation——主机越权x
315Precedence cutoff in effect——优先中止生效x
40Source quench——源端被关闭(基本流控制)
50Redirect for network——对网络重定向
51Redirect for host——对主机重定向
52Redirect for TOS and network——对服务类型和网络重定向
53Redirect for TOS and host——对服务类型和主机重定向
80Echo request——回显请求(Ping请求)x
90Router advertisement——路由器通告
100Route solicitation——路由器请求
110TTL equals 0 during transit——传输期间生存时间为0x
111TTL equals 0 during reassembly——在数据报组装期间生存时间为0x
120IP header bad (catchall error)——坏的IP首部(包括各种差错)x
121Required options missing——缺少必需的选项x
130Timestamp request (obsolete)——时间戳请求(作废不用)x
14Timestamp reply (obsolete)——时间戳应答(作废不用)x
150Information request (obsolete)——信息请求(作废不用)x
160Information reply (obsolete)——信息应答(作废不用)x
170Address mask request——地址掩码请求x
180Address mask reply——地址掩码应答

3. iprange模块

  • 作用
    一次加入范围IP地址

  • 示例

iptables -t filter -I INPUT -m iprange --src-range 192.168.2.20-192.168.2.100 -j REJECT

参数说明

  • –src-range:指定源地址范围。
  • –dst-range:指定目标地址范围。
  • ! --src-range:非指定的源地址。
  • ! --dst-range:非指定的目标地址。

4. multiport 模块

  • 作用

一次加入多个端口(连续或不连续的)

  • 添加不连续端口
iptables -t filter -I INPUT -p tcp -m multiport --dports 20,21,22,25,80,110 -j ACCEPT
  • 添加连续端口
iptables -t filter -I INPUT -p tcp -m multiport --dports 20,21,22,25,80,110 -j ACCEPT

5. state 模块

5.1 语法

  • 作用

按链接状态过滤链接

  • 示例
# iptables -t filter -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • 状态说明
参数说明
NEW新生态
ESTABLISHED连接态
RELATED衍生态
INVALID无效态

5.2 完整示例

使用状态防火墙,放行本机FTP服务[被动模式]

  • 设置防火墙规则
iptables -t filter -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t filter -I INPUT -p tcp --dport 21,20 -j ACCEPT
iptables -t filter -A INPUT -j REJECT	
  • 载入nf_conntrack_ftp模块
modprobe nf_conntrack_ftp 
  • 设置模块自动添加

/etc/sysconfig/iptables-config文件中修改如下项:

IPTABLES_MODULES="nf_conntrack_ftp"

如果要添加多个模块,可写为IPTABLES_MODULES="m01 m02 ……"

6. limit模块

6.1 语法

  • 作用

通过令牌桶限制请求数

  • 示例
iptables -t filter -A INPUT -p icmp  -m limit --limit 10/minute --limit-burst 5 -j ACCEPT
  • 说明

--limit 10/minute 每分中产生10个令牌

其他限制条件:x/second 、x/minute、x/hour、x/day

--limit-burst 5 令牌桶中放入5个令牌

6.2 完整示例

  • 为方便演示,先清空防火墙策略,禁止对方ping本机
iptables -F
iptables -t filter -I INPUT -p icmp -m icmp --icmp-type 8 -j REJECT
  • 设置防火墙策略

每分钟产生12个令牌(5秒一个),令牌桶中有5个令牌

iptables -t filter -I INPUT -p icmp  -m limit --limit 12/minute --limit-burst 5 -j ACCEPT
  • 测试

从另一台服务器ping改服务器,结果如下

  • 每5秒产生一个令牌,和我们设置的一样
  • 但是一开始并没有连续取到5个令牌,对令牌桶的设置还是不太理解。
64 bytes from 10.10.239.32: icmp_seq=156 ttl=64 time=0.258 ms
64 bytes from 10.10.239.32: icmp_seq=157 ttl=64 time=0.238 ms
64 bytes from 10.10.239.32: icmp_seq=158 ttl=64 time=0.174 ms
From 10.10.239.32 icmp_seq=159 Destination Port Unreachable
From 10.10.239.32 icmp_seq=160 Destination Port Unreachable
64 bytes from 10.10.239.32: icmp_seq=161 ttl=64 time=0.233 ms
From 10.10.239.32 icmp_seq=162 Destination Port Unreachable
From 10.10.239.32 icmp_seq=163 Destination Port Unreachable
From 10.10.239.32 icmp_seq=164 Destination Port Unreachable
From 10.10.239.32 icmp_seq=165 Destination Port Unreachable
64 bytes from 10.10.239.32: icmp_seq=166 ttl=64 time=0.228 ms
From 10.10.239.32 icmp_seq=167 Destination Port Unreachable
From 10.10.239.32 icmp_seq=168 Destination Port Unreachable
From 10.10.239.32 icmp_seq=169 Destination Port Unreachable
From 10.10.239.32 icmp_seq=170 Destination Port Unreachable
64 bytes from 10.10.239.32: icmp_seq=171 ttl=64 time=0.264 ms
From 10.10.239.32 icmp_seq=172 Destination Port Unreachable
From 10.10.239.32 icmp_seq=173 Destination Port Unreachable
From 10.10.239.32 icmp_seq=174 Destination Port Unreachable
From 10.10.239.32 icmp_seq=175 Destination Port Unreachable
64 bytes from 10.10.239.32: icmp_seq=176 ttl=64 time=0.426 ms
From 10.10.239.32 icmp_seq=177 Destination Port Unreachable
From 10.10.239.32 icmp_seq=178 Destination Port Unreachable
From 10.10.239.32 icmp_seq=179 Destination Port Unreachable
From 10.10.239.32 icmp_seq=180 Destination Port Unreachable
64 bytes from 10.10.239.32: icmp_seq=181 ttl=64 time=0.172 ms
From 10.10.239.32 icmp_seq=182 Destination Port Unreachable
From 10.10.239.32 icmp_seq=183 Destination Port Unreachable
From 10.10.239.32 icmp_seq=184 Destination Port Unreachable
From 10.10.239.32 icmp_seq=185 Destination Port Unreachable
64 bytes from 10.10.239.32: icmp_seq=186 ttl=64 time=0.201 ms
From 10.10.239.32 icmp_seq=187 Destination Port Unreachable
From 10.10.239.32 icmp_seq=188 Destination Port Unreachable
From 10.10.239.32 icmp_seq=189 Destination Port Unreachable
From 10.10.239.32 icmp_seq=190 Destination Port Unreachable
64 bytes from 10.10.239.32: icmp_seq=191 ttl=64 time=0.330 ms
From 10.10.239.32 icmp_seq=192 Destination Port Unreachable
From 10.10.239.32 icmp_seq=193 Destination Port Unreachable
From 10.10.239.32 icmp_seq=194 Destination Port Unreachable
From 10.10.239.32 icmp_seq=195 Destination Port Unreachable
64 bytes from 10.10.239.32: icmp_seq=196 ttl=64 time=0.266 ms

7. connlimit

7.1 语法

  • 作用
    限同一IP最大连接数

  • 语法示例

仅允许每个客户端有两个ssh连接

iptables -A INPUT -p tcp --syn --dport 22 -m connlimit ! --connlimit-above 2 -j ACCEPT

7.2 完整示例( 限同一IP最大连接数为2)

  • 允许连接态和衍生态(必要)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • 限同一IP最大连接数为2
iptables -A INPUT -p tcp --syn --dport 22 -m connlimit ! --connlimit-above 2 -j ACCEPT 	

iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 2 -j REJECT
  • 测试

从客户ssh到该服务器,只允许有两个链接。

8. time模块

  • 作用
    设置规则每天生效时间。

  • 示例

iptables -A INPUT -m time --timestart 8:00 --timestop 15:30 -j ACCEPT

9. comment模块

  • 作用
    添加说明

  • 示例

iptables -A INPUT -s 10.10.237.32 -m comment --comment "禁止源访问" -j REJECT

10. mark模块

iptables -t filter -A INPUT -m mark --mark 2 -j REJECT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/186603.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[2019红帽杯]easyRE1题解

迷蒙马背眠,月随残梦天边远,淡淡起茶烟。 ——松尾芭蕉 目录 1.查壳 2.拖入64位IDA,找到主函数 3.静态分析主函数 4.wp 1.查壳 ELF文件,64bit 2.拖入64位IDA,找到主函数 没有标明main函数,我们打开str…

OSCP_VULHUB COVFEFE: 1

文章目录前言信息收集渗透过程权限提升前言 靶机下载地址:https://www.vulnhub.com/entry/covfefe-1,199/ 攻击机:kali(192.168.132.139) 靶机:covfefe(192.168.132.146) 下载好靶机之后直接使…

vivo 超大规模消息中间件实践之路

作者:vivo 互联网存储技术团队-Luo Mingbo、中间件团队- Liu Runyun 本文根据“2022 vivo开发者大会"现场演讲内容整理而成。 本文主要介绍超大数据规模场景下分布式消息中间件在vivo的应用实践。 在线业务侧主要从RocketMQ集群部署架构、平台系统架构、日常运…

EMC基础:电容的频率特性

本文将对其中使用电容和电感降噪的对策进行介绍,这也可以称为“噪声对策的基础”。在这里使用简单的四元件模型。如果要进一步表达高频谐振时,可能需要更多的元件模型。 电容的频率特性 探讨利用电容器来降低噪声时,充分了解电容器的特性是…

设计模式——软件设计原则

目录 3.软件设计原则 3.1 开闭原则 3.2 里氏代换原则 3.3 依赖倒转原则 3.4 接口隔离原则 3.5 迪米特法则 3.6 合成复用原则 3.软件设计原则 在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要…

8、Servlet——Servlet生命周期、Servlet特性

目录 一、Servlet生命周期 1、生命周期的四个阶段 1.1 实例化 1.2 初始化 1.3 服务 1.4 销毁 2、Servlet执行流程 3、代码演示 二、 Servlet特性 1、线程安全问题 2、如何保证线程安全 一、Servlet生命周期 1、生命周期的四个阶段 1.1 实例化 当用户第一次访问Ser…

flutter裁剪三角形,并设置三角形最长边阴影(类似钉钉登录页右上角图标样式)

需求 需要使用flutter创建类似钉钉登录页右上角图表样式 过程 图标 图标直接从阿里巴巴图标库中下载png文件,并设置相应颜色 三角形阴影 样式的主要难点在三角形及三角形阴影这里 1、三角形的裁剪有两种方法: 第一种是 使用边框实现三角形 参考博客…

springboot自动加载--自定义启动器

创建自定义启动器 0、项目总览 1、创建项目&#xff0c;引入依赖 创建项目 spring-boot-jdbc-starter&#xff0c;引入依赖&#xff0c;pom文件如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apa…

b站黑马Vue2后台管理项目笔记——(1)登录功能

说明&#xff1a; 此项目中使用的是本地SQL数据库&#xff0c;Vue2。 其他功能请见本人后续的其他相关文章。 本文内容实现的最终效果如下图&#xff1a; 目录 一&#xff0e;登录功能的实现 1.登录页面的布局&#xff1a; &#xff08;1&#xff09;查看当前工作区是否干净…

读锁应该插队吗?什么是锁的升降级?

背景 ReentrantReadWriteLock可以设置公平或非公平&#xff0c;为什么&#xff1f; 读锁插队策略 每次获取响应锁之前都要检查能否获取 readerShouldBlockwriterShouldBlock 公平锁 final boolean writerShouldBlock() {return hasQueuedPredecessors(); } final boolean …

打造智慧工地,低代码平台助力基建行业全链路数字化升级

编者按&#xff1a;基建行业数字化转型需求迫切&#xff0c;低代码平台有助于加快数字化转型速度&#xff0c;赋能建筑工程企业升级。本文分析了低代码在基建行业中的应用价值&#xff0c;并指出基建行业对于低代码平台的需求&#xff0c;最后通过相关案例的展示了低代码平台在…

低代码平台解读:“低代码+PaaS”的技术创新实践

数字化转型已经成为必然趋势&#xff0c;几乎所有传统行业都喊出了数字化转型的口号。但在数字化转型中&#xff0c;很多企业面临着成本高、周期长的难题。低代码是其中一种破解难题的方式&#xff0c;如今的低代码已经是企业数字化的核心引擎。 低代码平台越来越多&#xff0…

数据结构——链表(五)

数据结构 文章目录数据结构前言一、什么是链表二、实现单链表1.单链表的结构2.单链表的初始化3.单链表的插入4.遍历链表5.链表长度总结前言 接下来学习一下链表&#xff0c;链表比数组用的更多。 一、什么是链表 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存…

《从0开始学大数据》之如何自己开发一个大数据SQL引擎

背景 大数据仓库 Hive&#xff0c;作为一个成功的大数据仓库&#xff0c;它将 SQL 语句转换成 MapReduce 执行过程&#xff0c;并把大数据应用的门槛下降到普通数据分析师和工程师就可以很快上手的地步。 但是 Hive 也有自己的问题&#xff0c;由于它使用自己定义的 Hive QL …

Linux常用命令——repquota命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) repquota 报表的格式输出磁盘空间限制的状态 补充说明 repquota命令以报表的格式输出指定分区&#xff0c;或者文件系统的磁盘配额信息。 语法 repquota(选项)(参数)选项 -a&#xff1a;列出在/etc/fstab文…

gRPC 基础(二)-- Go 语言版 gRPC-go

gRPC-Go Github gRPC的Go实现:一个高性能、开源、通用的RPC框架&#xff0c;将移动和HTTP/2放在首位。有关更多信息&#xff0c;请参阅Go gRPC文档&#xff0c;或直接进入快速入门。 一、快速入门 本指南通过一个简单的工作示例让您开始在Go中使用gRPC。 1.1 先决条件 Go:…

word排版技巧:这几种特殊版式轻松搞定

我们在许多报刊、杂志中会见到一些带有特殊效果的文档&#xff0c;如首字下沉、分栏排版、竖排文档等形式的排版效果。这些效果其实不是只有专业排版软才能实现&#xff0c;利用Word我们可以轻松完成这些排版效果。1、首字下沉首字下沉是一种突出显示段落中的第一个汉字的排版方…

3小时快速上手sharding-jdbc

今日目标 1、理解分库分表基础概念【垂直分库分表、水平分库分表】 2、能够说出sharding-jdbc为我们解决什么问题 3、理解sharding-jdbc中的关键名词 4、理解sharding-jdbc的整体架构及原理 5、掌握sharding-jdbc的集成方式1.分库分表介绍 1.1 分库分表概述 分库分表就是为了…

普元EOS_工作流引擎相关数据表记录---工作流工作笔记002

由于现在在用普元的工作流引擎,但是,说明文档中没有对数据表的说明 所以整理一下记录下来: 业务流程(com.eos.workflow.data.WFProcessDefine) 属性 名称 类型 processDefID 业务流程ID long processDefName 业务流程名称 String processChName 业务流程显示名称 String desc…

计算机图形学 第5章 二维变换与裁剪完结

目录中点分割直线段裁剪算法中点计算公式代码Liang-Barsky直线段裁剪算法⭐⭐⭐代码&#xff1a;多边形裁剪算法/Sutherland-Hodgman裁剪算法代码相关学习资料&#xff1a;中点分割直线段裁剪算法 中点分割直线段裁剪算法对Cohen-Sutherland直线裁剪算法的第3种情况做了改进&a…