iptables防火墙详解、相关命令示例

目录

Linux包过滤防火墙

包过滤的工作层次

iptables的链结构

规则链

默认包括5中规则链(对数据包控制的时机)

iptables的表结构

规则表

默认包括4个规则表

数据包过滤的匹配流程

规则表之间的顺序

规则链之间的顺序

规则链内的匹配顺序

匹配流程示意图

入站

出站

转发

语法书写格式分类

通用匹配

隐含匹配

显式匹配

示例

(1)从filter表的INPUT链,添加一条匹配规则:拒绝icmp访问

(2)从filter表的INPUT链中删除指定匹配的规则,添加丢弃规则

(3)列出iptable指定链中的规则

(4)只指定链而不指定表添加规则,默认添加到filter表中


Linux包过滤防火墙

  • netfilter
    • 位于Linux内核中的包过滤功能体系
    • 成为Linux防火墙的“内核态”
  • iptables
    • 位于/sbin/iptables,用来管理防火墙规则的工具
    • 称为Linux防火墙的“用户态”

包过滤的工作层次

  • 主要在网络层,针对IP数据包
  • 体现在对数据包内的IP地址、端口等信息的处理上

iptables的链结构

  • 规则链

    • 规则的作用:对数据包进行过滤或处理
    • 链的作用:容纳各种防火墙规则
    • 链的分类依据:处理数据包的不同时机
  • 默认包括5中规则链(对数据包控制的时机)

    • INPUT:处理入站数据包
    • OUTPUT:处理出站数据包
    • FORWARD:处理转发数据包
    • PREROUTING:在进行路由选择前处理数据包
    • POSTROUTING链:在进行路由选择后处理数据包
  • 入站 ——》路由 ——》NAT转换 ——》出站

iptables的表结构

  • 规则表

    • 表的作用:容纳各种规则链
    • 表的划分依据:防火墙规则的作用相似
  • 默认包括4个规则表

    • raw表:确定是否对该数据包进行状态跟着
    • mangle:为数据包设置标记
    • nat表:修改数据包中的源,目标IP地址或端口(用于地址转换)
    • filter表:确定是否放行该数据包(过滤)

数据包过滤的匹配流程

  • 规则表之间的顺序

    • raw ——》mangle ——》nat ——》filter
  • 规则链之间的顺序

    • 入站:PREROUTING ——》INPUT
    • 出站:OUTPUT ——》POSTROUTING
    • 转发:PREROUTING ——》FORWARD ——》POSTROUTING
  • 规则链内的匹配顺序

    • 按顺序依次检查,匹配即停止(LOG策略例外)
    • 若找不到相匹配的规则,则按照该链的默认策略处理

匹配流程示意图

入站

出站

转发


语法书写格式分类

按照匹配条件进行分类

  1. 通用匹配

    1. 协议匹配:iptables -t filter -I INPUT -p icmp -j DROP
    2. 地址匹配:iptables -t filter -I FORWARD -s 192.168.10.102 -j DROP
    3. 接口匹配:iptables -t filter -I FORWARD -i ens33 -j DROP
  2. 隐含匹配

    1. 端口匹配:iptables -A FORWARD -s 192.168.20.0/24 -p udp --dport 53 -j DROP
    2. icmp类型匹配:iptables -t filter -I INPUT -p icmp --icmp-type 8 -j DROP
      1. 应答(reply)-- 0:我要ping别人
      2. 请求(request)-- 8:别人不能ping我
      3. 不可达(unreachable)-- 3:禁止别人对你的主机进行 ICMP 目标不可达的回复
  3. 显式匹配

    1. 多端口:iptables -A INPUT -p tcp -m multiport --dport 20,21,80,443 -j ACCEPT
    2. ip范围:iptables -A FORWARD -m iprange --src-range 192.168.20.10-192.168.20.20 -j DROP
    3. MAC地址:iptables -A INPUT -m mac --mac-source 00:0c:29:76:02:95 -j DROP
    4. 状态匹配:iptables -A INPUT -p tcp -m state --state ESTABLISHED -j DROP

