Configuratie van een nieuwe Cisco Switch
Omdat het configureren van een nieuwe switch een taak is die geregeld voorkomt onder netwerkbeheerders dacht ik, laten we eens een demo configuratie uitschrijven. En dat doen we uiteraard niet via GUI interfaces zoals de CNA (Cisco Network Assistant), ASDM (Adaptive Security Device Manager) of SDM (Cisco Security Device Manager) maar gewoon via de command line. Waarom? Omdat dat altijd werkt natuurlijk. Want vroeger was alles beter 🙂
Maar om een basisconfiguratie te maken moeten we natuurlijk wel weten wat we willen. We stellen de volgende systeemeisen vast:
- 24 poorts switch (let op, mijn configuratie is 48 poorten dus negeer de overige 24 poorten als deze per ongeluk nog ergens vermeld worden)
- IOS updaten
- Oude configuratie verwijderen
- Klok en Hostname aanpassen
- Banner instellen en Enable Wachtwoord instellen
- Management VLAN maken
- SSH activeren
- Poort 2 t/m 11 in VLAN 101
- Poort 12 t/m 22 in VLAN 102
- Poort 23 en 24 als trunk poort configureren
Even vooropgesteld, deze voorbeeldconfiguratie is niet op elke Cisco switch mogelijk en in sommige gevallen is de commando opbouw net iets anders. Echter zullen de commando’s in onderstaande voorbeelden in de meeste gevallen wel werken.
Off the record. Alvorens je kunt verbinden met een Cisco switch moet de HyperTerminal (zoals Putty) gestart worden met de volgende settings:
Speed 9600 bits per second
8 databits
0 parity bits
1 stop bit
No Flow Control
IOS Updaten
Om je IOS versie te updaten moet je natuurlijk wel de nieuwste IOS versie kunnen downloaden. Uiteraard gaan we ervan uit dat je dat dus kunt (via je Cisco portal pagina). Nadat je het nieuwste OS gedownload hebt kun je dit bestand aanbieden via TFTP (voor Windows gebruik ik meestal de TFTPD32 applicatie). Zorg er wel voor dat de switch de TFTP server kan benaderen (zelfde ip range e.d.). Reboot de router als deze al geruime tijd actief is zodat de system resources zo optimaal mogelijk zijn.
Kopieer de huidige IOS image naar je TFTP server:
copy flash: tftp: Source filename []? c2600-adventerprisek9-mz.122-12.bin Address or name of remote host []? 10.10.10.2 Address or name of remote host []?10.10.10.2 Destination filename [c2600-adventerprisek9-mz.122-12.bin]? |
Kopieer nu de nieuwe IOS image naar de flash:
copy tftp: flash: Address or name of remote host []? 10.10.10.2 Source filename []?c2600-adventerprisek9-mz.124-12.bin Destination filename [c2600-adventerprisek9-mz.124-12.bin]? Erase flash: before copying? [confirm]: y |
Je kunt bovenstaande commando ook in 1 commandostring combineren:
copy tftp://10.10.10.2/ c2600-adventerprisek9-mz.124-12.bin flash: |
Als de upload succesvol is moeten we de MD5 checksum controleren om te weten of alles in orde is:
verify /md5 flash:c2600-adventerprisek9-mz.124-12.bin |
Nu kunnen we de oude IOS image in de flash verwijderen om te voorkomen dat deze primair geboot gaat worden of je kunt de nieuwe IOS image als bootable image selecteren:
#DELETE delete /f /r flash: c2600-adventerprisek9-mz.122-12.bin #DEFINE NEW boot system flash:c2600-adventerprisek9-mz.124-12.bin |
Reboot de switch en controleer of de nieuwe versie erop staat:
show ver |
Oude configuratie verwijderen
Laten we nu de oude configuratie verwijderen zodat we weer met een schone lei kunnen beginnen. Via de CLI ziet dit er als volgt uit:
enable write erase reload |
Om hetzelfde te doen via de hardware zorg je ervoor dat je de reset button ingedrukt houd (terwijl de switch uit staat). Zet de switch aan (met de reset button nog steeds ingedrukt). Laat de reset button na 10 seconde los en wacht 5 tot 10 minuten tot de router gereset en gereboot is (wanneer de LED’s weer continue branden of met gelijke interval knipperen).
Klok en Hostname aanpassen
Nu we een up-to-date switch hebben met een blanco configuratie kunnen we de default settings in de switch plaatsen waaronder de juiste klok settings en de hostname.
Laten we eerst eens in de “enable” mode komen waar we wat algemene zaken kunnen instellen en configureren. Dit is simpel:
enable |
Vanuit hier kunnen we de klok instellen. Bijvoorbeeld:
clock set 20:30:00 20 Apr 2018 |
Om de hostname aan te kunnen passen moeten we de configuratiemodus starten:
configure terminal |
En nu kunnen we de hostname netjes maken:
hostname CoreSwitch01 |
Banner instellen en Enable Wachtwoord instellen
Iedere keer als we inloggen op de switch krijgen we de banner te zien. Hier kun je dus wat algemene informatie in kwijt. De banner kun je als volgt configureren:
enable
configure terminal
banner motd x |
De “x” aan het einde van het commando is het “escape” karakter. Wanneer dat karakter gebruikt wordt zal de banner creatie beëindigd worden. Dat karakter mag dus niet voorkomen in de werkelijke banner.
Nu gaan we de banner intypen:
--------------------------------------------------------------------------------- CoreSwitch01 Bedrijfsnaam Tech Support: 000-0000000 --------------------------------------------------------------------------------- LET OP: Maak altijd een back-up van de configuratie voordat je begint met de werkzaamheden en sla de configuratie altijd op na het maken van een change en noteer de change in het logboek. Gebruik SHOW commandos om de configuratie te contoleren alvorens je deze opslaat. --------------------------------------------------------------------------------- x |
Standaard zit er geen wachtwoord op de switch en kun je dus zonder wachtwoord het “enable” commando invoeren om vanuit User EXEC mode naar Privileged EXEC mode te gaan. Dit is onveilig. Laten we een enable wachtwoord instellen welke MD5 gehashed is. Dit is veiliger dan het default plain-tekst wachtwoord welke zichtbaar is in de configuratie (show running-config):
enable configure terminal enable secret ditismijngeheimewachtwoord |
Management VLAN maken
Het management VLAN, ofwel het netwerk vanuit waar je de switch kunt beheren en configureren is default VLAN1. Echter zijn ook alle poorten lid van VLAN1. Dit betekend dat by default elk aangesloten apparaat de switch kan beheren. Dit willen we niet. Laten we hier een separaat VLAN voor aanmaken, deze van buitenaf beschikbaar maken en beschikbaar maken v.a. poort 1. Het management VLAN word VLAN 100.
configure terminal interface vlan 100 ip address 10.10.100.1 255.255.255.0 description Management no shutdown exit copy running-config startup-config |
Hierboven gaan we naar het configuratiegedeelte van de switch, selecteren we VLAN 100 welke aangemaakt wordt als deze nog niet bestaat en plaatsen we een IP adres en een x24 netmask op het VLAN. Vervolgens configureren we het VLAN als up (no shutdown) en beëindigen we de configuratie. Tenslotte slaan we de configuratie op. Dit is aan te raden om na iedere belangrijke (en geteste) configuratieaanpassing te doen. Ik zal dit commando niet meer terug laten komen in deze post maar dat wil niet zeggen dat je de configuratie tussendoor niet op moet slaan!
Nu gaan we VLAN 100 voorzien van een naam. Dit is niet verplicht maar zeker aan te raden om te doen. Op deze manier wordt je configuratie overzichtelijker en duidelijker:
vlan 100 name Management exit |
En nu gaan we poort 1 configureren als access-poort in VLAN 100.
configure terminal interface FastEthernet 0/1 switchport mode access switchport access vlan 100 no shutdown |
Om de switch benaderbaar te maken van buitenaf en om pakketjes te kunnen routeren naar buiten voorzien we de switch van de default gateway:
configure terminal ip default-gateway 10.10.100.254 exit |
SSH activeren
We hebben op dit moment een switch welke voorzien is van een default configuratie. De klok staat goed, er is een banner en een enable wachtwoord. Ook hebben we een management VLAN en hebben we de gateway ingesteld. We kunnen de switch nu configureren v.a. de console en poort 1 maar we kunnen nog steeds niet de switch remote configureren. We hebben namelijk nog geen techniek geactiveerd. We zouden de switch op verschillende manieren kunnen configureren. Bijvoorbeeld via Telnet of SSH. Omdat bij Telnet alle commando’s en informatie versleuteld over-en-weer verzonden worden kiezen we ervoor om SSH te activeren. Na de SSH activatie kunnen we de switch op afstand beheren.
Om te starten met de SSH configuratie moet de switch voorzien zijn van een hostname en een domainname. De hostname hebben we al dus nu nog de domainname instellen:
enable configure terminal ip domain-name corenetwork.nl |
Nu gaan we de RSA sleutels configureren welke door SSH gebruikt worden. We kunnen een sleutelformaat kiezen tussen de 360 en de 2048 bits. Hoe groter het sleutelformaat des te veiliger de sleutel maar des te langer de versleuteling duurt. Wij kiezen voor 2048.
enable configure terminal crypto key generate rsa 2048 |
Wat we ook nog niet hebben gedaan, maar wel nodig hebben voor de SSH configuratie is het plaatsen van een gebruikersnaam en wachtwoord op de console poort. Laten we eerst een lokale gebruiker en wachtwoord aanmaken en de gebruiker volledige rechten (privilege 15) op de switch geven:
enable
configure terminal
username ditbenik password mijneigenwachtwoord |
Nu activeren we de “password-encryption” service om het wachtwoord te versleutelen in de configuratie:
service password-encryption |
Nu kunnen we de virtuele poorten (VTY lines) gaan configureren. Eerst moeten we ervoor zorgen dat er om een gebruikersnaam en wachtwoord gevraagd wordt. Uiteraard kunnen we gebruik maken van een RADIUS of andere AAA server maar in dit geval kiezen we ervoor om de zojuist aangemaakte local user(s) te gebruiken voor authenticatie op de lijnen:
enable configure terminal line console 0 logging synchronous login local |
Aangezien we 5 virtuele poorten hebben waar we SSH op willen activeren doen we dit als volgt:
enable configure terminal line vty 0 15 transport input ssh login local exit |
Om te controleren of SSH geactiveerd is type je:
sh ip ssh |
Waarschijnlijk zie je nu SSH Versie 1.99 staat wat betekend dat SSH V1 en V2 ingeschakeld zijn. Vanuit veiligheidsoverwegingen is het beter SSH V1 uit te schakelen:
ip ssh version 2 |
Poort 2 t/m 11 in VLAN 101
Nu we SSH geactiveerd hebben kunnen we de router remote via SSH beheren. We hebben nu dus voldoende mogelijkheden om de configuratie helemaal af te maken. Allereerst gaan we poort 2 t/m 11 configureren op VLAN 101. We volgen hierbij dezelfde stappen als tijdens het aanmaken van het management VLAN:
Eerst moeten we VLAN 101 aanmaken:
enable configure terminal interface vlan 101 description Accounting exit |
Laten we het VLAN een naam geven:
enable vlan 101 name Accounting exit |
Nu gaan we de poorten toegang geven tot het VLAN:
interface range FastEthernet 0/2 - 11 switchport mode access switchport access vlan 101 |
Poort 12 t/m 22 in VLAN 102
Om de overige poorten nu lid te maken van VLAN 102 voeren we eenzelfde proces uit:
Eerst moeten we VLAN 102 aanmaken:
enable configure terminal interface vlan 102 description Finance exit |
Laten we het VLAN een naam geven:
enable vlan 102 name Finance exit |
Nu gaan we de poorten toegang geven tot het VLAN:
interface range FastEthernet 0/12 - 22 switchport mode access switchport access vlan 102 |
Poort 23 en 24 als trunk poort configureren
Om de VLAN’s tussen verschillende switches te kunnen routeren moeten we trunk poorten maken. In dit geval kiezen we voor 2 trunk poorten welke we ook op de andere switch aan moeten maken. Wanneer je 2 switches met elkaar verbind middels trunk poorten is het belangrijk dat de VLAN’s overeenkomen. Let er dus ook op dat de native VLAN’s met elkaar overeenkomen.
We maken de trunk poorten als volgt aan:
enable configure terminal interface range FastEthernet 0/23 - 24 switchport trunk encapsulation dot1q #Dit commando alleen op (oudere) devices die meerdere protocollen ondersteunen switchport mode trunk switchport trunk allowed vlan 101,102 |
Door het toevoegen van het “switchport trunk allowed vlan 101,102” commando zorgen we ervoor dat het management VLAN (100) niet gerouteerd wordt tussen de switches.
Cisco Firmware Upgrade Procedure
Eerder in deze post heb je gezien hoe we nieuwe IOS software op de switch laden. Hieronder wil ik graag nog even de volledige procedure beschrijven voor het upgraden van IOS software op de switch zoals ik deze normaliter uitvoer bij een switch die reeds in bedrijf is.
1. Verifieer IOS
Verifieer de huidige IOS versie op alle flash kaarten:
enable dir flash1: dir flash2: |
Schrijf beide IOS versies op (deze zullen waarschijnlijk hetzelfde zijn)
Bekijk op welke IOS versie je momenteel draait:
show ver |
Laten we zeggen dat momenteel het IOS geladen is van flash1.
2. Download nieuwste IOS
Download de nieuwste IOS versie en kopieer bijbehorende MD5 hash.
3. Maak een back-up van je huidige IOS*
Kopieer het huidige IOS naar je TFTP server (optioneel). Laten we zeggen dat dit 10.10.10.2 is:
copy flash1: tftp: Source filename []? c3750-ipbase-mz.122.35-35.SE5 Address or name of remote host []? 10.10.10.2 Address or name of remote host []?10.10.10.2 Destination filename [c2600-adventerprisek9-mz.122-12.bin]? |
4. Maak een back-up van je huidige config*
Kopieer de huidige config TFTP server (optioneel):
enable
copy running-config tftp |
5. Reboot Switch*
Reboot switch. Dit is optioneel maar een reboot zal de switch meer geheugen geven welke deze tijdens de upgrade nodig kan hebben.
enable
reload |
6. Verwijder huidige IOS
Verwijder oude IOS software van de flash:
enable delete /f /r flash1:c3750-ipbase-mz.122.35-35.SE5 delete /f /r flash2:c3750-ipbase-mz.122-35.SE5 |
Controleer of de flash leeg is:
enable dir flash1: dir flash2: |
7. Kopieer nieuwe IOS
Kopieer nieuwe IOS image naar de flash via je TFTP server.
enable copy tftp: flash1: Address or name of remote host []? 10.10.10.2 Source filename []?c2600-adventerprisek9-mz.124-12.bin Destination filename [c2600-adventerprisek9-mz.124-12.bin]? Erase flash: before copying? [confirm]: y |
Controleer of het bestand op de kaart staat:
enable dir flash1: |
Controleer de MD5 checksum:
enable verify /md5 flash1:c2600-adventerprisek9-mz.124-12.bin |
Doe bovenstaande procedure ook voor de 2e switch in de stack. Dus kopieer de IOS versie (naar flash2) en doe vervolgens een MD5 hash controle.
8. Bewerk boot path-list (bootlocatie)
Nu gaan we de Cisco switch vertellen van welke image hij moet booten:
enable configure terminal boot system flash:c2600-adventerprisek9-mz.124-12.bin |
9. Sla config op en reboot
Sla de configuratie op en reboot:
enable
configure terminal
copy running-config startup-config
reload |
10. Doe versiecontrole en controleer
Controleer na de reboot of de versie klopt:
enable
show ver |
Als de versie correct is controleer je steekproefsgewijs diverse apparaten welke verbonden zijn met de switch. Als deze goed functioneren kun je eventueel de volgende switch upgraden.
Conclusie
Dit is wat mij betreft de basisconfiguratie voor deze switch. We hebben een functionele switch met een aantal VLAN’s, trunk poorten en SSH toegang. Is deze switch secure? Nee uiteraard niet. We kunnen aan de security kant nog veel zaken verbeteren. Deze hele configuratie zullen we dan ook als basis gebruiken in een volgende post waarbij we een aantal security aspecten aanhalen en verbeteren. Door in ieder geval gebruik te maken van de nieuwste firmware, SSH V2 i.p.v. telnet en door de wachtwoorden te hashen / versleutelen voldoe je al aan de eerste basis voorwaarden van beveiliging. Nu alles functioneel is kunnen we dit naar een hoger niveau gaan tillen!
De volledige configuratie (copy running-config tftp) ziet er nu als volgt uit:
! version 12.2 no service pad service timestamps debug uptime service timestamps log uptime service password-encryption ! hostname CoreSwitch01 ! boot-start-marker boot-end-marker ! enable secret 5 $1$.JfZ$iZt4J8LhGgrRYEiP6OAcM. ! username ditbenik password 7 104300130B121B0C090A3D2A272027222D1C1512 ! ! no aaa new-model system mtu routing 1500 ! ! ip domain-name corenetwork.nl ! ! ! ! ! ! spanning-tree mode pvst spanning-tree extend system-id ! vlan internal allocation policy ascending ! ip ssh version 2 ! ! interface FastEthernet0/1 switchport access vlan 100 switchport mode access ! interface FastEthernet0/2 switchport access vlan 101 switchport mode access ! interface FastEthernet0/3 switchport access vlan 101 switchport mode access ! interface FastEthernet0/4 switchport access vlan 101 switchport mode access ! interface FastEthernet0/5 switchport access vlan 101 switchport mode access ! interface FastEthernet0/6 switchport access vlan 101 switchport mode access ! interface FastEthernet0/7 switchport access vlan 101 switchport mode access ! interface FastEthernet0/8 switchport access vlan 101 switchport mode access ! interface FastEthernet0/9 switchport access vlan 101 switchport mode access ! interface FastEthernet0/10 switchport access vlan 101 switchport mode access ! interface FastEthernet0/11 switchport access vlan 101 switchport mode access ! interface FastEthernet0/12 switchport access vlan 102 switchport mode access ! interface FastEthernet0/13 switchport access vlan 102 switchport mode access ! interface FastEthernet0/14 switchport access vlan 102 switchport mode access ! interface FastEthernet0/15 switchport access vlan 102 switchport mode access ! interface FastEthernet0/16 switchport access vlan 102 switchport mode access ! interface FastEthernet0/17 switchport access vlan 102 switchport mode access ! interface FastEthernet0/18 switchport access vlan 102 switchport mode access ! interface FastEthernet0/19 switchport access vlan 102 switchport mode access ! interface FastEthernet0/20 switchport access vlan 102 switchport mode access ! interface FastEthernet0/21 switchport access vlan 102 switchport mode access ! interface FastEthernet0/22 switchport access vlan 102 switchport mode access ! interface FastEthernet0/23 switchport trunk allowed vlan 101,102 switchport mode trunk ! interface FastEthernet0/24 switchport trunk allowed vlan 101,102 switchport mode trunk ! interface GigabitEthernet0/1 ! interface GigabitEthernet0/2 ! interface Vlan1 no ip address no ip route-cache ! interface Vlan100 description Management ip address 10.10.100.1 255.255.255.0 no ip route-cache ! interface Vlan101 description Accounting no ip address ! interface Vlan102 description Finance no ip address ! ip default-gateway 10.10.100.254 ip http server ip http secure-server vstack banner motd --------------------------------------------------------------------------------- CoreSwitch01 Bedrijfsnaam Tech Support: 000-0000000 --------------------------------------------------------------------------------- LET OP: Maak altijd een back-up van de configuratie voordat je begint met de werkzaamheden en sla de configuratie altijd op na het maken van een change en noteer de change in het logboek. Gebruik SHOW commandos om de configuratie te contoleren alvorens je deze opslaat. --------------------------------------------------------------------------------- ! line con 0 logging synchronous login local line vty 0 4 login local transport input ssh line vty 5 15 login local transport input ssh ! end |