Trao đổi với tôi

http://www.buidao.com

11/17/09

[Net] Tìm hiểu DHCP – Dynamic Host Configuration Protocol

Tiếp theo loạt bài tìm hiểu về DNS, nay sangnt viết tiếp về DHCP. Hy vọng bài viết có ích cho tất cả mọi người. Bài viết được tổng hợp, chọn lọc và dịch từ nhiều nguồn tài liệu khác nhau.

1. Giới thiệu dịch vụ DHCP – Dynamic Host Configuration Protocol

Thông thường trong một mô hình mạng, người quản trị có thể cấu hình IP cho các máy client theo 2 cách là cấu hình thủ công (static) và sử dụng dịch vụ DHCP để cấp phát IP động (dynamic).

Static : người quản trị phải khai báo địa chỉ IP dạng tĩnh này trên từng máy client theo cách thủ công. Chỉ nên dùng cách này để cấp phát địa chỉ IP cho các client khi :

- Một máy chủ hoặc một máy trạm (client) đang chạy một ứng dụng đòi hỏi phải có IP tĩnh.

- Trong mạng không có DHCP Server.

- Quy mô mạng nhỏ (dưới 20 máy).

Dùng cách này thì người quản trị không cần cấu hình thêm DHCP, giảm bớt một phần việc cho người quản trị. Nhưng việc làm này chỉ phù hợp đối với hệ thống mạng có quy mô nhỏ (<20 máy). Nếu một mạng lớn thì việc cấp phát trùng địa chỉ IP là việc hoàn toàn có khả năng xảy ra, dẫn đến máy trạm trên mạng có địa chỉ IP trùng lặp (duplicate IP) này sẽ không truy cập được vào mạng, và việc cấp phát IP như vậy trong một mạng lớn là việc không khả thi.

Dynamic : một địa chỉ IP động là một địa chỉ sẽ thay đổi trong khoản thời gian xác định. Người quản trị dùng dịch vụ DHCP để cấp phát địa chỉ IP động này cho các máy trạm trong mạng. Phù hợp với việc cấp phát địa chỉ cho một mạng lớn, 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 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,…

2. Cơ chế hoạt động của DHCP

Giao thức DHCP 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 :

a. IP lease request
b. IP lease offer
c. IP lease selection
d. 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à DHCPDISCOVER, 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.
This image has been resized. Click this bar to view the full image. The original image is sized 600x328.

IP Lease Offer
Nếu có một DHCP 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.
This image has been resized. Click this bar to view the full image. The original image is sized 600x366.

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.
This image has been resized. Click this bar to view the full image. The original image is sized 600x407.

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ấc 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)
Click this bar to view the full image.

3. 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.

This image has been resized. Click this bar to view the full image. The original image is sized 600x362.

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ó.

This image has been resized. Click this bar to view the full image. The original image is sized 600x408.

Và nếu sau 87.5% (7 ngày) của thời gian thuê hiện thời của nó, nó sẽ broadcast một 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.

This image has been resized. Click this bar to view the full image. The original image is sized 600x410.

Vậy nếu khi ta có một sự thay đổi về cấu hình trên DHCP 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. Khi đó nó sẽ gởi một DHCPREQUEST đến DHCP server để update thông tin về cấu hình, và thời gian đăng ký mới. Và ngược lại, nếu ta không muốn đăng ký cái IP address này nữa ta có thể đánh lệnh ipconfig /release. Lúc này, nó sẽ gởi đến DHCP server một DHCPRELEASE. Sau lệnh này, client sẽ không còn liên lạc với network bằng TCP/IP nữa.
Click this bar to view the full image.


4. DHCP Replay Agent là gì ?

DHCP 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.

5. DHCP Relay Agent hoạt động như thế nào?

1. Client Broadcasts gói tin DHCP Discover trong nội bộ mạng.

2. 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.

3. DHCP server dùng tín hiệu Unicast gởi trả DHCP Relay Agent một gói DHCP Offer

