1. Trang chủ
  2. » Công Nghệ Thông Tin

Script python áp dụng cho quản trị mạng(tiếng việt)

6 406 13

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 798,02 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

SCRIPT PYTHON3 CHO QUẢN TRỊ MẠNG Version Python: 3 Môi trường: Ubuntu 18 Thiết bị mạng demo : Cisco IOS, Juniper vMX Creator: HaiNguyen-IT ĐÂY LÀ BẢN DEMO; THAM KHẢO BẢN FULL : https://

Trang 1

SCRIPT PYTHON3 CHO QUẢN TRỊ MẠNG

Version Python: 3

Môi trường: Ubuntu 18

Thiết bị mạng demo : Cisco IOS, Juniper vMX

Creator: HaiNguyen-IT

ĐÂY LÀ BẢN DEMO; THAM KHẢO BẢN FULL :

https://www.youtube.com/watch?v=KGjW3s9il54

Trang 2

Mục lục

1 Phát hiện thiết bị lạ cắm vào mạng access của công ty

2 Tự động backup định kỳ cấu hình và lưu trên FTP server

3 Gửi mail báo cáo thay đổi config của device

4 Báo cáo network đầu ngày bằng email tự động

5 Tối ưu: Lưu và đọc password của device từ file riêng

6 Tối ưu: Mã hóa file chứa mật khẩu router/switch

7 Tối ưu: Dùng Try Except để script không bị dừng đột ngột

8 Tối ưu: Cấu hình nhiều thiết bị bằng file chứa lệnh riêng

9 Script Netmiko với Juniper và Cisco

10 Multivendor với NAPALM

11 Áp dụng Netmiko tự động hóa cho Linux

12 Các hàm xử lý text & gửi mail sử dụng trong tài liệu này

13 Link down các khoá học udemy về mạng và link down full EVE image

14 Download các file code trong tài liệu

15 UPDATE 15/3/2021: bắt gói tin với python và EPC

16 UPDATE 16/3/2021: tự động cấu hình toàn mạng

Trang 3

1 Phát hiện thiết bị lạ cắm vào mạng công ty

Yêu cầu: Mạng access của công ty có các switch nối dây ra các máy tính bàn tại các phòng ban Khi

người dùng mang laptop hoặc Access Point đến cắm vào các lỗ mạng có thể gây loop hoặc nguy cơ truy cập trái phép vào các ổ chung chứa dữ liệu của công ty => Ta sử dụng script python để báo cho network admin khi có người cắm device lạ vào công ty

Cách làm:

- Tạo 1 file chứa danh sách các MAC của các máy bàn (lấy từ AD hoặc show trên switch hoặc yêu cầu người dùng gửi lại cho network admin)

- Viết script định kì show mac address –table trên switch, nếu thấy có MAC mà không nằm trong file bên trên thì gửi mail báo cho network admin biết => tùy network admin xử lí tiếp

Step1: Tạo file allmac.txt dạng như dưới

Step2: Viết script check_mac.py

#!/usr/bin/env python3

from netmiko import ConnectHandler

import smtplib

from email.mime.text import MIMEText

Trang 4

from email.mime.multipart import MIMEMultipart

#Đọc file allmac sau đó lưu các MAC vào mảng totalmac

totalmac=[]

f=open('allmac.txt','r')

lines=f.readlines()

for i in range(0,len(lines)):

totalmac+=[lines[i].rstrip()]

#khai báo các switch công ty

sw_user1={

'device_type': 'cisco_ios', 'ip': '192.168.177.131', 'username': 'admin', 'password': 'cisco', 'secret': 'cisco', 'verbose': False, }

sw_user2={

'device_type': 'cisco_ios', 'ip': '192.168.177.132', 'username': 'admin', 'password': 'cisco', 'secret': 'cisco', 'verbose': False, }

# -Viết hàm gửi mail -# def sendMail(output,dstMail):

if(output!=''):

Trang 5

msg = MIMEMultipart()

msg['From'] = 'myemail@gmail.com'

msg['To'] = dstMail

msg['Subject'] = "NEW DEVICE JOIN NETWORK"

msg.attach(MIMEText(output, 'plain'))

text=msg.as_string()

server = smtplib.SMTP_SSL('smtp.gmail.com', 465)

server.login('myemail@gmail.com', "yourpass")

server.sendmail(

"myemail@gmail.com",

dstMail,

text)

server.quit()

# -Login vào switch và show mac -#

output=''

all_switches=[sw_user1,sw_user2]

for switches in all_switches:

net_connect=ConnectHandler(**switches)

net_connect.enable()

wr=net_connect.send_command_timing("show mac address-table")

f=open('mactemp.txt','w')

f.write(wr)

f=open('mactemp.txt','r')

linehai=f.readlines()

for i in range(0,len(linehai)):

if("Et" in linehai[i]):

mac=linehai[i].split(" ")[1].replace(" ","") #=> remove dấu cách

Trang 6

port=linehai[i].split(" ")[3]

vlan=linehai[i].split(" ")[0]

# -So sánh với các MAC trong totalmac ban đầu -#

# -Neu khong co trong totalmac thì gửi mail -#

if (mac not in totalmac):

output+="WARNING: New device found: "+mac+" on switch "+switches['ip']+" port "+port+" vlan "+vlan+"\n\n"

if(output!=''):

sendMail(output,"yourDestMail@gmail.com")

Kết quả khi chạy chương trình: ta được Mac lạ như dưới

Đặt cronjob 20 phút thực hiện 1 lần: Trên Ubuntu (Các bài có cronjob cần thêm dòng

#!/usr/bin/env python3 ở trên cùng của script)

crontab -e

*/20 * * * * /usr/bin/env python3 /home/hainm/check_mac.py

Ngày đăng: 25/03/2021, 11:35

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w