DHCP snooping là một tính năng bảo mật nhằm ngăn chặn việc giả mạo DHCP server để gửi các gói tin DHCP giả mạo.
Khi DHCP snooping được kích hoạt, cổng trên Switch sẽ phân loại thành cổng tin cậy (trusted) và không tin cậy (untrusted). Cổng tin cậy cho phép nhận DHCP Reply hay cổng được kết nối với Server DHCP. Nếu DHCP Server giả mạo gắn vào cổng “untrusted” và gởi DHCP Reply thì gói Reply sẽ bị loại bỏ. Các cổng nào bị vi phạm sẽ tự động shutdown chuyển sang trang thái err-disable
DHCP snooping cũng có một cơ sở dữ liệu có chứa địa chỉ MAC của client, địa chỉ IP được cung cấp, thời gian cấp bao lâu, thông tin cổng,...
Tại sao chúng ta cần DHCP Snooping?
Chúng ta cần DHCP Snooping để ngăn chặn các cuộc tấn công “man-in-the-middle”. Giả sử tồn tại một kẻ tấn công “man-in-the-middle” giả mạo DHCP server và trả lời cho gói tin DHCPDISCOVER trước khi DHCP Server thực trả lời, từ đó DHCP giả mạo sẽ gửi thông tin cấu hìn IP trong đó có gateway giả mạo. Khi máy tính của người dùng gởi dữ liệu đến gateway để ra mạng bên ngoài, máy tính của kẻ tấn công sẽ trở thành gateway trong trường hợp này. Kẻ tấn công có thể phân tích nội dung của mỗi gói dữ liệu được gởi đến trước khi thực hiện chuyển tiếp thông thường.
Mô hình
Các client sẽ kết nối tới port untrusted, mặc định tất cả các port đều là untrusted. client gửi thông điệp DHCPDISCOVER với DHCP Snooping đã được bật lên thì switch chỉ forward thông điệp DHCP broadcast tới các cổng trusted. Trong mô hình này distribution switch sẽ đóng vai trò là một DHCP Server. Trusted port là port duy nhất cho phép DHCP Server gửi thông điệp trả lời DHCPOFFER
Cấu hình
Đầu tiên chúng ta sẽ vào SW1 và bật tính năng DHCP Snooping:
SW1(config)#ip dhcp snooping
Chúng ta cần phải kích hoạt cho các VLAN, trong trường hợp này chúng ta chỉ dùng cho VLAN1
SW1(config)#ip dhcp snooping vlan 1
Bây giờ chúng ta sẽ cấu hình interface f0/1 kết nối với DSW1 là một trusted port:
SW1(config)#interface f0/1
SW1(config-if)#ip dhcp snooping trust
Chúng ta nên kích hoạt rate limiting trên các cổng untrusted để giới hạn packet được truyền nhận mỗi giây. Được sử dụng để ngăn chặn việc tấn công DHCP server bằng cách gửi rất nhiều yêu cầu đến DHCP server làm cho DHCP server cạn kiệt các IP cung cấp cho client
SW1(config)#interface f0/1
SW1(config-if)#ip dhcp snooping limit rate 25
Kiểm tra
Bây giờ chúng ta sẽ kiểm tra lại cấu hình DHCP Snooping
SW1#show ip dhcp snooping
Switch DHCP snooping is enabled
DHCP snooping is configured on following VLANs: 1
Insertion of option 82 is enabled
Option 82 on untrusted port is not allowed
Verification of hwaddr field is enabled
Interface Trusted Rate limit (pps)
----------------------- ------- ----------------
FastEthernet0/24 no unlimited
FastEthernet0/1 yes 25
Tiếp theo chúng ta sẽ kết nối máy tính client vào cổng Fa0/24 trên SW1 để xin IP động, chúng ta có thể thấy các IP được cấp đã được DHCP Snooping lưu lại:
SW1#show ip dhcp snooping binding
MacAddress IpAddress Lease(sec) Type VLAN Interface
------------------ --------------- ---------- ------------- ---- -----------------
00:05:5E:54:41:4E 192.168.10.2 86400 dhcp-snooping 1 FastEthernet0/24
Total number of bindings: 1
DHCP Option 82
Do khi kích hoạt tính năng DHCP Snooping trên SW1, DHCP Option 82 sẽ được thêm vào các DHCP packet khi đi qua một switch. Option 82 chứa thông tin cụ thể về port mà client kết nối tới. Các gói tin DHCP cũng mang theo một trường “giaddr” mặc định được thiết lập là 0.0.0.0 (một giá trị khác 0)
Khi DHCP Snooping hoặc DHCP relay agent được kích hoạt, DHCP Option 82 sẽ được thêm vào DHCP packet khi đi qua một switch. Option 82 chứa thông tin cụ thể về port mà client kết nối tới.
Trong mô hình này, các cổng đối diện với DHCP Server là Fa0/2 trên SW1, Fa0/11 trên SW2, các cổng này đã được cấu hình là trusted. Mặc định SW1 sẽ chèn DHCP Option 82 vào tất cả các packet mà nó nhận được từ client. Cũng theo mặc định thì SW2 sẽ hủy các packet này khi nhận được vì một switch khi DHCP Snooping được kích hoạt sẽ hủy các packet trên cổng untrusted có chứa Option 82 hoặc có giaddr khác 0 (ví dụ 0.0.0.0). Dưới đây là thông điệp mà chúng ta nhìn thấy nếu debug trên SW2 khi SW1 gửi DHCPDISCOVER ra cổng Fa0/2
%DHCP_SNOOPING-5-DHCP_SNOOPING_NONZERO_GIADDR: DHCP_SNOOPING drop message with non-zero giaddr or option82 value on untrusted port
Chúng ta có thể thấy cổng Fa0/24 trên SW2 là một cổng untrusted cho nên nó sẽ hủy các packet từ Client gửi đến vì có chứa Option 82 do trên SW1 đã kích hoạt DHCP Snooping, các packet sẽ không bao giờ đến được DSW1. Chúng ta sẽ giải quyết vấn đề này bằng cách sử dụng một lệnh trên SW2 sẽ trusted các gói tin chứa DHCP Option 82 được nhận trên cổng untrusted (Fa0/24).
SW2(config)#ip dhcp snooping information option allow-untrusted
Bởi vì DHCP Server của chúng ta là một thiết bị Cisco IOS, mặc định nó sẽ từ chối các gói tin chứa Option 82 nên chúng ta cũng cần phải trust trên DSW1
DSW1(config)#ip dhcp relay information trust-all
Ngoài ra chúng ta còn có một số cách khác như cấu hình trusted trên Fa0/24 của SW2 hoặc chúng ta có thể cấu hình trên SW1 (SW1(config)# #no ip dhcp snooping information option).
Người biên dịch: Nguyễn Văn Hiền
Liên kết tham khảo: http://blog.router-switch.com/2012/0...dhcp-snooping/
Khi DHCP snooping được kích hoạt, cổng trên Switch sẽ phân loại thành cổng tin cậy (trusted) và không tin cậy (untrusted). Cổng tin cậy cho phép nhận DHCP Reply hay cổng được kết nối với Server DHCP. Nếu DHCP Server giả mạo gắn vào cổng “untrusted” và gởi DHCP Reply thì gói Reply sẽ bị loại bỏ. Các cổng nào bị vi phạm sẽ tự động shutdown chuyển sang trang thái err-disable
DHCP snooping cũng có một cơ sở dữ liệu có chứa địa chỉ MAC của client, địa chỉ IP được cung cấp, thời gian cấp bao lâu, thông tin cổng,...
Tại sao chúng ta cần DHCP Snooping?
Chúng ta cần DHCP Snooping để ngăn chặn các cuộc tấn công “man-in-the-middle”. Giả sử tồn tại một kẻ tấn công “man-in-the-middle” giả mạo DHCP server và trả lời cho gói tin DHCPDISCOVER trước khi DHCP Server thực trả lời, từ đó DHCP giả mạo sẽ gửi thông tin cấu hìn IP trong đó có gateway giả mạo. Khi máy tính của người dùng gởi dữ liệu đến gateway để ra mạng bên ngoài, máy tính của kẻ tấn công sẽ trở thành gateway trong trường hợp này. Kẻ tấn công có thể phân tích nội dung của mỗi gói dữ liệu được gởi đến trước khi thực hiện chuyển tiếp thông thường.
Mô hình
Các client sẽ kết nối tới port untrusted, mặc định tất cả các port đều là untrusted. client gửi thông điệp DHCPDISCOVER với DHCP Snooping đã được bật lên thì switch chỉ forward thông điệp DHCP broadcast tới các cổng trusted. Trong mô hình này distribution switch sẽ đóng vai trò là một DHCP Server. Trusted port là port duy nhất cho phép DHCP Server gửi thông điệp trả lời DHCPOFFER
Cấu hình
Đầu tiên chúng ta sẽ vào SW1 và bật tính năng DHCP Snooping:
SW1(config)#ip dhcp snooping
Chúng ta cần phải kích hoạt cho các VLAN, trong trường hợp này chúng ta chỉ dùng cho VLAN1
SW1(config)#ip dhcp snooping vlan 1
Bây giờ chúng ta sẽ cấu hình interface f0/1 kết nối với DSW1 là một trusted port:
SW1(config)#interface f0/1
SW1(config-if)#ip dhcp snooping trust
Chúng ta nên kích hoạt rate limiting trên các cổng untrusted để giới hạn packet được truyền nhận mỗi giây. Được sử dụng để ngăn chặn việc tấn công DHCP server bằng cách gửi rất nhiều yêu cầu đến DHCP server làm cho DHCP server cạn kiệt các IP cung cấp cho client
SW1(config)#interface f0/1
SW1(config-if)#ip dhcp snooping limit rate 25
Kiểm tra
Bây giờ chúng ta sẽ kiểm tra lại cấu hình DHCP Snooping
SW1#show ip dhcp snooping
Switch DHCP snooping is enabled
DHCP snooping is configured on following VLANs: 1
Insertion of option 82 is enabled
Option 82 on untrusted port is not allowed
Verification of hwaddr field is enabled
Interface Trusted Rate limit (pps)
----------------------- ------- ----------------
FastEthernet0/24 no unlimited
FastEthernet0/1 yes 25
Tiếp theo chúng ta sẽ kết nối máy tính client vào cổng Fa0/24 trên SW1 để xin IP động, chúng ta có thể thấy các IP được cấp đã được DHCP Snooping lưu lại:
SW1#show ip dhcp snooping binding
MacAddress IpAddress Lease(sec) Type VLAN Interface
------------------ --------------- ---------- ------------- ---- -----------------
00:05:5E:54:41:4E 192.168.10.2 86400 dhcp-snooping 1 FastEthernet0/24
Total number of bindings: 1
DHCP Option 82
Do khi kích hoạt tính năng DHCP Snooping trên SW1, DHCP Option 82 sẽ được thêm vào các DHCP packet khi đi qua một switch. Option 82 chứa thông tin cụ thể về port mà client kết nối tới. Các gói tin DHCP cũng mang theo một trường “giaddr” mặc định được thiết lập là 0.0.0.0 (một giá trị khác 0)
Khi DHCP Snooping hoặc DHCP relay agent được kích hoạt, DHCP Option 82 sẽ được thêm vào DHCP packet khi đi qua một switch. Option 82 chứa thông tin cụ thể về port mà client kết nối tới.
Trong mô hình này, các cổng đối diện với DHCP Server là Fa0/2 trên SW1, Fa0/11 trên SW2, các cổng này đã được cấu hình là trusted. Mặc định SW1 sẽ chèn DHCP Option 82 vào tất cả các packet mà nó nhận được từ client. Cũng theo mặc định thì SW2 sẽ hủy các packet này khi nhận được vì một switch khi DHCP Snooping được kích hoạt sẽ hủy các packet trên cổng untrusted có chứa Option 82 hoặc có giaddr khác 0 (ví dụ 0.0.0.0). Dưới đây là thông điệp mà chúng ta nhìn thấy nếu debug trên SW2 khi SW1 gửi DHCPDISCOVER ra cổng Fa0/2
%DHCP_SNOOPING-5-DHCP_SNOOPING_NONZERO_GIADDR: DHCP_SNOOPING drop message with non-zero giaddr or option82 value on untrusted port
Chúng ta có thể thấy cổng Fa0/24 trên SW2 là một cổng untrusted cho nên nó sẽ hủy các packet từ Client gửi đến vì có chứa Option 82 do trên SW1 đã kích hoạt DHCP Snooping, các packet sẽ không bao giờ đến được DSW1. Chúng ta sẽ giải quyết vấn đề này bằng cách sử dụng một lệnh trên SW2 sẽ trusted các gói tin chứa DHCP Option 82 được nhận trên cổng untrusted (Fa0/24).
SW2(config)#ip dhcp snooping information option allow-untrusted
Bởi vì DHCP Server của chúng ta là một thiết bị Cisco IOS, mặc định nó sẽ từ chối các gói tin chứa Option 82 nên chúng ta cũng cần phải trust trên DSW1
DSW1(config)#ip dhcp relay information trust-all
Ngoài ra chúng ta còn có một số cách khác như cấu hình trusted trên Fa0/24 của SW2 hoặc chúng ta có thể cấu hình trên SW1 (SW1(config)# #no ip dhcp snooping information option).
Người biên dịch: Nguyễn Văn Hiền
Liên kết tham khảo: http://blog.router-switch.com/2012/0...dhcp-snooping/
Comment