iptables系列教程(一)| iptables入门篇

简介:

前言

在早期的 Linux 系统中,默认使用的是 iptables 配置防火墙。尽管新型
的 firewalld 防火墙已经被投入使用多年,但是大量的企业在生产环境中依然出于各种原因而继续使用 iptables。考虑到 iptables 在当前生产环境中还具有顽强的生命力,我觉得还是有必要再好好地讲解一下这项技术。

iptables 简介

1、什么是iptables?

iptables 是 Linux 防火墙工作在用户空间的管理工具,是 netfilter/iptables IP 信息包过滤系统是一部分,用来设置、维护和检查 Linux 内核的 IP 数据包过滤规则。

2、iptables特点

iptables 是基于内核的防火墙,功能非常强大;iptables
内置了filter,nat和mangle三张表。所有规则配置后,立即生效,不需要重启服务。

iptables 组成

iptables的结构是由表(tables)组成,而tables是由链组成,链又是由具体的规则组成。因此我们在编写iptables规则时,要先指定表,再指定链。tables的作用是区分不同功能的规则,并且存储这些规则。

注意:raw表:用于处理异常,包括的规则链有:prerouting,output; 一般使用不到。

总体说来,iptables是由“三表五链”组成。

1、三张表介绍:

  • filter

负责过滤数据包,包括的规则链有:input,output和forward

  • nat

用于网络地址转换(IP、端口),包括的规则链有:prerouting,postrouting 和 output

  • mangle

主要应用在修改数据包、流量整形、给数据包打标识,默认的规则链有:
INPUT,OUTPUT、 forward,POSTROUTING,PREROUTING

优先级:mangle > nat > filter

2、五条链:

  • input

匹配目标IP是本机的数据包

  • output

出口数据包 , 一般不在此链上做配置

  • forward

匹配流经本机的数据包

  • prerouting

修改目的地址,用来做 DNAT 。如:把内网中的 80 端口映射到互联网端口

  • postrouting

修改源地址,用来做 SNAT。 如:局域网共享一个公网IP接入Internet。

iptables 处理数据包流程:

  1. 当一个数据包进入网卡时,它首先进入 PREROUTING 链,内核根据数据包目的 IP 判断是否需要转送出去。
  2. 如果数据包就是进入本机的,它就会沿着图向下移动,到达 INPUT 链。数据包到了 INPUT 链后,任何进程都会收到它。
  3. 本机上运行的程序可以发送数据包,这些数据包会经过 OUTPUT 链,然后到达 POSTROUTING 链输出。
  4. 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过 FORWARD 链,然后到达 POSTROUTING 链输出。

总结: 整体数据包分两类: 1、发给防火墙本身的数据包 ;2、需要经过防火墙的数据包

iptables 安装

1、关闭 firewall

systemctl stop firewalld //关闭firewalld服务
systemctl disable firewalld //禁止firewalld开机自启动

2、安装 iptables

yum -y install iptables-services

3、启动服务

systemctl start iptables //启动iptables
systemctl start iptables //设置iptables开机自启动

4、配置文件位置

[root@LB-01 ~]# ll /etc/sysconfig/iptables
-rw------- 1 root root 1027 May 12 18:40 /etc/sysconfig/iptables

最后给大家看下iptables配置实例:

小朋友你是否有很多问号

今天只是 iptables 入门篇,下个章节再为大家详细介绍iptables语法规则及企业实战案例。相信看完明天教程,多加练习后您不仅能看懂上面的配置实例,还可以利用iptables打造出铜墙铁壁级服务器~

结语

公众号『开源Linux』,专注分享Linux/Unix相关内容,包括Linux运维、Linux系统开发、网络编程、以及虚拟化和云计算等技术干货。后台回复『学习』,送你一套学习Linux的系列书籍,期待与你相遇。

