Linux如何使用iptables配置防火墙规则

iptables是Linux防火墙工具,用于配置netfilter实现包过滤和NAT;通过iptables -L -n -v查看规则,-A添加规则允许回环、已建立连接及开放SSH/HTTP/HTTPS端口,设置默认DROP策略,可拒绝特定IP或端口访问,需用service iptables save或iptables-save保存规则以防重启丢失。

linux如何使用iptables配置防火墙规则

Linux系统中,iptables 是一个强大的防火墙工具,用于配置内核中的netfilter模块,实现数据包过滤、网络地址转换(NAT)等功能。通过合理设置iptables规则,可以有效保护服务器安全。以下是配置iptables防火墙规则的基本方法和常用操作。

查看当前防火墙规则

在修改规则前,先查看当前生效的规则:

iptables -L -n -v

参数说明:

-L:列出规则 -n:以数字形式显示IP和端口 -v:显示详细信息

若需查看特定链(如INPUT、OUTPUT、FORWARD)的规则,可加上链名:

iptables -L INPUT -n -v

添加基本访问规则

常用操作是允许或拒绝特定端口的访问。以下是一些典型示例:

允许本地回环接口通信(必要):

iptables -A INPUT -i lo -j ACCEPT

允许已建立的连接通过(保证已有会话不被阻断):

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

开放常用服务端口

SSH(默认端口22):

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

HTTP(80端口):

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

HTTPS(443端口):

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

拒绝或丢弃非法请求

默认策略通常设置为DROP或REJECT,增强安全性。

设置默认策略

琅琅配音 琅琅配音

全能AI配音神器

琅琅配音 208 查看详情 琅琅配音

iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT ACCEPT

拒绝特定IP访问

iptables -A INPUT -s 192.168.1.100 -j DROP

阻止某个IP连接特定端口

iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j REJECT

保存和恢复规则

iptables规则默认在重启后丢失,需手动保存。

在CentOS/RHEL系统中:

service iptables save

或使用:

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

恢复规则:

iptables-restore < /etc/iptables/rules.v4

Debian/Ubuntu系统建议安装 iptables-persistent 包自动保存规则。

基本上就这些。掌握iptables的核心在于理解链(chain)、表(table)、匹配条件和动作(ACCEPT、DROP等)。规则顺序很重要,靠前的规则优先匹配。配置时注意不要将自己锁在SSH之外,建议在本地或有备用访问方式下操作。

以上就是Linux如何使用iptables配置防火墙规则的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/431068.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月7日 14:01:36
下一篇 2025年11月7日 14:02:50

