ventilaar
/
sdn-cursus
Archived
1
Fork 0

volgensmij is wat deze script uitvoert niet de bedoeling. De script gaat er vanuit dat ssh al is ingesteld op de router.

Echter is het de bedoeling van de script dat het een set commando's genereert om ssh in te stellen(overtypen/kopieeren)
Ik voeg het echter wel toe aangezien er tijd in is gestoken, als het niet voldoende is zie dan:
https://git.ventilaar.nl/ventilaar/sdn-cursus/src/branch/master/Opdrachten/Week%201/Base%20config%20generator/run.py
This commit is contained in:
Ventilaar 2022-01-10 11:28:46 +01:00
parent 5152f17c41
commit 1b390f40fe
1 changed files with 217 additions and 0 deletions

View File

@ -0,0 +1,217 @@
import paramiko
import time
# Verbinden via SSH
host = input("Wat is het ip of de hostname van uw cisco router? ")
gebruikersnaam = "cisco"
wachtwoord = "cisco"
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname=host, username=gebruikersnaam, password=wachtwoord)
print("\nSSH verbinding met " + host + " tot stand gebracht.")
print("Configureer het apparaat door onderstaande wizard te doorlopen.\n")
ssh = ssh_client.invoke_shell()
# Hostnaam en stiekem no ip domain lookup
hostnaam = input("Welke hostname moet het apparaat krijgen? ")
ssh.send("enable\n")
ssh.send("class\n")
ssh.send("config terminal\n")
ssh.send("no ip domain lookup\n")
ssh.send("hostname " + hostnaam + "\n")
ssh.send("end\n")
# Enable wachtwoord
enable_wachtwoord = "class"
ssh.send("config terminal\n")
ssh.send("enable secret " + enable_wachtwoord + "\n")
ssh.send("end\n")
# Console wachtwoord
console_wachtwoord = "cisco"
ssh.send("config terminal\n")
ssh.send("line console 0\n")
ssh.send("password " + console_wachtwoord + "\n")
ssh.send("end\n")
# VTY wachtwoord
vty_wachtwoord = "cisco"
ssh.send("config terminal\n")
ssh.send("line vty 0 15\n")
ssh.send("password " + vty_wachtwoord + "\n")
ssh.send("transport input ssh\n")
ssh.send("end\n")
# Gebruikers maken
gebruiker = "cisco"
wachtwoord = "cisco"
ssh.send("config terminal\n")
ssh.send("username " + gebruiker + " password 0 " + wachtwoord + "\n")
ssh.send("end\n")
# Wachtwoord encryptie
wachtwoord_encryptie = input("Wil je wachtwoord encryptie instellen? [Ja/Nee] ")
if wachtwoord_encryptie != "Ja":
print("\nDe wachtwoorden zijn niet encrypted!")
else:
ssh.send("config terminal\n")
ssh.send("service password-encryption\n")
ssh.send("end\n")
print("\nDe wachtwoorden zijn encrypted!")
# Banner MOTD
banner_motd = input("Welke banner MOTD moet het apparaat krijgen? ")
ssh.send("config terminal\n")
ssh.send("banner motd %" + "\n")
ssh.send(banner_motd + "%" + "\n")
ssh.send("end\n")
# Interface gigabitethernet1 configuratie
print("\n[INTERFACE GIG 1 CONFIGURATIE]\n")
config_intgig1 = input("Wilt u interface gigabitethernet 1 configureren? [Ja/Nee] ")
if config_intgig1 != "Ja":
pass
else:
interface_ip = input("Welk IP adres moet " + "int gig 1" + " krijgen? ")
interface_subnetmask = input("Welk subnetmasker moet " + "int gig 1" + " krijgen? ")
interface_beschrijving = input("Welke beschrijving moet " + "int gig 1" + " krijgen? ")
ssh.send("config terminal\n")
ssh.send("interface " + "gig 1" + "\n")
ssh.send("ip address " + interface_ip + " " + interface_subnetmask + "\n")
ssh.send("description " + interface_beschrijving + "\n")
ssh.send("no shutdown\n")
ssh.send("end\n")
time.sleep(2)
# Interface gigabitethernet2 configuratie
print("\n[INTERFACE GIG 2 CONFIGURATIE]\n")
config_intgig2 = input("Wilt u interface gigabitethernet 2 configureren? [Ja/Nee] ")
if config_intgig2 != "Ja":
pass
else:
interface_ip = input("Welk IP adres moet " + "int gig 2" + " krijgen? ")
interface_subnetmask = input("Welk subnetmasker moet " + "int gig 2" + " krijgen? ")
interface_beschrijving = input("Welke beschrijving moet " + "int gig 2" + " krijgen? ")
ssh.send("config terminal\n")
ssh.send("interface " + "gig 2" + "\n")
ssh.send("ip address " + interface_ip + " " + interface_subnetmask + "\n")
ssh.send("description " + interface_beschrijving + "\n")
ssh.send("no shutdown\n")
ssh.send("end\n")
time.sleep(2)
# Interface gigabitethernet3 configuratie
print("\n[INTERFACE GIG 3 CONFIGURATIE]\n")
config_intgig3 = input("Wilt u interface gigabitethernet 3 configureren? [Ja/Nee] ")
if config_intgig3 != "Ja":
pass
else:
interface_ip = input("Welk IP adres moet " + "int gig 3" + " krijgen? ")
interface_subnetmask = input("Welk subnetmasker moet " + "int gig 3" + " krijgen? ")
interface_beschrijving = input("Welke beschrijving moet " + "int gig 3" + " krijgen? ")
ssh.send("config terminal\n")
ssh.send("interface " + "gig 3" + "\n")
ssh.send("ip address " + interface_ip + " " + interface_subnetmask + "\n")
ssh.send("description " + interface_beschrijving + "\n")
ssh.send("no shutdown\n")
ssh.send("end\n")
time.sleep(2)
# Interface loopback1 configuratie
print("\n[INTERFACE lo1 CONFIGURATIE]\n")
config_intlo1 = input("Wilt u interface lo1 configureren? [Ja/Nee] ")
if config_intlo1 != "Ja":
pass
else:
interface_ip = input("Welk IP adres moet " + "int lo1" + " krijgen? ")
interface_subnetmask = input("Welk subnetmasker moet " + "int lo1" + " krijgen? ")
interface_beschrijving = input("Welke beschrijving moet " + "int lo1" + " krijgen? ")
ssh.send("config terminal\n")
ssh.send("interface " + "lo1" + "\n")
ssh.send("ip address " + interface_ip + " " + interface_subnetmask + "\n")
ssh.send("description " + interface_beschrijving + "\n")
ssh.send("no shutdown\n")
ssh.send("end\n")
time.sleep(2)
# IPv6 configuratie
print("\n[IPv6 CONFIGURATIE]\n")
config_ipv6 = input("Wilt u IPv6 configureren? [Ja/Nee] ")
if config_ipv6 != "Ja":
pass
else:
ipv6_interface = input("Op welke interface wilt u IPv6 configureren? [gig 1 / gig 2 / gig 3 / lo1] Interface: ")
interface_ipv6 = input("Welk IPv6 adres moet " + ipv6_interface + " krijgen? Voorbeeld: 2001:1:2:3::1 ")
interface_ipv6_subnetmask = input("Welk subnetmasker moet " + ipv6_interface + " krijgen? Voorbeeld: /64 ")
ssh.send("config terminal\n")
ssh.send("interface " + ipv6_interface + "\n")
ssh.send("ipv6 address " + interface_ipv6 + interface_ipv6_subnetmask + "\n")
ssh.send("no shut\n")
ssh.send("end\n")
time.sleep(2)
time.sleep(1)
output = ssh.recv(65535)
print("\n[CONFIGURATIE VOLTOOID]")
conf_check = input("Wil je de huidige configuratie bekijken? [Ja/Nee] ")
if conf_check != "Ja":
pass
else:
print(output.decode("utf-8"))
# Configuratie mogelijkheid opslaan
save_conf = input("Wil je de configuratie opslaan? [Ja/Nee] ")
if save_conf != "Ja":
print("Wizard wordt gesloten...")
time.sleep(2)
ssh_client.close
else:
ssh.send("write\n")
time.sleep(5)
print("De configuratie is opgeslagen")
print("Programma wordt gesloten...")
time.sleep(2)
ssh_client.close