当前位置: 首页 > news >正文

iptables防火墙

文章目录

  • 一.linux防火墙基础
    • 1.linux 包过滤防火墙概述
      • 1.1netfilter
      • 1.2 iptables
    • 2.包过滤的工作层次
      • 2.1 通信的五元素和四元素
    • 3.iptables 的表、链结构
      • 3.1 规则链
      • 3.2 默认包括5种规则链
      • 3.3 规则表
      • 3.4 默认包括4个规则表
  • 二.数据包过滤的匹配流程
    • 1.规则表之间的顺序
    • 2.规则链之间的顺序
    • 3.规则链内的匹配顺序
    • 4.匹配流程示意图
    • 5.转换
  • 三.编写防火墙规则
    • 1.基本语法
      • 1.1 总结
      • 1.2 管理选项
    • 2.数据包的常见控制类型
    • 3.管理选项
    • 4.匹配的条件
  • 四.添加、查看、删除规则
    • 1.查看规则
    • 2.添加规则
    • 3.删除规则
    • 4.通用匹配
    • 5.隐藏扩展模块
    • 6.显示匹配
    • 7.IP范围匹配
    • 8.MAC匹配

一.linux防火墙基础

1.linux 包过滤防火墙概述

1.1netfilter

(1)位于Linux内核中的包过滤功能体系

(2)称为Linux防火墙的“内核态”

1.2 iptables

(1)位于/sbin/iptables,用来管理防火墙规则的工具

(2)称为Linux防火墙的“用户态”

2.包过滤的工作层次

(1)主要是网络层,针对IP数据包

(2)体现在对包内的IP地址、端口等信息的处理上

2.1 通信的五元素和四元素

五元素:源IP、目标IP、源端口、目标端口、协议

四元素:源IP、目标IP、源端口、目标端口

3.iptables 的表、链结构

3.1 规则链

(1)规则的作用:对数据包进行过滤或处理

(2)链的作用:容纳各种防火墙规则

(3)链的分类依据:处理数据包的不同时机

3.2 默认包括5种规则链

(1)INPUT:处理入站数据包

(2)OUTPUT:处理出站数据包

(3)FORWARD:处理转发数据包

(4)POSTROUTING链:在进行路由选择后处理数据包

(5)PREROUTING链:在进行路由选择前处理数据包

3.3 规则表

(1)表的作用:容纳各种规则链

(2)表的划分依据:防火墙规则的作用相似

3.4 默认包括4个规则表

(1)raw表:确定是否对该数据包进行状态跟踪

(2)mangle表:为数据包设置标记

(3)nat表:修改数据包中的源、目标IP地址或端口

(4)filter表:确定是否放行该数据包(过滤)

二.数据包过滤的匹配流程

1.规则表之间的顺序

raw——mangle——nat——filter

按照表的顺序,依次查当前表中的链,看链中是否有匹配规则,匹配到立即停止,若找不到匹配规则,则会使用链的默认策略处理。

表里面有链,链里面匹配规则

2.规则链之间的顺序

(1)入站: PREROUTING——INPUT

(2)出站: OUTPUT——POSTROUTING

(3)转发: PREROUTING——FORWARD——POSTROUTING

3.规则链内的匹配顺序

(1)按顺序依次检查,匹配即停止 (LOG策略例外)

(2)若找不到相匹配的规则,则按该链的默认策略处理

4.匹配流程示意图

按照顺序查从raw表开始到mangle——nat表——(如没有策略到)filter表(input 让不让数据进来)——路由转发——一般不会对出数据进行限制——raw——mangle——nat——filter看是否有策略——nat(对数据进行地址转换)——出去,送达(不转换也送达)

5.转换

(1)nat PREROUTING:目的地址转换。要把别人的公网ip换成你们内部的ip
(2)nat POSTROUTING:源地址转换,要把你的内网地址转换成公网地址才能上网,一般用于对外发布内网的服务(内网访问外网)

三.编写防火墙规则

1.基本语法

1.1 总结

四表五链

规则表的作用:容纳各种规则链

规则链的作用: 容纳各种防火墙规则

总:表里有链,链里有规则

1.2 管理选项

表示iptables规则的操作方式,如插入、增加、删除、查看等;匹配条件:用来指定要处理的数据包的特征,不符合指定条件的数据包将不会处理:控制类型指的是数据包的处理方式,如允许、拒绝、丢弃等。

注:

不指定表名时,默认指filter表不指定链名时,默认指表内的所有链,一般不这么操作除非设置链的默认策略,否则必须指定匹配条件选项、链名、控制类型使用大写字母,其余均为小写

