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

在Linux中,Iptables能做什么?

概述

背景说明

在运维工作中,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. 带宽限制:控制特定流量的带宽。

相关文章:

  • 神经网络中的交叉熵(Cross-Entropy)损失函数详解
  • Spring MVC异常处理机制
  • 借助ChatGPT快速开发图片转PDF的Python工具
  • ubuntu24.4 + ros2 jazzy 安装gazebo
  • 算法-Day04
  • Selenium学习
  • 2016. 增量元素之间的最大差值
  • 力扣刷题(第六十四天)
  • 解决mysql左连接加where就不会保留左表中的全部数据的问题
  • 【转】如何画好架构图:架构思维的三大底层逻辑
  • 冰箱压缩机电机驱动板【IPM部分】
  • ffmpeg(六):图片与视频互转命令
  • 抖音的视频怎么下载下来——下载狗解析工具
  • QC -io 服务器排查报错方式/报错: Failed to convert string to integer of varId variable!“
  • Nginx反向代理解决跨域问题详解
  • 进程间通信、线程间通信
  • 基于Qt的UDP主从服务器设计与实现
  • 集群聊天项目服务器----JSON库
  • C语言:排序算法
  • 作为测试人员,平时用什么大模型?怎么用?
  • 独立购物网站建设/网络seo优化
  • 纺织品做外贸一般在哪个网站上/查域名ip地址查询
  • 知乎有趣的网站/免费优化推广网站的软件
  • 网站开发人员招聘要求/谷歌搜索引擎免费入口 香港
  • 邯郸装修网站建设/360优化大师旧版本
  • 中铁建设集团有限公司基础设施事业部/白帽seo是什么