防火墙iptables

一、概述

1.1相关概念

入侵监测系统

        在互联网访问的过程中,不阻断任何网络访问,也不会定位网络的威胁,提供告警和事后的监督,类似于监控。

入侵防御系统

        透明工作模式,在判定为攻击行为或者是病毒威胁时,主动的隔断。

防火墙

        隔离功能,工作在网络或主机边缘。对进出网络或者主机的数据包(网络层)基于一定的规则进行检查,匹配规则的则放行,不匹配的就会隔离在主机之外。

防水墙

        防止内部信息泄露的产品,网络、外设接口等等全方位的实现监控。

1.2防火墙种类

按照部署位置分类

  • 网络层防火墙:通常部署在网络边界,检查和过滤进出网络的流量
  • 主机防火墙:安装在主机上,用于保护单个主机或设备
  • 云防火墙:专门设计用于云环境的防火墙解决方案,保护云端应用和数据的安全

linux系统主机自带防火墙

  • iptables:centos7以前是系统的默认防火墙
  • firewalld:centos7的默认防火墙
  • ufw:ubuntu的防火墙,自带的,默认就没有规则

二、iptables

2.1四表五链

表名作用
raw表用来控制数据包的状态跟踪,决定是否跳过后续的处理流程
mangle表用于修改数据包的头部信息
nat表网络地址转换,改变数据包的源地址和目的地址,用于内网和外网之间通信
filter表用来过滤数据包,可以控制数据包的进出,以及是否接受或者拒绝数据包

优先级:raw>mangle>nat>filter

链名作用
INPUT处理数据包进入本机的规则
OUTPUT处理本机发出的或者其他请求响应的数据包的规则,一般不做限制
FORWARD处理数据包转发到其他主机的规则
PREROUTING处理数据包进入本机之前的规则(地址转换)
POSTROUTING处理数据包离开本机之后的规则(地址转换)

规则内的匹配顺序:

1、自上而下按照顺序依次进行检查,找到了匹配的规则即停止。

2、链内没有规则,就会按照链的默认策略进行处理

2.2iptables语法结构

iptables  -t 指定表名(默认就是filter)管理选项  链名  匹配的条件  -j  控制类型

  • 管理选项

选型说明
-A在指定的链的末尾添加一条规则
-I在指定链中插入一条新的规则,根据序号来进行插入
-P指定链的默认规则(慎用,没有特殊需求不要修改)
-D删除链里的规则,根据规则的序号进行删除
-R修改,替换某一条规则
-L查看规则
-n数字化的展示规则的手段
-v查看详细信息
--line-number查看规则时带有编号
-F清除链中的所有规则
-X清空自定义链的规则
  • 匹配条件

选项说明
-p匹配数据包的协议
-s匹配数据包的源地址
-d匹配数据包的目的地址
-i指定数据包进入本机的网络接口
-o指定数据包离开本机的网络接口
--sport指定源端口
--dport指定目的端口
  • 控制类型 

选项说明
ACCEPT允许数据包通过
DROP直接丢弃数据包,没有任何回显信息
REJECT拒绝数据包通过,但是会有一个回显信息
SNAT修改数据包的源地址
DNAT修改数据包的目的地址

2.3实例

查看规则

iptables  -vnL

iptables  -vnL  --line-number

添加规则

iptables -A INPUT -p icmp -j REJECT

#在filter表中插入一个规则到INPUT链,匹配的协议是icmp,拒绝其他主机ping本机,甚至自己也无法ping通自己

iptables -I INPUT 1 -p icmp -j ACCEPT

#在INPUT链内第一条规则前添加一个规则,匹配的协议是icmp,允许所有主机ping本机

iptables -t filter -A INPUT -s 192.168.206.20,192.168.206.31 -p icmp -j DROP

#拒绝多个源ip

iptables -t filter -A INPUT -s 192.168.206.30 -p tcp --dport 80 -j REJECT

#拒绝192.168.206.30访问本机的tcp80目的端口

iptables -t filter -A OUTPUT -s 192.168.206.20 -p tcp --sport 22 -j REJECT

#禁止本机的tcp22源端口出去

iptables -A INPUT -i ens33 -s 192.168.206.0/24  -j REJECT

#禁止206这个网段从ens33这个设备进入本机

 

iptables -A INPUT -s 192.168.206.0/24 -p tcp --dport 80 -j REJECT

#禁止192.168.206.0/24网段访问nginx的服务

一次性匹配多个端口

iptables -A INPUT -s 192.168.206.30 -p tcp --dport 22:80 -j REJECT

#同时匹配两个端口,但是小的端口要在前,否则会报错

iptables -A INPUT -s 192.168.206.30 -p tcp -m multiport --dport 80,22,3306 -j REJECT

