iptables 用于设置、维护和检查 IP 数据包的过滤规则。其基本用法是通过命令行界面配置流量的过滤策略,分为以下几类规则链:INPUT(入站流量)、OU

news/2024/12/2 18:54:10/

iptables 是 Linux 下的一个强大的防火墙工具,用于设置、维护和检查 IP 数据包的过滤规则。其基本用法是通过命令行界面配置流量的过滤策略,分为以下几类规则链:INPUT(入站流量)、OUTPUT(出站流量)、FORWARD(转发流量)。常用的参数有:

  1. -A:添加规则到链中。
  2. -D:删除链中的规则。
  3. -I:在链的指定位置插入规则。
  4. -L:列出所有规则。
  5. -F:清空所有规则。
  6. -P:设置默认策略(如 ACCEPT 或 DROP)。
  7. -s:源 IP 地址。
  8. -d:目标 IP 地址。
  9. -p:协议(如 tcpudpicmp)。
  10. --dport 和 --sport:指定目标或源端口。
  11. -j:指定跳转动作(如 ACCEPTDROPREJECT)。

iptables 中三大基本链(INPUTOUTPUTFORWARD)的详细说明和示例:

1. INPUT 链(入站流量)

INPUT 链用于处理进入本机的流量,即目标是本机的流量。当你希望控制哪些流量可以进入到你的系统时,使用 INPUT 链。

示例 1: 允许来自 192.168.1.100 IP 地址的 HTTP 请求(端口 80)

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

解释

  • -A INPUT:将规则添加到 INPUT 链。
  • -p tcp:匹配 TCP 协议。
  • --dport 80:目标端口是 80(HTTP 端口)。
  • -s 192.168.1.100:只允许来自 IP 地址 192.168.1.100 的流量。
  • -j ACCEPT:如果满足条件,允许该流量通过。

示例 2: 拒绝来自 10.0.0.0/24 网段的所有 ICMP 请求(ping)

iptables -A INPUT -p icmp -s 10.0.0.0/24 -j REJECT

解释

  • -p icmp:匹配 ICMP 协议(如 ping 请求)。
  • -s 10.0.0.0/24:源地址为 10.0.0.0/24 网段。
  • -j REJECT:拒绝该流量。

2. OUTPUT 链(出站流量)

OUTPUT 链用于处理从本机发出的流量。通常,这些规则用于控制哪些程序或服务能够访问外部网络

示例 1: 允许本机通过 HTTP(端口 80)访问外部网络

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

解释

  • -A OUTPUT:将规则添加到 OUTPUT 链。
  • -p tcp:匹配 TCP 协议。
  • --dport 80:目标端口是 80(HTTP 端口)。
  • -j ACCEPT:允许流量通过。

示例 2: 禁止本机通过 SSH(端口 22)访问外部服务器

iptables -A OUTPUT -p tcp --dport 22 -j REJECT

解释

  • -A OUTPUT:将规则添加到 OUTPUT 链。
  • -p tcp:匹配 TCP 协议。
  • --dport 22:目标端口是 22(SSH 端口)。
  • -j REJECT:拒绝流量。

3. FORWARD 链(转发流量)

FORWARD 链用于处理转发到其他主机的流量。这个链在路由器或网关设备上尤为重要,特别是那些需要转发流量的场景。只有在本机开启了 IP 转发功能,才会使用该链。

示例 1: 允许从本机转发流量到特定网络

假设你有一个网络接口 eth0,并且想要允许流量从该接口转发到 192.168.2.0/24 网段。

iptables -A FORWARD -i eth0 -d 192.168.2.0/24 -j ACCEPT

解释

  • -A FORWARD:将规则添加到 FORWARD 链。
  • -i eth0:匹配输入接口为 eth0
  • -d 192.168.2.0/24:目标地址是 192.168.2.0/24 网段。
  • -j ACCEPT:允许该流量通过。

示例 2: 拒绝从本机转发流量到特定 IP

假设你不想让任何流量通过本机转发到 IP 地址 203.0.113.10

iptables -A FORWARD -d 203.0.113.10 -j DROP

解释

  • -A FORWARD:将规则添加到 FORWARD 链。
  • -d 203.0.113.10:目标地址是 203.0.113.10
  • -j DROP:丢弃该流量。

默认策略和链操作

你可以通过设置默认策略来控制没有匹配规则的流量,例如:

# 设置默认策略为 DROP(丢弃)所有入站流量 iptables -P INPUT DROP # 设置默认策略为 ACCEPT(接受)所有转发流量 iptables -P FORWARD ACCEPT

总结

  • INPUT 链:控制进站流量(目标为本机)。
  • OUTPUT 链:控制出站流量(源自本机)。
  • FORWARD 链:控制转发流量(路由流量,目标不为本机)。

http://www.ppmy.cn/news/1551821.html

相关文章

Java算法OJ(11)双指针练习

目录 1.前言 2.正文 2.1存在重复数字 2.1.1题目 2.1.2解法一代码 解析: 2.1.3解法二代码 解析: 2.2存在重复数字plus 2.2.1题目 2.2.2代码 2.2.3解析 3.小结 1.前言 哈喽大家好吖,今天来给大家分享双指针算法的相关练习&…

Secured Finance与GLIF建立战略合作关系,为Filecoin FVM赋能

“DeFi 巨头强强联合增强流动性质押,并开启全新收益机会。” Secured Finance 是一个专注于促进固定收益市场和跨链借贷服务的 DeFi 协议,允许用户在多个区块链生态系统之间高效、安全地执行借贷、债券交易和利率互换等金融操作。通过智能合约和去中心化…

构建Ceph分布式文件共享系统:手动部署指南

#作者:西门吹雪 文章目录 micro-Services-TutorialCeph分布式文件共享方案部署Ceph集群使用CephCeph在kubernetes集群中的使用 micro-Services-Tutorial 微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应…

网工日记:NAT相关概念

NAT(Network Address Translation)即网络地址转换,是一种在 IP 网络中广泛应用的技术,用于解决 IP 地址短缺问题以及增强网络安全性。以下是详细内容: 一、NAT 的产生背景 随着互联网的飞速发展,可用的公…

MFC 分段记录时间log类

在开发大型自动化系统或者多线程应用时,日志记录和时间追踪通常是系统调试和性能优化的关键部分。CAuxiliary 类是一个封装了文件日志记录和高精度计时功能的实用工具类,旨在为开发人员提供一种简便的方式,来实现系统运行的日志记录和时间性能…

Oracle--表空间Tablespace

在 Oracle 数据库中,表空间(Tablespace) 是一种逻辑存储结构,用于组织和管理数据库中物理存储数据文件的方式。以下是表空间相关操作的详细介绍,包括创建、修改、删除、查询以及常见问题处理。 1. 表空间的作用 提供逻…

MySQL 数据库学习教程一:开启数据库探索之旅

在当今数字化时代,数据已然成为企业和组织最为宝贵的资产之一。而数据库管理系统则是存储、管理和操作这些数据的核心工具。MySQL 作为一款广泛应用的开源关系型数据库管理系统,以其可靠性、高性能和易用性而备受青睐。如果你渴望踏入数据库领域&#xf…

七、传统循环神经网络(RNN)

传统循环神经网络 RNN 前言一、RNN 是什么?1.1 RNN 的结构1.2 结构举例 二、RNN 模型的分类2.1 按照 输入跟输出 的结构分类2.2 按照 内部结构 分类 三、传统 RNN 模型3.1 RNN内部结构图3.2 内部计算公式3.3 其中 tanh 激活函数的作用3.4 传统RNN优缺点 四、代码演示…