Πίσω στο blog

English  ·  Ελληνικά

Cisco / IOS  ·  Tutorial  ·  Ιουλιος 2026

Cisco IOS
Ασφαλεια Switch

Τα firewall φυλάνε την περίμετρο — αλλά οι περισσότερες πραγματικές επιθέσεις ξεκινούν από μια πρίζα στο λόμπι. Το port security, το DHCP snooping, το dynamic ARP inspection, και το BPDU guard μετατρέπουν χαζά access ports σε μια θωρακισμένη ακμή. Αυτή είναι η θωράκιση layer-2 που παραλείπουν τα περισσότερα δίκτυα.

Cisco IOS Port Security DHCP Snooping ARP Inspection BPDU Guard Hardening CCNA

ACCESS SWITCH snooping · DAI · port-security · BPDU guard uplink / DHCP TRUSTED PC γραφείου πρίζα λόμπι αίθουσα συσκέψεων UNTRUSTED Το όριο εμπιστοσύνης είναι το access port. Ό,τι είναι από κάτω μπορεί να λέει ψέματα για την ταυτότητά του — εκτός αν το switch το ελέγξει.

Το Layer 2 εμπιστεύεται εκ σχεδιασμού. Ένα switch μαθαίνει διευθύνσεις MAC από όποιον τις στέλνει, δίνει DHCP σε όποιον ρωτήσει, και πιστεύει κάθε απάντηση ARP που ακούει. Κάθε μία από αυτές τις ευγένειες είναι μια επίθεση: MAC flooding για να ξεχειλίσει τον πίνακα CAM και να αναγκάσει το switch να κάνει broadcast ιδιωτική κίνηση, ένας ανεπίσημος DHCP server για να γίνει το default gateway όλων, ARP spoofing για man-in-the-middle σε ένα subnet, και ένα ανεπίσημο switch για να απαγάγει την τοπολογία spanning-tree. Καμία από αυτές δεν χρειάζεται διαπιστευτήρια — μόνο μια πρίζα ethernet.

Η άμυνα είναι ένα σετ τεσσάρων χαρακτηριστικών που έρχονται σε κάθε Catalyst και είναι κλειστά by default: port security, DHCP snooping, dynamic ARP inspection, και BPDU guard. Το καθένα ρυθμίζεται σε λίγα λεπτά. Μαζί σημαίνουν ότι μια εχθρική συσκευή στην πρίζα του λόμπι σου παίρνει μια νεκρή θύρα αντί για το VLAN της λογιστικής. Εδώ συναντιούνται τα ευρήματα των pentest μας με τη δικτυακή μηχανική μας — αυτά τα τέσσερα είναι οι διορθώσεις που καταλήγουμε να προτείνουμε πιο συχνά.

Προαπαιτουμενα

01

Port Security — Ποιος Επιτρεπεται σε αυτη τη Θυρα

Περιόρισε κάθε access port σε γνωστό αριθμό διευθύνσεων MAC — συνήθως μία ή δύο — και αποφάσισε τι συμβαίνει όταν εμφανιστεί μία παραπάνω. Αυτό σκοτώνει το MAC flooding και τις πρόχειρες αλλαγές συσκευών με ένα χτύπημα.

IOS — port security με sticky learning
SW1(config)# interface range GigabitEthernet0/2 - 24
SW1(config-if-range)# switchport mode access       # απαιτείται — όχι σε trunk/dynamic
SW1(config-if-range)# switchport port-security
SW1(config-if-range)# switchport port-security maximum 2   # PC + τηλέφωνο IP
SW1(config-if-range)# switchport port-security mac-address sticky
SW1(config-if-range)# switchport port-security violation restrict
SW1(config-if-range)# end

# το "sticky" μαθαίνει τα πρώτα MAC που βλέπει και τα γράφει στο running-config —
# αποθήκευσε με "wr" και παραμένουν. Καμία χειροκίνητη πληκτρολόγηση MAC.

SW1# show port-security interface gi0/2
Port Security              : Enabled
Violation Mode             : Restrict
Maximum MAC Addresses      : 2
Sticky MAC Addresses       : 1
Security Violation Count   : 0

Τα Τρια Modes Παραβιασης

ModeΣε παραβιαση
protectΡίχνει σιωπηλά τα frames από άγνωστα MAC. Κανένα log, κανένας μετρητής — δεν θα μάθεις ποτέ ότι συνέβη. Απόφευγέ το.
restrictΡίχνει, αυξάνει τον μετρητή παραβιάσεων, στέλνει syslog/SNMP trap. Ορατότητα χωρίς διακοπή.
shutdown (default)Βάζει ολόκληρη τη θύρα σε err-disabled — τελείως down μέχρι να ανακάμψει. Μέγιστη ασφάλεια, μέγιστα τηλεφωνήματα στο help-desk.
⚠ Παγιδα — Οι Θυρες err-disabled Δεν Γιατρευονται Μονες τους