4. DHCP Relay Agent Broadcasts gói tin DHCP Offer đó đến các Client

5. Sau khi nhận được gói tin DHCP Offer, client Broadcasts tiếp gói tin DHCP Request.
This image has been resized. Click this bar to view the full image. The original image is sized 600x340.

6. 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.
This image has been resized. Click this bar to view the full image. The original image is sized 600x371.

7. DHCP server dùng tín hiệu Unicast gởi trả lời cho DHCP Relay Agent một gói DHCP ACK.
This image has been resized. Click this bar to view the full image. The original image is sized 600x404.

8. 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.
Click this bar to view the full image.


6. Cấp phép (authorize) một DHCP service

Bạn phải cấp phép (hay còn gọi là ủy quyền) một DHCP server trước khi nó có thể thực hiện việc cho DHCP client thuê địa chỉ IP. Việc yêu cầu cấp phép cho các DHCP server sẽ ngăn chặn việc các DHCP server có khả năng cung cấp các địa chỉ IP không hợp lệ cho các client (hay còn gọi là DHCP giả mạo) trong nội bộ domain của chúng ta. Để thực hiện được việc này bạn phải logon bằng user nằm trong group Enterprise Admins.

Theo mô hình trên, giả sử chúng ta có 2 Server chùng chạy dịch vụ DHCP (tạm gọi đó là DHCP Server1 và DHCP Server2) trong nội bộ domain của mình. Nhưng chỉ có duy nhất DHCP Server1 là được cấp phép chạy dịch vụ này. Đầu tiên khi dịch vụ DHCP trên Server1 được kích hoạt (start) thì Server1 sẽ kiểm tra xem dịch vụ DHCP của mình có được Domain Controller cấp phép hoạt động hay không? Bằng cách gửi một yêu cầu đến máy chủ Domain Controller nhờ kiểm tra dùm mình có được phép cấp IP động cho nội bộ domain hay không?

Sau khi nhận được yêu cầu kiểm tra này từ phía DHCP Server1, Domain Controller sẽ tiến hành kiểm tra xem Server1 có được cấp phép hoạt động dịch DHCP hay không?

Vì Server1 đã được cấp phép hoạt động dịch vụ DHCP nên Server1 được phép cung cấp địa chỉ IP động cho các DHCP client trong nội bộ domain.

Ngược lại với Server1, Server2 sau khi khởi động dịch vụ DHCP cũng tiến hành nhờ Domain Controller kiểm tra. Do không được cấp phép hoạt động dịch vụ, cho nên mặc dù dịch vụ đã được start nhưng Server2 vẫn không được phép cung cấp địa chỉ IP động cho nội bộ domain.

Nếu DHCP server là không được authorize thì DHCP service sẽ log (ghi lại) một error trong system log (các bạn có thể tìm thấy trong Administrative Tools/Event log). Cuối cùng DHCP Client xin được IP từ DHCP Server1.


7. Phân biệt sự khác nhau giữa các level như server, scope, class và reserved client trong dịch vụ DHCP

+ Server level : các option khai báo ở cấp độ server sẽ được áp đặt tới tất cả các DHCP client của DHCP Server. Đây là option có độ ưu tiên thấp nhất.
This image has been resized. Click this bar to view the full image. The original image is sized 600x379.

+ Scope level : các option khai báo ở cấp độ scope sẽ được áp đặt tới tất cả các DHCP client của riêng scope đó mà thôi, các scope khác sẽ không chịu ảnh hưởng. Đây là option có độ ưu tiên cao hơn option ở cấp độ server level.
This image has been resized. Click this bar to view the full image. The original image is sized 600x383.

+ Class level : Các option khai báo ở cấp độ class level sẽ được áp đặt tới những thành viên của class. Độ ưu tiên của các option này cao hơn option ở cấp độ scope level.
This image has been resized. Click this bar to view the full image. The original image is sized 566x368.

