218 lines
6.3 KiB
Python
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 |