Με το default mode shutdown, μία παραβίαση σκοτώνει τη θύρα μέχρι κάποιος να τρέξει shutdown / no shutdown πάνω της. Ένα καθαρότερο pattern για πραγματικά γραφεία: χρησιμοποίησε restrict σε θύρες χρηστών, ή ενεργοποίησε αυτόματη ανάκαμψη ώστε μια παραβίαση να κοστίζει λεπτά αντί για επίσκεψη στο χώρο: errdisable recovery cause psecure-violation και errdisable recovery interval 300. Έλεγξε τι είναι νεκρό και γιατί με show interfaces status err-disabled.

02

DHCP Snooping — Χωρις Ανεπισημες Πυλες

Ένα laptop που τρέχει DHCP server — κακόβουλα, ή απλώς ένας βοηθητικός οικιακός router που έβαλε κάποιος — μπορεί να δίνει τον εαυτό του ως gateway σε όλους. Το DHCP snooping δηλώνει ποιες θύρες επιτρέπεται να απαντούν σε DHCP: το uplink. Οτιδήποτε άλλο μπορεί μόνο να ρωτάει.

IOS — DHCP snooping: εμπιστοσυνη μονο στο uplink
# 1. Άναψε το snooping global ΚΑΙ ανά VLAN
SW1(config)# ip dhcp snooping
SW1(config)# ip dhcp snooping vlan 10,20

# 2. Σήμανε το uplink (προς τον πραγματικό DHCP server) ως trusted
SW1(config)# interface GigabitEthernet0/1
SW1(config-if)# ip dhcp snooping trust
SW1(config-if)# exit

# 3. Βάλε rate-limit στα αιτήματα DHCP σε θύρες χρηστών (προστασία DoS)
SW1(config)# interface range GigabitEthernet0/2 - 24
SW1(config-if-range)# ip dhcp snooping limit rate 10
SW1(config-if-range)# end

# Τα OFFER του server που φτάνουν σε untrusted θύρες τώρα πέφτουν κρύα κρύα.
# Μπόνους: το switch χτίζει έναν binding table — ποιος έχει ποιο IP σε ποια θύρα:
SW1# show ip dhcp snooping binding
MacAddress          IpAddress        Lease(sec)  Type           VLAN  Interface
00:1A:2B:3C:4D:5E   192.168.10.21    43021       dhcp-snooping  10    Gi0/4
⚠ Παγιδα — Το Snooping Χωρις Trusted Θυρα Σπαει το DHCP για Ολους

Ενεργοποίησε το snooping και ξέχασε το ip dhcp snooping trust στο uplink, και το switch ρίχνει και τα OFFER του νόμιμου server — ολόκληρο το VLAN σταματά να παίρνει διευθύνσεις και μοιάζει με διακοπή DHCP. Η σειρά έχει σημασία: εμπιστεύσου πρώτα το uplink, μετά ενεργοποίησε το snooping στα VLAN. Επίσης: αν το DHCP relay σου βρίσκεται πέρα από άλλο switch, κάθε inter-switch link στη διαδρομή προς τον server πρέπει να είναι trusted.

03

Dynamic ARP Inspection — Χωρις Man-in-the-Middle

Το ARP spoofing — απαντώντας «ποιος έχει το IP της πύλης;» με το δικό σου MAC — είναι ακόμα το πιο εύκολο man-in-the-middle σε LAN. Το DAI ελέγχει κάθε πακέτο ARP σε untrusted θύρες έναντι του binding table του DHCP snooping και ρίχνει τα ψέματα.

IOS — DAI πανω στον πινακα snooping
# Απαιτεί DHCP snooping (ενότητα 02) — το DAI επικυρώνει έναντι των bindings του
SW1(config)# ip arp inspection vlan 10,20

# Εμπιστεύσου τις ίδιες θύρες inter-switch/uplink όπως το snooping
SW1(config)# interface GigabitEthernet0/1
SW1(config-if)# ip arp inspection trust
SW1(config-if)# end

# Δες το να δουλεύει: ένα πλαστό ARP σε untrusted θύρα πέφτει και καταγράφεται
SW1# show ip arp inspection statistics vlan 10
 Vlan      Forwarded        Dropped     DHCP Drops      ACL Drops
 ----      ---------        -------     ----------      ---------
   10           1420             12             12              0
⚠ Παγιδα — Πεφτουν και οι Hosts με Static IP