+ Reversed client level : Các option ở cấp độ này sẽ chỉ được áp đặt đến một DHCP client mà thôi. Đây là option có độ ưu tiên cao nhất. Nó sẽ ghi đè tất cả các option khác nếu có conflict (xung đột level) xảy ra.
This image has been resized. Click this bar to view the full image. The original image is sized 600x386.


8. Áp dụng class level option trong việc cấu hình thông tin IP trên DHCP Server

Giả sử một vấn đề đặt ra là trong cùng một scope, chúng ta muốn cho một số máy có thể truy cập Internet và số máy còn lại thì không được truy cập Internet. Vấn đề ở đây là các máy nào không được truy cập Internet thì ta chỉ cần chỉ Default Gateway về một địa chỉ IP nào đó không phải là Default Gateway thật thì các máy đó sẽ tự động không thể truy cập Internet được. Các máy được chỉ đúng Default Gateway thì sẽ truy cập Internet được.

Theo các định nghĩa về các level option ở trên thì để giải quyết vấn đề này ta chỉ có 2 sự lựa chọn đó là Class level và Reversed client level. Nhưng nếu số lượng máy tính trong scope nhiều thì việc sử dụng Reversed client level là việc không khả thi vì bạn phải tiến hành cấu hình rất nhiều lần trên mỗi DHCP client. Ngược lại giải pháp sử dụng Class level thì rất hữu hiệu, chúng ta chỉ cần cấu hình 2 user class khác nhau.

Trong trường hợp này chúng ta sẽ tiến hành định nghĩa 2 user class : Allow Internet và Deny Internet. Thực hiện các bước sau trên máy DHCP Server để định nghĩa 2 user class này :

1. Chọn Start --> Run gõ lệnh dhcpmgmt.msc

2. Chuột phải vào DHCP Server --> Define User Classes

3. Nhấn Add

4. Trong Display Name điền vào Allow Internet và điền vào cột ASCII giá trị là A --> OK

5. Nhấn Add để định nghĩa thêm cho nhóm Deny Internet

6. Trong Display Name điền vào Deny Internet và điền vào cột ASCII giá trị là D --> OK

7. Hai user class mà chúng ta vừa định nghĩa đã có trong DHCP User Classes --> Nhấn Close

8. Cấu hình Scope Options --> chọn Configure Options

9. Chọn tab Advanced, chọn Allow Internet trong User class, đánh dấu check vào 003 Router và điền địa chỉ IP đúng của Default Gateway --> Nhấn Apply
Click this bar to view the full image.

10. Chọn tiếp Deny Internet trong User class, đánh dấu check vào 003 Router và nhập địa chỉ không phải của Default Gateway --> Nhấn Apply --> OK
Click this bar to view the full image.

9. Cấu hình DHCP Client để nhận user class trong class level của DHCP Server

Có nhiều cách để tiến hành nhóm các máy tính vào từng user class thích hợp, Admin có thể tiến hành nhập bằng tay trên từng máy tính DHCP client hoặc triển khai bằng Group Policy thông qua 1 file thực thi và gán xuống cho từng máy client theo chức năng Log on Script.

Trong ví dụ minh họa này sangnt thực hiện cách nhập bằng tay trên máy Client

1. Vào Start --> Run gõ lệnh cmd

2. Trong màn hình command line gõ lệnh ipconfig /release để hủy bỏ IP đã thuê.

3. Nhập vào dòng lệnh ipconfig /setclassid Allow A để đưa client này vào nhóm Allow Internet

4. Nhập tiếp dòng lệnh ipconfig /renew để xin cấp mới địa chỉ IP

5. Nhập tiếp dòng lệnh ipconfig /all để kiểm tra thông tin IP vừa nhận được.

10. Quản lý, giám sát hoạt động dịch vụ DHCP

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ụ DHCP 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 DHCP 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….

• Dùng các file log theo dõi sự hoạt động hàng ngày. Các File Log ghi nhận mỗi 24 giờ :