相关推荐

  • Go语言反射:理解reflect.TypeOf的工作原理与类型获取的正确姿势

    本文深入探讨Go语言中`reflect.TypeOf`函数的使用方法及其核心机制。我们将解释如何从一个具体的值获取其反射类型,并纠正常见的误区,即无法直接将类型标识符作为参数传递给函数以进行反射。文章还将提供通过零值获取类型信息的实用技巧,帮助开发者更准确地利用Go的反射能力。 Go语言的refle…

    2025年12月16日
    000
  • 深入理解Go语言变量声明:var与:=的顶级与块级差异

    go语言中,变量声明方式var和:=存在关键区别。var用于声明所有变量,尤其在包级别(顶级)声明时强制使用。而:=是短变量声明,仅允许在函数内部或代码块中使用,它会根据初始值推断变量类型并同时声明和赋值。理解这一差异对于避免编译错误和编写规范的go代码至关重要。 Go语言提供了两种主要的变量声明方…

    2025年12月16日
    000
  • Go语言中通过unsafe包实现mmap内存区域的32位读写

    本文探讨go语言在用户空间进行硬件驱动开发时,如何处理`syscall.mmap`返回的`[]byte`切片,以实现对内存映射区域(如`/dev/mem`)的精确32位读写操作。核心方法是利用`unsafe`包,将`[]byte`的特定偏移地址转换为`*uint32`指针,从而绕过go的类型安全限制…

    2025年12月16日
    000
  • 在Windows上成功安装Go-GL:解决GLEW编译与配置难题

    本文旨在解决在Windows环境下使用Go-GL (OpenGL) 时遇到的`GL/glew.h`编译错误。核心问题在于GLEW库的兼容性(MinGW与Visual C++)及文件放置位置。教程将指导用户如何确保GLEW与MinGW工具链兼容,并正确配置`glew.h`头文件、`libglew32.…

    2025年12月16日
    000
  • Go 语言包结构与导入最佳实践

    本文旨在深入探讨 Go 语言的包结构和导入机制,指导开发者遵循官方约定,构建清晰、可维护的项目。文章将详细阐述 `$GOPATH/src` 目录的重要性、如何正确组织包文件、避免相对导入,并提供规范的绝对导入示例,确保代码的模块化和可重用性。 Go 语言的项目结构和包管理是其设计哲学的重要组成部分。…

    2025年12月16日
    000
  • 如何在Golang中测试异步回调_Golang 异步回调测试实践

    答案:测试Go异步回调需用同步机制确保结果捕获,常用sync.WaitGroup配合超时控制防止阻塞,结合channel传递数据更简洁,通过mock验证回调行为,核心是等待完成且不遗漏超时防护。 在Go语言中测试异步回调函数是常见的需求,尤其是在处理事件驱动系统、网络请求或定时任务时。由于异步操作不…

    2025年12月16日
    000
  • Go语言中通过unsafe实现/dev/mem内存映射区域的32位访问

    本教程探讨了在go语言中如何对通过`syscall.mmap`获取的`/dev/mem`内存映射区域进行32位数据读写操作。由于`mmap`返回的是字节切片,直接进行32位访问需要借助`unsafe`包,通过指针类型转换将字节地址转换为`*uint32`指针,从而实现对硬件寄存器的精确控制。文章将详…

    2025年12月16日
    000
  • Golang如何通过反射获取方法名列表_Golang 方法名列表获取实践

    要通过反射获取类型的方法名列表,需使用reflect.TypeOf获取类型信息,遍历其NumMethod()返回的数量,调用Method(i)获取每个方法的reflect.Method实例,并提取Name字段。该方法仅返回首字母大写的导出方法,私有方法不可见。实际应用包括RPC框架、CLI命令调度、…

    2025年12月16日
    000
  • 如何用Golang测试日志输出功能_Golang 日志输出测试实践

    使用接口抽象或输出重定向可有效测试Go日志。1. 定义Logger接口并注入,测试时用MockLogger捕获输出;2. 重定向标准log到buffer进行断言,需注意并发安全;3. 第三方库如zap提供zaptest等工具支持精细控制与自动验证,提升可观测性。 测试日志输出在 Golang 项目中…

    2025年12月16日
    000
  • Go语言中 defer 语句的作用域与执行时机详解

    defer 语句在 go 语言中用于确保函数返回前执行特定操作,常用于资源清理。本文深入探讨 defer 的执行机制,明确其作用域仅限于声明它的函数内部,不会影响调用者函数。通过实例代码,我们将理解 defer 如何与闭包结合使用,以及其在实际应用中的正确姿势,避免常见的误解。 引言:defer 语…

    2025年12月16日
    000
  • Go语言中map存储多维数据:理解数组与切片的类型差异与实践

    本文深入探讨了在go语言中将不同维度的多维数据(如数组或切片)存储到`map`时常见的类型不匹配问题。核心在于go中数组的长度是其类型定义的一部分,而切片则提供了动态长度的灵活性。教程将详细解释数组与切片的区别,并提供通过使用切片类型来解决`map`值类型不兼容的实用方法,确保数据结构设计的正确性与…

    2025年12月16日
    000
  • 深入理解Go语言中的变量声明:var与:=的关键差异与应用

    Go语言中,var 关键字用于在包级别(顶层)声明变量,而 := 短变量声明符仅限在函数内部(代码块中)使用。理解这一核心差异对于避免编译错误至关重要,尤其是在处理如命令行参数或全局配置等包级别变量时,必须使用 var 进行显式声明,以确保代码的正确性和可读性。 Go语言变量声明基础 在Go语言中,…

    2025年12月16日
    000
  • Golang如何在Linux使用包管理工具安装

    直接使用官方预编译包安装Go语言最可靠。1. 从官网下载对应版本的二进制包并解压到/usr/local;2. 配置PATH、GOPATH环境变量至shell配置文件并生效;3. 执行go version和go env验证安装;4. 虽可通过apt或dnf安装,但版本较旧,不推荐用于新项目开发。 Go…

    2025年12月16日
    000
  • Go App Engine 中使用 gorilla/mux 路由的正确姿势

    本文旨在解决go语言在google app engine (gae) 环境下使用`gorilla/mux`进行路由配置时遇到的404问题。核心在于理解gae go运行时环境的特殊性:它会自动监听端口并使用`http.defaultservemux`。正确的做法是将路由初始化逻辑放入`init()`函…

    2025年12月16日
    000
  • Go语言并发编程:Channels计数器实现中的常见陷阱与解决方案

    本文深入探讨了go语言中使用channel实现计数器时常见的两个问题:goroutine未按预期运行以及channel操作导致的死锁。我们将通过具体代码示例,详细解析这些问题的根源,包括主程序提前退出对goroutine的影响,以及无缓冲channel的阻塞机制。最终,文章将提供一套正确实现chan…

    2025年12月16日
    000
  • Go语言实现内存映射区域的32位访问:以/dev/mem为例

    本文深入探讨了go语言中如何对内存映射(mmap)区域进行特定位宽(如32位)的读写操作。鉴于go的`syscall.mmap`函数返回的是字节切片,而硬件寄存器通常需要32位或更高位宽的原子访问,文章详细介绍了如何利用`unsafe`包进行指针类型转换,从而实现对内存映射区域的精确位宽控制。通过示…

    2025年12月16日
    000
  • Go 项目文档生成与HTTP服务:godoc 实践指南

    本文详细介绍了如何利用 go 语言自带的 `godoc` 工具为本地 go 项目生成专业级的 api 文档,并将其通过 http 服务发布。针对用户在尝试 `godoc -http` 时常遇到的默认显示 go 标准库而非自定义项目文档的问题,文章重点阐述了如何通过 `-goroot` 参数精确指定文…

    2025年12月16日
    000
  • 如何在Golang中优化数据库连接池_Golang 数据库连接池优化实践

    合理配置Go连接池参数可提升数据库性能。需设置MaxOpenConns、MaxIdleConns、ConnMaxLifetime和ConnMaxIdleTime,避免资源浪费与连接泄漏,结合业务场景调优并监控Stats状态,确保系统稳定高效。 在Golang中优化数据库连接池,核心是合理配置参数、避…

    2025年12月16日
    000
  • Go语言中defer的执行机制与作用域详解

    defer 关键字在 go 语言中用于确保函数在返回前执行特定的操作。本文将深入探讨 defer 的作用域和执行机制,明确它只作用于声明 defer 语句的当前函数,而非其调用者函数。通过代码示例,我们将展示 defer 的典型用法及其在复杂场景下的行为,帮助开发者正确理解和利用 defer 进行资…

    2025年12月16日
    000
  • Golang如何实现日志记录与错误输出_Golang 日志错误记录实践

    使用标准库log记录基础日志,结合fmt.Errorf包装错误链,推荐zap等结构化日志库实现字段化输出,统一错误响应避免信息泄露,建立一致的可维护日志与错误处理体系。 在Go语言开发中,良好的日志记录和错误处理机制是保障程序可维护性和问题排查效率的关键。合理使用日志可以帮助开发者快速定位问题,而清…

    2025年12月16日
    000

发表回复

登录后才能评论
关注微信