邮件发送/接收过程分析、常见邮箱sport/dport列举、检测规则开发思路分析

news2024/11/19 6:34:42

一、邮件发送和接收过程分析

(转载自:邮件的发送和接收过程——STMP、POP、IMAP、MIME_当收件人接收电子邮件时自己的邮件服务器通过什么收文件-CSDN博客)

电子邮件发送协议 是一种基于“ 推 ”的协议,主要包括 SMTP ; 邮件接收协议 则是一种基于“ 拉 ”的协议,主要包括 POP协议 和 IMAP协议 ,在正式介绍这些协议之前,我们先给出邮件收发的体系结构:

        从上图可以看出邮件收发的整个过程大致如下:

       (1)发件人调用用户代理编辑要发送的邮件。

       (2)发件人点击屏幕上的”发送邮件“按钮,把发送邮件的 工作全部交给用户代理来完成。用户代理通过SMTP协议将邮件发送给发送方的邮件服务器(在这个过程中,用户代理充当SMTP客户,而发送方的邮件服务器则充当SMTP服务器)。

       (3)发送方的邮件服务器收到用户代理发来的邮件后,就把收到的邮件临时存放在邮件缓存队列中,等待时间成熟的时候再发送到接收方的邮件服务器(等待时间的长短取决于邮件服务器的处理能力和队列中待发送的信件的数量 )。

       (4)若现在时机成熟了,发送方的邮件服务器则向接收方的邮件服务器发送邮件缓存中的邮件。在发送邮件之前,发送方的邮件服务器的SMTP客户与接收方的邮件服务器的SMTP服务器需要事先建立TCP连接,之后再将队列中 的邮件发送出去。值得注意的是,邮件不会在因特网中的某个中间邮件服务器落地 。

       (5)接收邮件服务器中的SMTP服务器进程在收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人进行读取。

       (6)收件人在打算收信时,就运行PC机中的用户代理,使用POP3(或IMAP)协议读取发送给自己的邮件。 注意,在这个过程中,收件人是POP3客户,而接收邮件服务器则是POP3客户,箭头的方向是从邮件服务器指向接收用户,因为这是一个“拉 ”的操作 。

       下面我们根据上面的总体过程介绍下各个组件。

        1.用户代理

        用户代理UA ( User Agent )是一个软件包(程序),它的功能是:撰写、阅读、回复和转发报文,还能处理邮箱(如创建收信箱和发信箱)。共有两种类型的用户代理: 命令驱动 和GUI 。 命令驱动 属于早期的电子邮件,通过命令发送和接收邮件,而GUI 则是包含图形界面,允许用户使用键盘和鼠标与软件进行交互。 

       2. SMTP协议

        SMTP协议 服务器的熟知端口号为25 ,与之前总结过的telnet协议和FTP协议类似的地方是,SMTP协议的客户端和服务器端都是通过命令和响应的形式进行交互 ,即SMTP客户通过命令向SMTP服务器发送操作请求,而服务器则通过3位的数字对响应的请求作出响应。SMTP规定了14条命令和21中应答信息,每条命令有4个字母组成,而每一种应答一般只有一行信息,有一个3位数字的代码开始,后面附上很简单的附加说明。

       邮件传送主要包括3个阶段: 建立连接 、 邮件传送 和 终止连接 。

       建立连接阶段:

       1.当SMTP客户端每隔一定时间对邮件缓存扫描一次,如发现有邮件,就使用SMTP的熟知端口号25与接收方的邮件服务器的SMTP服务器建立TCP连接。

       2.接收方SMTP服务器发出“220 Service ready"告诉客户端它已经准备好接收邮件。若服务器未就绪,它就发送代码421(服务器不可用)。

       3.客户发送HELO报文,并使用它的域名地址标志自己。目的是:用来把客户的域名通知服务器,值得注意的是, 在TCP的连接建立阶段,发送方和接收方都是通过它们的IP地址来告诉对方的 。(HELO报文是最初的,用户名和密码都不加密。现在改为EHLO,用户名和密码都进行base64编码发送)

       4.服务器响应代码250(请求命令完成)或根据情况的其他一些代码。

      报文传送阶段:

       在SMTP客户与服务器之间建立连接后,发件人就可以与一个或多个收件人交换单个的报文了。若收件人超过一个,则下面步骤3和步骤4将重复进行。

        1.客户发送MAIL FROM报文介绍报文的发送者。它包括发送人的邮件地址(邮箱名和域名,如house@qq)。这个步骤是必要的:因为可以给服务器在返回差错或报文时的返回邮件地址 。

        2.服务器响应代码250(请求命令完成)或其他适当的代码。

        3.客户发送RCPT(收件人)报文,包括收件人的邮件地址,RCPT命令的作用是 : 先弄清接收方系统是否已经准备好接收邮件的准备,然后才发送邮件,这样做视为了避免浪费通信资源,不至于发送了很长的邮件以后才知道是因地址错误 。

        4.服务器响应代码250或其他适当的代码。

        5.客户发送DATA报文对报文的传送进行初始化,DATA命令表示要开始传送邮件的内容了。

        6.服务器响应代码"354 Start mail input: end with <CRLF>.<CRLF>"或其他适当的报文(如421 服务器不可用,500 命令无法识别)。

        7.客户用连续的行发送报文的内容。每一行的行结束时输入 <CRLF>.<CRLF> ,即回车换行.回车换行,表示邮件内容结束。

        8.服务器响应代码(250 请求命令完成)或其他适当的代码。

        值得注意的是:虽然SMTP使用TCP连接试图使邮件的传送可靠,但它并不能保证不丢失邮件。也就是说,使用SMTP传送邮件只能说可以可靠地传送接收方的邮件服务器,在往后的情况就不知道了。接收方的邮件服务器也许会出故障,使收到的服务器全部丢失(在收件人读取信件之前)。

        终止连接

        在报文传送成功后,客户就终止连接。包括如下步骤:

        1.客户发送QUIT命令。

        2.服务器响应221(服务关闭)或其他代码。

        在连接终止阶段后,TCP连接必须关闭。

        3.POP协议

        POP协议, Post office Protocal 。邮件交付的第一阶段和第二阶段使用SMTP,而第三阶段则使用邮件读取协议。SMTP是一个push协议,而第三阶段则使用pull协议,包括POP和IMAP协议,POP主要使用POP3,而IMAP协议则主要使用IMAP4 。

        POP3采用C/S的工作方式。在接收邮件的用户PC机中的用户代理UA必须运行POP3的客户程序,而在收件人所连接的ISP的邮件服务器中则运行POP的服务器程序。POP服务器只有在用户输入鉴别信息(用户名+密码)后,才允许对方对邮箱进行读取 。

        POP3有 两种工作方式 :删除方式和保存方式。删除方式 就在每一次读取邮件后就把邮箱中的这个邮件删除, 保存方式 就是在读取邮件后仍然在邮箱中保存这个邮件,该方式是通过对之前的POP3工作方式(即删除)的缺点进行弥补,对功能进行扩充。

         4. IMAP协议

        IMAP协议, Internet Mail Access Protocal (因特网邮件读取协议)。 IMAP协议比POP3协议复杂的多,也是按照C/S的工作方式,现在较新的版本是IMAP4。

        在使用IMAP时,用户的PC机上运行IMAP客户程序,然后与接收方的邮件服务器上的IMAP服务器程序建立TCP连接。 POP3不允许用户在邮件服务器上整理自己的邮件,用户在服务器上不能不同的文件夹,POP3也不允许用户在下载邮件之前读取邮件的部分内容,而IMAP则克服了这些POP3的缺点,说白了就是POP3协议不太愿意让用户直接操作服务器,而IMAP正好客户了这些缺点 。

        IMAP4提供了以下功能( 这些功能POP3则没有 ):

        1.用户在下载邮件之前可以检查邮件的首部。

        2.用户在下载邮件之前可以用特定的字符串搜索电子邮件的内容。

        3.用户可以部分地下载电子邮件。

        4.用户可以在邮件服务器上创建、删除邮箱,或对邮箱重命名。(IMAP是双向的,可以同步本地修改到服务端;POP只能同步服务端到本地)

        5.为了存放电子邮件,用户可以在文件夹中创建分层次的邮箱。

        注意 :不用把邮件的发送协议SMTP协议与邮件的读取协议POP或IMAP协议弄混淆了。发送人的UA向发送邮件服务器发送邮件,以及发送方的邮件服务器向接受方的邮件服务器发送邮件都是采用SMTP协议,而收件人的UA从邮件接收服务器中接收文件则采用的是POP协议或IMAP协议。

       5. MIME

        MIME协议( Multipurpose Internet Mail Extensions ),通用因特网邮件扩充协议 ,作为SMTP的一种辅助协议,其引入是为了克服SMTP的如下不足:

        1.SMTP只能发送使用NVT( 虚拟网络终端 ) 7位ASCII码格式的报文,它不能使用NVT 7位ASCII码不支持的语言(如汉语,日语,德语等)。

        2.SMTP不能传送可执行文件或其他二进制对象(如图像文件)。

        3.SMTP不支持音频或视频文件。

        4.SMTP发送的邮件的长度受到限制。

        为了克服以上的不足,便引入了MIME协议,MIME协议是一种扩展协议性的辅助协议,“扩充”指的是只是对原来协议的扩展,而不是取代。它允许非ASCII码数据能够通过电子邮件传送。MIME在发送方把非ASCII码数据转换为NVT ASCII数据,之后的工作再交给SMTP完成,在接收方再将NVT ASCII数据还原成原来的数据。MIME的体系结构如下:

       MIME定义了5种首部,用来加在原始的电子邮件部分以定义参数的转换,这五种首部分别是: MIME-Version(MIME版本 )、 Constent-Type ( 内容类型 )、 Content-Transfer-Encoding ( 内容-传送-编码 )、 Content-Id ( 内容-标识 )和 Content-Description ( 内容描述 )。

        MIME版本 :定义了MIME使用的版本。

       内容-类型 :定义报文主体使用的数据类型和子类型,用<数据类型/子类型>表示。

        内容-传送-编码 :定义了邮件的主体在传送时是如何编码的。

       内容-标识 :在多报文的环境中唯一地标识报文。

        内容描述 :定义了主体是否为图像、音频或视频。

        6. 基于WWW的邮件

        基于WWW的邮件收发系统的体系结构与普通的电子邮件收发系统不同,基于WWW的邮件收发系统的整个过程描述如下:

        1.从发送者的浏览器传送到发送方邮件服务器是通过HTTP协议(而一般的则是通过SMTP协议)。

        2.从发送方服务器到接收方邮件服务器是通过SMTP协议(与一般的相同)。

        3.从接收方到接收者是通过HTTP协议(而一般的则是POP3协议或IMAP协议)。

        具体如下图所示:

