Loading...

Bài 78: Port Security Trên Switch — Chống Tấn Công MAC Flooding

💡 Liên hệ thực tế

Bãi giữ xe của tòa nhà VNExperts chỉ có 200 chỗ. Nếu bảo vệ cho phép bất kỳ ai cũng dắt xe vào mà không giới hạn số lượng, chỉ cần vài người cố tình dắt hàng trăm chiếc xe rác vào choán hết chỗ, xe của nhân viên thật sẽ không còn chỗ đậu — bãi xe "sập" vì quá tải.

Đó chính xác là cách 1 kẻ tấn công có thể làm "sập" khả năng chuyển mạch của switch bằng kỹ thuật MAC Flooding: gửi hàng loạt frame với địa chỉ MAC nguồn giả mạo, khác nhau liên tục, nhằm làm đầy MAC Address Table (đã học ở Bài 6) — vốn có dung lượng giới hạn. Khi bảng đầy, switch không còn chỗ học thêm MAC hợp lệ, buộc phải xử lý mọi frame chưa xác định như broadcast — gửi ra toàn bộ các cổng còn lại. Lúc này switch hoạt động gần giống 1 Hub, và kẻ tấn công cắm 1 cáp vào cổng bất kỳ có thể nghe lén toàn bộ traffic của VLAN đó (vi phạm Confidentiality trong CIA Triad — Bài 74).

Port Security chính là "bảo vệ giữ xe" ở cấp độ cổng switch: giới hạn đúng số lượng MAC address được phép học trên mỗi cổng, và tự động phản ứng (cảnh báo hoặc khóa cổng) ngay khi phát hiện vượt ngưỡng.


📘 Kiến thức cốt lõi

1. Cơ chế hoạt động của Port Security

Port Security giới hạn số lượng địa chỉ MAC hợp lệ được phép giao tiếp qua 1 cổng switch, dựa trên 3 loại MAC address:

Loại MAC AddressCách hoạt động
Static Quản trị viên cấu hình thủ công từng địa chỉ MAC bằng lệnh switchport port-security mac-address <mac>. MAC luôn được giữ lại sau khi khởi động lại vì đã nằm sẵn trong cấu hình
Dynamic Switch tự động học địa chỉ MAC từ các frame đi vào cổng. Các địa chỉ này chỉ tồn tại trong bộ nhớ RAM, không được ghi vào cấu hình nên sẽ mất sau khi switch khởi động lại
Sticky Switch tự động học địa chỉ MAC giống chế độ Dynamic, nhưng sẽ tự động thêm các MAC đã học vào running-config dưới dạng lệnh cấu hình. Nếu quản trị viên lưu cấu hình bằng copy running-config startup-config, các địa chỉ MAC này sẽ vẫn được giữ lại sau khi khởi động lại

💡 Ghi nhớ: Sticky là chế độ được sử dụng phổ biến nhất trong doanh nghiệp vì vừa tự động học địa chỉ MAC như Dynamic, vừa có thể lưu lại cấu hình để duy trì danh sách MAC sau khi thiết bị khởi động lại — giúp giảm công sức quản trị nhưng vẫn đảm bảo tính bảo mật.

So sánh nhanh:

Tiêu chíStaticDynamicSticky
Tự động học MAC
Cần nhập MAC thủ công
Lưu trong running-config
Giữ sau khi reload (đã lưu cấu hình)
Mức độ phổ biến trong thực tế Trung bình Ít dùng ⭐ Phổ biến nhất

⚠️ Lưu ý quan trọng: nhiều người mới học thường hiểu nhầm rằng Sticky luôn giữ được MAC sau khi khởi động lại. Thực tế, switch chỉ ghi MAC vào running-config — nếu không lưu cấu hình bằng copy running-config startup-config (hoặc write memory), các địa chỉ MAC Sticky vẫn sẽ mất sau khi switch reload, y hệt như Dynamic.

2. Ba chế độ xử lý khi có Violation (vi phạm)

Khi số lượng MAC vượt quá maximum cho phép, hoặc có MAC lạ gửi frame vào cổng đã đạt giới hạn, switch xử lý theo 1 trong 3 chế độ:

Chế độDrop FrameGhi Log/SNMP TrapErr-DisabledKhi nào dùng
Protect Chỉ cần chặn MAC lạ, không cần ghi nhận sự kiện
Restrict Phổ biến nhất cho cổng người dùng — vừa chặn vừa ghi log, không gián đoạn dịch vụ
Shutdown (mặc định) Mức bảo mật cao, dùng cho cổng quan trọng hoặc yêu cầu kiểm soát nghiêm ngặt

