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

网络连通性批量检测工具

一、背景介绍

  企业网络安全防护中,都会要求配置物理网络防火墙以及主机防火墙,加强对网络安全的防护。云改数转之际,多系统上云过程中都会申请开通大量各类网络配置,针对这些复杂且庞大的网络策略开通配置,那么在网络配置前、后会有一些痛点:

   1、策略配置前,针对无需处理的策略(源和目的网络已经联通),没有手段提前批量探测一下,不仅工作量增加,经常导致策略重复添加。

   2、策略配置后,运维人员处理完成,不能及时便捷的探测网络连通性,无法及时验证开通效果,给业务上云工作带来很大的困扰,急需一个便利的批量端口探测工具。

   3、telnet作为网络端口连通性探测工具,针对已开通防火墙网络权限的探测会很快返回,但对于网络不通的,会等待60s才能超时返回,效率太低。

二、工具描述

1、针对telnet自身短板(网络超时需要60s返回结果),用c语言重新编译telnet,加入超时闹钟alarm自定义设置(目前设置5s超时返回),大大提升探测效率,对应工具名“telnetplus”

2、针对业务申请的一对多、多对多和多对一各种的网络策略,规定策略内容填写梳理成一条一条IP+PORT记录,格式为1.1.1.1|22(IP|PORT) ,对应文件名“telnet.list”

3、通过调用telnetplus命令,遍历IP+PORT,并将结果进行分类汇总,输出到指定文件,程序名“telnetconn.sh”

三、实现过程

1、telnet改版的工具,已放到下载资源中

https://download.csdn.net/download/vincent0920/88689118

2、将telnetplus命令文件拷贝到/usr/bin目录下

3、将telnetconn.sh和telnet.list拷贝到同一个目录下面

telnet.list

#hosts
192.168.163.6|22
192.168.163.7|22
192.168.163.8|1521
192.168.163.9|22
192.168.163.10|3306
192.168.163.134|3306

 telnetconn.sh

#!/bin/bash
#########################Detail#############################
# 1. This shell is used to check destnation ip + port can  #
#  connect usually.                                        #
# 2. Three result file will be created: telnet_succ.log &  #
#  telnet_fail.log & telnet_tmout.log                      #
# 3. Input file telnet_list.txt's format: 10.10.10.10|22   #                                
############################################################RESDIR=result
TELNET_LIST=$1
TMOUT=5###check result dir exist###
if [ ! -d $RESDIR ];thenmkdir $RESDIR
fi###bak result file###
mv $RESDIR/telnetfull_result.log $RESDIR/telnetfull_result.log`date +%Y%m%d`
mv $RESDIR/telnet_result.log $RESDIR/telnet_result.log`date +%Y%m%d`
mv $RESDIR/telnet_fail.log $RESDIR/telnet_fail.log`date +%Y%m%d`
mv $RESDIR/telnet_succ.log $RESDIR/telnet_succ.log`date +%Y%m%d`
mv $RESDIR/telnet_tmout.log $RESDIR/telnet_tmout.log`date +%Y%m%d`
mv $RESDIR/telnet_refused.log $RESDIR/telnet_refused.log`date +%Y%m%d`
touch $RESDIR/telnet_result.log
touch $RESDIR/telnetfull_result.log
touch $RESDIR/telnet_fail.log
touch $RESDIR/telnet_succ.log
touch $RESDIR/telnet_tmout.log
touch $RESDIR/telnet_refused.log###begin telnetfull###
for line in `cat $TELNET_LIST |grep -v ^# |grep -v ^$ `
do###get remote ip#########ip=`echo $line | awk 'BEGIN{FS="|"} {print $1}'` ###get remote port####### port=`echo $line | awk 'BEGIN{FS="|"} {print $2}'`###get local ip##########local_ip=`ifconfig | grep "134." | awk '{print $2}' | tr -d "addr:"`###begin telnet###telnetfull $ip $port $TMOUT >> $RESDIR/telnetfull_result.log###find succ record into telnet_succ.log#####res=`tail -1 $RESDIR/telnetfull_result.log|awk '{print $5}'`if [ $res = failed ];thennohup telnet $ip $port >> $RESDIR/telnet_result.log  2>&1nohup telnet $ip $port > $RESDIR/telnet_tmp.log  2>&1resf=`grep telnet $RESDIR/telnet_tmp.log|awk '{print $7}'`echo $resfif [ $resf = refused ];thenecho "local_ip:$local_ip  remote_ip:$ip | $port | refused" >> $RESDIR/telnet_refused.log elseecho "local_ip:$local_ip  remote_ip:$ip | $port | No route to host" >> $RESDIR/telnet_fail.logfielif [ $res = success ];thenecho "local_ip:$local_ip  remote_ip:$ip | $port | success" >> $RESDIR/telnet_succ.logelif [ $res = timeout ];thenecho "local_ip:$local_ip  remote_ip:$ip | $port | timeout" >> $RESDIR/telnet_tmout.log fidone   

 4、执行命令sh telnetconn.sh telnet.list

执行结束后,在result子目录下面生成七个结果文档:

最后检查telnetfull_result.log:所有telnet遍历结果

最后,如果觉得本文对你有帮助,欢迎点赞、收藏、评论!

There are many things that can not be broken!

http://www.lryc.cn/news/274060.html

相关文章:

  • 2023高级人工智能期末总结
  • Oracle数据库迁移所有文件到新挂载磁盘路径
  • 基于YOLOv7算法的高精度实时安全背心目标检测识别系统(PyTorch+Pyside6+YOLOv7)
  • Mac——VsCode使用格式化工具进行整理和格式化
  • 73.乐理基础-打拍子-还原号、临时变音记号在简谱中的规则
  • 一款超酷的一体化网站测试工具:Web-Check
  • MockServer简单使用记录
  • AI+金融:大模型引爆金融科技革命
  • 数据库(二)实验一:MySQL数据库的C/S模式部署
  • RLHF几大常用框架实践对比(trlx、deepspeedchat、colossalaichat)
  • Oracle/Myql批量操作
  • 关于一个web站点的欢迎页面
  • 1050. 鸣人的影分身(dp划分)
  • 51单片机点灯入门教程——2. 呼吸灯效果
  • shell脚本实现九九乘法表
  • CAAC无人机操作证考证报名流程及白底证件照片制作方法
  • RPC介绍
  • 23 导航栏
  • express框架搭建后台服务
  • 信息学奥赛一本通2067详解+代码
  • Java大数据hadoop2.9.2搭建伪分布式yarn资源管理器
  • 3D Gaussian Splatting复现
  • tf-idf +逻辑回归来识别垃圾文本
  • Oracle - 数据库的实例、表空间、用户、表之间关系
  • Java面试项目推荐,异构数据源数据流转服务DatalinkX
  • 一、Vue3组合式基础[ref、reactive]
  • unity网页远程手机游戏Inspector面板proxima
  • 聊聊spring事务12种场景,太坑了
  • mysql 数据查重与查重分页
  • 微服务(12)