20TD02Y_CCNA_20TD02U - itnett/FTD02N GitHub Wiki

For å dekke temaet "Programmering" i din IT-drift og sikkerhet utdanning, kan vi lage en lab som dekker både teoretiske konsepter og praktiske ferdigheter. Her er en detaljert labbeskrivelse med bruk av Cisco-utstyret ditt for å simulere et nettverksmiljø, sammen med oppgaver som dekker alle læringsutbyttene.

Lab: Programmering i et Sikkerhetsmiljø

Mål

Denne labben har som mål å gi studentene praktisk erfaring med grunnleggende programmeringsteknikker, utvikling av brukergrensesnitt, kommunikasjon mellom programgrensesnitt (API), og grunnleggende sikkerhetspraksis i applikasjonsutvikling.

Utstyr og Verktøy

  • Cisco-rutere og -svitsjer for nettverksoppsett og overvåking
  • Servere/VM-er for å kjøre utviklingsmiljøer
  • Utviklingsverktøy: Python, Visual Studio Code, Postman, Docker
  • Nettverksovervåkingsverktøy: Wireshark, Cisco Prime
  • Simulerte IoT-enheter ved bruk av Cisco-sensorer og IoTSimulator

Oppgaver og Læringsutbytte

1. Programstrukturer og Datastrukturer

Oppgave:

  • Lag et Python-program som implementerer grunnleggende datastrukturer som lister, tupler, sett og ordbøker.
  • Bruk kontrollstrukturer (if-else, loops) for å manipulere datastrukturene.

Læringsutbytte:

  • Har kunnskap om grunnleggende programmering og programmeringsverktøy.
  • Kan skrive kode med variabeldeklarasjoner, kontrollstrukturer, løkker og funksjoner.

Kodeeksempel: Se skriptet her

2. Funksjoner og Metoder

Oppgave:

  • Skriv et Python-program som inneholder flere funksjoner, inkludert en funksjon for å legge til to tall, en for å trekke fra, en for å multiplisere, og en for å dele.

Læringsutbytte:

  • Har kunnskap om grunnleggende programmeringsteknikker som variabeldeklarasjoner, kontrollstrukturer, løkker og funksjoner.

Kodeeksempel: Se skriptet her

3. Objektorientert Programmering (OOP)

Oppgave:

  • Lag en enkel Python-klasse for en "Bruker" som har attributter som navn, e-post, og passord. Implementer metoder for å endre passord og vise brukerinformasjon.

Læringsutbytte:

  • Kan skrive objektorientert kode og forstå konseptene med klasser og objekter.

Kodeeksempel: Se skriptet her

4. API og GUI

Oppgave:

  • Bruk Flask for å lage et enkelt RESTful API som kan legge til, hente, oppdatere og slette brukere.
  • Lag et enkelt GUI med Tkinter som kan kommunisere med Flask-API-et for å vise og oppdatere brukerinformasjon.

Læringsutbytte:

  • Har kunnskap om utvikling av brukergrensesnitt og kommunikasjon mellom ulike programgrensesnitt.
  • Kan utvikle et brukergrensesnitt ved hjelp av kode og utviklingsverktøy.

Kodeeksempel for Flask API: Se skriptet her

5. Sikkerhet i Programmering

Oppgave:

  • Implementer grunnleggende sikkerhetsmekanismer som input-validering og unntaksbehandling i et Python-program.
  • Bruk Cisco-utstyret til å simulere nettverksangrep og vis hvordan programmet håndterer disse situasjonene.

Læringsutbytte:

  • Har kunnskap om grunnleggende sikkerhet relatert til programmering.
  • Kan drøfte grunnleggende sikkerhet til en applikasjon.

Kodeeksempel: Se skriptet her

Implementering av Cisco-utstyr

  1. Simulering av Nettverksangrep:

    • Bruk Cisco-enhetene til å generere nettverkstrafikk og simulere nettverksangrep som DoS (Denial of Service) for å teste applikasjonens motstand mot slike angrep.
  2. Nettverksovervåking:

    • Implementer overvåking ved hjelp av Cisco Prime eller Wireshark for å overvåke nettverkstrafikken generert av applikasjonene og IoT-sensorene.
  3. Integrasjon med IoTSimulator:

    • Bruk IoTSimulator sammen med Cisco-utstyret for å simulere IoT-enheter som kommuniserer med Flask-API-et. Dette kan hjelpe med å teste skalerbarhet og sikkerhet.

Ved å følge denne labben vil studentene få en helhetlig forståelse av programmering, nettverksadministrasjon, og sikkerhet, samt hvordan man kan bruke Cisco-utstyr for å simulere og teste IoT-miljøer.

For å utnytte dine Cisco-enheter programmatiskt, kan du bruke ulike verktøy og API-er som Cisco tilbyr. GitHub-repositoriet "CiscoDevNet/coding-skills-sample-code" gir eksempler på hvordan man kan bruke programmatiske tilnærminger for å styre Cisco-enheter.

1. Programmere funksjoner på Cisco-enheter

For å programmere funksjoner på Cisco-enheter, kan du bruke REST API-er, Python-skript, og andre verktøy som er tilgjengelige gjennom Cisco DevNet.

Eksempel på bruk av REST API med Python

Dette eksemplet viser hvordan man kan bruke Python til å kommunisere med en Cisco-enhet ved hjelp av REST API.

Se skriptet her

2. Utnytte avanserte funksjoner i Cisco-enheter

Cisco-enheter har mange avanserte funksjoner som kan utnyttes programmatiskt, som QoS (Quality of Service), sikkerhetspolicyer, og nettverksovervåking. Her er noen eksempler:

QoS-konfigurasjon

Konfigurere QoS på en Cisco-enhet ved hjelp av Python og REST API.

Se skriptet her

3. Automatisering med Cisco DNA Center

Cisco DNA Center gir kraftige API-er for automatisering av nettverksadministrasjon.

Eksempel på bruk av DNA Center API

Se skriptet her

4. Bruk av Cisco Meraki API

Cisco Meraki gir også et kraftig sett med API-er for administrasjon av nettverk.

Eksempel på bruk av Meraki API for å hente nettverksenheter

Se skriptet her

Oppsett av IoT-simulator ved bruk av Kubernetes og Docker

For å simulere IoT-enheter ved hjelp av Cisco-utstyr og Kubernetes, kan du bruke eksempelet fra "IoTSimulator"-repositoriet som du nevnte.

Steg for å sette opp IoT-simulator

  1. Last ned IoTHubCredentials.json:

    wget https://raw.githubusercontent.com/VladimirAkopyan/IoTSimulator/master/IoTHubCredentials.json
  2. Opprett Kubernetes secret:

    kubectl create secret generic sim-sensor-credentials --from-file=IoTHubCredentials.json
  3. Opprett Kubernetes ressursene:

    kubectl create -f https://raw.githubusercontent.com/VladimirAkopyan/IoTSimulator/master/Kubernetes.yaml
  4. Verifiser oppsettet:

    kubectl get pods
    kubectl logs <pod_name>

Med disse verktøyene og API-ene kan du programmatiskt administrere og konfigurere dine Cisco-enheter, samt simulere IoT-miljøer for å teste og overvåke nettverksinfrastruktur og sikkerhet.

⚠️ **GitHub.com Fallback** ⚠️