⚠️ Lưu ý quan trọng: Shutdown là chế độ mặc định khi bật switchport port-security mà không khai báo violation. Đây cũng là chế độ được khuyến nghị dùng nhiều nhất trong thực tế vì tạo phản ứng mạnh nhất — cách ly ngay cổng nghi vấn để ngăn tấn công lan rộng, dù cần thao tác thủ công (hoặc errdisable recovery) để khôi phục cổng sau đó.

3. Khôi phục cổng bị Err-Disabled

Khi cổng bị khóa do violation shutdown, có 2 cách khôi phục:

  • Thủ công: vào interface, gõ shutdown rồi no shutdown.
  • Tự động: cấu hình errdisable recovery cause psecure-violation ở chế độ Global Configuration, switch sẽ tự bật lại cổng sau khoảng thời gian mặc định (300 giây), có thể tùy chỉnh bằng errdisable recovery interval <giây>.

📎 Liên hệ lại kiến thức đã học: đây là ví dụ cụ thể cho khái niệm Mitigation Technique đã nhắc ở Bài 74 — Port Security không loại bỏ được Threat (kẻ tấn công vẫn có thể cố gắng), nhưng giảm thiểu tối đa khả năng Exploit thành công bằng cách cách ly ngay lập tức.

4. Cấu hình Port Security trên cổng truy cập người dùng

Switch(config)# hostname SW1
SW1(config)# clock timezone ICT 7
SW1(config)# ntp server 192.168.1.1
SW1(config)# logging on
SW1(config)# interface GigabitEthernet0/2
SW1(config-if)# switchport mode access
SW1(config-if)# switchport access vlan 10
SW1(config-if)# switchport port-security
SW1(config-if)# switchport port-security maximum 2
SW1(config-if)# switchport port-security mac-address sticky
SW1(config-if)# switchport port-security violation restrict
SW1(config-if)# exit
SW1(config)# errdisable recovery cause psecure-violation
SW1(config)# errdisable recovery interval 180

Giải thích từng dòng lệnh:

  • hostname SW1 — đặt tên thiết bị, phần cấu hình nền tảng chuẩn thực chiến.
  • clock timezone ICT 7 — đặt múi giờ Việt Nam (UTC+7), để timestamp trong log violation chính xác.
  • ntp server 192.168.1.1 — đồng bộ thời gian với NTP server nội bộ (đã học ở Bài 37).
  • logging on — bật ghi log hệ thống, cần thiết để ghi lại các sự kiện violation khi dùng chế độ restrict/shutdown.
  • interface GigabitEthernet0/2 — vào chế độ cấu hình cổng Gi0/2, giả định đây là cổng nối trực tiếp đến máy trạm người dùng (access port).
  • switchport mode access — ép cổng vào chế độ Access cố định; Port Security chỉ cấu hình được trên Access port hoặc Trunk port cố định, không áp dụng được trên cổng đang ở chế độ dynamic auto/desirable.
  • switchport access vlan 10 — gán cổng vào VLAN 10, VLAN dành cho người dùng.
  • switchport port-security — bật tính năng Port Security trên cổng này; nếu không có lệnh này, các lệnh port-security phía sau tuy được nhập vẫn không có tác dụng.
  • switchport port-security maximum 2 — giới hạn tối đa 2 địa chỉ MAC được học/cho phép trên cổng (ví dụ: 1 máy tính + 1 điện thoại IP Phone cắm nối tiếp qua cổng switch tích hợp trên điện thoại).
  • switchport port-security mac-address sticky — bật chế độ học Sticky: switch tự học MAC từ frame thực tế, tự lưu vào running-config để không mất sau khi reload.
  • switchport port-security violation restrict — khi phát hiện vi phạm (xuất hiện MAC không được phép hoặc vượt quá maximum), switch loại bỏ (drop) các frame vi phạm, đồng thời ghi log, gửi cảnh báo SNMP Trap (nếu đã cấu hình) và tăng Security Violation Counter. Cổng vẫn tiếp tục hoạt động bình thường, chỉ riêng các frame vi phạm bị chặn — phù hợp với cổng người dùng, vừa tăng bảo mật vừa hạn chế tối đa gián đoạn dịch vụ. Lưu ý: chế độ restrict không đưa cổng vào trạng thái Err-Disabled.
  • errdisable recovery cause psecure-violation — kích hoạt cơ chế tự động khôi phục (Auto Recovery) cho các cổng bị chuyển sang trạng thái Err-Disabled do vi phạm Port Security. Lệnh này chỉ có tác dụng với cổng đang dùng chế độ violation shutdown, vì chỉ chế độ này mới đưa cổng vào Err-Disabled.
  • errdisable recovery interval 180 — thiết lập thời gian switch tự động thử kích hoạt lại cổng đang Err-Disabled sau 180 giây, thay vì giá trị mặc định 300 giây (5 phút) — nhiều môi trường doanh nghiệp giảm giá trị này để rút ngắn thời gian gián đoạn sau khi sự cố đã được khắc phục.

