本脚本支持:fortinet,watchguard,cisco,F5,huawei,H3C,Juniper,SOPHOS,DELL等厂商。

使用python自动化备份fortinet配置脚本

hello每一个点进我博客的小伙伴,本人是一枚小小的网络安全工程师(初级),由于我司代理的产品主要是fortinet,cisco,uniper,huawei,h3c,sophos,watchguard等产品,又加上“甲方爸爸”奇葩的要求,在参考github上的项目,netmiko这个好用的函数,自动化脚本备份配置(需开启SSH),通过SSH去send command and full-configuration 保存以文本的形式,实现脚本备份配置,还可以扩展的使用函数,比如脚本的配置设备。

第一步:安装python环境

由于:本人使用的是macbook,所以此处的参考性可能不大。

  1. 在自己的电脑/服务器linux主机上安装python;
    MAC系统预装了python2.7版本,对我们是不适用的,所以在官网下载python3.9版本安装,官网地址 python.org
    由于伟大的长城firewall打开网页是可能需要梯子。

    下载对应的版本。
  2. 更新pip源
    (1)阿里云 http://mirrors.aliyun.com/pypi/simple/
    (2)豆瓣http://pypi.douban.com/simple/
    (3)清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
    (4)中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
    (5)华中科技大学http://pypi.hustunique.com/
  3. pip install netmiko
    已经提前安装过了,此处仅参考命令。
// pip安装netmiko
WiliseXdeMacBook-Pro:~ apple$ pip3.9 install netmiko
Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
Requirement already satisfied: netmiko in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (3.3.3)
Requirement already satisfied: scp>=0.13.2 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from netmiko) (0.13.3)
Requirement already satisfied: setuptools>=38.4.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from netmiko) (49.2.1)
Requirement already satisfied: ntc-templates in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from netmiko) (2.0.0)
Requirement already satisfied: paramiko>=2.6.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from netmiko) (2.7.2)
Requirement already satisfied: tenacity in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from netmiko) (7.0.0)
Requirement already satisfied: pyserial in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from netmiko) (3.5)
Requirement already satisfied: cryptography>=2.5 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from paramiko>=2.6.0->netmiko) (3.4.7)
Requirement already satisfied: pynacl>=1.0.1 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from paramiko>=2.6.0->netmiko) (1.4.0)
Requirement already satisfied: bcrypt>=3.1.3 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from paramiko>=2.6.0->netmiko) (3.2.0)
Requirement already satisfied: cffi>=1.1 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from bcrypt>=3.1.3->paramiko>=2.6.0->netmiko) (1.14.5)
Requirement already satisfied: six>=1.4.1 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from bcrypt>=3.1.3->paramiko>=2.6.0->netmiko) (1.15.0)
Requirement already satisfied: pycparser in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from cffi>=1.1->bcrypt>=3.1.3->paramiko>=2.6.0->netmiko) (2.20)
Requirement already satisfied: textfsm<2.0.0,>=1.1.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from ntc-templates->netmiko) (1.1.0)
Requirement already satisfied: future in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from textfsm<2.0.0,>=1.1.0->ntc-templates->netmiko) (0.18.2)
WiliseXdeMacBook-Pro:~ apple$ 

环境安装完毕,话不多说贴代码

如下每一个对象里面的定义已经注释好了。

from netmiko import ConnectHandler
import datetimefortigate = {'device_type': 'fortinet',#要设备的厂商,支持cisco,fortinet,watchguard,sophos,Juniper,huawei,f5,Dell,H3C.'host':   '10.254.254.254',#设备的登录地址'username': 'backup',#username'password': '********',#password
}
net_connect = ConnectHandler(**fortigate)#执行登录output = net_connect.send_command('show full-configuration')#键入命令赋值给outputcurrent_time = datetime.datetime.today().strftime('%Y_%b_%d')#记录实时备份时间赋值给current_timewith open('/Users/apple/Desktop/backup/' + str(fortigate['host']) + '_' + str(current_time) + '.cfg', 'w') as f:for line in output:f.write(line) #标准的格式保存在制定的目录下

设备脚本配置示例

如下事例中展示了针对fortinet防火墙的,修改hostname与配置接口的脚本格式。

from netmiko import ConnectHandlerfortigate = {'device_type': 'fortinet','host':   '10.254.254.254','username': 'WiliseX','password': '*********',
}
net_connect = ConnectHandler(**fortigate)config_commands = [ 'config system global','set hostname "ShanghaiTK"','end' ]
output = net_connect.send_config_set(config_commands)
print(output)config_commands = [ 'config system interface','edit "wan2"','set mode static''set ip 122.122.122.122 255.255.255.0''set allowaccess ping https ssh''end' ]
output = net_connect.send_config_set(config_commands)
print(output)

注:如果有路由交换,防火墙上面的问题,请多多麻烦我解答,也算是提升学习,对飞塔,华为,cisco比较熟悉。

