Tải bản đầy đủ (.pdf) (8 trang)

Tài liệu 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 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (339.67 KB, 8 trang )

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

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ịch bản điều khiển xa 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ìm hiểu về những nền tảng
của chúng.

Hai loại kịch bản điều khiển xa

Có hai loại kịch bản điều khiển xa. Loại thứ nhất là khi chúng ta chạy một
kịch bả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ịch bả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ịch bả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ịch bả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ịch bản điều khiển xa và nó làm việc giống như vậy. Tôi
là một quản trị viên, đã đăng nhập vào máy tính A và có một kịch bả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ịch bả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ịch bản trực tiếp trên máy tính B. Chính vì vậy tôi đã đưa kịch bả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ịch bản như kịch bản đăng nhập trên máy tính
điều khiể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ị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.
Hãy diễn tả sự khác nhau giữa hai cách mô tả kịch bản điều khiển xa:

Kiểu thứ nhất liên quan đến việc kết nối đến máy tính điều khiển xa
và sau đó chạy kịch bản.

Kiểu thứ hay liên quan đến việc triển khai kịch bản cho máy tính điều
khiển xa, sau đó chạy kịch bản.
Tìm hiểu về kết nối kịch bản điều khiển xa

Bây giờ chúng ta hãy tập trung vào kiểu đầu tiên của kịch bản điều khiển xa.
Nó có nghĩa gì khi chạy một kịch bả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ều khiển xa 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ịch bản để thực hiện điều gì đó trên máy tính điều khiể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ều khiể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ịch bả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ịch bả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ịch bản WMI của chúng ta có thể chạy cho một máy tính
điều khiển xa thì chúng ta phải mở ngoại lệ quản trị từ xa Remote
Administration trong tường lửa Windows trên máy tính điều khiể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ản trị 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ều khiển xa 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ều khiển xa 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ản trị MMC chuẩn như Computer
Management. Khi cổng bị khóa và bạn đang thử chạy các kịch bả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ều
khiển xa 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ịch bản cho một máy tính điều khiển xa và có thể thiết lập kết
nối mạng với máy tính từ xa, sau đó kịch bả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ịch bả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ịch bản
ChangeIPAddress.vbs và nhắm nó vào máy tính điều khiển xa B. Kịch bả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ều khiể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ịch bản bằng mặc định nó là
hiện thân cho nhận dạng của bạn, nghĩa là kịch bả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ịch bản sẽ thay đổi địa chỉ IP của máy tính điều khiể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ản trị 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ịch bả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ịch bả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ản trị viên cho
máy tính từ xa có trong văn bản của kịch bả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ịch bản như các đối số khi kịch bả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ịch bả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ịch bản từ xa, nơi bạn muốn bảo đảm kịch bản có sự nhận

dạng thích hợp (thường quản trị 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ản trị 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ịch bản trên máy tính A và kịch bản được giả định để thực
hiện một số hành động trên máy tính B. Kịch bả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ản trị viên
cục bộ) trên máy tính B. Những gì có thể làm cho kịch bản này bị hỏng tại
đây? Không đủ sự cho phép! Nếu kịch bản đang cố gắng thực hiện một số
hành động được điều khiể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ịch bản sẽ bị lỗi. Không may thay đó thường là phần khó nhất của kịch
bản điều khiển xa 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ịch bản để xóa sự kiện đăng
nhập trên máy tính điều khiển xa 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ịch bản của
bạn sẽ bị lỗi.

Có rất nhiều cái để học về kịch bản điều khiể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.

×