Quản trịmạngWindows bằng Script-Phần9:Tìmhiểukịchbảnđiềukhiểnxa Nguồn : quantrimang.com Mitch Tulloch Lúc này bạn cần phải quay lại ôn và nghiên cứu một cách chi tiết các kỹ thuật của kịchbảnđiềukhiểnxa trước khi chúng ta tiến xa hơn trong vấn đề này. Một cách cũng tốt cho bạn đó là nhảy vào và thử mọi thứ, tuy nhiên cách làm này đôi khi lại đưa b ạn gặp phải bức tường. Để tránh gặp phải bức tường này chúng ta phải tìmhiểu về những nền tảng của chúng. Hai loại kịchbảnđiềukhiểnxa Có hai loại kịchbảnđiềukhiển xa. Loại thứ nhất là khi chúng ta chạy một kịchbản trên máy tính A và máy tính mục tiêu là B để thực hiện một số hành động trên nó. Trong thử nghiệm bằng sử dụng kịchbản ChangeIPAddress.vbs, chúng tôi đã thay đổi dòng: strComputer = "." thành: strComputer = "xp2" Nếu chúng tôi sử dụng dòng đầu trên ở trên và chạy kịchbản trên máy tính A thì sẽ thay đổi được địa chỉ IP của máy tính này. Còn nếu chúng ta sử dụng dòng thứ hai ở trên và chạy kịchbản trên máy tính A thì sẽ thay đổi được địa chỉ IP của máy tính B. Kiểu thứ hai của kịchbảnđiềukhiểnxa và nó làm việc giống như vậ y. Tôi là một quảntrị viên, đã đăng nhập vào máy tính A và có một kịchbản muốn sử dụng để thực hiện một số công việc trên máy tính B. Tuy nhiên thay vì cố gắng chạy kịchbản trên máy tính A và mục tiêu là máy tính B, tôi muốn chạy kịchbản trực tiếp trên máy tính B. Chính vì vậy tôi đã đưa kịchbản từ máy tính A sang máy tính mục tiêu B và sau đó chạy nó ở đây. Tôi có thể thực hiện điều đó như thế nào? Nếu có một môi trường Active Directory sau đó tôi có thể thử và chạy kịchbản như kịchbản đăng nhập trên máy tính điềukhiển xa. Chúng ta hãy xem thực hiện như thế nào trong bài tiếp theo, nhưng bây giờ hãy chú ý rằng có hai loại kịchbảnđiềukhiển xa. • Chạy kịchbản trên máy tính nội bộ và nhắm đến máy tính điềukhiển xa. • Chạy kịchbản trực tiếp trên máy tính điềukhiển xa. Hãy diễn tả sự khác nhau giữa hai cách mô tả kịchbảnđiềukhiển xa: • Kiểu thứ nhất liên quan đến việc kết nối đến máy tính điềukhiểnxa và sau đó chạy kịch bản. • Kiểu thứ hay liên quan đến việc triển khai kịchbản cho máy tính điềukhiển xa, sau đó chạy kịch bản. Tìmhiểu về kết nối kịchbảnđiềukhiểnxa Bây giờ chúng ta hãy tập trung vào kiểu đầu tiên của kịchbảnđiềukhiển xa. Nó có nghĩa gì khi chạy một kịchbản trên máy tính cục bộ của bạn để kết nối đến một máy tính điềukhiểnxa và chạy ngược lại nó? Nó có 3 ý nghĩa: • Kết nối mạng • Nhận dạng người dùng • Cho phép thích hợp 1. Kết nối mạng Với kịchbản để thực hiện điều gì đó trên máy tính điềukhiển xa, trước tiên nó phải thành lập được kết nối mạng với máy tính điềukhiển xa. Những vấn đề gì có thể ngăn cản kết nối mạng của bạn? Đầu tiên, nó có thể là vấn đề tên, nếu kịchbản của bạn không th ể giải quyết được hostname của máy tính hoặc FQDN vào địa chỉ IP của nó thì kịchbản có thể bị lỗi. Thứ hai, nó có thể là vấn đề tường lửa. Chúng ta đã nhìn thấy trong bài viết trước, để có được kịchbản WMI của chúng ta có thể chạy cho một máy tính điềukhiểnxa thì chúng ta phải mở ngoại lệ quảntrị từ xa Remote Administration trong tường lửa Windows trên máy tính điềukhiển xa. Bây giờ n ếu bạn mở Windows Firewall applet từ Control Panel và chọn tab Exceptions thì sẽ không thấy hộp kiểm Remote Administration được gán nhãn mà bạn có thể chọn để mở ngoại lệ này. Lý do của điều này là Control Panel applet này có ý nghĩa chính dành cho người dùng gia đình sử dụng để cấu hình tường lửa của họ. Trong môi trường doanh nghiệp, nơi Active Directory được sử dụng, cách quản lý Windows Firewall được ưa thích là sử dụng Group Policy. Chúng ta đã thấy trong bài viết trước rằ ng thiết lập Group Policy mà chúng ta cần cấu hình như dưới đây: Computer Configuration\Administrative Templates\Network\NetworkConnections\Windows Firewall\Domain Profile\Windows Firewall: Dho phép ngoại lệ quảntrị từ xa trở về. Khi bạn nhắm đến chính sách này đối với một máy tính điềukhiểnxa thì nó sẽ mở hai cổng TCP trên máy tính đó: cổng 445 và 135. • Cổng TCP 445 là cổng dành cho lưu lượng đi vào Server Message Block (SMB), nếu cổng này bị khóa trên tường lửa của máy tính điềukhiểnxa thì bạn không chỉ không thể kết nối tới nó bằng WMI mà cũng không thể kết nố i đến nó bằng các công cụ quảntrị MMC chuẩn như Computer Management. Khi cổng bị khóa và bạn đang thử chạy các kịchbản đối với máy tính từ xa thì có thể gặp một số lỗi khó hiểu như “System error 53 has occurred. The network path was not found” – Lỗi hệ thống 53 xuất hiện. Đường dẫn mạng không được tìm thấy… • Cổng TCP 135 là cổng dành cho lưu lượng vào Distributed COM (DCOM). Đặc biệt hơn, cổng 135 là cổng lắng nghe cho DCOM Service Control Manager (SCM), cung cấp các d ịch vụ RPC cho việc thuyết minh các đối tượng COM. Độ dài hay ngắn của nó là cả hai cổng TCP 135 và 445 cần phải mở trên tường lửa của máy tính từ xa nếu các truy vấn WMI chạy từ máy tính cục bộ đến sử dụng thành công RCP để kết nối dịch vụ WMI trên máy tính điềukhiểnxa và đến thuyết minh thành công các đối tượng DCOM trên máy tính từ xa. 2. Nhận dạng người dùng Khi bạn chạy kịchbản cho m ột máy tính điềukhiểnxa và có thể thiết lập kết nối mạng với máy tính từ xa, sau đó kịchbản có thể thực hiện các hành động trên máy tính từ xa đó. Nhưng các hành động mà nó có thể thực hiện lại phụ thuộc vào sự nhận dạng với kịchbản nào đang chạy trên máy tính điều khiển. Ví dụ tôi đăng nhập vào máy tính A bằng sử dụng một tài khoản người dùng tên mi ền thông thường. Sau đó tôi chạy kịchbản ChangeIPAddress.vbs và nhắm nó vào máy tính điềukhiểnxa B. Kịchbản sử dụng RPC để kết nối đến dịch vụ WMI trên máy tính B và nó thay đổi địa chỉ IP của máy tính B. Nhưng bất thành. Lý do tại sao? Ai đang cố gắng thực hiện hành động này trên máy tính điềukhiển xa? Trên máy tính cục bộ (máy tính A) bạn là người dùng và khi chạy kịchbảnbằng mặc định nó là hiện thân cho nhậ n dạng của bạn, nghĩa là kịchbản sẽ thực hiện các hành động của nó bằng sự nhận dạng của bạn (tài khoản người dùng của bạn). Vì vậy kịchbản sẽ thay đổi địa chỉ IP của máy tính điềukhiển xa, nó có hiệu quả đối với bạn, một người dùng trong miền, người đang thực hiện điều này. Mặt khác nó sẽ h ỏng khi việc thay đổi yêu cầu đến sự ủy nhiệm quảntrị viên cục bộ. Vì vậy, khi bạn đang ngồi tại máy tính A, đã đăng nhập vào người dùng của miền và bạn vẫn muốn sử dụng kịchbản của mình để thay đổi địa chỉ IP của máy tính B. Bạn có thể thực hiện chúng như sau: Kịchbản ChangeIPAddress.vbs của bạn có thể thay đổi như sau: Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") với strUser = "Administrator" strPassword = “Pa$$w0rd” Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2", strUser, strPassword) Vấn đề ở đây là không an toàn – mật khẩu của tài khoản quảntrị viên cho máy tính từ xa có trong văn bản của kịchbản và có thể bị quan sát. Vậy làm thế nào để có thể loại bỏ được hai dòng đầu tiên này và giấu các giá trị strUser và strPassword cho kịchbản như các đối số khi kịchbản được chạy? Tốt hơn vẫn là việc mã hóa cứng các giá trị này trong kịch bản, nhưng nếu ai đó có chương trình đang chạy (như Network Monitor 3.0) thì họ có thể lấy được các thông tin quan trọng và khi đó bạn đã thỏa hiệp máy tính từ xa của mình. Sẽ nh ư thế nào nếu bạn sử dụng một lệnh nâng cao như runas /user:Administrator cmd.exe và sau đó chạy kịchbản từ cửa sổ lệnh nâng cao mà không cần chỉ định các thông tin quan trọng khác? Đó có thể là giải pháp tốt nhất cho kịchbản từ xa, nơi bạn muốn bảo đảm kịchbản có sự nhận dạng thích hợp (thường quảntrị nội bộ trên máy tính mục tiêu) dù cho nó khá phức tạp. Rõ ràng, b ạn có thể đơn giản việc đăng nhập vào máy trạm làm việc như tài khoản quảntrị miền và đơn giản mở một lệnh và chạy kịch bản. 3. Cho phép thích hợp Bạn đang chạy kịchbản trên máy tính A và kịchbản được giả định để thực hiện một số hành động trên máy tính B. Kịchbản đã thành lập kết nối mạng với d ịch vụ WMI trên máy tính B và đang cố gắng thực hiện các hành động của nó bằng sử dụng đúng nhận dạng (thường là các thông tin quảntrị viên cục bộ) trên máy tính B. Những gì có thể làm cho kịchbản này bị hỏng tại đây? Không đủ sự cho phép! Nếu kịchbản đang cố gắng thực hiện một số hành động được điềukhiển bởi ACL (như việc thay đổi một đối tượng file hoặc tạo một đối tượng trong Active Directory hoặc kích hoạt một đối tượng DCOM) và bạn không có sự cho phép thích hợp để thực hiện hành động đó thì kịchbản sẽ bị lỗi. Không may thay đó thường là phần khó nhất của kịchbảnđiềukhiểnxa khi có các cho phép NTFS, DCOM và nhiều kiểu cho phép khác trên nền Windows. Bạn có thể có các cho phép đúng nhưng không có quyền đúng, nghĩa là các quyền người dùng để thực hiện một số hành động. Ví dụ, nói rằng bạn muốn sử dụng kịchbản để xóa sự kiện đăng nhập trên máy tính điềukhiểnxa nhưng sự nhận dạng củ a bạn thiếu quyền bảo mật SeSecurityPrivilege trên máy tính từ xa đó thì khi đó kịchbản của bạn sẽ bị lỗi. Có rất nhiều cái để học về kịchbảnđiềukhiển xa. Chúng tôi sẽ tiếp tục giới thiệu với các bạn trong bài tiếp theo. . Quản trị mạng Windows bằng Script - Phần 9: Tìm hiểu kịch bản điều khiển xa Nguồn : quantrimang.com Mitch Tulloch. loại kịch bản điều khiển xa. • Chạy kịch bản trên máy tính nội bộ và nhắm đến máy tính điều khiển xa. • Chạy kịch bản trực tiếp trên máy tính điều khiển xa.