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

news2024/11/19 16:25:25

目录

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

加装德国进口高精度主轴 智能手机壳「高质量高效率」钻孔铣槽

在当前高度智能化的社会背景下,智能手机早已成为人们生活、工作的必备品,智能手机壳作市场需求量巨大。智能手机壳的加工过程涉及多个环节,包括钻孔和铣槽等。钻孔要求精度高、孔位准确,而铣槽则需要保证槽位规整、深度适宜。这些…

stm32学习笔记---USART串口外设(理论部分)

目录 USART简介 USART的框图 串口的引脚 USART的基本结构 数据帧 起始位侦测 数据采样 波特率发生器 USD转串口模块的原理图 声明:本专栏是本人跟着B站江科大的视频的学习过程中记录下来的笔记,我之所以记录下来是为了方便自己日后复习。如果你…

python实现简单的三维建模学习记录

课程来源与蓝桥云课Python 实现三维建模工具_Python - 蓝桥云课和500 Lines or LessA 3D Modeller 说明 个人估计这是一个值得花一个礼拜左右时间去琢磨的一个小项目。上述网址中的代码直接拿来不一定能跑,需要后期自己去修改甚至在上面继续优化,会在其…

【Gin】项目搭建 一

环境准备 首先确保自己电脑安装了Golang 开始项目 1、初始化项目 mkdir gin-hello; # 创建文件夹 cd gin-hello; # 需要到刚创建的文件夹里操作 go mod init goserver; # 初始化项目,项目名称:goserver go get -u github.com/gin-gonic/gin; # 下载…

【LeetCode】十、二分查找法:寻找峰值 + 二维矩阵的搜索

文章目录 1、二分查找法 Binary Search2、leetcode704:二分查找3、leetcode35:搜索插入位置4、leetcode162:寻找峰值5、leetcode74:搜索二维矩阵 1、二分查找法 Binary Search 找一个数,有序的情况下,直接…

国产压缩包工具——JlmPackCore SDK说明(三)——JlmPack_Unpack函数说明

一、JlmPack_Unpack函数说明 JlmPack_Unpack函数是解压jlm文件的核心函数,但是在加密状态下,必须有正确的密码才能解密,该函数具有一定的权限管控条件,部分也需要开发者通过上层系统进行控制。库函数名: JLMPACK_API …

做了个三相电量采集器开源出来,可以方便监测家里用电情况

做了个三相电能采集器,可以测3相的电流、电压、功率、功率因数、用电量,数据上传到HomeAssistant,方便观察家里用电量和实时用电功率。 使用3个pzem004t电参数传感器测量,通过串口与ESP32-C3通信,然后通过WiFi上传至H…

WordPress网站如何做超级菜单(Mega Menu)?

大多数的网站菜单都是像以下这种条状的形式: 这种形式的是比较中规中矩的,大多数网站都在用的。当然还有另外一种菜单的表现形式,我们通常叫做“超级菜单”简称Mega Menu。网站的超级菜单(Mega Menu)是一种扩展的菜单&…

使用ElementUI组件库

引入ElementUI组件库 1.安装插件 npm i element-ui -S 2.引入组件库 import ElementUI from element-ui; 3.引入全部样式 import element-ui/lib/theme-chalk/index.css; 4.使用 Vue.use(ElementUI); 5.在官网寻找所需样式 饿了么组件官网 我这里以button为例 6.在组件中使用…

数组-移除元素

移除元素 移除元素&#xff08;leetcode27&#xff09; var removeElement function(nums, val) {const n nums.length;let left 0;for (let right 0; right < n; right) {if (nums[right] ! val) {nums[left] nums[right];left;}}return left; };删除有序数组中的重复…

GPT-4o不仅能写代码,还能自查Bug,程序员替代进程再进一步!