2.数据包的常见控制类型

(1)ACCEPT:允许数据包通过。

(2)DROP:直接丢弃数据包,不给出任何回 应信息

(3)REJECT:拒绝数据包通过,必要时会给数据发送端一个响应信息。

(4)SNAT:修改数据包的源地址

(5)DNAT:修改数据包的目的地址

3.管理选项

选项注释示例
-A在指定链末尾追加一条iptables -A INPUT (操作)
-I在指定链中插入一条新的,未指定序号默认作为第一条iptables -I INPUT (操作)
-P指定默认策略iptables -P OUTPUT ACCEPT (操作)
-D删除iptables -t nat -D INPUT 2 (操作)
-R修改、替换某一条规则iptables -t nat -R INPUT (操作)
-L查看iptables -t nat -L (查看)
-n所有字段以数字形式显示(比如任意ip地址是0.0.0.0而不是anywhere,比如显示协议端口号而不是服务名)
-v查看时显示更详细信息,常跟-L一起使用 (查看)
–line-numbers规则带编号iptables -t nat -L -n --line-number iptables -t nat -L --line-number
选项注释示例
-F清除链中所有规则iptables -F (操作)
-X清空自定义链的规则,不影响其他链iptables -X
-Z清空链的计数器(匹配到的数据包的大小和总和)iptables -Z
-S看链的所有规则或者某个链的规则/某个具体规则后面跟编号

4.匹配的条件

条件作用
-p指定要匹配的数据包的协议类型
-s指定要匹配的数据包的源IP地址
-d指定要匹配的数据包的目的IP地址
-i指定数据包进入本机的网络接口
-o指定数据包离开本机做使用的网络接口
–sport指定源端口号
–dport指定目的端口号

四.添加、查看、删除规则

1.查看规则

粗略查看默认规则:

iptables   -L

数字化的形式查看规则:

iptables   -nL

指定表查看:

iptables -t filter  -vnL

查看指定表中的指定链

iptables -t filter  -vnL  INPUT ——————不指定表,默认就是filter

2.添加规则

添加规则的两个常用选项:
-A,在末尾追加规则。
-I,在指定位置前插入规则。如果不指定,则在首行插入
添加新的防火墙规则时,使用管理选项“-A”、“-I”,前者用来追加规则,后者用来插入规则。

iptables -F————————清空规则(如果不写表名和链名,默认清空filter表中所有链里的所有规则)
 iptables -t filter -A INPUT -p icmp -j REJECT  ——————————禁止所有主机ping本机
 iptables -t filter -A INPUT -p icmp -j ACCEPT————————————允许ping通,-A在前一条规则后添加

#匹配到了就不在匹配后面的规则

iptables -t filter -I INPUT 1 -p icmp -j ACCEPT ——————————指定序号插入,插入到第一条

#即时生效

 iptables -t filter -A INPUT -p tcp -j REJECT ——————————禁止任何主机tcp
iptables -I INPUT 1 -p udp -j ACCEPT——————允许任何主机udp
 iptables  -nL  --line-number  #查看行规则的位置

拒绝某一台主机,其他的可以:

iptables -t filter -A INPUT -s 192.168.198.12 -p icmp -j REJECT

拒绝多台主机:

iptables -t filter -A INPUT -s 192.168.198.12,192.168.198.13 -p icmp -j REJECT

不允许11的数据包出去,其他的就都ping不通了

 iptables -t filter -A OUTPUT -s 192.168.198.11 -p icmp -j REJECT

指定端口:

iptables -t filter -A INPUT -p tcp --dport 22 -j REJECT
注:协议在前,指定端口号在后,否则识别不了端口,无法匹配就会报错!
iptables -t filter -A INPUT -s 192.168.198.12 -p tcp --dport 80 -j REJECT
指定IP地址的服务端口拒绝

3.删除规则

D删除 :

根据序号删除内容

iptables -D INPUT 1——————————删除指定的INPUT链中的第一条规则

内容匹配删除(有两个相同的则作用为去重) 如果有两个重复的规则,则删除序号较小的

 iptables -D INPUT -p icmp  -j REJECT——————删除序号小的

4.通用匹配

网络协议、IP地址、网络接口等条件。
协议匹配: -p协议名
地址匹配: -s 源地址、-d目的地址
#可以是IP、网段、域名、空(任何地址)
接口匹配: -i入站网卡、-o出站网卡
感叹号”!”表示取反

网络协议