示例

使用yum -y install iptables-services命令安装iptables管理工具

使用systemctl start iptables命令启动iptables服务

(1)从filter表的INPUT链,添加一条匹配规则:拒绝icmp访问

在INPUT后面加上编号,表示将该规则添加链中的到第几行

[root@localhost ~]# iptables -t filter -I INPUT -p icmp -j REJECT

[root@localhost ~]# iptables -t filter -I INPUT 3 -p icmp -j REJECT

(2)从filter表的INPUT链中删除指定匹配的规则,添加丢弃规则

[root@localhost ~]# iptables -t filter -D INPUT -p icmp -j REJECT

[root@localhost ~]# iptables -t filter -I INPUT -p icmp -j DROP

删除默认表中INPUT链的第几行规则

[root@localhost ~]# iptables -D INPUT 3

清空默认表

[root@localhost ~]# iptables -F

清空指定表

[root@localhost ~]# iptables -F -t nat

(3)列出iptable指定链中的规则

[root@localhost ~]# iptables -L INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
REJECT     icmp --  anywhere             anywhere             reject-with icmp-port-unreachable
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

列出指定链中的规则,并显示行号

[root@localhost ~]# iptables -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
2    REJECT     icmp --  anywhere             anywhere             reject-with icmp-port-unreachable
3    ACCEPT     icmp --  anywhere             anywhere            
4    ACCEPT     all  --  anywhere             anywhere            
5    ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
6    REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

列出指定链中的规则,将source以数字形式显示

[root@localhost ~]# iptables -nL INPUT
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
REJECT     icmp --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

(4)只指定链而不指定表添加规则,默认添加到filter表中

[root@localhost ~]# iptables -I INPUT -p icmp -j REJECT

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/765635.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Arduino】XIAOFEIYU实验ESP32使用TOUCH触摸模块(图文)

今天XIAOFEIYU继续来实验ESP32使用传感器模块,这次用到的模块为TOUCH触摸模块。 三个针脚分别为正负极,IO针脚。 #define pin 25void setup(){Serial.begin(9600); pinMode(pin, INPUT); }float value 0.0; void loop(){value digitalRead(pin); …

Vue3详解

vite和webpack区别 vite vite使用原生ES模块进行开发,无需在编译时将所有代码转换为JS打包,从而提供了更快的热更新和自动刷新功能; vite在开发模式下没有打包步骤,而是利用浏览器的ES Module Imports特性实现按需编译&#xff…

提高候选人的招聘感受:成功的策略

大约78%的候选人表示,他们的整体应聘体验表明企业对员工的关注。然而,超过一半的候选人透露,他们在招聘过程中有过负面的候选人经历,80%的候选人在经历了令人失望的招聘过程后会公开与他人分享他们的不良经历。 但也有一线希望&am…

友好前端vue脚手架

企业级后台集成方案vue-element-admin-CSDN博客在哔站学习,老师说可以有直接的脚手架(vue-element-admin)立马去搜索,找到了这博主这篇文章 介绍 | vue-element-admin​​​​​​ 官方默认英文版: git clone https:/…

【力扣 - 每日一题】3115. 质数的最大距离(一次遍历、头尾遍历、空间换时间、埃式筛、欧拉筛、打表)Golang实现

原题链接 题目描述 给你一个整数数组 nums。 返回两个(不一定不同的)质数在 nums 中 下标 的 最大距离。 示例 1: 输入: nums [4,2,9,5,3] 输出: 3 解释: nums[1]、nums[3] 和 nums[4] 是质数。因此答…

力扣每日一题 7/2 数学、数论、数组/双指针

博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 3115.质数的最大距离【中等】 题目: 给你一个整数数组 nums。…

uview文本框组件计数count报错u--textarea

报错内容: [Vue warn]: Error in render: “TypeError: Cannot read property ‘length’ of null” found in —> at uni_modules/uview-ui/components/u-textarea/u-textarea.vue at uni_modules/uview-ui/components/u–textarea/u–textarea.vue mp.runtime.…