参考资料

[1]《计算机网络(第5版) 谢希仁》

[2]《TCP/IP协议族 第4版》

二、常见邮箱发送端口和接收端口列举

(转载自:常用邮箱SMTP/POP3地址及端口_smtp端口-CSDN博客)

GMAIL:

接收邮件服务器: pop.gmail.com

接收端口: 995(必须使用ssl)

发送邮件服务器: smtp.gmail.com

发送端口: 465(必须使用ssl)或者587(TLS/STARTTLS)

IMAP接收邮件服务器: imap.gmail.com

接收端口: 993(必须使用ssl)


163邮箱(126类似163,参照即可):

接收邮件服务器: pop.163.com

接收端口: 110或995(使用ssl时)

接收邮件服务器: imap.163.com

接收端口: 143或993(使用ssl时)

发送邮件服务器: smtp.163.com

发送端口: 25或465/994(使用ssl时)


126邮箱:

接收邮件服务器: pop.126.com

接收端口: 110

发送邮件服务器: smtp.126.com

发送端口: 25


QQ邮箱:

接收邮件服务器: pop.qq.com

接收端口: 110或995(使用ssl时)

接收邮件服务器: imap.qq.com

接收端口: 143或993(使用ssl时)

发送邮件服务器: smtp.qq.com