iptables -P INPUT DROP ————其他的服务不受影响,这个时候,把策略清空,所有的协议都将被DROP
iptables -F ————这时只能进虚拟机重启

IP地址

iptables -A INPUT -s 192.168.198.12 -j DROP——————————禁止22的数据进入

网络接口:

iptables -I INPUT 1 -i ens33 -s 192.168.198.0/24 -j DROP————————禁止指定的网络设备名称ens33的所

怎么使整个网段不能用指定的端口

 iptables -t filter -A INPUT -s 192.168.198.0/24 -p tcp --dport 80 -j REJECT——————————禁止整个网段访问80端口

5.隐藏扩展模块

iptables在使用-p 指定协议时,若指明特定协议后就无须再使用-m指明扩展模块的扩展机制。
例如若已经指明是 -p tcp协议则使用–dport及–sport等tcp模块内容时即可省略-m tcp。

多端口隐藏扩展匹配

 iptables -A INPUT -p tcp --dport 22:80 -j REJECT ——————————禁止整个网段访问22和80端口注:小的数字写在前面,大的写在后面

6.显示匹配

多端口显示扩展匹配

 iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j REJECT
多端口匹配,一次性禁止多个tcp网络协议的端口匹配规则

7.IP范围匹配

-m iprange --src-range 源IP范围
-m iprange --dst-range 目的IP范围

iptables -A INPUT -p icmp -m iprange --src-range 192.168.198.20-192.168.198.30 -j REJECT——————禁止网段内的ip地址ping主机

8.MAC匹配

 iptables -A INPUT -m mac --mac-source 00:0c:29:23:65:98 -j DROP

相关文章:

iptables防火墙

文章目录 一.linux防火墙基础1.linux 包过滤防火墙概述1.1netfilter1.2 iptables 2.包过滤的工作层次2.1 通信的五元素和四元素 3.iptables 的表、链结构3.1 规则链3.2 默认包括5种规则链3.3 规则表3.4 默认包括4个规则表 二.数据包过滤的匹配流程1.规则表之间的顺序2.规则链之…...

properties、yaml作为配置文件的特点

说明:在软件开发中,经常需要把一些配置写在文件中,如数据库配置、MyBatis配置等。这样,后续如果数据库参数有改动,就可以避免直接对代码做修改,只要修改配置文件中关于数据库的配置。关于配置文件的选择&am…...

JavaSE-03 【流程控制语句】

文章目录 JavaSE-03 【流程控制语句】第一章 流程控制1.1 流程概述1.2 顺序结构 第二章 判断语句2.1 判断语句---if2.2 判断语句---if...else2.3 判断语句---if...else if ... else 第三章 选择语句3.1 选择语句--switch3.2 case的穿透性 第四章 循环语句4.1 循环概述4.2 循环语…...

笔记本电脑的BIOS是怎么保护安全的?

随着攻防技术的不断演进,像BIOS攻击、高级网络代码攻击等手段层出不穷,“受害者”也不仅限于企业级服务器、存储,很多魔爪也开始伸向了拥有商业机密数据的PC。 BIOS是Basic Input/Output System(基本输入/输出系统)的…...