#一次性指定多个端口,用逗号隔开即可

删除规则

iptables -vnL --line-number#先看要删除的规则的序号

iptables -D 链名  对应序号

iptables  -F  #清空所有规则

修改规则

iptables  -R  INPUT  1  -p  tcp   -j  ACCEPT #修改INPUT链第一条规则  

iptables  -P  INPUT  DROP #制定链的默认规则为拒绝所有,生产当中的默认策略都是DROP

2.4-m 扩展模块

  • 扩展多端口

-m multiport --dport 源端口列表

-m multiport --sport 目的端口列表

  • mac地址

#操作不太方便,用的比较少

-m mac  --mac-source

-m mac  --mac-destination

iptables -A INPUT -p icmp -m mac --mac-source 00:0c:29:4b:2d:00 -j REJECT

  • ip范围

-m iprange  --src-range 源ip地址的范围

-m iprange  --dst-range 目的ip地址范围

iptables -A INPUT -p tcp -m iprange --src-range 192.168.206.20-192.168.206.30 --dport 80 -j  REJECT

#源ip地址从192.168.206的20到30

 2.5永久策略

只要不写入配置文件,都是临时策略,只要关机/重启就会消失

以Ubuntu为例,centos也是一样,只是配置文件是/etc/sysconfig/iptables

iptables-save >> /etc/iptables/rules.v4 #直接把策略保存到配置文件(永久)

iptables-restore < /opt/iptables.bak #不是把策略保存到配置文件,而是直接导入到配置当中(临时)

  • centos

yum -y install iptables-services

systemctl restart iptables #可以对服务进行控制

/etc/sysconfig/iptables   #iptables的配置文件

  • ubuntu

apt -y install iptables-persistent

/etc/iptables/rules.v4 #iptables的配置文件

 通信的要素

通信的五大要素

协议 源ip 目的ip 源端口 目的端口

通信的四大要素

源ip 目的ip 源端口 目的端口

通信的三大要素

协议 ip 端口

端口:就是对应的应用在主机上的唯一标识

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Camera2采集并编码为H.264

前言 本篇博文主要讲述的是基于Android原生MediaCodec通过Camera2 API进行图像数据采集并编码为H.264的实现过程&#xff0c;如果对此感兴趣的不妨驻足观看&#xff0c;也欢迎大家大家对本文中描述不当或者不正确的地方进行指正。如果对于Camera2预览还不熟悉的可以观看博主上…

【ROS2】Ubuntu22.04安装ROS humble

一. ROS简介 1.1 什么是ROS ROS 是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务&#xff0c;包括硬件抽象&#xff0c;底层设备控制&#xff0c;常用函数的实现&#xff0c;进程间消息传递&#xff0c;以及包管理。ROS的核心思想就是将机器人的软件功能做…

Redis开发05:使用stackexchange.redis库对redis进行增删改查

一、安装第三方库 二、官网 StackExchange.Redis |通用型 redis 客户端 三、连接示例 private static string redisConnectionString "localhost:6379,passwordyourpassword,defaultDatabase0,allowAdmintrue,asyncTimeout10000";private static string redisConn…

【golang】单元测试,以及出现undefined时的解决方案

单元测试 要对某一方法进行测试时&#xff0c;例如如下这一简单减法函数&#xff0c;选中函数名后右键->转到->测试 1&#xff09;Empty test file 就是一个空文件&#xff0c;我们可以自己写测试的逻辑 但是直接点绿色箭头运行会出问题&#xff1a; 找不到包。我们要在…

火语言RPA流程组件介绍--键盘按键

&#x1f6a9;【组件功能】&#xff1a;模拟键盘按键 配置预览 配置说明 按键 点击后,在弹出的软键盘上选择需要的按键 执行后等待时间(ms) 默认值300,执行该组件后等待300毫秒后执行下一个组件. 输入输出 输入类型 万能对象类型(System.Object)输出类型 万能对象类型…

护航开源大赛,赋能数字未来

近日&#xff0c;在2024世界互联网大会乌镇峰会互联网公益慈善论坛上&#xff0c;2024中国互联网发展创新与投资大赛&#xff08;开源&#xff09;圆满落幕。作为大赛的技术支持单位&#xff0c;棱镜七彩支撑了大赛的分析评估&#xff0c;定量化、科学化、体系化、专业化的对参…

Profinet转EtherNet/IP网关是如何解决西门子S7-1500PLC与AB PLC的通讯问题的

一、 案例背景 在一个工业现场&#xff0c;一端是AB的PLC&#xff0c;IP地址192.168.1.20;另一端西门子是S7-1500系列&#xff0c;IP地址192.168.2.248。AB的PLC内有 B3、N7、F8 三个寄存器文件涉及到通讯&#xff0c;分别对应西门子PLC的M、DB1、DB2三个存储区域。通过捷米特…

