当前位置: 首页 > news >正文

Linux iptables使用详解

一、Linux系统下使用iptables

在Linux中,常用的防火墙工具是iptables。以下是一些基本的iptables命令,用于配置防火墙规则。

查看现有的iptables规则:

sudo iptables -L

清除所有现有的规则(慎用,可能导致服务不可用):

sudo iptables -F

允许特定端口(例如,允许TCP端口80):

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

拒绝来自特定IP的访问:

sudo iptables -A INPUT -s 123.123.123.123 -j DROP

# 假设要限制的IP段为192.168.1.0/24,你可以使用以下命令:
iptables -I INPUT -s 192.168.1.0/24 -j DROP

允许特定IP的访问:

sudo iptables -A INPUT -s 123.123.123.123 -j ACCEPT

保存规则,使其在重启后生效(可选,取决于发行版):

sudo iptables-save > /etc/iptables/rules.v4

或者在某些系统中,您可能需要使用iptables-persistent

sudo netfilter-persistent save
sudo netfilter-persistent reload

检查iptables服务状态(取决于发行版):

sudo systemctl status iptables

启动/停止/重启iptables服务

sudo systemctl start iptables
sudo systemctl stop iptables
sudo systemctl restart iptables

1. 基本概念

防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的数据包过滤表中,而这些表集成在 Linux 内核中。在数据包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 数据包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。

虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。

netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它

  • 表(Tables):iptables 定义了五个表,每个表用于处理不同类型的数据包。最常用的表是 filter 表,用于处理输入、输出和转发的数据包。
  • 链(Chains):每个表包含几个内置链,用于处理特定类型的数据包。例如,filter 表包含 INPUTOUTPUT 和 FORWARD 链。
  • 规则(Rules):规则定义了数据包与链的匹配条件以及匹配后应采取的操作(如接受、拒绝或跳转到另一个链)。
  • 目标(Targets):当数据包与规则匹配时,规则可以指定一个目标。常见的目标包括 ACCEPT(接受数据包)、DROP(丢弃数据包)和 REJECT(拒绝数据包并发送错误消息)。

2. 常用命令

  • 查看规则

    • iptables -L:列出 filter 表中的所有规则。
    • iptables -L -t nat:列出 nat 表中的所有规则。
    • -v 选项可以显示更详细的信息。
  • 添加规则

    • iptables -A INPUT -p tcp --dport 22 -j ACCEPT:在 INPUT 链的末尾添加一条规则,允许 TCP 协议的 22 端口(SSH)的数据包。
    • -A 表示追加到链的末尾,-I 可以用于在链的指定位置插入规则。
  • 删除规则

    • iptables -D INPUT -p tcp --dport 22 -j ACCEPT:删除与指定条件匹配的规则。
    • 注意,删除规则时必须提供完整的匹配条件,否则无法正确删除。
  • 修改规则:iptables 没有直接的修改命令,但可以通过删除旧规则并添加新规则来实现修改。

  • 保存和恢复规则

    • service iptables save(或 iptables-save > /etc/sysconfig/iptables):将当前规则保存到文件中。
    • service iptables restart(或 iptables-restore < /etc/sysconfig/iptables):从文件中恢复规则。
    • 注意:不是所有的 Linux 发行版都使用相同的命令来保存和恢复 iptables 规则。

3. 复杂用法

  • 匹配多个条件:使用多个 -p--dport--source 等选项可以定义更复杂的匹配条件。
  • 使用通配符:在匹配源地址或目标地址时,可以使用通配符(如 192.168.1.*)来匹配多个地址。
  • 使用扩展匹配:iptables 还支持扩展匹配模块,如 multiportstring 等,用于执行更复杂的匹配操作。
  • 使用自定义链:可以创建自定义链并在其他链中引用它们,以实现更复杂的逻辑。

4. 注意事项

  • 在修改 iptables 规则之前,请务必备份当前的规则集。
  • 谨慎使用 DROP 和 REJECT 目标,因为它们会阻止数据包通过系统并可能导致连接问题。
  • 使用 -v 或 --verbose 选项可以查看更详细的规则信息。
  • 不同的 Linux 发行版可能对 iptables 的使用略有差异,因此请参考特定发行版的文档以获取更多信息。