Το DAI εμπιστεύεται τον πίνακα DHCP snooping — οπότε ένας host με static IP δεν έχει εγγραφή binding, και κάθε ARP που στέλνει μοιάζει με spoof και πέφτει. Βγαίνει από το δίκτυο τη στιγμή που το DAI ανάβει. Για εκτυπωτές, servers, και κάμερες με στατικές διευθύνσεις, είτε πρόσθεσε static bindings (ip source binding <mac> vlan <id> <ip> interface <port>) είτε μετέφερέ τα σε DHCP reservations — τα reservations είναι πιο καθαρά και αυτο-τεκμηριωμένα.

04

BPDU Guard — Χωρις Ανεπισημα Switch

Τα access ports μιλάνε σε hosts, και οι hosts δεν μιλάνε spanning tree. Αν φτάσει ένα BPDU σε access port, κάποιος έβαλε ένα switch — τυχαίος βρόχος ή σκόπιμη απαγωγή τοπολογίας. Το BPDU guard σκοτώνει τη θύρα ακαριαία.

IOS — PortFast + BPDU guard σε ολα τα access ports
# Ανά interface:
SW1(config)# interface range GigabitEthernet0/2 - 24
SW1(config-if-range)# spanning-tree portfast       # παράλειψε listening/learning για hosts
SW1(config-if-range)# spanning-tree bpduguard enable
SW1(config-if-range)# exit

# Ή η global συντόμευση — κάθε θύρα PortFast παίρνει BPDU guard αυτόματα:
SW1(config)# spanning-tree portfast bpduguard default
SW1(config)# end

# Ένα BPDU που φτάνει στο Gi0/7 τώρα την κάνει err-disabled επιτόπου:
%SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on port Gi0/7 with BPDU Guard enabled. Disabling port.

Το PortFast και το BPDU guard είναι ένα φυσικό ζευγάρι: το PortFast κάνει τις θύρες hosts να σηκώνονται ακαριαία (όχι αναμονή 30 δευτερολέπτων spanning-tree για PC που πεινάνε για DHCP), και το BPDU guard είναι η ασφάλεια ότι κανείς δεν εκμεταλλεύεται μια θύρα PortFast για να εισάγει αλλαγές τοπολογίας. Το ίδιο το spanning tree — root bridges, και γιατί μια θύρα μπορεί να είναι blocking — είναι το επόμενο post σε αυτή τη σειρά.

05

Υγιεινη Αχρησιμοποιητων Θυρων

Η φθηνότερη θωράκιση που υπάρχει: μια θύρα που δεν χρησιμοποιεί κανείς πρέπει να κλείνει και να παρκάρει σε ένα νεκρό VLAN. Ένας επιτιθέμενος δεν μπορεί να διαπραγματευτεί με ένα interface που είναι administratively down.

IOS — παρκαρε καθε αχρησιμοποιητη θυρα
# Ένα VLAN που δεν δρομολογεί πουθενά και δεν επιτρέπεται σε κανένα trunk
SW1(config)# vlan 999
SW1(config-vlan)# name PARKING
SW1(config-vlan)# exit

# Βρες τι είναι αχρησιμοποίητο (notconnect), μετά παρκάρισέ το
SW1# show interfaces status | include notconnect
SW1(config)# interface range GigabitEthernet0/13 - 24
SW1(config-if-range)# switchport mode access
SW1(config-if-range)# switchport access vlan 999
SW1(config-if-range)# shutdown
SW1(config-if-range)# end
# Το να βάλεις μια θύρα σε λειτουργία αργότερα είναι σκόπιμη πράξη: όρισε το σωστό VLAN,
# κάνε no shutdown, τεκμηρίωσέ το. Ακριβώς όπως πρέπει.
💡 Απο την Πλευρα του Pentest — Γιατι Αυτη η Σειρα

Σε εσωτερικά engagement, το πρώτο πράγμα που δοκιμάζεται στην πρίζα είναι, με τη σειρά: παίρνουμε DHCP lease (χωρίς snooping;), μπορούμε να κάνουμε ARP-spoof την πύλη (χωρίς DAI;), δέχεται η θύρα δεύτερο MAC (χωρίς port security;), και δέχεται τα BPDU μας (χωρίς BPDU guard;). Τα τέσσερα χαρακτηριστικά αυτού του post κλείνουν ακριβώς αυτή τη λίστα, και το VLAN παρκαρίσματος αφαιρεί το δωράκι «βρήκα ζωντανή πρίζα σε άδειο γραφείο». Αυτή είναι η λιγότερο εντυπωσιακή δουλειά ασφάλειας που υπάρχει, και μία από τις πιο αποτελεσματικές.

