Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Làm thế nào để kích hoạt tính năng ghi nhật ký truy vấn DNS và phân tích cú pháp tệp nhật ký trên Windows Server?

Trong bài viết này, chúng tôi sẽ hướng dẫn cách bật tính năng ghi nhật ký DNS cho tất cả các truy vấn của người dùng trên máy chủ DNS chạy Windows Server, cách phân tích cú pháp và phân tích nhật ký DNS. Tôi phải đối mặt với nhiệm vụ này khi phải gỡ bỏ bộ điều khiển miền Active Directory cũ trong văn phòng chi nhánh và tôi cần hiểu thiết bị nào vẫn đang sử dụng máy chủ DNS. Sau khi bật nhật ký DNS và phân tích nó, tôi có thể tìm thấy các thiết bị và định cấu hình lại chúng để sử dụng các máy chủ DNS khác. Ngoài ra, phương pháp này sẽ giúp bạn tìm các máy chủ có hoạt động đáng ngờ trong mạng Active Directory của bạn (truy cập các URL độc hại, máy chủ botnet, v.v.).

Tất nhiên, bạn có thể cài đặt Wireshark, Microsoft Network Monitor hoặc pktmon trên máy chủ DNS của mình để thu lưu lượng truy cập trên Cổng 53, nhưng sẽ dễ dàng hơn khi sử dụng ghi nhật ký truy vấn DNS tích hợp trên Windows Server.

Theo mặc định, ghi nhật ký DNS bị tắt trên Windows Server. Để kích hoạt nó:

  1. Mở Trình quản lý DNS snap-in (dnsmgmt.msc ) và kết nối với máy chủ DNS bạn muốn;
  2. Mở thuộc tính của nó và đi tới Ghi nhật ký gỡ lỗi tab;
  3. Bật Gói nhật ký để gỡ lỗi tùy chọn;
  4. Sau đó, bạn có thể định cấu hình các tùy chọn ghi nhật ký:chọn hướng gói DNS, giao thức (UDP và / hoặc TCP), loại gói (truy vấn DNS đơn giản, cập nhật hoặc thông báo);
  5. Sử dụng Lọc gói theo địa chỉ IP tùy chọn, bạn có thể chỉ định địa chỉ IP để ghi các gói tin đến hoặc đi (nó cho phép giảm đáng kể kích thước nhật ký);
    Làm thế nào để kích hoạt tính năng ghi nhật ký truy vấn DNS và phân tích cú pháp tệp nhật ký trên Windows Server?
  6. Trong Đường dẫn và tên tệp nhật ký , chỉ định tên của tệp văn bản mà bạn muốn ghi lại tất cả các sự kiện. Theo mặc định, kích thước của nhật ký DNS được giới hạn ở 500MB. Sau khi đạt được nó, các sự kiện tra cứu DNS cũ sẽ được ghi đè bằng các sự kiện mới.

Ngoài ra, bạn có thể bật ghi nhật ký truy vấn DNS hoặc tải cài đặt hiện tại bằng PowerShell:

Get-DnsServerDiagnostics

Làm thế nào để kích hoạt tính năng ghi nhật ký truy vấn DNS và phân tích cú pháp tệp nhật ký trên Windows Server?

Lưu ý rằng trên các máy chủ Windows DNS được tải nhiều, ghi nhật ký truy vấn DNS có thể gây ra tải thêm cho CPU, RAM và bộ nhớ (hiệu suất đĩa phải khá đủ).

Sau đó, chạy truy vấn DNS đối với máy chủ của bạn từ bất kỳ máy tính nào. Ví dụ:nếu địa chỉ IP của máy chủ DNS đang chạy Windows Server của chúng tôi là 192.168.13.10:

nslookup woshub.com 192.168.13.10

Làm thế nào để kích hoạt tính năng ghi nhật ký truy vấn DNS và phân tích cú pháp tệp nhật ký trên Windows Server?

Hoặc chạy thử phân giải địa chỉ DNS bằng PowerShell:

Resolve-DnsName -Name woshub.com -Server 192.168.13.10

Truy vấn tra cứu DNS đã trả lại địa chỉ IP máy khách của máy chủ được yêu cầu.

Hãy đảm bảo rằng truy vấn đã xuất hiện trong nhật ký máy chủ DNS.

Để thực hiện, hãy tìm kiếm tệp nhật ký văn bản theo địa chỉ IP của ứng dụng khách (192.168.13.130 ). Bạn có thể mở tệp nhật ký trong NotePad hoặc grep tệp đó bằng PowerShell:

get-content "C:\Logs\dc01dns.log" | Out-String -Stream | Select-String "192.168.13.130"

Làm thế nào để kích hoạt tính năng ghi nhật ký truy vấn DNS và phân tích cú pháp tệp nhật ký trên Windows Server?

Đây là ví dụ sự kiện:

11/17/2021 6:00:00 AM 0D0C PACKET 00000272D98DD0B0 UDP Rcv 192.168.13.130 0002 Q [0001 D NOERROR] A (8)woshub(2)com(0)