相关文章:

Linux iptables使用详解

一、Linux系统下使用iptables 在Linux中&#xff0c;常用的防火墙工具是iptables。以下是一些基本的iptables命令&#xff0c;用于配置防火墙规则。 查看现有的iptables规则&#xff1a; sudo iptables -L 清除所有现有的规则&#xff08;慎用&#xff0c;可能导致服务不可用…...

算法02 递归算法及其相关问题

递归 在编程中&#xff0c;我们把函数直接或者间接调用自身的过程叫做递归。 递归处理问题的过程是&#xff1a;通常把一个大型的复杂问题&#xff0c;转变成一个与原问题类似的&#xff0c;规模更小的问题来进行求解。 递归的三大要素 函数的参数。在用递归解决问题时&…...

三个pdf工具和浏览软件(pdftk,muppdf,epdfview)

安装pdftk pdftk是一款功能强大的PDF处理工具&#xff0c;主要用于对PDF文件进行各种操作。它提供了丰富的功能&#xff0c;包括但不限于合并、拆分、旋转、加密、解密、添加水印、从PDF文档中解出附件等。pdftk分为图形界面版本和命令行版本&#xff0c;适用于不同的用户需求…...

UKP3d的excel汇总表

长沙某正版用户就EXCEL的图框两点问题&#xff0c;进行交流&#xff1a; 1.1.图框&#xff1a;中英文两行&#xff0c;字体样式&#xff0c;logo加上等个性化需求&#xff1b; cbl回复&#xff1a;9.3后续版本迭代会加图框&#xff08;解决用户个性化需求&#xff09;&#xf…...

体验亚马逊AIGC——Amazon Bedrock

前言 随着人工智能技术的不断发展&#xff0c;我们已经进入了一个全新的时代&#xff0c;即AI驱动的时代。在这个时代&#xff0c;人工智能已经逐渐成为我们生活中不可或缺的一部分&#xff0c;它可以帮助我们更好地处理各种复杂的问题&#xff0c;提高我们的工作效率&#xff…...

Vue前端服务是什么:深入解析与实际应用

Vue前端服务是什么&#xff1a;深入解析与实际应用 在现今的互联网开发领域&#xff0c;前端技术日新月异&#xff0c;Vue.js作为其中的佼佼者&#xff0c;其前端服务更是成为了众多开发者关注的焦点。那么&#xff0c;Vue前端服务究竟是什么&#xff1f;它有哪些核心要素和实…...

mysql_ssl_rsa_setup使用详解

mysql_ssl_rsa_setup 是一个MySQL附带的工具&#xff0c;用于自动创建SSL证书和密钥文件&#xff0c;以便在MySQL服务器与客户端之间启用安全的SSL/TLS连接。这对于确保数据传输的安全性是非常重要的&#xff0c;尤其是在不安全的网络环境中。下面是对mysql_ssl_rsa_setup使用的…...

FreeSWITCH入门到精通系列(三):FreeSWITCH基础概念与架构

FreeSWITCH入门到精通系列&#xff08;三&#xff09;&#xff1a;FreeSWITCH基础概念与架构 前言 在前两篇博客中&#xff0c;我们介绍了FreeSWITCH的基本概念和安装与配置。本篇文章将深入探讨FreeSWITCH的基础概念和架构&#xff0c;帮助您更好地理解这个强大的通信平台的…...

【C++】AVL树/红黑树实现及map与set的封装

前言 【C】二叉树进阶&#xff08;二叉搜索树&#xff09; 这篇文章讲述了关于二叉搜索树知识&#xff0c;但是二叉搜索树有其自身的缺陷&#xff0c;假如往树中插入的元素有序或者接近有序&#xff0c;二叉搜索树就会退化成单支树&#xff0c;时间复杂度会退化成O(N)&#xff…...

利用CSS隐藏HTML元素并插入替代内容

在创建一个支持切换阅读模式和答题模式的Anki问答题模板中&#xff0c;我创建了一个支持切换阅读模式和答题模式的问答题模板&#xff0c;该文最终利用JavaScript将Anki输出的向下箭头删除&#xff0c;并插入自定义的提示语。经过进一步测试&#xff0c;发现实现上述功能完全不…...

