Danh mục sản phẩm
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 Address | Cá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í | Static | Dynamic | Sticky |
|---|---|---|---|
| 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ặcwrite 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 Frame | Ghi Log/SNMP Trap | Err-Disabled | Khi 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:
Shutdownlà chế độ mặc định khi bậtswitchport port-securitymà không khai báoviolation. Đâ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ặcerrdisable 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õ
shutdownrồino 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ằngerrdisable 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ệnhport-securityphí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ế độrestrictkhô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.
💬 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 1 và violation 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ế độ Protect và Restrict 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ọc | Bà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 |