发送端口: 25或465/587(使用ssl时)


雅虎邮箱:

接收邮件服务器: pop.mail.yahoo.cn

接收端口: 110或995(使用ssl时)

接收邮件服务器: imap.mail.yahoo.cn

接收端口: 143或993(使用ssl时)

发送邮件服务器: smtp.mail.yahoo.cn

发送端口: 25或465(使用ssl时)


SINA邮箱:

 接收邮件服务器: pop.sina.com

接收端口: 110

发送邮件服务器: smtp.sina.com

发送端口: 25


YEAH邮箱:

接收邮件服务器: pop.yeah.net

接收端口: 110

发送邮件服务器: smtp. yeah.net

发送端口: 25


HOTMAIL:

接收邮件服务器: pop3.live.com

接收端口: 995

发送邮件服务器: smtp.live.com

发送端口: 25

三、检测到短时间内内网主机向互联网设备发送大量大流量SMTP流量【原创】

1、需求拆分:

  • 内网主机:源IP应该在内网主机清单中
  • 互联网设备:目的IP不在内网主机清单中
  • 短时间内:可以为1h/5h等
  • 大量流量:次数 >= 阈值(可以预置为10次)
  • 大流量:①上行字节数/上行包数 >= 阈值(可以预置为80);②下行字节数/下行包数 >= 阈值(可以预置为80)
  • SMTP流量:源端口 属于 (25|465|587|994,后者为加密发送情况)