第二节 单机版本redis部署

1. 部署环境 操作系统&#xff1a;centos7.XCPU: 2H内存&#xff1a;4GIP&#xff1a; 192.168.100.102部署版本&#xff1a; redis-7.0.15.tar.gz基础环境&#xff1a; gcc下载 2. 上传Redis安装包 [rootlocalhost opt]# ll 总用量 2932 drwxrwxr-x. 8 root root 4096 1…...

Vim 常用指令

Vim 是一款功能强大且高度可定制的文本编辑器。其高效的编辑方式使其成为许多程序员和系统管理员的首选。 1. Vim 的基本模式 Vim 具有以下几种基本模式&#xff1a; 正常模式&#xff08;Normal mode&#xff09;&#xff1a;用于浏览和编辑文本&#xff08;按 ESC 进入&am…...

PySide6实现pdf转化为word和长图片

目录 一:实现思路 二:实现过程 三:完整代码和实现 一:实现思路 最近在使用wps,发现wps中使用pdf转化为长图片还需要收费,这么不地道。就想自己能不能用程序实现这种功能的。还好python在自动化办公领域比较强悍,对文档操作也是得心应手。因此记录下用python实现pdf转…...

嵌入式硬件VS软件,到底哪个更难?

在嵌入式系统开发中&#xff0c;硬件和软件是密不可分的两个方面。但是&#xff0c;究竟是硬件开发更具挑战性&#xff0c;还是软件开发更难以应对呢&#xff1f;本文将就这一问题展开讨论&#xff0c;探究嵌入式硬件和软件在开发过程中的各种挑战与特点。 一、硬件开发&#…...

Spring boot集成log4j及日志配置详解,实战,ELK使用教程。

目录 引言一、SpringBoot 集成 Log4j1. 添加 Log4j 依赖2. 移除默认的Logback组件3. 创建 Log4j 配置文件4. 配置 Log4j2 日志文件 二、Log4j2 XML 文件配置详解基本结构Appenders 配置详解Loggers 配置详解 三、日志的作用四、日志数据采集与分析1. 日志数据采集2. 日志数据分…...

element 树组件 tree 横向纵向滚动条

Html <el-cardshadow"hover"class"solo flex-2"style"height: calc(100vh - 1.6rem); border: 1px solid #ebeef5"><div slot"header" class"clearfix"><span>问题分类</span></div><div …...

matlab 任意二维图像转点云

目录 一、概述二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 给定任意一张图片,通过代码操作将图片转成点云。图像中包含大量可用信息,其中必不可少的信息为像素坐标和像素值,将像…...

编程机器人的参数表怎么看

编程机器人的参数表怎么看 在探索编程机器人的世界时&#xff0c;理解其参数表是至关重要的一步。这些参数不仅反映了机器人的性能特点&#xff0c;还决定了其在实际应用中的表现。然而&#xff0c;对于初学者来说&#xff0c;参数表往往如同一本深奥的秘籍&#xff0c;充满了…...

上位机图像处理和嵌入式模块部署(h750 mcu串口命令处理)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面学习103和407的时候&#xff0c;当时学过串口的收发。不过当时使用的主要是阻塞的方式。这一次&#xff0c;我们看下应该怎么利用中断的形式进…...

西王食品2023营收下滑、净利润大幅减亏遭问询,近三年业绩承压

《港湾商业观察》廖紫雯 日前&#xff0c;西王食品股份有限公司&#xff08;以下简称&#xff1a;西王食品&#xff0c;000639.SZ&#xff09;收到来自深交所对公司2023年年报的问询函。 深交所问询函指出&#xff0c;要求公司说明营业收入下降、净利润大幅减亏的原因及合理性…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

软件工程 期末复习

瀑布模型&#xff1a;计划 螺旋模型&#xff1a;风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合&#xff1a;模块内部功能紧密 模块之间依赖程度小 高内聚&#xff1a;指的是一个模块内部的功能应该紧密相关。换句话说&#xff0c;一个模块应当只实现单一的功能…...

若依登录用户名和密码加密

/*** 获取公钥&#xff1a;前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...