ventilaar
/
sdn-cursus
Archived
1
Fork 0
This repository has been archived on 2022-01-18. You can view files and clone it, but cannot push or open issues or pull requests.
sdn-cursus/eindopdracht/virtuele omgeving/basisconf.py

218 lines
6.3 KiB
Python

# ruben
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 + " privilege " + "15" + " 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 loopback0 configuratie
print("\n[INTERFACE lo0 CONFIGURATIE]\n")
config_intlo0 = input("Wilt u interface lo0 configureren? [Ja/Nee] ")
if config_intlo0 != "Ja":
pass
else:
interface_ip = input("Welk IP adres moet " + "int lo0" + " krijgen? ")
interface_subnetmask = input("Welk subnetmasker moet " + "int lo0" + " krijgen? ")
interface_beschrijving = input("Welke beschrijving moet " + "int lo0" + " krijgen? ")
ssh.send("config terminal\n")
ssh.send("interface " + "lo0" + "\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