Nguyen Huu Phan Hoang Ho

Terminal Services (Phần 3)

Bảo mật Terminal Services của Windows Server 2008

Một số nâng cao choTerminal Services trong Windows Server 2008

Sử dụng chứng thực Smart Cards

Sử dụng Smart Cards, người dùng không chỉ phải cung cấp các tiêu chuẩn đăng nhập hợp lệ mà còn phải có thể kết nối vật lý với thẻ thông minh đến thiết bị mà họ đang sử dụng như một thiết bị đầu cuối ở xa.

Để yêu cầu thẩm định thẻ thông minh, bạn phải tạo một Group Policy Object để sử dụng cho Terminal Server. Trong GPO, duyệt đến Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options và kích hoạt thiết lập Interactive Logon: Require Smart Card. Thêm vào đó bạn cũng cần phải kích hoạt Smart Cards để có thể chuyển hướng đến Terminal Server bằng cách tích vào hộp kiểm Smart Cards trên tab Local Resources của Remote Desktop Connection trên các máy trạm của người dùng.

Windows1
Hình 1

Thực thi thẩm định mức mạng đối với tất cả máy khách

Network Level Authentication (NLA) là một tính năng được giới thiệu trong phiên bản 6.0 của Remote Desktop Connection Client, tính năng này cho phép người dùng nhập vào trước các tiêu chuẩn đăng nhập của họ để sẽ được hiển thị tại cửa sổ đăng nhập của Windows Server. Windows Server 2008 cho phép chúng ta sử dụng tiện ích này và yêu cầu tất cả các máy khách đang kết nối để sử dụng nó.

Windows2
Hình 2

Để sử dụng NLA, bạn phải sử dụng Windows 2008 Server, và các máy khách đang kết nối phải hỗ trợ CredSSP (Windows XP SP3, Windows Vista, Windows 7) cũng như đang chạy Remote Desktop Connection 6.0 hoặc cao hơn. Bạn có thể cấu hình Terminal Server của mình để yêu cầu các máy khách của nó sử dụng NLA bằng các cách sau:

  • Trong suốt quá trình cài đặt Terminal Services role ban đầu, khi bạn thấy màn hình Specify Authentication Method for Terminal Server, chọn tùy chọn Allow connections only from computers running Remote Desktop with Network Level Authentication.
  • Truy cập Terminal Services Configuration MMC Snap-In, kích chuột phải vào kết nối terminal server đang được sử dụng bởi các máy khách và chọn properties, sau đó chọn tùy chọn Allow connections only from computers running Remote Desktop with Network Level Authentication.
  • Tạo một Group Policy Object, duyệt đến Computer Configuration\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Security, kích hoạt thiết lập Require user authentication for remote connections by using Network Level Authentication setting và sử dụng nó cho một OU gồm có terminal server.

Thay đổi cổng RDP mặc định

Mặc định, Terminal Server thường sử dụng cổng 3389 cho lưu lượng RDP. Và một số hacker thành thạo trên thế giới đều biết được điều đó. Chính vì vậy một trong những thay đổi nhanh nhất mà bạn có thể thực hiện đối với môi trường Terminal Server của mình để tránh những kẻ xâm nhập và thay đổi thỏa thuận cổng mặc định.

Để thay đổi cổng RDP mặc định cho Terminal Server, bạn hãy mở regedit và duyệt đến HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp. Tìm key PortNumber và thay thế giá trị hex 00000D3D (tương đương với 3389) thành một giá trị khác mà bạn muốn sử dụng.

Cách khác, bạn có thể thay đổi số cổng được sử dụng bởi Terminal Server của mình trên một kết nối cơ bản. Vẫn sử dụng regedit, duyệt đến HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\connection name. Tiếp đó, tìm đến key PortNumber và thay thế giá trị hex bởi một giá trị khác mà bạn muốn.

Cần phải lưu ý rằng khi thay đổi thiết lập trên máy chủ này, tất cả các máy khách kết nối cần phải được bảo đảm rằng chúng đang kết nối đến Terminal Server với cổng mới đã được gắn thẻ trên địa chỉ IP của các máy chủ. Cho ví dụ, việc kết nối đến Terminal Server với một địa chỉ IP trong là 192.168.0.1 có nghĩa hiện đang sử dụng cổng non-standard 8888 sẽ yêu cầu người dùng nhập 192.168.0.1:8888 vào Remote Desktop Connection.

Windows3
Hình 3

In ấn dễ dàng và hạn chế máy in được chuyển hướng

Việc in ấn từ các thiết bị được kết nối nội bộ với các máy trạm client luôn là một yếu điểm của Terminal Services trước Windows Server 2008. Để thực hiện điều đó, bạn phải bảo đảm giống chính xác phiên bản của driver máy in đã được cài đặt trên cả máy chủ và máy khách, mặc dù vậy đôi khi sau đó vẫn không có sự làm việc. Từ quan điểm bảo mật, chúng ta không bao giờ muốn cài đặt thêm nhiều driver vào hệ thống của mình ngoài những gì bắt buộc. Mỗi một driver được cài đặt vào máy chủ đều có tiền ẩn khả năng mở rộng bề mặt tấn công của nó.

