当前位置:首页 > 工业控制 > 《机电信息》
[导读]摘要:针对计算机端口扫描技术的优缺点,采用多线程技术,结合TCP全连接扫描,实现了基于C语言编程的网络端口扫描及危险端口关闭程序,旨在使端口关闭操作简单化。

引言

随着全球信息化步伐的加快,网络规模的迅速扩张和计算机系统的日益复杂,新的系统漏洞层出不穷,网络安全形势日益严峻。目前对计算机网络系统的入侵主要是通过病毒和木马进行的,而病毒和木马的传播途径需要通过特定端口,所以关闭信息设备的特定端口能够有效减少病毒和木马的传播。现代电网运行高度依赖信息系统和电力监控系统,做好电力系统网络安全维护对于电网的安全稳定运行和电力可靠供应具有重大意义。根据南方电网公司《关于加强电力监控系统网络安全及病毒感染风险防控工作要求》以及《关于CiscosmartInstall远程命令执行漏洞的情况通报》,要求对电力系统PC平台的445、135、137、138、139、3389和CIsCo路由器4786等端口服务进行关闭。但这些网络端口关闭操作过程比较复杂,且维护人员多为非计算机专业人员,往往通过网络查询方式获取关闭方法,操作容易出现关闭失败或未完全关闭等问题。

本文针对计算机端口扫描技术的优缺点,采用多线程技术,结合TCP全连接扫描,实现了基于C语言编程的网络端口扫描和关闭程序,将端口关闭工作简单化、彻底化。

1端口扫描技术及多线程技术

1.1端口的概念

本文所提到的端口,是指网络连接中使用的逻辑端口,按端口号分布可以分为知名端口、动态端口或私有端口,例如21端口分配给FTP服务、25端口分配给sMTP(简单邮件传输协议)服务、80端口分配给HTTP服务,这些众所周知的端口即称为"知名端口":动态端口未特定分配给某个服务,只要运行的程序向系统提出访问网络的申请,那么系统就可以从动态端口范围内分配一个端口号供该程序使用。按协议类型可以划分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口,常见的TCP端口如FTP服务的21端口、Telnet服务的23端口、sMTP服务的25端口以及HTTP服务的80端口等等,常见的UDP端口如常DNs服务的53端口、sNMP(简单网络管理协议)服务的161端口、oo使用的8000和4000端口等等。

1.2端口扫描技术简介

所谓"端口扫描",即向目标主机发送探测数据包,并通过探测数据包反馈回来的数据判断其提供的计算机网络服务类型(这些网络服务均与端口号相关)。通过端口扫描可以帮助发现目标机的某些内在的弱点,帮助查找目标主机的漏洞。根据采用探测方法的不同,端口扫描技术分为开放扫描、半开放扫描、隐蔽扫描以及其他扫描等。

1.3多线程技术简介

一个进程是应用程序的一个执行实例,是由私有的虚拟地址空间、代码、数据和其他系统资源组成的。线程是比进程更小的单位,可以认为进程是由一个或多个线程组成的。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销,多线程能满足程序员编写高效率的程序来达到充分利用CPU的目的。

2多线程TCP全连接扫描的实现

本文采用多线程TCP全连接扫描技术实现端口扫描,通过调用windowssocket提供的connect()函数与每一个目标计算机端口进行连接,向目标主机的TCP/IP服务端口发送数据包,并记录目标主机的响应。通过分析响应来判断服务端口是打开还是关闭,从而得知端口提供的服务或信息。

利用此技术的有两个优点:(1)系统中的任何用户均可调用此函数:(2)响应速度快。

本文采用多线程技术进行编程,可同时打开多个socket,加快扫描速度,缩短端口扫描时间。

3计算机网络系统端口扫描及危险端口关闭软件设计及应用

本文利用TCP全连接扫描及多线程技术设计了一款具有网络系统端口扫描及危险端口关闭功能的软件系统。软件主要实现以下功能:(1)能够扫描和记录本地及网络设备终端上端口的开放和关闭情况:(2)对本地终端上扫描和记录的端口可以实现选择性关闭或开放:(3)软件可安装在不同的操作系统平台上使用,且不影响其功能发挥:(4)对扫描出未关闭的危险端口,不得自行完成关闭,需要人工对所需关闭的端口进行决策性选择:(5)除人工选择端口封闭操作以外,其他操作尽量简单,基本达到一键操作完成关闭工作的效果。工具各窗口界面采用按钮、文本框等常见操作方法,可以达到良好的人机交互效果。