GateWay使用手册

好的&#xff0c;下面是优化后的版本。为了提高可读性和规范性&#xff0c;我对内容进行了结构化、简化了部分代码&#xff0c;同时增加了注释说明&#xff0c;便于理解。 1. 引入依赖 在 pom.xml 中添加以下依赖&#xff1a; <dependencies><!-- Spring Cloud Gate…

SpringBoot+Flowable快速实现工流_动态选择审批人员

前言 OA系统中的工作流不仅是企业日常运营的重要组成部分&#xff0c;也是实现企业数字化转型、提高工作效率和执行力的重要工具。 在国内大部分的工作流系统使用Activiti框架实现。 其实flowable也可以轻松实现工作流业务。在线体验JeecgFlow flowable简介 Flowable是一个使用…

【ONE·基础算法 || 动态规划(三)】

总言 主要内容&#xff1a;编程题举例&#xff0c;熟悉理解动态规划类题型&#xff08;回文串问题、两个数组的 dp问题&#xff09;。                文章目录 总言7、回文串问题7.1、 回文子串&#xff08;medium&#xff09;7.1.1、题解 7.2、 最长回文子串&#…

Python 3 教程第33篇(MySQL - mysql-connector 驱动)

Python MySQL - mysql-connector 驱动 MySQL 是最流行的关系型数据库管理系统&#xff0c;如果你不熟悉 MySQL&#xff0c;可以阅读我们的 MySQL 教程。 本章节我们为大家介绍使用 mysql-connector 来连接使用 MySQL&#xff0c; mysql-connector 是 MySQL 官方提供的驱动器。…

LLM*:路径规划的大型语言模型增强增量启发式搜索

路径规划是机器人技术和自主导航中的一个基本科学问题&#xff0c;需要从起点到目的地推导出有效的路线&#xff0c;同时避开障碍物。A* 及其变体等传统算法能够确保路径有效性&#xff0c;但随着状态空间的增长&#xff0c;计算和内存效率会严重降低。相反&#xff0c;大型语言…

【Db First】.NET开源 ORM 框架 SqlSugar 系列

.NET开源 ORM 框架 SqlSugar 系列 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列【Code First】.NET开源 ORM 框架 SqlSugar 系列【数据事务…

企业品牌曝光的新策略:短视频矩阵系统

企业品牌曝光的新策略&#xff1a;短视频矩阵系统 在当今数字化时代&#xff0c;短视频已经渗透到我们的日常生活之中&#xff0c;成为连接品牌与消费者的关键渠道。然而&#xff0c;随着平台于7月20日全面下线了短视频矩阵的官方接口&#xff0c;许多依赖于此接口的小公司和内…

006 MATLAB编程基础

01 M文件 MATLAB输入命令有两种方法&#xff1a; 一是在MATLAB主窗口逐行输入命令&#xff0c;每个命令之间用分号或逗号分隔&#xff0c;每行可包含多个命令。 二是将命令组织成一个命令语句文集&#xff0c;使用扩展名“.m”&#xff0c;称为M文件。它由一系列的命令和语句…

Java基于SpringBoot+Vue的IT技术交流和分享平台(附源码+lw+部署)

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

【计算机网络】实验3:集线器和交换器的区别及交换器的自学习算法

实验 3&#xff1a;集线器和交换器的区别及交换器的自学习算法 一、 实验目的 加深对集线器和交换器的区别的理解。 了解交换器的自学习算法。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实验内容 1、熟悉集线器和交换器的区别 (1) 第一步&#xff1a;构建网络…

UICollectionView在xcode16编译闪退问题

使用xcode15运行工程&#xff0c;控制台会出现如下提示&#xff1a; Expected dequeued view to be returned to the collection view in preparation for display. When the collection views data source is asked to provide a view for a given index path, ensure that a …

Proteus8.17下载安装教程

Proteus是一款嵌入式系统仿真开发软件&#xff0c;实现了从原理图设计、单片机编程、系统仿真到PCB设计&#xff0c;真正实现了从概念到产品的完整设计&#xff0c;其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等&#xff0c;能够帮助用…

Vue教程|搭建vue项目|Vue-CLI2.x 模板脚手架

一、项目构建环境准备 在构建Vue项目之前&#xff0c;需要搭建Node环境以及Vue-CLI脚手架&#xff0c;由于本篇文章为上一篇文章的补充&#xff0c;也是为了给大家分享更为完整的搭建vue项目方式&#xff0c;所以环境准备部分采用Vue教程&#xff5c;搭建vue项目&#xff5c;V…