2、检测规则思路:

  • 数据源:TCP流量日志/UDP流量日志
  • 命中逻辑:
    • sip in 对象资源:内网主机IP
    • dip not in 对象资源:内网主机IP
    • 上行字节数/上行包数 >= 80
    • 下行字节数/下行包数 >= 80
    • dport in (25|465|587|994)
    • 应用 in (SMTP/SMTPS)
  •  检测时间:1h
  • 归并分组:sip
  • 统计次数:count >= 10

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

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

相关文章

博客 cn 站搭建 v3 v3.1

1. 架构设计 v3.1 版本 2. v2.x 存在的痛点 在v2.x版本中&#xff0c;围绕 服务器 遇到了两个主要的问题&#xff1a; 服务器成本高&#xff1a;博客以静态页面为主&#xff0c;理论上可以实现无服务器部署&#xff0c;但是为了防止恶意攻击&#xff0c;不得不使用服务器进…

RT-Thread-快速入门-3-内存管理

内存管理 定义与作用 内存池管理 基础定义 内存池是一种管理固定大小内存块的机制&#xff0c;主要用于减少碎片化&#xff0c;提高内存分配效率。在 RT-Thread 中&#xff0c;内存池允许用户预分配一定数量的具有相同大小的内存块&#xff0c;应用程序可以从中快速分配和释放内…

【电子书】人工智能

资料 wx&#xff1a;1945423050&#xff0c;备注来源和目的 个人整理了一些互联网电子书 人工智能 Julia机器学习核心编程&#xff1a;人人可用的高性能科学计算.epubKeras深度学习实战.epubMATLAB图像与视频处理实用案例详解.epubMATLAB金融算法分析实战&#xff1a;基于机器…

Android 开发一个耳返程序(录音,实时播放)

本文目录 点击直达 Android 开发一个耳返程序程序编写1. 配置 AndroidManifast.xml2.编写耳返管理器3. 录音权限申请4. 使用注意 最后我还有一句话要说怕相思&#xff0c;已相思&#xff0c;轮到相思没处辞&#xff0c;眉间露一丝 Android 开发一个耳返程序 耳返程序是声音录入…

开源分子对接程序rDock的安装及使用流程

欢迎浏览我的CSND博客&#xff01; Blockbuater_drug …点击进入 前言 本文介绍开源分子对接程序rDock在Linux Ubuntu 22.04系统上的conda安装、编译安装过程及程序使用流程。 一、rDock是什么&#xff1f; rDock来源 rDock是一个快速、多功能的开源对接程序&#xff0c;可用…

鼠标右键助手专业版 MouseBoost PRO for Mac v3.3.6中文破解

MouseBoost Pro mac版是一款简单实用的鼠标右键助手专业版&#xff0c;MouseBoost Pro for Mac只要轻点你的鼠标右键&#xff0c;就可以激活你想要的各种功能&#xff0c;让你的工作效率大幅度提高&#xff0c;非常好用。 软件下载&#xff1a;MouseBoost PRO for Mac v3.3.6中…

Matlab/simulink光伏发电的扰动观察法MPPT仿真(持续更新)

1.光伏发电的电导增量法MPPT仿真 2.光伏发电的恒定电压法MPPT仿真 3.光伏发电的扰动观察法MPPT仿真 4.光伏发电的占空比法MPPT仿真 5.基于神经网络的MPPT光伏发电仿真 6. 基于模糊控制的MPPT光伏发电仿真 7. 基于粒子群算法&#xff08;PSO&#xff09;的500w光伏系统MPPT控…

WordPres Bricks Builder 前台RCE漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

spark 少量key倾斜的join优化