Như bạn có thể thấy, truy vấn DNS để phân giải tên (8)woshub(2)com(0) đã được nhận (rcv ) từ máy khách 192.168.13.130 qua UDP , thì máy chủ DNS thành công (NOERROR ) đã phản hồi nó (snd ).

Tất cả các trường được mô tả ở đầu tệp:

Field # Information Values
------- ----------- ------
1 Date
2 Time
3 Thread ID
4 Context
5 Internal packet identifier
6 UDP/TCP indicator
7 Send/Receive indicator
8 Remote IP
9 Xid (hex)
10 Query/Response R = Response
blank = Query
11 Opcode Q = Standard Query
N = Notify
U = Update
? = Unknown
12 Flags (hex)
13 Flags (char codes) A = Authoritative Answer
T = Truncated Response
D = Recursion Desired
R = Recursion Available
14 ResponseCode
15 Question Type
16 Question Name

Do một định dạng cụ thể, rất khó để phân tích cú pháp và phân tích tệp nhật ký DNS như vậy theo cách thủ công. Vì vậy, bạn cần chuyển đổi nhật ký truy vấn DNS sang định dạng thuận tiện hơn, sử dụng Get-DNSDebugLog.ps1 tập lệnh.

Tập lệnh PowerShell này không phải của tôi nhưng hiện không có sẵn trong TechNet Scriptcenter, vì vậy tôi đã lưu nó vào kho lưu trữ GitHub của mình:https://github.com/maxbakhub/winposh/blob/main/Get-DNSDebugLog.ps1.

Tải tệp xuống đĩa của bạn. Sau đó, cho phép các tập lệnh PowerShell thực thi trong phiên bảng điều khiển hiện tại:

Set-ExecutionPolicy -Scope Process Unrestricted

Nhập hàm từ Get-DNSDebugLog.ps1 vào phiên của bạn:

. C:\ps\Get-DNSDebugLog.ps1

Sau đó, chuyển đổi nhật ký DNS sang một định dạng thuận tiện hơn:

Get-DNSDebugLog -DNSLog C:\Logs\dc01dns.log | format-table

Làm thế nào để kích hoạt tính năng ghi nhật ký truy vấn DNS và phân tích cú pháp tệp nhật ký trên Windows Server?

Hoặc bạn có thể xuất kết quả sang tệp CSV để phân tích thêm trong Excel (hoặc bạn có thể truy cập tệp Excel trực tiếp từ PowerShell và viết các truy vấn DNS bạn muốn vào tệp đó).

Get-DNSDebugLog -DNSLog C:\Logs\dc01dns.log | Export-Csv C:\log\ProperlyFormatedDNSLog.csv –NoTypeInformation

Bạn có thể xuất tệp sang Excel và sử dụng tệp để phân tích các truy vấn DNS (tệp chứa địa chỉ IP máy chủ và tên DNS mà họ yêu cầu từ máy chủ DNS của bạn).

Ngoài ra, bạn có thể sử dụng Trình phân tích cú pháp nhật ký 2.2 (https://docs.microsoft.com/en-us/archive/blogs/secadv/parsing-dns-server-log-to-track-active-clients) để phân tích cú pháp và phân tích tệp nhật ký DNS. Ví dụ:lệnh bên dưới sẽ hiển thị số lượng truy vấn DNS từ mỗi địa chỉ IP:

LogParser.exe -i:TSV -nskiplines:30 -headerRow:off -iSeparator:space -nSep:1 -fixedSep:off -rtp:-1 "SELECT field9 AS IP, REVERSEDNS(IP) AS Name, count(IP) as QueryCount FROM "C:\Logs\dc01dns.log" WHERE field11 = 'Q' GROUP BY IP ORDER BY QueryCount DESC"

Làm thế nào để kích hoạt tính năng ghi nhật ký truy vấn DNS và phân tích cú pháp tệp nhật ký trên Windows Server?

Trong ví dụ này, chúng tôi đã sử dụng tệp văn bản để thu thập nhật ký DNS. Trong Windows Server 2012 và mới hơn, bạn có thể ghi các truy vấn DNS trực tiếp vào Trình xem sự kiện (Microsoft-Windows-DNS-Server/Audit ). Nhưng theo ý kiến ​​của tôi, nhật ký DNS văn bản dễ phân tích hơn nhiều.

Tất nhiên, nếu bạn muốn ghi các truy vấn DNS trên nhiều máy chủ, bạn nên sử dụng một giải pháp đặc biệt để thu thập, lưu trữ và xử lý nhật ký, chẳng hạn như Splunk, ELK, Graylog hoặc Azure Log Analytics.

Sau khi bật nhật ký truy vấn DNS và phân tích nó, tôi đã tìm thấy địa chỉ IP của các thiết bị vẫn đang sử dụng máy chủ DNS và định cấu hình lại chúng với các máy chủ DNS khác. Nếu DC cũ không chứa bất kỳ vai trò FSMO nào, bạn có thể xóa nó (các sự kiện đăng nhập người dùng AD không quan trọng ở đây).