目录 1 CriticGPT 01 综合性&#xff08;Comprehensiveness&#xff09;&#xff1a; 02 幻觉问题&#xff08;Hallucinates a problem&#xff09;&#xff1a; 2 其他 CriticGPT 案例 随着人工智能&#xff08;AI&#xff09;技术不断进步&#xff0c;AI在编程领域的应用…

hive中cast()函数

CAST函数用于将某种数据类型的表达式显式转换为另一种数据类型。CAST()函数的参数是一个表达式&#xff0c;它包括用AS关键字分隔的源值和目标数据类型。 语法&#xff1a;CAST (expression AS data_type) expression&#xff1a;任何有效的SQServer表达式。 AS&#xff1a;用…

ATFX汇市:欧元区CPI与失业率数据同时发布,欧元或迎剧烈波动

ATFX汇市&#xff1a;CPI数据是中央银行决策货币政策的主要依据&#xff0c;失业率数据是中央银行判断劳动力市场健康状况的核心指标。欧元区的CPI和失业率数据将在今日17:00同时发布&#xff0c;在欧央行6月6日降息一次的背景下&#xff0c;两项数据将显著影响国际市场对欧央行…

2024 年江西省研究生数学建模竞赛题目 A题交通信号灯管理---完整文章分享(仅供学习)

问题&#xff1a; 交通信号灯是指挥车辆通行的重要标志&#xff0c;由红灯、绿灯、黄灯组成。红灯停、绿灯行&#xff0c;而黄灯则起到警示作用。交通信号灯分为机动车信号灯、非机动车信号灯、人行横道信号 灯、方向指示灯等。一般情况下&#xff0c;十字路口有东西向和南北向…

HR人才测评,如何考察想象力?

什么是想象力&#xff1f; 想象力是指&#xff0c;人们通过在已有物质的基础上&#xff0c;通过大脑想象、加工、创造出新事物的能力&#xff0c;举一个非常简单的例子&#xff0c;在提到鸟这种生活的时候&#xff0c;大家会联想到各种各样不同鸟的品种。 在企业招聘中常常应…

3.1 数据结构-线性表

上午10-12分的选择题&#xff0c;下午15分的大题 大纲 线性结构 顺序存储和链式存储区别 单链表的插入和删除 真题 线性结构 - 栈和队列 真题 串

实现WebSocket聊天室功能

实现WebSocket聊天室功能 什么是WebSocket&#xff1f;WebSocket的工作原理服务器端实现客户端实现 在现代Web开发中&#xff0c;实时通信已经变得越来越重要。传统的HTTP协议由于其无状态和单向通信的特点&#xff0c;无法很好地满足实时通信的需求。而WebSocket协议则应运而生…

【java计算机毕设】仓库管理系统 MySQL springboot vue3 Maven 项目源码代码

目录 1项目功能 2项目介绍 3项目地址 1项目功能 【java计算机毕设】仓库管理系统MySQL springboot vue3 Maven小组项目设计源代码 2项目介绍 系统功能&#xff1a; vue3仓库管理系统&#xff0c;主要功能包含&#xff1a;个人信息管理&#xff0c;仓库管理&#xff0c;员工…

【你也能从零基础学会网站开发】理解DBMS数据库管理系统架构,从用户到数据到底经历了什么

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;程序猿、设计师、技术分享 &#x1f40b; 希望大家多多支持, 我们一起学习和进步&#xff01; &#x1f3c5; 欢迎评论 ❤️点赞&#x1f4ac;评论 &#x1f4c2;收藏 &#x1f4c2;加关注 其实前面我们也…

300关卡成语释义典故题库ACCESS\EXCEL数据库

成语典故指关于成语产生、形成、流传的故事传说。成语有很大一部分是从古代相承沿用下来的&#xff0c;它既代表了一个故事典故&#xff0c;又是一种现成的话&#xff0c;很多又有比喻引申意义而被广泛引用。 今天又获得了一个成语游戏的数据&#xff0c;即根据成语典故或者释…