目录
相关文章
|
安全 Linux 网络安全
在Linux中,如何列出和删除 Iptables 防火墙规则?
在Linux中,如何列出和删除 Iptables 防火墙规则?
4142 0
|
存储 自然语言处理 固态存储
ublk:来自Linux社区的新热点,基于io_uring的全新高性能用户态块设备
如果您想快速了解ublk的意义、作用及性能,请直接看第二节Q&A部分。一、简介用户态块设备,就是提供/dev/ublkbX这样的标准块设备给业务,业务读写这个块的实际IO处理由您编写的用户态的代码决定。这就好比您使用FUSE,所有对挂载于FUSE的目录的读写都是您编写的IO handler来处理一样。使用用户态块设备,您可以方便地向上层业务以块设备/dev/ublkbX的形式提供您的自定义
|
12月前
|
安全 物联网 API
Windows 11 25H2 | 24H2 | 23H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 10 月更新)
Windows 11 25H2 | 24H2 | 23H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 10 月更新)
31980 1
Windows 11 25H2 | 24H2 | 23H2 中文版、英文版 (x64、ARM64) 下载 (2025 年 10 月更新)
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
构建AI智能体:三十八、告别“冷启动”:看大模型如何解决推荐系统的世纪难题
协同过滤是推荐系统中广泛使用的技术,其核心思想是利用用户行为数据发现相似用户或物品进行推荐。摘要包括:1)协同过滤基于用户历史行为数据,通过计算相似度(如余弦相似度、皮尔逊相关系数)预测用户偏好;2)主要分为基于用户(寻找相似用户群体)和基于物品(发现相似物品)两种方法;3)面临冷启动、数据稀疏性等挑战,可通过混合推荐(结合内容特征)和矩阵分解等技术解决;4)典型应用包括电商猜你喜欢和流媒体推荐;5)结合大语言模型可增强语义理解能力,提升推荐准确性。
1098 9
|
7月前
|
人工智能 监控 安全
AI智能体(AI Agent)的开发流程
AI智能体开发已迈入ADLC新阶段:以感知、规划、记忆、执行为核心,取代传统编码逻辑。涵盖需求拆解、架构选型、能力构建、仿真评估与动态治理五大环节,强调安全、可控与持续进化。适用于教育、客服等垂直场景。
|
存储 SQL 缓存
MySQL 配置文件 my.cnf / my.ini 逐行详解
充分理解 MySQL 配置文件中各个变量的意义对我们有针对性的优化 MySQL 数据库性能有非常大的意义。我们需要根据不同的数据量级,不同的生产环境情况对 MySQL 配置文件进行优化。Windows 和 Linux 下的 MySQL 配置文件的名字和存放位置都是不同的,WIndows 下 MySQL 配置文件是 `my.ini` 存放在 MySQL 安装目录的根目录下;Linux 下 MySQL 配置文件是 `my.cnf` 存放在 `/etc/my.cnf`、`/etc/mysql/my.cnf`。我们也可以通过 `find` 命令进行查找。
38831 3
|
网络协议 Linux 网络安全
Iptables 命令完整指南
【8月更文挑战第20天】
6138 0
Iptables 命令完整指南
|
存储 安全 Linux
CentOS安装SeaweedFS
通过上述步骤,您应该能够在CentOS系统上成功安装并启动SeaweedFS。记住,根据实际部署规模和需求,可能还需要进一步调整配置参数和优化网络布局。SeaweedFS的灵活性和扩展性意味着随着使用深入,您可能需要探索更多高级配置和管理策略。
787 64
|
消息中间件 存储 缓存
RabbitMQ与Kafka选型对比(一)
RabbitMQ与Kafka选型对比(一)
5404 0
RabbitMQ与Kafka选型对比(一)
|
前端开发 JavaScript 开发者
超实用开源前端商城模板,助力电商项目飞速启航!免费直接可用!
分享一款精心设计的开源前端商城模板,涵盖商品展示、购物车、订单处理、用户登录注册等核心功能,使用HTML、CSS、JS和jQuery构建,结构清晰,适合新手和资深开发者,助力电商项目快速启动。
1430 0
超实用开源前端商城模板,助力电商项目飞速启航!免费直接可用!