Bảo vệ kết nối VNC bằng SSH
Cập nhật lúc 07h22' ngày 29/09/2008

Quản trị mạng - VNC là viết tắt của cụm từ Virtual Network Computing. Nó là môt phần mềm điều khiển từ xa, phần mềm này cho phép bạn xem và tương tác với một máy trạm nào đó thông qua VNC viewer trên máy tính ở bất cứ nơi nào trong LAN hoặc Internet. Hai máy tính thậm chí còn không cùng kiểu, cho ví dụ, bạn có thể sử dụng VNC để xem máy tính Windows XP tại văn phòng trên một máy Linux hoặc Mac tại nhà.

Khi máy tính của bạn được kết nối, lưu lượng giữa viewer và máy chủ không được mã hóa, điều này làm cho ai đó truy cập trái phép vào mạng của bạn. Để bảo mật, chúng tôi khuyên các bạn nên tạo đường hầm (hiệu ứng tunnel) cho giao thức VNC thông qua một số kênh an toàn như SSH. Bài này chúng tôi sẽ giới thiệu cách kết nối từ Windows XP client đến máy chủ Linux (OpenSuse 10.3) thông qua một VNC và tạo đường hầm của kết nối này bằng cách sử dụng SSH.

Lược đồ kết nối có thể được mô tả như hình dưới đây:

Nếu bạn muốn kết nối một máy chủ VNC bên ngoài LAN, hãy cấu hình tường lửa cho đúng cách. Bạn nên cho phép kết nối outbound (kết nối gửi đi) thông qua cổng 22.

Bước 1: Chuẩn bị máy chủ Linux

Chúng tôi sẽ sử dụng OpenSuse 10.3 với tư cách là một hệ điều hành máy chủ. Mục tiêu sử dụng máy trạm KDE từ một máy khách Windows XP từ xa. Sử dụng YAST để cài đặt các gói phần mềm bổ sung dưới đây:

tightvnc
xorg-x11-Xvnc

Thêm vào với những lựa chọn thủ công này, một số gói phần mềm khác có thể thay đổi để giải quyết các vấn đề phụ thuộc.

Khởi tạo VNCServer với tư cách một người dùng thông thường từ giao diện điều khiển của bạn. Cần nhập mật khẩu để truy cập máy trạm, hãy nhập vào và thẩm định nó. Xem các thông báo trên màn hình. Trong trường hợp của chúng tôi susebox:1 đã được dùng bởi một quá trình khác. Chúng ta có thể truy cập nó sau bằng cách đánh

susebox:2.

Thẩm định cổng trên VNC nào đang hoạt động là một vấn đề quan trọng. Hãy sử dụng lệnh dưới đây để kiểm tra điều đó:

netstat -tulpe

Như những gì bạn thấy trong hình bên dưới, Xvnc đang chạy trên cổng 5902.

Bạn có thể dừng dịch vụ VNC bằng lệnh sau:

vncserver -kill :<Display>

Cho ví dụ, bạn có thể đóng quá trình chúng ta đã mở ở trên như sau:

vncserver -kill :2

Đôi khi cần phải đóng quá trình này một cách thủ công. Trong trường hợp này, chỉ cần xóa các file có đường dẫn dưới đây:

rm /tmp/.X11-unix/X1 or rm /tmp/.X11-unix/X2

và xóa các file:

rm /home/user/.vnc/susebox:2.pid hoặc rm /home/user/.vnc/susebox:3.pid 

Cuối cùng chúng ta phải thay đổi kịch bản xstartup để chạy KDE một cách tự động. Bạn có thể tìm thấy kịch bản này trong thư mục chủ của người dùng:

/home/user/.vnc

Mở file này trong trình soạn thảo nào đó và thay thế dòng twn & bằng kde & (xem hình bên dưới). Bạn cần khởi động lại VNCServer để các thay đổi có hiệu lực.

Bước 2: Chuẩn bị Windows XP Client

Chúng ta cần phần mềm dưới đây để chuẩn bị cho máy khách:

PuTTY
VNC Free Edition 4.1

PuTTY là một ứng dụng có thể thực hiện như một máy khách cho SSH, Telnet, rlogin, và các giao thức điện toán TCP thô. Nó được viết và được duy trì chính bởi Simon Tatham. PuTTY hoàn toàn miễn phí và là một phần mềm mã nguồn mở. Hãy download phần mềm này tại đây.

