网络设备基线配置检查

产生背景:
在当前环境下,信创大行其道,很多小伙伴们遇到批量更换接入设备,录入CMDB;而更换设备的实施工程师往往又是五湖四海难免因沟通问题出现配置错误,核对基线配置发现难免是东一榔头西一棒槌,这些不合格的接入配置一但录入CMDB系统后,又要提变更,走流程熬夜加班才能进行配置,不仅伤肾更是占用宝贵的休息时间;那么怎么避免这种情况发生呢?人工复核?当接入设备几十上百后人工复核怕是杯水车薪,那么我们尝试使用Python来进行解决,仅仅只需要三四十行代码而已;
实现思路:
1 基线配置文件读取:
基线配置读取是最简单的一环,我们可以利用open函数打开,使用readlins函数进行逐行读取得到list类型对象;那么此时要注意列表元素的首尾空格的处理,以免在和设备配置对比时因空格问题导致误报,所以使用strip函数对每行的首尾进行处理,获取基线配置文件列表b;总结:open打开文件,readlins读取文件,strip处理文件,得到基线配置文件列表b;
2设备配置读取:
有了上面对基线配置文件的处理,那么我们对于设备配置文件的处理按照相同思路进行,唯一区别是我们需要检查的配置文件非常多,不能一个个指定文件名称,那么我们就需要使用os模块中listdir函数来帮我获取一个文件夹下所有的文件名,然后在按照步骤1的思路进行处理,获取设备配置文件列表d;
3 配置对比:
有了以上两个步骤后,我们可以得到基线配置文件的list对象b,和设备配置文件的list对象d;那么我们只需要对两个list对象使用set函数取出相同的部分赋予一个变量e,在拿相同的部分与基线list对象b进行取出不同的部分得到一个配置文件与基线文件的差值f并转换为list对象g;此时我们就可以针对获取到的差值g进行处理判断,使用len函数获取差值的元素数量,等于0则代表基线已刷入,大于0则代表基线缺失,我们对这部分进行输出即可完成基线配置的检查

代码:

import os,sys,time


#日期函数,获取当前年月日分秒作为文件名称,防重复文件名
def GetNowTime():
    return time.strftime("%Y%m%d%H%M%S",time.localtime(time.time()))
x = GetNowTime()

#获取基线配置
with open('5310.txt','r',encoding='utf-8') as check_file:
    #5310.txt为基线配置文件,使用时替换为自己的基线配置文件名称,需要和python脚本在同一个文件夹下
    a = check_file.readlines()
b = []
for item in a:
    item = item.strip()
    b.append(item)

#配置对比函数
def check_config(Device_Configuration,baseline_configuration,config_file_name):
    with open(Device_Configuration,'r',encoding='utf-8') as check_file:
        c = check_file.readlines()
        d = []
        for item in c:
            item = item.strip()
            d.append(item)
    e = set(d) & set(baseline_configuration)
    #取出配置文件和基线相同的配置
    f = set(baseline_configuration) ^ set(e)
    #比对除未配置在设备的基线配置
    g = list(f)
    if len(g) == 0:
        with open('基线配置检查正常设备' + x + '.txt','a') as report_file:
            report_file.write('=========' + config_file_name + '基线检查正常=========\n')
    else:
        with open('基线配置检查缺失设备' + x + '.txt','a') as report_file:
            report_file.write('=========' + config_file_name + '基线缺失,缺失内容如下=========\n')
            for item in f:
                report_file.write(item + '\n')
                print(item)


file_path = 'D:\\PY工具\\配置对比\\test'
#需要检查配置的文件夹,假设你的配置文件放在 E盘 XX配置收集 文件内,路径举例:E:\\XX配置收集
for file in os.listdir(file_path):
    file1 = file_path + '\\' + file
    check_config(file1,b,file)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 《网络设备安全基线技术规范》是一份重要的技术规范文件,旨在确保网络设备的安全性和稳定性。该规范主要包括以下几个方面的内容。 首先,该规范明确了网络设备安全基线的定义和重要性。网络设备安全基线是指在实施安全措施的基础上,为网络设备确定的最低安全要求。这些要求可以帮助网络管理员和系统管理员配置和管理网络设备,以提高网络安全性和减少信息泄露的风险。 其次,该规范提供了网络设备安全基线的具体要求。这些要求包括访问控制、身份认证、密码管理、漏洞修复、日志管理等方面。通过遵循这些要求,可以有效地保护网络设备免受各种恶意攻击和安全威胁。 再次,该规范还详细说明了网络设备安全基线的实施方法和评估标准。对于实施网络设备安全基线,需要从网络设备的初始化、配置、管理等多个方面入手,确保网络设备能够满足基线要求。同时,规范还提供了一套评估标准,用于评估网络设备是否符合基线要求,并对不符合要求的进行相应的修复和改进。 最后,该规范还涉及了网络设备安全基线的更新和维护。鉴于网络安全环境的不断变化,规范强调了更新和维护的重要性。网络管理员需要定期检查网络设备的安全性,及时修复漏洞和更新补丁,以保持网络设备的最佳安全状态。 综上所述,《网络设备安全基线技术规范》是一份重要的技术规范文件,可以为网络设备的安全配置和管理提供指导,帮助提升网络安全性和防范各种网络攻击。网络管理员应当认真学习和遵守该规范,以确保网络设备的安全和稳定。 ### 回答2: 《网络设备安全基线技术规范.pdf》是一份关于网络设备安全基线的技术规范文档。该文档主要包括了对网络设备的安全要求、配置、管理和监控等方面的详细规范。 首先,该文档明确了网络设备的安全要求,提出了对设备硬件、软件以及网络环境等多个方面的安全性要求,旨在帮助用户建立一个可靠、安全、稳定的网络环境。 其次,该规范文档详细列举了各种网络设备的基础配置要求,包括设备的命名规则、访问控制、端口安全、路由器和交换机的配置参数等。这些配置要求可以帮助网络管理员确保设备的安全性,并减少潜在的风险和漏洞。 此外,该文档还介绍了网络设备的管理和监控要求,包括对设备的日志记录、漏洞管理、访问控制列表、入侵检测和防御系统等的要求。通过实施这些管理和监控要求,网络管理员可以快速发现和应对网络安全事件,确保网络设备的安全运行。 总的来说,《网络设备安全基线技术规范.pdf》是一份非常重要的文档,对确保网络设备的安全运行具有重要意义。网络管理员可以按照该规范的要求,对网络设备进行配置、管理和监控,从而提高网络的安全性和稳定性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值