Port Security — Chặn MAC Flooding qua giới hạn số lượng MAC theo cổng Sơ đồ minh họa switch với 3 cổng: cổng người dùng hợp lệ chỉ có 1 MAC được học, cổng kẻ tấn công cố gắng gửi nhiều MAC giả để làm đầy bảng MAC Address Table, và kết quả switch phát hiện vi phạm Port Security xử lý theo 1 trong 3 chế độ Protect Restrict hoặc Shutdown Port Security Chặn Tấn Công MAC Flooding Giới hạn số MAC address hợp lệ được học trên mỗi cổng Kẻ tấn công Gửi hàng loạt MAC giả Máy người dùng 1 MAC hợp lệ (sticky) Switch SW1 Gi0/2 (Port Security) Maximum 2 → vượt ngưỡng Trong giới hạn 3 Chế Độ Violation Khi Phát Hiện Vi Phạm • Protect — chỉ drop gói tin, không tạo log / syslog • Restrict — drop gói tin + ghi log, cổng vẫn hoạt động • Shutdown — drop + ghi log + đưa cổng vào trạng thái Err-Disable 💡 Không giới hạn MAC = bảng MAC Address Table có thể bị làm đầy, switch hoạt động như Hub


💬 Hỏi & Đáp nhanh

Vì sao nên dùng sticky thay vì để switch học Dynamic thông thường?

✅ Vì Dynamic MAC bị mất hoàn toàn khi switch khởi động lại, buộc switch phải học lại từ đầu (có thể học nhầm MAC của thiết bị lạ nếu bị tấn công ngay lúc khởi động). Sticky lưu MAC đã học vào running-config, chỉ cần copy running-config startup-config là giữ nguyên danh sách sau khi reload.

Nếu không khai báo switchport port-security violation, switch mặc định xử lý vi phạm theo chế độ nào?

Shutdown — đây là chế độ mặc định khi bật Port Security mà không cấu hình violation tường minh.

Có thể bật Port Security trên cổng Trunk hay cổng đang ở chế độ dynamic desirable không?

❌ Không trực tiếp. Port Security chỉ áp dụng được trên cổng đã cố định ở chế độ Access (switchport mode access) hoặc Trunk cố định (switchport mode trunk) — không áp dụng được khi cổng đang ở chế độ thương lượng động (dynamic auto/dynamic desirable), vì trạng thái cổng lúc đó chưa xác định.


📝 Bài tập đánh giá

Câu 1: Trên 1 cổng đã cấu hình switchport port-security maximum 1violation shutdown, khi có 1 máy tính thứ 2 với MAC address khác cắm vào cùng cổng đó, điều gì xảy ra?

  • A. Switch tự động cho phép thêm 1 MAC nữa vì đã học Dynamic
  • B. Switch drop frame của MAC lạ, ghi log, và chuyển cổng sang trạng thái Err-Disabled
  • C. Switch chỉ ghi log nhưng vẫn cho phép cả 2 máy hoạt động bình thường
  • D. Switch tự động xóa MAC cũ để học MAC mới

Câu 2: Sự khác biệt cốt lõi giữa chế độ ProtectRestrict trong Port Security là gì?

  • A. Protect drop frame vi phạm, Restrict thì không
  • B. Restrict ghi log/gửi SNMP trap khi có vi phạm, Protect thì không ghi lại gì
  • C. Protect khóa hẳn cổng, Restrict chỉ cảnh báo
  • D. Không có khác biệt, 2 chế độ hoạt động giống hệt nhau

👉 Đáp án:

Câu 1: B — Với violation shutdown (mặc định), khi vượt quá maximum cho phép, switch drop frame vi phạm, ghi log, và chuyển cổng sang trạng thái Err-Disabled, ngừng hoạt động hoàn toàn cho đến khi được khôi phục thủ công hoặc qua errdisable recovery.

Câu 2: B — Cả Protect và Restrict đều drop frame vi phạm giống nhau, nhưng Restrict ghi log và gửi SNMP trap để quản trị viên biết có sự cố xảy ra, trong khi Protect âm thầm drop mà không để lại dấu vết nào, gây khó khăn khi cần điều tra sau này.


📚 Bài viết thuộc khóa học CCNA của VNExperts

🧭 Điều hướng

⬅️ Bài trước🏠 Mục lục khóa họcBài kế tiếp ➡️
Bài 77: Cấu hình bảo mật cơ bản trên Cisco IOS — password, SSH, local user Mục lục khóa học CCNA Bài 79: DHCP Snooping & Dynamic ARP Inspection — chống tấn công Layer 2