Xubuntu之将rm删除内容移至回收站(一百七十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...

STM32F407实现1588v2(ptpd)

硬件: STM32F407ZGT6开发板 软件: VSCode arm-none-eabi-gcc openOCD st-link 在github搜到一个在NUCLEO-F429ZI开发板上移植ptpd的example,因为和F407差别很小,所以就打算用这个demo移植到手头的开发板上。因为目前只需要…...

架构师如何找到自己的商业模式

作为一个架构师,必须要在有限的资源下最大化架构活动所带来的商业价值。对于任何一个架构活动而言,架构师的可用资源,包括商业成本、研发成本、时间成本、迁移成本等等,都是非常有限的。但架构活动就是要在这些限制条件之下&#…...

SQLServer2022安装(Windows),已验证

一、SQLServer2022下载 1、官网下载地址 SQL Server 下载 | Microsoft 2、下载安装包 2.1、选择Developer版本,立即下载。 2.2、打开下载文件夹,双击运行SQL2022-SSEI-Dev.exe 尝试运行SQL2022-SSEI-Dev.exe,会收到以下信息:“…...

facenet, dlib人脸识别,人体检测,云数据库mysql,QQ邮箱,手机验证码,语音播报

目录 部分代码展示: 录入部分 识别部分​编辑 活体检测部分​编辑 同步到云数据库MySQL 其他操作 部分图片展示: 完整代码加ui链接: 涉及到的一些知识点的文章 部分代码展示: 录入部分 识别部分 活体检测部分 同步到云数…...

Spring Boot 面试题——定时任务

目录 1.什么是 cron 表达式?如何使用?2.Scheduled 注解有什么作用?3.介绍一下 spring-boot-starter-quartz。4.在 Spring Boot 中如何实现定时任务?4.1.使用 Schedule 注解4.2.Quartz 框架 1.什么是 cron 表达式?如何使…...

总建面64万平,配3所幼儿园+54班九年制学校,坪山江岭竹元规划

近日,坪山区城市更新和土地整备局发布,关于《坪山区马峦街道江岭竹元片区城市更新单元规划》已通过深圳市城市规划委员会法定图则委员会审批。现予以公告。 项目位于坪山区马峦街道,南邻南坪快速路,北邻比亚迪路,东西两…...

python3 爬虫相关学习7:使用 BeautifulSoup下载网页图片到本地文件夹

目录 1 一个爬图片pic的代码的例子 1.1 学习的原文章 1.2 原始代码的问题总结 问题1 问题2 问题3 其他问题 1.3 原始代码 2 直接在cmd里 python运行报错 和 处理 2.1 运行报错 2.2 报错原因: 没有提前安装这个bs4 模块 2.3 如何提前知道我的python环境…...

windows平台python脚本执行环境搭建笔记

1.python脚本环境下载 这里是原始发布源: https://www.python.org/downloads/release/python-3114/https://www.python.org/downloads/release/python-3114/安装时记得添加进系统path,这样你可以随时调用python环境。 2.扩展模块的安装 step1.找到py…...

MyBatis的动态SQL之OGNL(Object-Graph Navigation Language)表达式以及各种标签的用法

MyBatis的动态SQL 1、if标签的用法2、choose标签的用法3、where标签4、set标签5、trim的用法6、foreach标签7、bind标签 使用过JDBC或者是其他的ORM框架的开发者都知道,在很多操作中都需要去根据具体的条件进行SQL语句的拼接,并且在有些时候一些标点符号…...

基于Java+Springboot+Vue的二次元商城网站设计与实现

博主介绍:✌擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案…...

MyBatis操作数据库实现

说明:MyBatis是作用于三层架构开发,数据访问层(Data Access Object)的框架,用于访问数据库,对数据进行操作。 一、环境搭建 首先,创建一个SpringBoot模块,然后把MyBatis的环境搭建…...

Git GitLab 使用及规范

Git 基本操作 Git安装配置及基本使用 从官网下载安装包,手动完成安装。打开Git Bash命令行工具,执行命令ssh-keygen -t rsa -C Email-Addresss生成一个密钥对。登录到GitLab,点击右上角你的用户头像,点击Edit Profile settings&…...

【SpringCloud——Sentinel】

一、什么是雪崩? 微服务调用链路中的某个服务发生故障,引起整个链路中的所有微服务都不可用,这就是雪崩。 二、解决雪崩问题的常见措施 1、超时处理 设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休…...

面试专题:计算机网络常见面试点总结

socket、tcp、udp、http 的认识及区别 socket、tcp、udp、http 的认识及区别​ 一、先来一个讲TCP、UDP和HTTP关系的 1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传…...

PageHelper失效问题

问题出现记录: 修改代码后,出现分页失效问题,原本的代码再设置了 PageHelper.startPage(pageNum, pageSize);后只有一个mysql查询,我在原本的业务查询前,新增了其他的Mysql查询,导致原需要分页的查询失效 …...

Linux常用命令——grep命令

在线Linux命令查询工具 grep 强大的文本搜索工具 补充说明 grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本&…...

学校热水供应系统方案

学校热水供应系统是现代化校园建设的重要组成部分。一套高效、可靠、安全、环保的热水供应系统,不仅能够满足学生、教职工的日常生活需求,也能提高学校形象和竞争力。 在设计学校热水供应系统方案时,需要考虑以下几个方面: 一、热…...

chatgpt赋能python:Python怎么写绝对值

Python怎么写绝对值 在Python编程语言中,有很多常用函数。其中包括求绝对值的函数。在这篇文章中,我们将介绍如何在Python中使用绝对值函数,并提供一些示例。 什么是绝对值函数? 绝对值函数是一个数学中常用的函数,…...

研发工程师玩转Kubernetes——Node亲和性requiredDuringSchedulingIgnoredDuringExecution几种边界实验

在《研发工程师玩转Kubernetes——使用Node特性定向调度Pod》中,我们提到requiredDuringSchedulingIgnoredDuringExecution只有在规则被满足的时候才能执行调度。本节我们将测试几种边界情况,看看Kubernetes的行为。 没有满足的条件 假设我们测试的Nod…...

OpenCV中的图像处理3.9(六)轮廓线特征与属性

目录 3.9 OpenCV中的轮廓线3.9.1 轮廓线:入门目标什么是轮廓线?如何绘制轮廓线?轮廓线逼近法 3.9.2 轮廓线的特征1. 矩2. 轮廓线面积3. 轮廓线周长4. 轮廓逼近5. 凸面体6. 检查凸性7. 边界矩形8. 最小包围圈9. 拟合椭圆10. 拟合直线 3.9.3 轮…...

burpsuite+xray实现联动测试(手动分析和自动化测试同时进行)

目的:安全测试过程中手动分析测试与xray自动化扫描测试结合,这样可以从多层保障安全测试的分析,针对平台业务接口量大的安全测试是十分有用的,可以实现双向测试同时开始。 xray简介 xray 是一款功能强大的安全评估工具&#xff…...

2023年专业连锁行业研究报告

第一章 行业概况 专业连锁行业是指以连锁经营模式运营的公司,其主要业务涵盖零售、餐饮、酒店、医疗、教育等领域。这些公司通过规模化、标准化的经营模式和供应链管理,提供专业化、高质量的产品和服务。专业连锁行业在全球范围内蓬勃发展,并…...

Mysql数据库(六):基本的SELECT语句

基本的SELECT语句 前言一、SELECT...二、SELECT ... FROM三、列的别名四、去除重复行五、空值参与运算六、着重号七、查询常数八、显示表结构九、过滤数据 前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主&#…...

在CentOS7环境中,实现使用openresty配置文件,达到jwt指定用户userid不能访问的效果

#在CentOS7环境中,实现使用openresty配置文件,达到jwt指定用户userid不能访问的效果。 首先,你需要安装 OpenResty 和 JWT 组件: 安装 OpenResty 参考 OpenResty 的官方安装文档,在终端执行如下命令: $…...

SpringBoot 源码分析初始化应用上下文(1)-createApplicationContext

前言:springBoot的版本是 2.2.4.RELEASE 一、入口 /*** Run the Spring application, creating and refreshing a new* {link ApplicationContext}.* param args the application arguments (usually passed from a Java main method)* return a running {link A…...

网站改版建设/黑帽seo技术

2021大厂Java面试真题(六) * * 2021 【华为】面试真题* * : * * 1、Java 常用集合及特点?* * List:ArrayList、LinkedList、Vector、Stack Set:LinkedSet、HashSet、TreeSet Queue->Deque->Link…...

.net网站开发实训代码/百度竞价排名危机事件

最近工作中,要做个客户端提醒的小工具;winform程序自然少不了要读取和应用程序同一个目录的配置文件(不是exe.config文件); 要读取当前应用程序所在目录我立马想到了System.Environment.CurrentDirectory 来获取当前工作目录。程序运行似乎一…...

外贸电子商务网站建设/国外免费建站网站搭建

不得不说,现在的笔记本电脑发展的速度越来越快,自己用的几年前买的产品放在现在已经是又老又重的东西。看着现在的新电脑不但颜值够高,而且性能强又轻薄,正好趁着618降价,我给自己换了一台笔记本电脑,毕竟是…...

wordpress 满屏主题/百度怎么做关键词优化

无私分享,造福天下以下是本blog内的微软面试100题系列,经典算法研究系列,程序员编程艺术系列,红黑树系列4大经典原创系列作品与一些重要文章的集锦。 一、微软面试100题系列 横空出世,席卷Csdn--评微软等数据结构算法…...

wordpress对话框模板/it行业培训机构一般多少钱

按照个人的要求来创建含有被研究信息的数据集,这是做任何数据分析的第一步,这个任务包括以下两步: 选择一种数据结构来存储数据;将数据输入或者导入到这个数据结构中。2.1 数据集的概念 数据集通常是由数据构成的一个矩形数组&…...

政府网站建设工作 主要职责/郑州网络营销公司

对于Vue.js来说&#xff0c;如果你想要快速开始&#xff0c;那么只需要在你的html中引入一个<script>标签&#xff0c;加上CDN的地址即可。但是&#xff0c;这并不算是一个完整的vue实际应用。在实际应用中&#xff0c;我们必须要一系列的工具&#xff0c;包括&#xff1…...