概述

背景说明

在运维工作中,Iptables是一个不可或缺的工具,它提供了强大的网络流量控制和管理能力。

问题呈现

  1. iptables是一个不可获取的工具,你对其了解多少?
  2. 该工具你是否真的会用?
  3. 详细功能对应的应用场景你是否知晓?

具体呈现

1. 访问控制

iptables最核心功能是控制网络流量的进出,允许或拒绝特定的流量,可通过定义规则从而实现:

  1. 允许或拒绝特定IP地址

    • 允许特定IP地址访问服务器:
      iptables -A input -s 192.168.1.100 -j ACCEPT
      
    • 拒绝特定IP地址访问服务器:
      iptables -A input -s 1.2.3.4 -j drop
      
  2. 端口访问控制

    • 允许特定端口的流量(如SSH、HTTP、HTTPS)
      iptables -A input -p tcp --dport 22 -j accept
      iptables -A input -p tcp --dport 80 -j accept
      iptables -A input -p tcp --dport 443 -j accept
      
    • 拒绝所有未明确允许的流量:
      iptables -A input -j drop
      
  3. 基于协议的访问控制

  • 允许ICMS(ping)流量:
    iptables -A input -p imcp -j accept
    
  • 拒绝所有upd流量:
    iptables -A input -p udp -j drop
    

2. NAT(网络地址转换)

iptables支持NAT功能,主要用于实现私有网络与公网之间的通信。

  1. SNAT(源地址转换)
    • 将内网流量转换为公网IP
      iptables -t nat -A postrouting -s 192.168.1.0/24 -o eth0 -j masquerade
      
      适用于家庭或企业网络的出口网关。
  2. DNAT(目标地址转移)
    • 将外部流量转发到内网服务器
      iptables -t nat -A prerouting -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80
      
      适用于将公网流量转发到内网的web服务器。

3. 防止网络攻击

iptables可以通过规则限制来防范常见的网络攻击。

  1. 防止SYN Flood攻击
    • 限制每秒的 SYN数据包数量
      	iptables -A input -p tcp --syn -m limit --limit 1/sec -j accept
      
  2. 防止端口扫描
    • 限制对特定端口的扫描行为:
      iptables -A INPUT -p tcp --dport 22 -m recent --set --name SSH --rsource
      iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 5 --name SSH --rsource -j DROP
      
  3. 防止暴力破解
    • 限制失败登录尝试的频率:
      iptables -A input -p tcp --dport 22 -m fail12ban-ssh -j drop
      

4. 流量监控与统计

iptables可以记录和统计流量信息,帮助运维人员了解网络使用情况

  1. 日志记录
    • 将匹配的流量记录到日志文件
      	iptables -A input -p tcp --dport 22 -j log --log-prefix "ssh sccess:"
      
  2. 流量统计
    • 统计特定流量:
      iptables -A input -p tcp --dport 80
      iptables -L -v -n
      

5. 负载均衡

iptables可以简单的轮询算法实现负载均衡功能,将流量分发到多个后端服务器。

  1. 简单轮询负载均衡
    • 将http流量分发到多个后端服务器
      iptables -t nat -A PREROUTING -p tcp --dport 80 -m nth --counter 0 --every 2 --packet 0 -j DNAT --to-destination 192.168.1.100:80
      iptables -t nat -A PREROUTING -p tcp --dport 80 -m nth --counter 0 --every 2 --packet 1 -j DNAT --to-destination 192.168.1.101:80
      

6. 透明代理

iptables可以将流量重定向到本地的代理服务器,实现透明代理功能。

  1. 将http流量重定向到本地代理服务器
    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
    

7. 数据包修改

将进入的数据包的 TTL 值修改为特定值:

iptables -t mangle -A prerouting -j ttl --ttl-set 64

8. 连接跟踪

iptables 可以跟踪连接状态,并根据连接状态进行操作。

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

9. 限制特定IP的下载速度

iptables -A FORWARD -s 192.168.1.100 -p tcp --dport 80 -m quota --quota 1000000 -j ACCEPT
iptables -A FORWARD -s 192.168.1.100 -p tcp --dport 80 -j DROP