背景 在使用spark join时&#xff0c;我们经常遇到少量key拥有大量的数据而导致的数据倾斜的问题&#xff0c;这导致了task任务数据处理非常不均匀而影响最终时效 少量key数据倾斜的join优化 这里有一个前提&#xff0c;join的另一边的表没有数据倾斜问题&#xff0c;也就是…

问题慢慢解决-通过android emulator调试android kernel-内核条件断点遇到的问题和临时解决方案

起因 在摸索到这个方案之后&#xff0c;mac m1调试aarch64 android kernel最终方案&#xff0c;就准备调试内核了&#xff0c;预备下断点的地方是 b binder_poll b ep_ptable_queue_proc b remove_wait_queue但是由于是android系统&#xff0c;上面三个函数会被频繁的触发&am…

Window部署SkyWalking

SkyWalking mysql的驱动依赖 选择下载版本 v9.4 现在后解压缩目录结构 一、修改config目录文件 application.yml 修改1&#xff1a; selector: ${SW_STORAGE:h2} 修改后&#xff1a; selector: ${SW_STORAGE:mysql} 修改2&#xff1a;使用mysql数据库 mysql: properti…

windows 11+docker desktop+grafana+influxDB

下载安装docker desktop 出现WSL相关的错误。WSL是一个linux内核的子系统&#xff0c;docker是基于linux内核的&#xff0c;所以运行docker需要WSL。 以管理员权限打开powershell&#xff0c;查看WSL状态 wsl --status 我遇到的错误是因为我关闭了windows的某些更新 执行上…

comfyui节点编写示例文件(下)

** 1、先看示例文件的结构 ** ** 2、设置输入参数 ** ** 3、节点指定任务、输出啥 ** ** 4、这个节点干了啥&#xff0c;定义函数、输出结果 ** ** 5、多个节点&#xff0c;就多个类 ** ** 6、设置多个入口 ** ** 7、放置 ** 直接把py文件放到 .\Co…

Python+Selenium-使用Pillow库进行元素截图

1. Pillow库 Pillow库是Python图像处理的基库&#xff0c;是一个免费开源的第三方库。 通过Python PyPi第三方库官网&#xff08;https://pypi.org/project/Pillow/#files&#xff09;下载与平台系统相对应的版本&#xff1a; 下载完成后&#xff0c;进入下载文件的所在位置&…

Redis(十六)缓存预热+缓存雪崩+缓存击穿+缓存穿透

文章目录 面试题缓存预热缓存雪崩解决方案 缓存穿透解决方案 缓存击穿解决方案案例&#xff1a;高并发聚划算业务 总结表格 面试题 缓存预热、雪崩、穿透、击穿分别是什么?你遇到过那几个情况?缓存预热你是怎么做的?如何避免或者减少缓存雪崩?穿透和击穿有什么区别?他两是…

力扣hot100题解(python版7-9题)

7、接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,…

mp4格式是什么?视频如何转换成MP4格式【详解】

当我们谈论数字视频时&#xff0c;MP4无疑是最常见、最受欢迎的格式之一。MP4&#xff0c;全称为MPEG-4 Part 14&#xff0c;是一种多媒体容器格式&#xff0c;主要用于存储音频、视频、字幕和图像等多媒体数据。由于其出色的兼容性、广泛的应用范围以及优秀的压缩效率&#xf…

Conmi的正确答案——将JAVA中maven的.m2文件夹放到D盘

系统&#xff1a;WIN11 1、将.m2文件夹移动到D盘 移动后&#xff1a; 2、创建目录链接 mklink /j "C:\Users\Administrator\.m2" "D:\.m2"至此&#xff0c;maven默认的jar包会加载到D盘的.m2文件夹

【动态规划】【前缀和】【推荐】2463. 最小移动总距离

作者推荐 【广度优先搜索】【网格】【割点】【 推荐】1263. 推箱子 本文涉及知识点 动态规划汇总 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 2463. 最小移动总距离 X 轴上有一些机器人和工厂。给你一个整数数组 robot &#xff0c…

计算机组成原理(12)----多处理系统

目录 1.SISD&#xff08;单指令流单数据流&#xff09; &#xff08;1&#xff09;特性 &#xff08;2&#xff09;硬件组成 2.SIMD&#xff08;单指令流多数据流&#xff09; &#xff08;1&#xff09;特性 &#xff08;2&#xff09;硬件组成 3.MISD&#xff08;多指…