a) Khi DHCP Server vừa khởi động hoặc qua ngày mới (sau 12h đêm) DHCP Server sẽ ghi nhận sự kiện mới lên File Log. Có 2 trường hợp có thể xảy ra :

+ Nếu File Log đang có cũ hơn 24h thì DHCP Server sẽ ghi đè lên dữ liệu này.

+ Nếu File Log ghi nhận sự kiện chưa quá 24h thì DHCP Server sẽ ghi nối tiếp.

b) Sau khi các dữ liệu bắt đầu ghi nhận thì ta nên kiểm tra xem sự hoạt động các File Log có kích hoạt chưa, dung lượng các file log có tăng đột biến hay không, kiểm tra chính xác ngày giờ hệ thống, dung lượng đĩa cứng có đủ để lưu File Log hay không.

+ Ở trạng thái mặc định thì các File Log chỉ lưu 50 sự kiện.

+ Nếu dung lượng ổ cứng không đủ nhu cầu tối thiểu là 20 megabytes thì các File Log dừng lại không ghi tiếp.

+ Trong Registry cũng quy định không cho các File Log ghi quá 1/7 dung lượng trống trên Server (không quá 10MB nếu dung lượng trống trên Server là 70MB).Trong trường hợp này DHCP Server sẽ đóng các File Log đang có và từ chối ghi nhận sự kiện tiếp theo.


11. Backup Database DHCP

Toàn bộ Database của DHCP Server nằm trong đường dẫn %systemroot%\system32\dhcp

Người thực hiện : Domain Admin, DHCP Admin, Local Admin, Backup Operator.

1. Vào Start à Run gõ lệnh dhcpmgmt.msc

2. Chuột phải vào DHCP Server --> Chọn Backup

3. Chỉ đường dẫn để lưu trữ Database của DHCP Server

4. Nhấn OK để hoàn tất backup


12. Restore Database DHCP

Người thực hiện : Domain Admin, DHCP Admin, Local Admin, Backup Operator.

1. Vào Start --> Run gõ lệnh dhcpmgmt.msc

2. Chuột phải vào DHCP Server --> chọn Restore

3. Chỉ đường dẫn đến thư mục đã backup dhcp trước đó --> OK

4. Hệ thống sẽ yêu cầu stop và sau đó sẽ restart lại dịch vụ DHCP --> OK

5. Refesh lại DHCP, tiếp đến chuột phải vào DHCP Server chọn Reconcile All Scopes để đồng bộ hóa giữa Database và Registry.

Ok, đến đây công việc khôi phục Database trên DHCP đã hoàn thành


13. Di chuyển DHCP Server qua một Server khác

Trong thực tế, đôi lúc chúng ta cần phải di chuyển một DHCP Server từ server này qua một server khác để đáp ứng nhu cầu công việc của công ty. Để hiện thực việc di chuyển một DHCP Server chạy trên Windows Server 2003, bạn cần phải tiến hành các bước sau :

- Xuất cơ sở dữ liệu của DHCP Server đang sử dụng trên máy cũ ra một file text.

- Cài đặt một DHCP Server trên máy tính Windows Server 2003 mới.

- Nhập cơ sở dữ liệu của DHCP Server cũ từ file text vào DHCP Server mới.

1. Log on vào DHCP Server cũ với account thuộc nhóm Administrators

2. Vào Start --> Run gõ lệnh cmd --> OK

3. Nhập vào dòng lệnh netsh dhcp server export C:\export_dhcp.txt all để xuất tất cả cơ sở dữ liệu của DHCP Server cũ ra file text export_dhcp.txt

4. Cài đặt DHCP Server trên máy tính mới. Chỉ cài đặt dịch vụ, không cần phải cấu hình bất kỳ một scope nào.

5. Trên máy DHCP Server mới, copy file đã export từ Server cũ vào máy tính (copy vào C:\).

6. Trên máy DHCP Server mới, vào Start --> Run gõ lệnh cmd --> OK