06

Ελεγχος — Το Audit Ασφαλειας L2 Ασφαλες να το Τρεξεις

Έξι read-only εντολές ελέγχουν όλη τη στάση. Τρέξ' τες σε κάθε switch που κληρονομείς — τα κενά σου λένε τι λείπει.

ΕντοληΔειχνει
show port-securityΚατάσταση ασφάλειας ανά θύρα, μετρητές MAC, μετρητές παραβιάσεων.
show port-security addressΟ πίνακας μαθημένων/sticky MAC.
show ip dhcp snoopingΚατάσταση snooping ανά VLAN, trusted θύρες, rate limits.
show ip dhcp snooping bindingΟ πίνακας αλήθειας IP↔MAC↔θύρα — ιδανικός και για παρακολούθηση συσκευών.
show ip arp inspectionΚατάσταση DAI και στατιστικά drop ανά VLAN.
show interfaces status err-disabledΘύρες που σκότωσε ένα guard, και ποιο χαρακτηριστικό τις σκότωσε.
show spanning-tree summaryΕπιβεβαιώνει ότι τα default PortFast/BPDU-guard είναι όντως ανοιχτά.

07

MikroTik ↔ Cisco — Οι Ιδιες Αμυνες

Τα bridge του RouterOS ανέπτυξαν τις ίδιες προστασίες· τα ονόματα είναι απλώς λιγότερο τυποποιημένα. Αν τρέχεις μεικτά access layers, αυτή είναι η μετάφραση.

MikroTik / RouterOSCisco IOS
bridge port learn=no + static hostsPort security με static/sticky MAC
/interface bridge settings dhcp-snoopingip dhcp snooping (+ trusted=yes ↔ trust)
bridge port trusted=yesip dhcp snooping trust
ARP mode reply-only + DHCP add-arpDynamic ARP inspection (επικυρωμένο έναντι των leases)
bridge port bpdu-guard=yesspanning-tree bpduguard enable
Disabled port + isolated VLANshutdown + VLAN παρκαρίσματος 999

Συμπερασματα

  1. Το όριο εμπιστοσύνης είναι η πρίζα, όχι το firewall. Το MAC flooding, το ανεπίσημο DHCP, το ARP spoofing, και η απαγωγή STP ξεκινούν όλα από ένα κοινό access port και δεν χρειάζονται καθόλου διαπιστευτήρια. Υπερασπίσου τη θύρα.
  2. Port security με sticky MAC, violation restrict. Ένα ή δύο MAC ανά θύρα χρήστη, μαθημένα αυτόματα, παραβιάσεις καταγεγραμμένες χωρίς σκληρή διακοπή. Αποθήκευσε το config αλλιώς τα sticky MAC χάνονται στο reboot.
  3. DHCP snooping: εμπιστεύσου πρώτα το uplink, μετά ενεργοποίησε. Η λάθος σειρά ρίχνει νόμιμα OFFER και ρίχνει το VLAN. Ο binding table που χτίζει είναι δωρεάν απογραφή περιουσιακών στοιχείων.
  4. Το DAI στηρίζεται στο snooping — σχεδίασε για static hosts. Οτιδήποτε χωρίς DHCP lease χρειάζεται static binding ή reservation, αλλιώς βγαίνει από το δίκτυο τη μέρα που ανάβει το DAI.
  5. Το PortFast και το BPDU guard ταξιδεύουν μαζί. Γρήγορες θύρες hosts, και ακαριαίος θάνατος για κάθε θύρα που αρχίζει να μιλάει switch. Το spanning-tree portfast bpduguard default καλύπτει και μελλοντικές θύρες.
  6. Κλείσε και παρκάρισε ό,τι είναι αχρησιμοποίητο. VLAN 999, shutdown, τέλος. Η επανενεργοποίηση γίνεται σκόπιμη, τεκμηριωμένη πράξη.
  7. Το err-disabled είναι χαρακτηριστικό, όχι σφάλμα. Μια νεκρή θύρα είναι ένα guard που πυροδοτήθηκε. Το show interfaces status err-disabled σου λέει ποιο· ρύθμισε errdisable recovery όπου μια αυτο-θεραπεία 5 λεπτών νικάει μια επίσκεψη στο χώρο.

Ειναι το access layer σου πραγματικα θωρακισμενο;

Οι έλεγχοι Layer-2 που τρέχω ως επιτιθέμενος σε ένα pentest είναι οι ίδιοι που εφαρμόζω ως άμυνες σε ένα audit θωράκισης — DHCP snooping, port security, BPDU guard, όλα — απλώς στραμμένα προς την άλλη κατεύθυνση.

Κλεισε μια Discovery Call →