C盘清理和管理

本篇是C盘一些常用的管理方法,以及定期清理C盘的方法,大部分情况下都能避免C盘爆红。 C盘清理和管理 C盘存储管理查看存储情况清理存储存储感知清理临时文件清理不需要的 迁移存储 磁盘清理桌面存储管理应用存储管理浏览器微信 工具清理 C盘存储管理 查…

ERROR: No matching distribution found for torch==2.0.1+cu117(比手动下载方便)

ERROR: No matching distribution found for torch2.0.1cu117 遇见这种报错可以把pip install -r requirements.txt修改为 pip install -r requirements.tx --extra-index-url https://download.pytorch.org/whl/cu117 -i https://pypi.tuna.tsinghua.edu.cn/simple或者直接…

大科技公司大量裁员背后的真相

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

网络配线架的隐藏功能

网络布线是确保现代信息社会高效运转的关键技术之一。在这一领域,网络配线架扮演着至关重要 的角色。它不仅仅是一个简单的物理连接点,更拥有许多隐藏功能,这些功能极大地提升了网络的 效率、稳定性和可管理性。 1、集中管理 网络配线架提…

VS2022+Qt+OpenCV Debug模式下,循环中格式转换引起的内存异常问题 debug_heap.cpp

文章目录 前言一、问题二、报错1.提示图片2.提示堆栈3.反汇编位置 三、解决办法总结 前言 最近在使用VS2022,C,OpenCV,Qt开发时,遇到了一个疑难杂症-在循环中执行字符串格式转换会触发内存异常,经过痛苦的排查过程&am…

24/07/02数据结构(1.1201)算法效率顺序表

数据结构基本内容:1.时间复杂度 空间复杂度2.顺序表链表3.栈 队列4.二叉树5.排序 数据结构是存储,组织数据的方式.指相互之间存在一种或多种特定关系的数据元素的集合 算法是定义良好的计算过程.取一个或一组值为输入并产生一个或一组值为输出. 需要知道虽然选择题有20-30个…

MyBatis-plus这么好用,不允许还有人不会

你好呀,我是 javapub. 做 Java 的同学都会用到的三件套,Spring、SpringMV、MyBatis。但是由于使用起来配置较多,依赖冲突频发。所有,各路大佬又在这上边做了包装,像我们常用的 SpringBoot、MyBatisPlus。 基于当前要…

[Python学习篇] Python函数

定义函数 语法:使用关键字 def def 函数名(参数): 代码1 代码2 ...... 调用函数 语法: 函数名(参数) 注意:不同的需求,参数可有可无。在Python中,函数必须先定义后使用 示例: # 定义函数 d…

WPDRRC信息安全体系架构模型

构建信息安全保障体系框架应包括技术体系、组织机构体系和管理体系等三部分,也就是说:人、管理和技术手段是信息安全架构设计的三大要素,而构成动态的信息与网络安全保障体系框架是实现系统的安全保障。 1.WPDRRC信息安全模型的定义 WPDRRC…

书城在线系统:基于Java和SSM框架的高效信息管理平台

开头语:你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。 开发语言:Java 数据库:MySQL 技术:SSM框架(Spring, Spring MVC, Mybatis) 工具&…

【面试系列】AI研究员高频面试题及详细解答

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…

图形对象句柄及属性对象句柄

句柄 句柄引用图形对象的具体实例。使用对象句柄设置和查询对象属性的值。 对象的句柄值,类似于编程时的引用,将对象的句柄值赋值给变量后,该变量就可以代表指定的绘图对象。 当创建图形对象时,可以将对象的句柄保存到变量中。 x 1:10; y x.^2; h plot(x,y); …

【开发环境】MacBook M系列芯片环境下搭建完整Python开发环境

文章目录 Anaconda和Python的关系?1. Python2. Anaconda 安装AnacondaPycharm整合Anaconda运行你的Python代码 Anaconda和Python的关系? 如果有简单了解过Python语言的,那么你很容易就会听到有人会叫你安装Anaconda。 那么Anaconda是什么&am…