深入浅出 iptables - Linux下的强大防火墙工具

server/2024/9/24 5:32:37/

目录

  1. 简介
  2. 基本概念
  3. 安装 iptables
  4. 查看当前规则
  5. 设置规则
  6. 保存和恢复规则
  7. 常见的规则示例
  8. 进阶使用
  9. 故障排查和日志
  10. 结语

1. 简介

iptables 是Linux内核中集成的一个功能强大的防火墙工具,它允许系统管理员配置入站和出站流量的规则。通过使用 iptables,你可以定义过滤策略、管理网络流量、记录日志以及进行各种网络相关的任务。

2. 基本概念

在深入 iptables 之前,需要理解一些关键概念:

  • 表(Tables)iptables 有几个表,每个表包含一组特定的链。最常用的是 filter 表,其他还包括 natmangle 等。
  • 链(Chains):每个表有多个链,链是实际应用规则的地方。常见的链有 INPUTOUTPUTFORWARD
  • 规则(Rules):规则定义了针对特定条件的流量如何处理。规则可以包括源地址、目的地址、端口、协议等匹配条件。

iptables_27">3. 安装 iptables

在大多数Linux发行版中,iptables 通常预先安装。如果没有安装,你可以使用你的包管理器安装它。例如,在Debian或Ubuntu系统中,你可以使用以下命令:

sudo apt-get update
sudo apt-get install iptables

4. 查看当前规则

要查看当前所有的 iptables 规则,可以使用以下命令:

sudo iptables -L -n -v

这会列出所有链的规则以及这些规则的一些统计数据。

5. 设置规则

设置规则是 iptables 的核心功能。例如,要阻止特定IP的进入流量,可以使用如下命令:

sudo iptables -A INPUT -s 123.123.123.123 -j DROP

这个命令会在 INPUT 链添加一条新规则,将来源地址为 123.123.123.123 的所有流量丢弃。

6. 保存和恢复规则

配置的规则默认不会在系统重启后保留。要保存当前的规则,可以使用 iptables-save,在Ubuntu或Debian上,通常是这样:

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

要恢复规则,可以使用 iptables-restore

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

7. 常见的规则示例

这里介绍几个常用的 iptables 规则示例:

  • 阻止特定端口

    sudo iptables -A INPUT -p tcp --dport 22 -j DROP
    

    这会阻止所有尝试连接到22端口(SSH默认端口)的流量。

  • 允许特定IP访问特定端口

    sudo iptables -A INPUT -p tcp -s 123.123.123.123 --dport 80 -j ACCEPT
    

    这允许来自IP 123.123.123.123 的流量访问80端口(HTTP默认端口)。

8. 进阶使用

iptables 还支持更复杂的配置,如端口转发、负载均衡、创建自定义链等。这些通常需要更深入的网络知识和对 iptables 详细语法的理解。

9. 故障排查和日志

如果您的规则没有按预期工作,可以通过日志来进行故障排查。可以通过以下命令添加日志规则:

sudo iptables -A INPUT -j LOG --log-prefix "IPTables-INPUT-Dropped: "

这会记录所有 INPUT 链上被丢弃的信息,带有前缀 "IPTables-INPUT-Dropped: "。

10. 结语

iptables 是一个非常强大的工具,但也很复杂。正确使用它可以提高系统的安全性,但错误的配置可能会导致服务不可用。务必在修改规则前备份现有规则,并在生产环境中进行充分测试。



http://www.ppmy.cn/server/32127.html

相关文章

电话号码的字母组合 【C++】【力扣刷题】

解题思路&#xff1a; 以第一个为例,digits “23”&#xff0c;表明从电话号码的按键中选取2和3这两个字符&#xff0c;然后去寻找它们各自所对应的字母&#xff0c;这里每一个数字字符所对应的字母的不同&#xff0c;0对应的是空字符&#xff0c;而1的话题目中讲到是不对应任…

基于高德 API 的自动获取气候数据的 Python 脚本

文章目录 高德申请 Key脚本介绍运行结果示例 源代码&#xff1a; https://github.com/ma0513207162/PyPrecip。pyprecip\reading\read_api.py 路径下。 项目介绍&#xff1a;PyPrecip 是一个专注于气候数据处理的 Python 库&#xff0c;旨在为用户提供方便、高效的气候数据处理…

Java毕业设计 基于SSM SpringBoot vue宠物领养平台

Java毕业设计 基于SSM SpringBoot vue宠物领养平台 SSM 宠物领养平台 功能介绍 首页 图片轮播 新闻信息 新闻类型 新闻详情 宠物百科 宠物百科类型 宠物百科详情 宠物 宠物类型 宠物详情 立即领养 留言 论坛 发布帖子 登录 个人中心 宠物收藏 宠物领养订单 后台管理 登录注…

pycharm批量注释或取消多行

1. 背景和介绍 在我们编写Python代码的过程中&#xff0c;注释是非常重要的。它可以帮助我们理解代码的逻辑、功能和用法&#xff0c;并且方便其他开发者阅读和维护代码。然而&#xff0c;在大型项目中&#xff0c;有时需要批量注释或取消注释多行代码&#xff0c;手动操作会非…

SQL-索引篇整理

什么样的列适合建索引&#xff1f; 适合创建索引的列:主键、频繁进行范围检索的列、时常进行多表连接的列、数据量大的表,数据差异大的列。 索引优缺点 索引是数据库中用于提高数据检索性能的排好序的数据结构。它类似于书籍的目录&#xff0c;通过建立特定的数据结构将列或…

SDB2F5 首鼎1.2MHz 输入5V 输出28V 100mA升压DC-DC转换器

SDB2F5是一款固定频率&#xff0c;内部的软启动有很小脉冲电流可延长电池寿命。SDB2F5最低输入电压为2.5V&#xff0c;在输入电压为5V的时候可升压到28V 100mA。SDB2F5在轻负载时自动转成脉冲频率调制模式。SDB2F5有欠压锁定&#xff0c;限流和热过载保护。 特点&#xff1a; …

C# WinForm —— 12 ListBox绑定数据

ListBox加载大量数据时&#xff0c;避免窗体闪烁的方法&#xff1a; 在加载语句的前后分别加上 BeginUpdate()方法 和 EndUpdate()方法 指定一个集合为绑定的数据源 1. 首先&#xff0c;右键项目&#xff0c;添加类 2. 在新建的类文件中添加属性值信息 3. 构建初始化的对象…

零基础学习数据库SQL语句之操作表中数据的DML语句

我们的数据库是根据页面原型和相关需求完成相关开发的 在表中添加数据 删除数据 修改数据 添加数据 页面模型 当点击保存的时候就能将表单数据提交到服务端 服务端将数据添加到数据库 我们要用insert语句 将数据添加到数据库中 代码演示 CREATE DATABASE Dduo; USE Dduo…