DHCP Snooping là gì?
DHCP (Dynamic Host Configuration Protocol) là một giao thức trong mạng máy tính giúp tự động cấu hình địa chỉ IP và thông tin mạng liên quan cho các thiết bị kết nối vào mạng. Điều này đảm bảo rằng các thiết bị như máy tính, điện thoại, máy in, và các thiết bị khác có thể tự động nhận được địa chỉ IP, cấu hình mạng, gateway và các thông tin liên quan khác để có thể hoạt động trên mạng một cách hiệu quả.
Khi một thiết bị mới kết nối vào mạng hoặc khi cần cấp phát lại địa chỉ IP, nó gửi một yêu cầu DHCP (DHCP request) tới một máy chủ DHCP. Máy chủ DHCP sau đó phản hồi bằng cách cấp phát cho thiết bị một địa chỉ IP khả dụng và cung cấp các thông tin mạng cần thiết.
Tuy nhiên, trong môi trường mạng, có thể có những máy chủ DHCP giả mạo không được ủy quyền, cố gắng cung cấp địa chỉ IP sai lệch hoặc độc hại cho các thiết bị trong mạng. Điều này có thể gây ra sự cố về kết nối và an ninh mạng. Đây là lúc DHCP Snooping để bảo vệ mạng.
DHCP Snooping là một công nghệ bảo mật ở tầng 2 của mô hình mạng OSI, thường được tích hợp vào hệ điều hành của thiết bị Switch chia mạng. Nó hoạt động bằng cách kiểm tra và loại bỏ lưu lượng DHCP mà được xác định là không chấp nhận. Điều này ngăn chặn các máy chủ DHCP trái phép (rogue) cung cấp địa chỉ IP cho các thiết bị trong mạng.
Vai trò của công nghệ DHCP Snooping
- Xác thực các tin nhắn DHCP từ các nguồn không đáng tin và lọc bỏ các tin nhắn không hợp lệ.
- Xây dựng và duy trì cơ sở dữ liệu DHCP Snooping binding, chứa thông tin về các máy chủ không đáng tin cậy đã được cấp phát địa chỉ IP.
- Sử dụng cơ sở dữ liệu binding DHCP Snooping để xác thực các yêu cầu tiếp theo từ các máy chủ không đáng tin cậy.
Giao thức DHCP quan trọng thế nào?
DHCP là giao thức giúp tự động cấp phát địa chỉ IP và thông tin cấu hình mạng cho các thiết bị kết nối vào mạng. Mỗi giao thức trong mạng máy tính đều có những quy tắc, những nguyên tắc này điều hành hoạt động của giao thức. Những nguyên tắc này đôi khi tạo cơ hội cho các kẻ xấu tận dụng để tấn công mạng. Các kẻ tấn công cũng có thể sử dụng cách làm việc của DHCP để đe dọa mạng bạn.
Để hiểu rõ hơn tại sao cần DHCP Snooping, hãy xem cách một cuộc tấn công dựa trên DHCP có thể diễn ra:
- Một kẻ tấn công kết nối laptop của mình vào mạng và đóng vai trò là một máy chủ DHCP giả mạo. Như chúng ta biết, các thông điệp giao dịch DORA (Discover, Offer, Request, Acknowledgement) ban đầu giữa máy khách DHCP và máy chủ sử dụng địa chỉ phát sóng (broadcast).
- Kẻ tấn công lắng nghe thông điệp phát sóng này và cấp phát địa chỉ IP, mặt nạ mạng và cổng mặc định của mình cho máy khách. Bây giờ, máy khách sẽ chuyển tất cả lưu lượng mạng của mình đến cho kẻ tấn công. Điều này tạo ra cuộc tấn công Man-in-the-middle (kẻ xâm nhập ở giữa), vi phạm thành phần toàn vẹn của bảo mật.
Sử dụng DHCP Snooping cần thiết để ngăn chặn các cuộc tấn công như vậy. DHCP Snooping giám sát và kiểm tra thông điệp DHCP trước khi chúng được chấp nhận, đảm bảo rằng chỉ có các máy chủ DHCP ủy quyền mới có thể cung cấp cấu hình cho các thiết bị trong mạng. Điều này giúp ngăn chặn tình huống mất kiểm soát, bảo vệ tính toàn vẹn của mạng và đảm bảo an toàn cho các hoạt động trên mạng.
Nguyên lý hoạt động của giao thức DHCP Snooping
Để hiểu cách DHCP Snooping hoạt động. Trước hết cần tìm hiểu cách DHCP (giao thức cấu hình máy chủ động) thực hiện. Khi DHCP được kích hoạt, thiết bị mạng không có địa chỉ IP sẽ thực hiện một tương tác qua bốn giai đoạn với máy chủ DHCP như sau:
- Phát Hiện (Discover): Thiết bị mạng phát đi một thông điệp DHCP Discover để tìm các máy chủ DHCP khả dụng trên mạng.
- Đề Xuất (Offer): Các máy chủ DHCP phản hồi bằng thông điệp DHCP Offer, đề xuất địa chỉ IP và các thiết lập cấu hình mạng liên quan.
- Yêu Cầu (Request): Thiết bị mạng chọn một trong các địa chỉ IP đề xuất và gửi một thông điệp DHCP Request để yêu cầu địa chỉ đó từ một máy chủ DHCP cụ thể.
- Xác Nhận (Acknowledgment): Máy chủ DHCP xác nhận yêu cầu bằng thông điệp DHCP Acknowledgment (ACK), gán địa chỉ IP được yêu cầu cho thiết bị mạng.
Bây giờ, hãy tìm hiểu cách DHCP Snooping xây dựng trên quy trình này:
Phân Loại Các Cổng:
DHCP Snooping chia các giao diện của switch thành hai loại: cổng được tin cậy và cổng không được tin cậy. Cổng được tin cậy là nơi thông điệp máy chủ DHCP được coi là đáng tin cậy. Cổng không được tin cậy là nơi thông điệp máy chủ DHCP không được coi là đáng tin cậy. Nếu DHCP Snooping được kích hoạt, chỉ cổng được tin cậy mới được phép gửi thông điệp DHCP Offer. Các thông điệp gửi từ các cổng không được tin cậy sẽ bị loại bỏ.
Xây Dựng Bảng Liên Kết DHCP:
Trong giai đoạn xác nhận của DHCP, khi nhận được thông điệp DHCP ACK, DHCP Snooping tạo một bảng liên kết DHCP. Bảng này chứa thông tin quan trọng, bao gồm địa chỉ MAC của máy chủ, địa chỉ IP đã cho thuê, thời gian cho thuê, loại liên kết, số VLAN và thông tin giao diện liên quan đến máy chủ. Bảng này được sử dụng để theo dõi các giao dịch DHCP hợp lệ.
Xác Thực Các Gói Tin Tiếp Theo:
Bất kỳ gói tin DHCP nào sau này được nhận từ các máy chủ không đáng tin cậy sẽ được so sánh với thông tin được lưu trữ trong bảng liên kết DHCP. Nếu gói tin nhận được không khớp với thông tin đã lưu trữ, nó sẽ bị coi là đáng ngờ và bị loại bỏ. Quá trình này ngăn chặn các máy chủ chưa được ủy quyền từ làm phiền quá trình DHCP của mạng.
Tóm lại, DHCP Snooping cải thiện tính bảo mật của giao dịch DHCP bằng cách chỉ định các cổng được tin cậy và không tin cậy, tạo bảng liên kết cho các giao dịch DHCP hợp lệ và xác thực các gói tin DHCP tiếp theo dựa trên thông tin liên kết đã xác lập. Điều này đảm bảo chỉ các máy chủ DHCP được ủy quyền mới có thể cung cấp địa chỉ IP hợp lệ và thiết lập cấu hình mạng cho các thiết bị trong mạng, bảo vệ mạng khỏi các cuộc tấn công từ các máy chủ DHCP giả mạo và duy trì tính toàn vẹn của việc cấp phát địa chỉ IP.
Các cuộc tấn công có thể ngăn chặn bởi DHCP Snooping
Tấn công giả mạo DHCP (DHCP Spoofing Attack)
Tấn công giả mạo DHCP xảy ra khi một kẻ tấn công cố gắng phản hồi các yêu cầu DHCP và cố gắng tự mình giả mạo (spoof) thành cổng mặc định hoặc máy chủ DNS, từ đó khởi đầu một cuộc tấn công giữa người (man-in-the-middle).
Với việc làm đó, kẻ tấn công có thể chặn lưu lượng từ người dùng trước khi chuyển tiếp đến cổng gateway thực sự hoặc thực hiện tấn công từ chối dịch vụ (DoS) bằng cách gửi lũy thừa yêu cầu đến máy chủ DHCP thật để làm quá tải tài nguyên địa chỉ IP.
Tấn công đói IP DHCP (DHCP Starvation Attack)
Tấn công đói IP DHCP thường nhắm vào các máy chủ DHCP của mạng, nhằm gửi lũy thừa các thông điệp DHCP REQUEST đến máy chủ DHCP hợp pháp sử dụng địa chỉ MAC nguồn giả mạo.
Máy chủ DHCP sẽ phản hồi tất cả các yêu cầu mà không biết đó là một cuộc tấn công đói IP DHCP, bằng cách gán địa chỉ IP khả dụng, dẫn đến việc cạn kiệt hết tài nguyên trong nhóm DHCP.
Cách DHCP Snooping ngăn chặn
- Tấn công giả mạo DHCP: DHCP Snooping kiểm tra các thông điệp DHCP và chỉ cho phép các thông điệp từ máy chủ DHCP được ủy quyền được chuyển tiếp qua cổng được tin cậy. Các thông điệp từ các cổng không đáng tin cậy sẽ bị loại bỏ, ngăn chặn kẻ tấn công giả mạo DHCP khỏi tự mình giả mạo thành cổng mặc định hoặc máy chủ DNS.
- Tấn công đói IP DHCP: DHCP Snooping cũng giám sát các thông điệp DHCP REQUEST và sẽ loại bỏ bất kỳ thông điệp nào được gửi từ các địa chỉ MAC nguồn giả mạo. Điều này đảm bảo rằng chỉ các yêu cầu từ các máy khách hợp pháp và địa chỉ MAC thật sự mới được chấp nhận, ngăn chặn tấn công đói IP DHCP và đảm bảo tính khả dụng của hồ bơi địa chỉ IP.
Như vậy, DHCP Snooping là một công nghệ quan trọng trong việc ngăn chặn các cuộc tấn công từ kẻ xâm nhập sử dụng các kỹ thuật giả mạo DHCP hoặc làm cạn kiệt tài nguyên địa chỉ IP. Điều này giúp bảo vệ tính toàn vẹn của mạng và đảm bảo sự an toàn cho việc cấp phát địa chỉ IP.
Cách cấu hình DHCP Snooping trên Switch Cisco
Sau đây mình sẽ hướng dẫn bạn các lệnh cấu hình DHCP Snooping trên Switch mạng Cisco:
Lệnh 1: kích hoạt DHCP Snooping trên toàn bộ switch
switch(config)# ip dhcp snooping
Lệnh 2: Chỉ định các cổng được tin cậy qua đó thông điệp DHCP từ máy chủ DHCP được ủy quyền sẽ chuyển tiếp:
switch(config)# interface range <port-range>
switch(config-if-range)# ip dhcp snooping trust
Lệnh 3: (Tuỳ chọn) Cấu hình DHCP Snooping trên từng VLAN riêng biệt:
switch(config)# ip dhcp snooping vlan <vlan-id>
Lệnh 4: (Tuỳ chọn) Cấu hình DHCP Snooping trên Layer 3 SVI (Switch Virtual Interface):
switch(config)# interface vlan <vlan-id>
switch(config-if)# ip dhcp snooping trust
Lệnh 5: (Tuỳ chọn) Cấu hình tính năng DHCP Snooping Binding Database (lưu trữ thông tin DHCP Snooping):
switch(config)# ip dhcp snooping database flash:dhcp_snooping_db
Lệnh 6: Lưu cấu hình:
switch(config)# end
switch# write memory
Lệnh 7: Kiểm tra cấu hình DHCP
Xem trạng thái tổng quan của DHCP Snooping:
switch# show ip dhcp snooping
Xem danh sách các cổng được tin cậy:
switch# show ip dhcp snooping interface
Xem trạng thái của bảng liên kết DHCP Snooping (nếu bạn đã cấu hình tính năng này):
switch# show ip dhcp snooping binding
Xem trạng thái của từng VLAN riêng biệt (nếu bạn đã cấu hình DHCP Snooping trên từng VLAN):
switch# show ip dhcp snooping vlan <vlan-id>
Xem thêm các bài viết hay khác về tính năng trên Switch:
- Vlan Trunk là gì? Tác dụng của cổng Trunk trên Switch?
- QoS là gì? Cách hoạt động và Ứng dụng ra sao?
- Giao thức STP là gì? Cách cấu hình
- Tìm hiểu cách cấu hình giao thức VTP
- Vai trò và tác dụng của giao thức ACL
- SPAN là gì? Cấu hình cổng SPAN trên Switch