使用脚本管理规则

#!/bin/bash# 清空现有规则
iptables -F
iptables -X# 设置默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT# 允许已建立的连接
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT# 允许 SSH 和 HTTP 访问
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT# 日志记录
iptables -A INPUT -j LOG --log-prefix "Blocked: "# 保存规则
iptables-save > /etc/iptables/rules.v4

总结

iptables 能够实现以下功能:

  1. 访问控制:允许/拒绝特定流量。
  2. NAT功能:实现私有网络与公网的通信。
  3. 安全防护:防止网络攻击,如 SYN Flood 和端口扫描。
  4. 负载均衡:将流量分发到多个后端服务器。
  5. 透明代理:将流量重定向到代理服务器。
  6. 数据包修改:修改 TTL/IP地址。
  7. 连接跟踪:根据连接状态进行操作。
  8. 流量统计与监控:记录和分析流量信息。
  9. 带宽限制:控制特定流量的带宽。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux——linux的基本命令

目录 一、linux的目录结构 二、绝对路径和相对路径 三、文件类型(linux下所有东西都可看作文件) 四、文件的权限 五、文件权限的修改(chmod) 六、linux常用的命令 七、文件查看命令 八、文件编辑命令 九、文件压缩与解压…

智慧水利数字孪生解决方案:百川孪生智领千行,100+标杆案例赋能智慧水利全域升级

在数字技术革命与产业变革深度交织的浪潮下,智慧水利作为保障国家水安全、推动水利高质量发展的核心载体,正以数字孪生技术为引擎,驱动水利行业从“经验驱动”向“数据驱动”转型。 山东融谷作为智慧水利数字孪生领域的创新实践者&#xff0c…

深入解析ID3算法:信息熵驱动的决策树构建基石

本文来自「大千AI助手」技术实战系列,专注用真话讲技术,拒绝过度包装。 ID3(Iterative Dichotomiser 3) 是机器学习史上的里程碑算法,由Ross Quinlan于1986年提出。它首次将信息论引入决策树构建,奠定了现代…

Java解析audio时长