VNC có một phạm vi rộng các ứng dụng kể cả quản trị hệ thống, hỗ trợ CNTT và bàn trợ giúp. Nó cũng có thể được sử dụng để hỗ trợ cho người dùng di động, cả cho việc hot desking bên trong doanh nghiệp lẫn cung cấp sự truy cập từ xa tại nhà hoặc trên đường phố.

Download phiên bản VNC miễn phí tại đây.

Chúng ta cần bộ VNC Viewer trên máy khách, do vậy hãy cài đặt phần mềm này.

Bước 3: Tạo đường hầm VNC bằng cách sử dụng SSH và PuTTY

Phần còn lại hoàn toàn đơn giản. Khởi chạy PuTTY và cấu hình nó giống như các hình dưới đây.

Trước tiên:

Tên máy chủ (hoặc địa chỉ IP): Địa chỉ IP của VNC Server (máy Linux của bạn) Port: 22
Lưu các Session: Sử dụng tên đúng đề miêu tả kết nối

Thứ hai:

Kích SSH – Tunnels
Cổng nguồn: Sử dụng cổng trên máy chủ VNC nào đang chạy (xem bước 1 – lệnh netstat)
(ví dụ 5903)
Đích: Địa chỉ IP của VNC Server (máy Linux của bạn): Cổng
(ví dụ 192.168.100.34:5903)
Kích nút “Add”
Kích “Session” lần nữa và sau đó kích “Save” để lưu.
Kích “Open” để khởi chạy tunneling session. Sử dụng tên người dùng thông thường và mật khẩu để đăng nhập vào máy tính Linux.

Thứ ba:

Mở VNC Viewer và kiểu máy chủ:
localhost:Display
(ví dụ localhost:3)
Một vài giây sao bạn sẽ thấy một KDE session trong cửa sổ Viewer của mình. Sư dụng kết nối từ xa như thể bạn đang ngồi trước máy tính Linux của mình vậy.

Văn Linh (Theo Linux-Tip)
Đánh giá(?):
Các bài phản hồi, bình luận
Tất cả có 3 phản hồi cho bài này
Gửi bởi Bạn mr me [mrme] lúc 09:37 03/10/2008
Ở cái ảnh 2 tạo tunnel để forward 192.168.100.34:58903 về localhost cổng 5903 mà khi gõ ở VNC client lại là localhost:3 mà vào được? Bó tay người viết bài này
 Phàn nàn
Gửi bởi Bạn Nguyễn Đắc Huynh [tem_dl] lúc 14:16 14/10/2008
cái này hơi không rõ 1 chút.
Thật ra thì khi mình connect đến Server over putty thì 1 mặt putty sẽ connect đến server:22
Đồng thời open port: 5903 trên client( ngay source port ở hình 2)
khi mình dùng ssh -> localhost 5903 thi nó sẽ redirect qua server: 5903 ( cấu hình cũng ngay hình thứ 2 đó ) và nó sẽ đi qua cai tunnel của ssh. thế thôi.
 Phàn nàn
Gửi bởi Bạn đổ thị thanh xuân [dapal] lúc 20:33 27/10/2008
Mọi nghười chỉ cho em cách cài đặt linux qua mạng nội bộ với.Cám ơn nhé!
 Phàn nàn
Tất cả có 3 phản hồi cho bài này
Microsoft Office Project Professional 2007
Phát hành: Microsoft
Download:19937
Dung lượng: 192.4 KB
Tìm thêm:microsoft office project professional 2007
 
GnuCash 2.2.0
Phát hành: The GnuCash Project
Download:14220
Dung lượng: 9.4 MB
Tìm thêm:gnucash 2.2.0
 
Mindjet MindManager Pro 7
Phát hành: Mindjet
Download:10037
Dung lượng: 76.8 MB
Tìm thêm:mindjet mindmanager pro 7
 
ToDoList
Phát hành: AbstractSpoon
Download:8272
Dung lượng: 435 KB
Tìm thêm:quản lý, công việc, định dạng
 
AssetManage Enterprise 2007
Phát hành: Liberty Street Software
Download:5349
Dung lượng: 29.4 MB
Tìm thêm:assetmanage, asset, quản lý
Những chuyện kỳ bí