Windows Server 2008 đã giới thiệu một tính năng có tên Easy Print, tính năng này sẽ thay đổi triệt để cách kết nối nội bộ các máy in được quản lý. Về bản chất, TS Easy Print là một driver phục vụ như một proxy để tất cả dữ liệu máy in được chuyển hướng qua. Khi một máy khách in đến một thiết bị bằng driver Easy Print, các thiết lập dữ liệu và máy in sẽ được chuyển đổi thành định dạng phổ biến rồi gửi đến Terminal Server xử lý. Thực hiện điều này, sau khi kích in, hộp thoại máy in sẽ được khởi chạy từ máy khách, không trong terminal session. Điều này có nghĩa rằng không driver nào đã được cài đặt cho Terminal Server để xử lý các công việc in từ các thiết bị in kết nối nội bộ.

Để cấu hình Easy Print, bạn cần phải bảo đảm tất cả các thiết bị in được gắn nội bộ phải có các máy in logic được cấu hình trên các máy khách đã thiết lập để sử dụng driver của Easy Print. Tính năng Easy Print được hỗ trợ bởi tất cả các máy khách Windows XP SP3, Windows Vista và Windows 7 đang chạy Remote Desktop Connection 6.1 hoặc mới hơn và .NET Framework 3 SP1.

Windows4
Hình 4

Khi đã cấu hình các thiết bị gắn nội bộ ở mức máy trạm, bạn cần bảo đảm rằng máy in duy nhất được chuyển hướng đến Terminal Server là máy in đang sử dụng TS Easy Print, thành phần được thiết lập như một máy in mặc định. Bạn có thể thực hiện điều này bằng cách tạo một Group Policy Object và duyệt đến Computer Configuration\ Administrative Templates\Windows Components\Terminal Services\Terminal Server\Printer Redirection, sau đó kích hoạt tùy chọn Redirect only the default client printer.

Hạn chế các tài khoản người dùng

Chúng ta cần phải biết rằng, khi một người dùng nào đó đang kết nối hay đang làm việc trực tiếp từ một máy chủ vốn đã có sự truy cập đến một vài thứ mà họ không cần đến, và để tạo một môi trường an toàn hơn, chúng ta cần phải hạn chế điều đó. Đây không chỉ là biện pháp để bảo vệ các tiêu chuẩn của người dùng đang được thỏa hiệp mà còn bảo vệ người dùng  chính đáng với những ý định không chính đáng. Một số thứ mà chúng ta có thể thực hiện ở đây là:

Sử dụng các tài khoản cụ thể cho người dùng

Người dùng có thể làm việc nội bộ với các ứng dụng nào đó, sau đó truy cập vào Terminal Server để truy cập đến các ứng dụng khác. Việc sử dụng cùng một tài khoản cho truy cập nội bộ và truy cập từ xa sẽ đơn giản hơn trong vấn đề quản lý, tuy nhiên nó cũng dễ bị thỏa hiệp hơn bởi các kẻ tấn công có thể thỏa hiệp một loạt các tiêu chuẩn để truy cập vào các ứng dụng. Việc tạo một tài khoảng người dùng riêng biệt cho sự truy cập Terminal Server và hạn chế quyền của nó cho những ứng dụng cần thiết sẽ giảm nhẹ được sự ảnh hưởng của kiểu thỏa hiệp này.

Sử dụng các chính sách hạn chế phần mềm

Các chính sách hạn chế phần mềm có thể được cấu hình để cho phép hoặc từ chối sự sử dụng đối với một số ứng dụng nào đó và vẫn được sử dụng trong các máy tính công cộng, mặc dù vậy chúng cũng rất tuyệt trong các môi trường Terminal Server.

Kiểm tra sự truy cập người dùng vào máy chủ Terminal bằng Group

Mặc định, chỉ có các thành viên của nhóm Terminal Servers Remote Desktop Users (và Domain/Local Administrators) mới có thể đăng nhập vào Terminal Server đó. Tuy nhiên bạn cần minh chứng và thẩm định các thành viên nhóm một cách thường xuyên. Nếu người dùng không cần đăng nhập vào một Terminal Server, hãy remove họ khỏi nhóm người dùng ở xa.

Cấu hình bảo mật bổ sung bằng Group Policy

Nhiều cải tiến bảo mật cho các môi trường Terminal Server được cung cấp thông qua Group Policy. Đây là một số ví dụ điển hình mà chúng tôi muốn giới thiệu cho các bạn.

1.  Hạn chế người dùng Terminal Services vào một Session từ xa

Trong hầu hết các trường hợp, một người dùng không cần khởi tạo nhiều session trên một Terminal Server. Việc cho phép người dùng khởi tạo nhiều session sẽ làm cho môi trường của bạn có nhiều lỗ hổng cho tấn công từ chối dịch vụ (DoS), do các tiêu chuẩn của người dùng bị thỏa hiệp. Bạn có thể cấu hình thiết lập này bằng cách duyệt đến Computer Configuration\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Connections bên trong GPO của bạn.

