From 1b390f40feb841fa719ce01c7c5189bdbc24c06c Mon Sep 17 00:00:00 2001 From: Ventilaar Date: Mon, 10 Jan 2022 11:28:46 +0100 Subject: [PATCH] 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 --- eindopdracht/virtuele omgeving/basisconf.py | 217 ++++++++++++++++++++ 1 file changed, 217 insertions(+) create mode 100644 eindopdracht/virtuele omgeving/basisconf.py diff --git a/eindopdracht/virtuele omgeving/basisconf.py b/eindopdracht/virtuele omgeving/basisconf.py new file mode 100644 index 0000000..0b61478 --- /dev/null +++ b/eindopdracht/virtuele omgeving/basisconf.py @@ -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 \ No newline at end of file