3.1端口扫描

首先自动检索并显示本机IP地址,在端口范围栏输入需要扫描端口号,端口号输入方式可以以区间或者单个端口号的形式输入,例如"0-100"表示输入端口号为0~100之间所有端口号,若输入"135,137,138"则表示输入端口号为135、137、138,然后点击"开始扫描"即可,如图1所示。

3.2端口关闭

端口扫描后,可以查看全部端口状态,也可根据需要查看被禁用的端口或者开启的端口,在进行端口关闭时,选中开启的指定端口号,点击"禁用"按钮,即可实现端口一键关闭,如图2所示。

3.3端口启用

扫描出已禁用的端口号结果,选中指定要启用的端口号,点击"开启"按钮即可打开相应端口,如图3所示。

3.4辅助指令

在文本输入框中,输入想要查询的正确指令,点击"执行"按钮,将结果信息返回到输出框中进行信息显示,如图4所示。

4结语

目前,在运行的电力监控系统设备中,仍然存在较多高危端口开启的情况。

在未来的电力网络安全维护工作中,一定还会存在其他类型的木马和病毒利用其他类型的端口侵入电力监控网络系统影响电力系统设备正常运行。通过使用本端口管理平台软件对高危端口进行管理,可以有效提高电力系统网络安全维护人员工作效率和工作质量,将各种端口关闭工作简单化、彻底化,为电力系统安全运行提供有力保障。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

我们手里每天基本都有多个事情要做,很多人为了在短时间内完成任务,于是,开启了“多线程”工作模式。比如:一边写代码,一边写工作总结,同时还在回复着工作群里的消息。

关键字: 多线程 工作阻力 代码

摘要:阐述了一种基于GPRS和嵌入式Linux的远程图像监控系统设计和实现方法。该系统主要由嵌入式视频采集终端 和监控中心服务器组成。其中,嵌入式视频采集终端主要由摄像头视频采集模块、ARM模块、SIM900模块组成,监...

关键字: 通用分组无线业务 实时图像采集 多线程 信号量

一、前言二、MichaHofri算法三、测试代码四、总结一、前言在上一篇文章中,介绍了一种纯软件算法,用来实现临界区的保护功能,文章链接:C语言边角料2:用纯软件来代替Mutex互斥锁。首先明确一下:如果利用操作系统提供...

关键字: C语言 多线程 软件

作 者:道哥,10年嵌入式开发老兵,专注于:C/C、嵌入式、Linux。关注下方公众号,回复【书籍】,获取Linux、嵌入式领域经典书籍;回复【PDF】,获取所有原创文章(PDF格式)。目录单片机中常用的环形缓冲区多线程...

关键字: 多线程 异步

|前言前两天做了一个导入的功能,导入开始的时候非常慢,导入2w条数据要1分多钟,后来一点一点的优化,从直接把list怼进Mysql中,到分配把list导入Mysql中,到多线程把list导入Mysql中。时间是一点一点的...

关键字: 多线程

近期看到有读者在公众号留言问有没有C多线程的学习方法,我这里特意总结了下,希望能对大家有所帮助。目录什么是多线程?为什么使用多线程?如何创建线程?joinable()?多线程参数传递方式锁原子变量条件变量async多线程...

关键字: 多线程

直接进入正题,发车!简述java内存模型(JMM)java内存模型定义了程序中各种变量的访问规则。其规定所有变量都存储在主内存,线程均有自己的工作内存。工作内存中保存被该线程使用的变量的主内存副本,线程对变量的所有操作都...

关键字: 多线程

直接进入正题,发车!简述java内存模型(JMM)java内存模型定义了程序中各种变量的访问规则。其规定所有变量都存储在主内存,线程均有自己的工作内存。工作内存中保存被该线程使用的变量的主内存副本,线程对变量的所有操作都...

关键字: 多线程

直奔主题,多个线程,一个共享变量,不断1。如果代码直接这样写,会产生线程安全问题。public class LongAdder {   private long count = 0L;   public void ad...

关键字: 多线程

Redis官方在2020年5月正式推出6.0版本,提供很多振奋人心的新特性,所以备受关注。❝码老湿,提供了啥特性呀?知道了我能加薪么?主要特性如下:多线程处理网络IO;客户端缓存;细粒度权限控制(ACL);RESP3协议...

关键字: 多线程 模型
关闭