2. Không cho phép sự chuyển hướng drive

Trừ khi bạn có một nhu cầu nào đó thật cần thiết, khi đó mới cho phép người dùng truy cập vào các ổ đĩa nội bộ từ một Terminal Server session vì hành động này có thể tạo một kênh truyền thông không an toàn. Với khả năng này, người dùng không chỉ copy dữ liệu vào một Terminal Server mà dữ liệu có thể chứa mã độc và có thể được thực thi trên máy chủ.

Bạn có thể cấu hình thiết lập này bằng cách duyệt đến Computer Configuration\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Device and Resource Redirection bên trong GPO.

3. Thiết lập hạn chế thời gian cho các Session bị hủy kết nối

Nhìn chung, chúng ta nên cho phép người dùng thoát khoải một session mà không cần đăng xuất hoàn toàn. Vì khi ai đó có thể tăng điều khiển trên session này thì họ có thể sẽ truy cập vào phần dữ liệu nhạy cảm hoặc biết được răng họ đã được xác thực cho ứng dụng mạng khác. Cách tốt nhất để khắc phục tình trạng này là thiết lập sự hạn chế về thời gian ở mức thấp để hủy kết nối các session. Khi đến giới hạn thời gian, session sẽ bị đóng lại.

Bạn có thể cấu hình thiết lập này bằng cách duyệt đến Computer Configuration\Administrative Templates\Windows Components\Terminal Services\Terminal Server\Session Time Limits bên trong GPO.

4. Vô hiệu hóa bộ cài Windows

Chỉ các quản trị viên mới có quyền cài đặt các ứng dụng vào Terminal Server. Trong hầu hết các trường hợp, không cho người dùng được phép cài đặt các ứng dụng nếu họ không đăng nhập với quyền quản trị viên. Mặc dù vậy, nếu một số người dùng nào đó được cho là cần phải có hành động nâng đặc quyền thì bạn có thể hạn chế khả năng cài đặt một số chương trình bằng cách vô hiệu hóa Microsoft Windows Installer.

Có thể cấu hình thiết lập này bằng cách duyệt đến Computer Configuration\Administrative Templates\Windows Components\Windows Installer bên trong GPO. Cần lưu ý rằng bạn phải cấu hình thiết lập này là Enabled thay cho Always. Như vậy sẽ bảo đảm rằng bạn vẫn có thể publish các ứng dụng cho Terminal Server thông qua Group Policy.  Còn sử dụng tùy chọn Always sẽ không cho phép bạn thực hiện điều đó.

5. Hạn chế thư mục

Mặc dù chúng ta (các quản trị viên) có cung cấp nhiều location riêng và công cho việc lưu trữ bảo mật dữ liệu nhưng một số người dùng của chúng ta vẫn tùy tiện lưu dữ liệu trên desktop của họ. Tuy nhiên có một cách để tạo một bức tường bảo vệ dữ liệu cho họ đó là chúng ta có thể chuyển hướng (redirect) desktop của họ đến một location lưu trữ thích hợp trên một file server.

Bạn có thể cấu hình thiết lập này bằng cách duyệt đến User Configuration\Windows Settings\Folder Redirection bên trong GPO. Desktop của người dùng là thư mục mà chúng ta có thể chuyển hướng.

6. Chặn truy cập vào Control Panel

Cũng như với Microsoft Installer, người thông thường không nên truy cập vào Control Panel nói chung. Mặc dù vậy, nếu những người nào đó cần phải có các đặc quyền quản trị viên để thực hiện một số thao tác thì bạn cũng có thể hạn chế sự truy cập của họ vào control panel bằng cách cấu hình thiết lập này.

Bạn có thể cấu hình thiết lập này bằng cách duyệt đến User Configuration\Administrative Templates\Control Panel bên trong GPO.

Kích hoạt log

Các thiết lập log Microsoft khuyên dùng dưới đây:

  • Audit Account Logon Events - No Auditing
  • Audit Account Management - Audit Success and Failure
  • Audit Directory Services Access - No Auditing
  • Audit Logon Events - Audit Success and Failure
  • Audit Object Access - Audit Failure
  • Audit Policy Change - Audit Success and Failure
  • Audit Privilege Use - Audit Failure
  • Audit Process Tracking - Audit Failure
  • Audit System Events - Audit Success and Failure

Cùng với các thiết lập đó, bạn cũng có thể sử dụng log kết nối Connection Auditing bên trong Terminal Services. Cách thức này sẽ cho phép bạn ghi lại một vài mục cụ thể của Terminal Server. Để xem và cấu hình các thiết lập này, bạn hãy mở Terminal Services Configuration snap-in, kích chuột phải vào kết nối mà bạn muốn kích hoạt thẩm định, sau đó kích Properties. Vào tab Security, kích Advanced, đánh tên người dùng của tài khoản muốn kích hoạt ghi log. Ở đây bạn có thể chọn một trong các tùy chọn được liệt kê sẵn.

Windows5
Hình 5

Source Quantrimang(Theo Windowsecurity)