前提需要电脑上先安装后ffmpeg public long parseDuration(String audioPath) {long durationMs -1;try {Process process Runtime.getRuntime().exec("ffprobe " audioPath);// InputStream is process.getInputStream();InputStream is process.getErrorStrea…

python学智能算法(十五)|机器学习朴素贝叶斯方法进阶-CountVectorizer多文本处理

【1】引言 前序学习进程中,已经学习CountVectorizer文本处理的简单技巧,先相关文章链接为: python学智能算法(十四)|机器学习朴素贝叶斯方法进阶-CountVectorizer文本处理简单测试-CSDN博客 此次继续深入&#xff0…

AiPy 监控视频智能监察:人像一键抽取+可反复执行程序落地

兄弟们,不知道你们有没有过查监控的经历,虽然现在监控摄像头是越来越多,硬盘越塞越满,但真出了事儿,回放查录像堪比大海捞针!纯人工一帧帧的去找,能把眼睛盯瞎还是人影都找不到。不过我最近搞了…

期货反向跟单-终止盘手合作原则(二)

在期货反向跟单的领域中,数据就是实打实的真金白银,是策略能否持续盈利的核心价值所在。然而,许多团队在实际运营过程中,都遭遇了相似的困境:期初策略运转良好,可随着时间推移,数据表现却每况愈…

【Unity】MiniGame编辑器小游戏(三)马赛克【Mosaic】

更新日期:2025年6月17日。 项目源码:后续章节发布 索引 马赛克【Mosaic】一、游戏最终效果二、玩法简介三、正式开始1.定义游戏窗口类2.规划游戏窗口、视口区域3.地图方块阵列①.定义方块结构体②.生成方块阵列③.计算九宫格黑色方块数量④.排除任意九宫…

基于深度学习的智能图像质量评估系统:技术与实践

前言 在数字图像处理和计算机视觉领域,图像质量评估(Image Quality Assessment, IQA)是一个重要的研究方向。图像质量评估的目标是通过算法自动评估图像的质量,包括清晰度、对比度、噪声水平等。传统的图像质量评估方法主要依赖于…

【Golang面试题】Go语言实现请求频率限制

Go语言实现请求频率限制:从计数器到令牌桶的完整指南 在实际开发中,接口被恶意刷请求是常见问题。本文将深入探讨Go语言中四种主流的请求限流方案,从简单到复杂逐步深入,助你构建高可用服务。 一、基础方案:计数器法…

11Labs 增长负责人分享:企业级市场将从消费级或开发者切入丨Voice Agent 学习笔记

本文摘自 Founder Park AI 产品如何做增长,ElevenLabs的案例很值得学习。 专注于 AI 语音生成的独角兽企业 ElevenLabs 可以说一直在高速增长。在今年 1 月完成 1.8 亿美元 C 轮融资后,ElevenLabs 的估值突破 30 亿,直指 33 亿美元。2024 年…

Linux 命令:grep

概述 在Linux系统里,grep是一款十分实用的命令行工具,它主要用于在文件或者输入流中搜索符合特定模式的文本。下面为你详细介绍它的用法。资料已经分类整理好:https://pan.quark.cn/s/26d73f7dd8a7 基本语法 grep [选项] 搜索模式 [文件..…

Java八股文——MySQL「架构篇」

MySQL主从复制了解吗 面试官您好,我了解MySQL的主从复制。它是构建高可用、高可扩展数据库架构的核心基石。 1. 主从复制的核心原理与流程 整个主从复制的过程,就是一场围绕 binlog(二进制日志) 的“接力赛”。这个过程主要可以…

ubuntu下python版本升级导致pyqt不能正常运行解决

最终解决方案 ubuntu下多python版本pyqt兼容性问题解决 python3.9 -m pip install --upgrade --force-reinstall --prefer-binary pyqt5)尝试解决方案一(失败) 系统默认python版本可以,其他版本不行 sudo apt install pyqt5-dev-tools尝试解决方案二(失败) 一直…

AIGC工具平台-VideoRetalking音频对口型数字人

唇形合成技术正逐渐成为AIGC内容生产领域的重要工具,能够实现音视频数据的高度融合。基于VideoRetalking模块的可视化界面降低了技术门槛,使非技术背景的用户也能便捷体验唇形驱动数字人合成的流程。 本文重点解析该模块的使用方式及开发流程&#xff0…

前端项目如何部署为https

如何为项目部署设置HTTPS 设置HTTPS是保护网站数据传输安全的重要步骤。以下是设置HTTPS的主要方法: 1. 获取SSL/TLS证书 免费证书选项 Let’s Encrypt:最流行的免费证书颁发机构Cloudflare:提供免费SSL和CDN服务ZeroSSL:另一…

nginx 配置 系统升级页面

默认80端口配置如下: server {listen 80; # 指定端口号server_name 192.168.2.96; # 替换为实际域名或IP# 全局重定向到升级页面(排除自身防循环)if ($request_uri !~* "/upgrade.html") {return 307 /upgrade.html; # 临时重定…

计算机基础(一)——设计模式

一、设计模式 设计模式(Design Patterns)是软件开发中反复出现问题的解决方案的通用描述。 它是经过总结、提炼的高效代码结构和设计方案,帮助开发者写出更灵活、可维护和可扩展的代码。 优点注意点规范代码结构,提高开发效率设…

Mac电脑 磁盘检测和监控工具 DriveDx

DriveDx Mac 一款不监视驱动器的内置S.M.A.R.T.状态的先进驱动器运行状况诊断和监测工具。 还分析了所有驱动器健康密切相关的指标, SSD或硬盘驱动器故障(像SSD磨损 /耐久性,坏扇区重新分配,离线坏道,未定扇形区&…

频繁操作Json嵌套数据PostgreSQL配合JSON操作工具类+sql

文章目录 1.工具类2.依赖3.sql 本文档只是为了留档方便以后工作运维,或者给同事分享文档内容比较简陋命令也不是特别全,不适合小白观看,如有不懂可以私信,上班期间都是在得 背景:因为频繁操作json嵌套数据 PostgreSQL得…