7. Nhập vào dòng lệnh netsh dhcp server import C:\export_dhcp.txt để nhập file cơ sỡ dữ liệu từ Server cũ vào Server mới.

8. Khởi động lại DHCP Server để hoàn thành việc di chuyển này.

14. 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, DHCP 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 :

1. Đầ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.
2. 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.
3. 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.
4. 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.
5. 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.

Click this bar to view the full image.

Tấn công man-in-the-middle bằng cách sử dụng DHCP Server giả mạo

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). Khi người dùng muốn phân giải tên địa chỉ www.bank.com. DNS Server giả mạo sẽ dẫn client đến địa chỉ 99.99.99.99 là website giả được dựng lên bởi attacker. Bằng cách giả mạo trang chủ giống y website thật là www.bank.com. Attacker có thể capture các thông tin nhạy cảm như user id và mật khẩu. Sau khi nhận được thông tin này, website giả mạo sẽ thông báo đăng nhập sai, sau đó sẽ redirect đến website www.bank.com thật.

Click this bar to view the full image.

Tấn công theo kiểu DNS redirect bằng cách sử dụng DHCP Server giả mạo

15. Bảo mật cơ bản cho DHCP 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 DHCP Server.

16. Sử dụng Event Viewer để giám sát hoạt động của DHCP

Bạn có thể sử dụng công cụ Event Viewer nằm trong thư mục Administrative Tools để giám sát hoạt động của DHCP. Event Viewer lưu trữ các sự kiện của system, application và security. Tất cả các sự kiện giám sát hoạt động của DHCP được ghi nhận trong security log. Các thông tin này ghi nhận cả hoạt động của dịch vụ DHCP và DHCP Server, ví dụ như DHCP Server được start và stop vào lúc nào, dãy IP cấp cho client gần cạn kiệt vào lúc nào, database của DHCP bị lỗi vào lúc nào.

Mỗi một sự kiện trong log được đánh một mã số (ID number) riêng biệt với nhau. Sau đây là một vài ID sự kiện thường gặp trong system log của DHCP :

Event ID 1037 (Information): cho biết DHCP Server đã xóa sạch cơ sở dữ liệu.

Event ID 1044 (Information): cho biết DHCP Server được ủy quyền (authorized) để có thể cung cấp địa chỉ IP cho client.

Event ID 1042 (Warning): cho biết dịch vụ DHCP đang chạy trên hệ thống thì phát hiện có dịch vụ DHCP khác cũng được chạy trên mạng (tức là có 2 máy tính chạy dịch vụ DHCP trong hệ thống).

Event ID 1056 (Warning): cho biết dịch vụ DHCP được chạy trên máy chủ Domain Controller nhưng nó không được cấu hình để cập nhật DNS động.

Event ID 1046 (Error): cho biết dịch vụ DHCP chạy trên Server này chưa được ủy quyền (authorized) để có thể cung cấp IP động cho client.

17. Các vấn đề cần lưu ý của dịch vụ DHCP

Có các trường hợp Client tự cài dịch vụ DHCP trong hệ thống mạng(DHCP Server giả mạo) điều này gây ảnh hưởng đến các Client muốn được cấp IP nhưng nằm xa vị trí DHCP Server thật sự. Do tính hiệu xin và cấp địa chỉ IP là Broadcast nên sẽ có trường hợp Client nhận không đúng thông số IP do DHCP Server giả mạo cấp. Bạn cần rà soát kỹ trong hệ thống mạng của mình.

- Các thiết bị phần cứng như Router ADSL,Wireless.. cũng có khả năng cấp địa chỉ IP, do đó cần tắt chức năng cấp IP động trên các thiết bị trước khi đưa vào sử dụng.

- Chỉ có thành viên của nhóm DHCP Administrators mới cấu hình và sử đung các tính năng trong dịch vụ DHCP. Chỉ cần cung cấp đủ quyên cho các đối tượng liên quan đến quản lý duy trì hoạt động của dịch vụ này.