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

Like this content?

If you found this article interesting or useful, consider supporting my work by buying me a coffee. It helps me continue creating valuable security content!

Buy me a coffee