DHPC (Dynamic Host Configuration Protocol) là gì? DHCP hoạt động theo cơ chế nào? Có mấy cơ chế hoạt động của dhcp như thế nào. Hãy cùng Huỳnh Quí IT tìm hiểu qua bài viết DHCP (Dynamic Host Configuration Protocol) là gì? 4 cơ chế hoạt động của DHCP này nhé.
Giới thiệu dịch vụ DHCP (Dynamic Host Configuration Protocol)
Trong một hệ thống mạng các máy tính liên lạc với nhau bằng Protocol TCP/IP do đó các máy tính này phải được cấu hình theo một thông số IP nhất định. Một hệ thống mạng thông thường khoảng 20-30 máy tính trở xuống thì việc đặt địa chỉ IP có thể thực hiện bằng tay nhưng nếu có nhiều hơn 30 máy tính thì việc cấu hình thủ công như vậy gặp rất nhiều vấn đề như:
- Cấu hình cùng lúc cho nhiều máy có thể dẫn đến sai sót như: trùng địa chỉ IP giữa các máy tính, sai các thông tin về Default Getway, Prefrred DNS,…
- Tốn công bảo trì và nâng cấp hệ thống : Vd có sự thay đổi thông số Preffered DNS , lắp đặt thêm nhiều máy tính mới,…
DHCP (Dynamic Host Configuration Protocol) là gì?
Để khác phục những nhược điểm đã được nêu ở trên bạn có thể triển khai dịch vụ có tên là DHCP
DHCP (Dynamic Host Configuration Protocol) là giao thức cấu hình động máy chủ. Dịch vụ này có khả năng cấp phát một cách tự động tất cả các thông số về địa chỉ IP cho những máy tính tham gia vào hệ thống mạng. và việc cấp phát IP động dạng này được quản lý tập trung thông qua DHCP Server.
Việc cấp phát IP động dạng này có ưu điểm hơn so với cơ chế khai báo IP tĩnh các thông số mạng như :
- Khắc phục được tình trạng đụng địa chỉ IP và giảm chi phí quản trị cho hệ thống mạng.
- Giúp cho các nhà cung cấp dịch vụ (ISP) tiết kiệm được số lượng địa chỉ IP thật (public IP).
- Phù hợp với các máy tính thường xuyên di chuyển qua lại giữa các mạng.
- Kết hợp với hệ thống mạng không dây (Wireless) cung cấp các điểm Hostpot như: nhà ga, sân bay, trường học,…
Cơ chế hoạt động của Dynamic Host Configuration Protocol
Giao thức DHCP Dynamic Host Configuration Protocol làm việc theo mô hình client/server. Theo đó, quá trình tương tác giữa DHCP client và server diễn ra theo 4 bước sau đây :
- IP lease request
- IP lease offer
- IP lease selection
- IP lease acknowledgement
Có thể tóm tắt các bước trên như sau :
IP Lease Request
Đầu tiên, client sẽ broadcast một message tên là DHCP DISCOVER, vì client lúc này chưa có địa chỉ IP cho nên nó sẽ dùng một địa chỉ source(nguồn) là 0.0.0.0 và cũng vì client không biết địa chỉ của DHCP server nên nó sẽ gửi đến một địa chỉ broadcast là 255.255.255.255. Lúc này gói tin DHCPDISCOVER này sẽ broadcast lên toàn mạng.
Gói tin này cũng chứa một địa chỉ MAC (Media Access Control – là địa chỉ mà mỗi một network adapter (card mạng) sẽ được nhà sản xuất cấp cho và là mã số để phân biệt các card mạng với nhau) và đồng thời nó cũng chứa computer name của máy client để DHCP server có thể biết được client nào đã gởi yêu cầu đến.
IP Lease Offer
Nếu có một Dynamic Host Configuration Protocol hợp lệ (nghĩa là nó có thể cấp địa chỉ IP cho một client) nhận được gói tin DHCPDISCOVER của client thì nó sẽ trả lời lại bằng một gói tin DHCPOFFER, gói tin này đi kèm theo những thông tin sau:
- MAC address của client
- Một IP address cấp cho (offer IP address)
- Một subnet mask
- Thời gian thuê (mặc định là 8 ngày)
- Địa chỉ IP của DHCP cấp IP cho client này
Lúc này DHCP server sẽ được giữ lại một IP đã offer (cấp) cho client để nó không cấp cho DHCP client nào khác. DHCP client chờ một vài giây cho một offer, nếu nó không nhận một offer nó sẽ rebroadcast (broadcast gói DHCPDISCOVER) trong khoảng thời gian là 2-, 4-, 8- và 16- giây, bao gồm một khoảng thời gian ngẫu nhiên từ 0 – 1000 mili giây.
Nếu DHCP client không nhận một offer sau 4 lần yêu cầu, nó sử dụng một địa chỉ IP trong khoảng 169.254.0.1 đến 169.254.255.254 với subnet mask là 255.255.0.0. Nó sẽ sử dụng trong một số trong khoảng IP đó và việc đó sẽ giúp các DHCP client trong một mạng không có DHCP server thấy nhau. DHCP client tiếp tục cố gắng tìm kiếm một DHCP server sau mỗi 5 phút.
IP Lease Selection
DHCP client đã nhận được gói tin DHCPOFFER thì nó sẽ phản hồi broadcast lại một gói DHCPREQUEST để chấp nhận cái offer đó. DHCPREQUEST bao gồm thông tin về DHCP server cấp địa chỉ cho nó. Sau đó, tấc cả DHCP server khác sẽ rút lại các offer (trường hợp này là trong mạng có nhiều hơn 1 DHCP server) và sẽ giữ lại IP address cho các yêu cầu xin IP address khác.
IP Lease Acknowledgement
DHCP server nhận được DHCPREQUEST sẽ gởi trả lại DHCP client một DHCPACK để cho biết là đã chấp nhận cho DHCP client đó thuê IP address đó. Gói tin này bao gồm địa chỉ IP và các thông tin cấu hình khác (DNS server, WINS server… ). Khi DHCP client nhận được DHCPACK thì cũng có nghĩa là kết thúc quá trình “tìm kiếm và xin sỏ” của mình.
Tất cả việc trao đổi thông tin giữa một DHCP server và DHCP client sẽ sử dụng UDP port là 67 và 68 (User Datagram Protocol). Một vài switch sẽ không cho phép các gói tin trao đổi theo kiểu broadcast đi qua, cho nên bạn cần phải config những switch này để được broadcast qua những port này.
Cơ chế tự động refresh lại thời gian đăng ký (lease time)
Bây giờ ta coi như là DHCP client đã đăng ký được một IP address rồi. Theo mặc định của DHCP server thì mỗi IP lease chỉ được có 8 ngày. Nếu theo như mặc định (8 ngày) thì một DHCP client sau một khoảng thời gian là 50% (tức là 4 ngày) nó sẽ tự động xin lại IP address với DHCP mà nó đã xin ban đầu. Nó DHCP client lúc này sẽ gởi một sẽ gởi một DHCPREQUEST trực tiếp (unicast) đến DHCP server mà nó đã xin ban đầu.
Nếu mà DHCP server đó “còn sống”, nó sẽ trả lời bằng một gói DHCPACK để renew (cho thuê mới lại) tới DHCP client, gói này bao gồm thông các thông số cấu hình mới cập nhật nhất trên DHCP server. Nếu DHCP server “đã chết”, thì DHCP client này sẽ tiếp tục sử dụng cấu hình hiện thời của nó.
DHCPDISCOVER để update địa chỉ IP của nó. Vào lúc này, nó không kiếm tới DHCP server ban đầu cho nó thuê nữa mà nó là sẽ chấp nhận bất cứ một DHCP server nào khác. Nếu thời gian đăng ký đã hết, thì client sẽ ngay lập tức dừng lại việc sử dụng IP address đã đăng ký đó. Và DHCP client sau đó sẽ bắt đầu tiến trình thuê một địa chỉ như ban đầu.
Chú ý: khi bạn khởi động (restart) lại DHCP client thì nó sẽ tự động renew lại IP address mà trước khi nó shut down.
Vậy nếu khi ta có một sự thay đổi về cấu hình trên Dynamic Host Configuration Protocol server mà ta muốn nó có tác dụng đến các client ngay lập tức thì phải làm sao?, chẳng lẽ phải đợi nó hết 50% à? (như vậy thì hơi bị… mỏi cổ). Ta có thể renew một IP lease “bằng tay” đối với DHCP client như sau: vào run, đánh command --> đánh lệnh là ipconfig /renew.
DHCP Replay Agent là gì ?
DHCP (Dynamic Host Configuration Protocol) Replay Agent là một máy tính hoặc một Router được cấu hình để lắng nghe và chuyển tiếp các gói tin giữa DHCP Client và DHCP Server từ subnet này sang subnet khác.
Dịch vụ Routing & Remote Access của Windows Server 2003 hỗ trợ tính năng cấu hình như một DHCP Relay Agent nên chúng ta không cần cài thêm chương trình khác, mà chỉ cần kích hoạt tính năng này trong Routing & Remote Access. Để hiểu lý do phải sử dụng DHCP Relay Agent Microsoft đưa ra các chiến lược sau:
- Nếu mỗi mạng chúng ta dựng lên 1 DHCP Server thì tốn kém và không cần thiết, việc bảo trì cũng như quản lý rất khó khăn.
- Có thể cấu hình Router để các tín hiệu Broadcast đi qua nhưng việc này sẽ gây những rắc rối khi hệ thống mạng gặp trục trặc. Thêm nữa là lưu lượng các gói tín Broadcasd quá nhiều sẽ làm tắt nghẽn hệ thống mạng.
Qui trình xử lý thông tin từ DHCP (Dynamic Host Configuration Protocol) Relay Agent:
- Client Broadcasts gói tin DHCP Discover trong nội bộ mạng.
- DHCP Relay Agent trên cùng mạng với Client sẽ nhận gói tin đó và chuyển đến DHCP server bằng tín hiệu Unicast.
- DHCP server dùng tín hiệu Unicast gởi trả DHCP Relay Agent một gói DHCP Offer
- DHCP Relay Agent Broadcasts gói tin DHCP Offer đó đến các Client
- Sau khi nhận được gói tin DHCP Offer, client Broadcasts tiếp gói tin DHCP Request.
- DHCP Relay Agent nhận gói tin DHCP Request đó từ Client và chuyển đến DHCP server cũng bằng tín hiệu Unicast.
- DHCP server dùng tín hiệu Unicast gởi trả lời cho DHCP Relay Agent một gói DHCP ACK. DHCP Relay Agent Broadcasts gói tin DHCP ACK đến Client. Đến đây là hoàn tất quy trình tiếp nhận xử lý và chuyển tiếp thông tin của DHCP Relay Agent.
Quản lý, giám sát hoạt động dịch vụ Dynamic Host Configuration Protocol
Cài đặt cấu hình dịch vụ DHCP là một phần của giải pháp mạng. Vì môi trường làm việc của dịch vụ DHCP là động, thay đổi liên tục. Vậy nên việc theo dõi hoạt động này là cần thiết tránh những sự cố có thể xảy ra trong hệ thống mạng. Cấu hình mặc định của Windows Server 2003 cơ sở dữ liệu của DHCP được lưu theo đường dẫn : %SystemRoot% \ System32 \ DHCP
Sao lưu phục hồi dữ liệu đối với dịch vụ Dynamic Host Configuration Protocol cũng quan trọng không kém, tăng khả năng chịu lỗi của DHCP Server khi gặp sự cố về phần cứng hoặc phục hồi trong trường hợp đặc biệt. Mặc định dịch vụ DHCP tự động sao lưu trong mỗi 60 phút theo đường dẫn %SystemRoot% \ System32 \ DHCP \ Backup. Trong các trường hợp dịch vụ DHCP không thể nạp dữ liệu thì nó tự động khôi phục lại theo đường dẫn mặc định trên.
Lưu ý: Khi bạn thay đổi đường dẫn sao lưu thì quá trình sao lưu và phục hồi bạn phải thao tác bằng tay(Manual)
Đồng bộ dữ liệu: thông thường khi có một số thay đổi về thông tin trong hệ thống mạng hoặc sau khi phục hồi dữ liệu của Dynamic Host Configuration Protocol thì sự đồng bộ diễn ra chưa kịp thời nên gây ra những sai sót. Để khắc phục ta tiến hành đồng bộ trên hệ thống. Khi đi tiến hành đồng bộ dữ liệu dịch vụ DHCP sẽ tổng hợp 2 thông tin từ Registry và trong cơ sở dữ liệu để tổng hợp chính xác các thông số cấu hình hiện tại. Ta có thể thấy trong Console quản lý.
Đưa ra các định mức hoạt động cho DHCP Server thông qua tất cả những gì liên quan đến Server bao gồm: các services, memory, processor… Theo dõi thông qua các gói tin Discovers,Offer,Requests,Acks… Right Click lên DHCP Server chọn Display Statistics….
Bảo mật trong Dynamic Host Configuration Protocol
Các kiểu tấn công có thể xảy ra đối với DHCP
Như chúng ta đã biết, hầu hết dịch vụ DNS và DHCP mặc định không được bảo mật. Lợi dụng điều này, các attacker có thể tiến hành tấn công các máy chủ chạy dịch vụ DNS và DHCP. Đối với dịch vụ DHCP thì các kiểu tấn công mà attacker có thể thực hiện đó là :
Tấn công từ chối dịch vụ bằng cách “vét cạn” tất cả các giá trị mà DHCP có thể cấp cho client
Khi DHCP Server nhận được một DHCP request từ client, DHCP Server sẽ cung cấp cho client đó một địa chỉ IP nằm trong dãy IP mà nó được phép cấp. Vì không có cơ chế chứng thực trong quá trình này, các attacker có thể dễ dàng tấn công làm ngưng dịch vụ này trên DHCP Server.
Attacker có thể thực hiện được việc này bằng cách gửi một lượng lớn DHCP request với các giá trị MAC address thay đổi liên tục đến DHCP Server. Khi DHCP Server nhận được các request với các MAC address khác nhau, Dynamic Host Configuration Protocol sẽ cấp một giá trị IP ứng với mỗi request đó. Vì số lượng địa chỉ IP có giới hạn nên chỉ cần một lượng request tương đối là attacker có thể đăng ký hết số lượng IP này trên DHCP.
Kết quả là các request hợp lệ của client sẽ không được DHCP Server cung cấp IP vì lúc này dịch vụ DHCP sẽ không còn phục vụ cho người đến sau. Đây là kiểu tấn công từ chối dịch vụ DHCP dễ dàng nhất mà attacker có thể thực hiện. Điều đáng nói ở đây là kẻ tấn công chỉ cần rất ít thời gian và bandwidth là có thể thực hiện được việc tấn công này.
Tuy nhiên, kiểu tấn công này có thể khắc phục được bằng cách sử dụng các switch có tính năng bảo mật của Cisco. Các switch này sẽ giới hạn số lượng MAC address có thể sử dụng trên một port. Mục đích là để ngăn chặn việc trong một khoản thời gian giới hạn, một port của nó có quá nhiều MAC address được phép sử dụng.
Nếu vượt qua quy định này, port đó sẽ shutdown ngay lặp tức. Thời gian để port này có thể hoạt động lại tùy thuộc vào giá trị mặc định hoặc do người quản trị mạng thiết lặp. Bằng cách này, thiết bị này có thể ngưng kiểu tấn công vét cạn đối với dịch vụ DHCP.
Tấn công theo kiểu Man-in-the-middle bằng việc sử dụng DHCP Server giả mạo
Như chúng ta đã biết, DHCP không yêu cầu chứng thực trong quá trình cấp phát IP cho client và DHCP client không biết địa chỉ IP của DHCP Server trong quá trình xin cấp IP. Lợi dụng việc này, attacker có thể xây dựng một DHCP Server giả mạo (Rogue DHCP Server), mục đích là cung cấp địa chỉ Default Gateway giả mạo (địa chỉ IP này là của attacker hoặc một máy tính nào đó được đặt dưới sự kiểm soát của attacker) cho DHCP client. Việc này cho phép attacker có thể xem trộm nội dung gói tin. Các bước tiến hành như sau :
- Đầu tiên, attacker xây dựng một DHCP giả mạo với đầy đủ các thông số để cấp cho client.
- Khi một DHCP client broadcast một gói tin DHCPDISCOVERY, cả hai DHCP hợp lệ và DHCP giả mạo cùng gửi gói tin DHCPOFFER đến client.
- Client sẽ tiếp nhận gói tin nào đến trước, nếu gói tin của DHCP Server hợp lệ đến trước thì quá trình tấn công theo dạng này sẽ thất bại. Do đó để chắc chắn rằng client sẽ nhận được gói tin do DHCP Server giả mạo cấp, attacker thường tiến hành tấn công từ chối dịch vụ theo kiểu “vét cạn” đối với DHCP Server thật.
- Trong gói tin response đến client, địa chỉ Default Gateway lại chỉ về máy tính cho attacker kiểm soát.
- Sau đó, khi nào client gửi gói tin cho mạng bên ngoài (thường là internet). Gói tin này sẽ được chuyển tiếp đến cho máy tính có địa chỉ Default Gateway giả mạo và nội dung bên trong bị xem trộm.
Sau khi xem trộm nội dung, gói tin sẽ được forward đến Default Gateway thật. Nhưng khuyết điểm của kiểu tấn công này là, attacker chỉ có thể xem trộm gói tin theo chiều từ client gửi đi mà thôi, chiều ngược lại từ bên ngoài gửi đến client thì attacker hoàn toàn không biết.
Để khắc phục kiểu tấn công này, các thiết bị switch của Cisco cung cấp tính năng bảo mật dành cho DHCP. Tính năng này được gọi là DHCP snooping, bằng cách chỉ cho kết nối đến DHCP trên một hoặc một số port nhất định mà thôi. Các port này được gọi là trusted port, chỉ có những port này mới cho phép gói tin DHCP response hoạt động. Port này được người quản trị mạng kết nối đến DHCP Server thật trong mạng. Mục đích là ngăn chặn không cho DHCP giả mạo hoạt động trên những port còn lại.
Tấn công theo kiểu DNS redirect bằng cách sử dụng DHCP Server giả mạo
Đây là kiểu tấn công rất thông dụng của phương pháp man-in-the-middle. Thay vì giả mạo địa chỉ Default Gateway, DHCP Server giả mạo sẽ cung cấp địa chỉ IP của DNS Server giả. Trên DNS Server này chứa các thông tin phân giải tên đã bị “nhiễm bẩn” (DNS Server nằm trong sự kiểm soát của attacker).
Bảo mật cơ bản cho DHCP (Dynamic Host Configuration Protocol) Server
- Bảo mật về mặt vật lý cho các máy chủ DHCP (physically secure)
- Nên sử dụng hệ thống file NTFS để lưu trữ dữ liệu hệ thống.
- Triển khai và ứng dụng các giải pháp anti-virus mạnh cho hệ thống.
- Thường xuyên cập nhật các bản vá lỗi cho các phần mềm và Windows.
- Các dịch vụ hay các phần mềm không sử dụng thì nên xóa hoặc uninstall đi.
- Thực hiện việc quản lý DHCP với user có quyền hạn tối thiểu nhất.
- DHCP Server phải được đặt phía sau firewall.
- Đóng tất cả các port không sử dụng đến.
- Để tăng thêm tính bảo mật cho DHCP Server, bạn có thể sử dụng VPN tunnel để bảo mật traffic DHCP.
- Sử dụng filter MAC Address.
- Giám sát hoạt động của DHCP bằng cách xem qua các file log và xem thông tin thống kê của hệ thống trên Dynamic Host Configuration Protocol Server.
Vậy là chúng ta đã cùng đi qua bài viết DHCP (Dynamic Host Configuration Protocol) là gì? 4 cơ chế hoạt động của DHCP. Nếu thay hay hãy share và vote 5* cho bài viết nhé các bạn. Theo dõi chuyên mục có thể bạn chưa biết để tham khảo thêm nhiều bài viết hay hơn tại HuynhQuiIT.Com nhé các bạn. Nếu có gì thắc mắc các bạn có thể liên hệ mình qua Fanpage.