Python脚本自动化备份飞塔,华为,思科等设备配置文件。相关推荐

  1. python脚本自动化盲注_三、基于报错型注入和sql盲注的自动化实现

    通过前面payload的构造,不难发现,对于报错型注入和布尔注入(sql盲注)纯手工注入的效率是非常慢的.这些payload语句虽然复杂,但大部分内容都是相同的,因此,一言不合就写了个脚本自动化注入, ...

  2. python脚本自动化赚钱系统_python实现自动化上线脚本的示例

    python实现自动化上线脚本的示例 发布时间:2020-10-01 11:03:54 来源:脚本之家 阅读:106 作者:Ian_安安 程序说明: 本程序实现将开发程序服务器中的打包文件通过该脚本上 ...

  3. python脚本自动化_GDA python 脚本自动化分析说明

    一.简述 为了能够更加灵活的提供分析和信息交互,GDA从3.6版本开始提供了对python脚本的支持.GDA为分析人员提供了整个APK文件中的类和方法的相关信息,其中分别以列表和字典的方式来组织类和方 ...

  4. python脚本自动化盲注_python dvwa布尔盲注自动化脚本(level=low)

    仅供学习代码参考 1#python dvwa布尔盲注自动化脚本 2 importrequests3 importstring4 importtime5 INIT_URL="http://12 ...

  5. python脚本自动化赚钱系统_自从用python写了个自动弹幕脚本后,各大主播都来找我,净赚十万!...

    Python Python开发 Python语言 自从用python写了个自动弹幕脚本后,各大主播都来找我,净赚十万! 大家好,今天又给大家带来了Python爬虫的分享,今天我们继续上次的问题,继续来 ...

  6. 使用python脚本定时备份web网站

    1 #!/usr/bin/env python 2 #-*- coding: utf-8 -*- 3 4 import os 5 import time 6 7 # 备份的指定目录 8 source ...

  7. 华为 Python网络自动化

    哈喽,大家好!我是艺博东 ,是一个思科出身.专注于华为的网工:好了,话不多说,我们直接进入正题. 光棍二十年,不知道情人节是什么鬼东西.还是好好学技术吧!努力.奋斗吧!为了早日走向人生巅峰,迎娶白富美 ...

  8. python写手机脚本脱离电脑_在手机里编写python脚本控制手机

    今天我有一个大胆的想法,想在手机里面编写python脚本自动化控制手机.既然有了这么大胆而想法,而且我还能实现,那么就有了我现在这篇文章. 如何在手机里面编程 首先先介绍一款能直接在手机里面运行代码的 ...

  9. 【GIS人必学】零基础学习ArcGIS Python脚本开发训练营来了

    Python作为一种高级程序设计语言,凭借其简洁.易读及可扩展性日渐成为程序设计领域备受推崇的语言.ArcGIS软件由于其面向地理问题的科学理念,不断创新的技术方法,已在国内外市场占据了主导地位.Py ...

最新文章

  1. C语言中的位操作(8)--根据指定掩码选择两数之一
  2. rn项目 假如cocoapods_在项目中集成 RN
  3. python每天1道面试题(3)--字符串组合
  4. Android RecyclerView 滑动到指定位置 RecyclerView 滑动到顶部
  5. Visual Studio 2019 16.4 发布,加入对 GitHub 的整合
  6. 直播推流之blibli和拉流LFLiveKit
  7. JavaWeb学习笔记7--JSP脚本元素、指令元素、动作元素
  8. Python练习5-正则表达式
  9. linux下安装fortran90教程,linux 安装fortran 90 --zz
  10. 考研英语 - word-list-23
  11. Docker入门教程
  12. 梅森质数(2^n - 1是质数,则n是质数)的证明
  13. Kaplan-Meier plot cutoff选择
  14. linux dns访问日志内容格式,谢烟客---------Linux之DNS请求流程及资源记录定义
  15. 用Android手机远程桌面连接登陆Windows10(用微软账号登陆),Microsoft账户登陆的计算机远程桌面连接问题
  16. 单峰数组求峰值,二分思想,LeetCode862
  17. js html页面原生js横向打印
  18. 解决H5在移动端overflow:scroll滚动条默认不显示和滚动后消失的问题
  19. 蒙特卡洛方法(Monte Carlo method,也有翻译成“蒙特卡罗方法”)
  20. Java web学习——Spring MVC项目实例,三层架构通过JDBC链接SQLServer2012

热门文章

  1. 关于使用anaconda安装package出现CondaHTTPError问题
  2. Cookie 欺骗——漏洞
  3. 已经建立的TCP,收到SYN会发生什么?
  4. 网页代码中link标签的用法
  5. 【JDK7】新特性(4) NIO2.0 文件系统
  6. Windows下安装使用Spacy英文库en_core_web_md,解决Warning: no model found for 'en_core_web_md'
  7. 免费软著申请登记详细教程
  8. windows10+python3.7.0(anaconda)+MeCab安装总结
  9. neu坐标系和xyz坐标系转换_航测必知的坐标系详解和转换关系
  10. python语言-实现半自动爬虫爬取小说《遮天》评论