• Thứ Ba, 21/06/2005 15:38 (GMT+7)

    Cách không chỉ điểm với ssh Tunnel

    Trong vai trò quản trị hệ thống hay chuyên viên hỗ trợ kỹ thuật, đôi khi chúng ta cần kết nối đến hệ thống máy tính ở xa để tiến hành các thao tác xử lý sự cố thông qua các chương trình như VNC, Terminal Service hay RAdmin. Tuy nhiên, nếu hệ thống ở xa dùng firewall như ISA hay CheckPoint để bảo vệ và kiểm soát các luồng dữ liệu vào/ra thì ta sẽ gặp trở ngại lớn. Chúng ta không thể (hoặc không có quyền) mở các cổng TCP 4899 (Radmin) hay 5900 (VNC) để thực hiện kết nối. Vậy làm cách nào để có thể điều khiển hệ thống từ xa mà vẫn đảm bảo chính sách bảo mật?

    Cho dù hệ thống của bạn có firewall bảo vệ thì các TCP Port (cổng) quan trọng như 110 (pop3), 80 (http), 21 (ftp) và 22 (ssh) vẫn thường mở để phục vụ cho các công việc cần thiết như duyệt web, e-mail... đặc biệt TCP Port 22 của dịch vụ SSH có chức năng mã hóa phiên truyền thường được các firewall “ưu ái” cho qua, và chúng ta sẽ dựa vào dịch vụ này để tạo ra một SSH Tuneling đáp ứng cho công việc của mình.

    Ta cần có SSH Server cài trên các máy ở xa (remote computer), SSH Client trên máy điều khiển (local computer) và những chương trình remote control như VNC, Terminal Services hay RAdmin (ở đây tôi không trình bày việc cài đặt các chương trình này). Trong bài viết này tôi sẽ dùng một chương trình rất thông dụng là RAdmin (ngoài ra, VNC cũng là một phần mềm remote control “5 sao” miễn phí rất được ưa thích, cách thực hiện tương tự, chỉ khác là dùng TCP Port 5900 thay cho 4899).

    Cài SSH Server trên remote computer thông qua Cygwin

    Nếu máy tính ở xa cần điều khiển dùng HĐH Linux, bạn có thể tải về các gói openSSH từ http://sourceforge.net (thông thường, các bản Redhat, FC hay Mandrake đã có sẵn openSSH trên bộ đĩa gốc). Nếu máy ở xa dùng HĐH Windows, bạn có thể cài Tectia SSH Server hay phần mềm Freeware Win_Open-SSH (tải về từ http://are-peace.com/v2/download.php. Trong phần này tôi trình bày giải pháp cấu hình SSH Server dựa trên phần mềm tạo môi trường Linux trên Windows là CYGWIN.

    Cygwin là một phần mềm tuyệt vời có thể tạo một môi trường “giống Linux” giúp các bạn muốn nghiên cứu Linux nhưng ngại cài đặt và vẫn dùng hệ thống Windows hiện có của mình. Cygwin có thể được cài trực tiếp từ Internet rất dễ dàng, mặc dù không phải là một môi trường Linux thuần túy nhưng cũng giúp các bạn nắm được các cấu trúc và dòng lệnh của Linux nhanh chóng. Các thông tin tham khảo và cài đặt Cygwin có thể xem ở
    http://cygwin.com.

    Thực hiện cài Cygwin từ http://cygwin.com như hình 1. Chọn Ftp site và nhấn Next sau đó chọn các gói openssh và openssl trong khung Select Packages của chương trình cài đặt, bạn có thể cài thêm các gói khác nếu muốn. (Hình 2)

    Khi quá trình cài đặt hoàn tất, nhấn vào biểu tượng cygwin trên desktop để nạp “shell” của cygwin và thực thi lệnh ssh-host-config để cấu hình SSH Server như hình 3.
    Sau đó khởi động SSHD bằng lệnh net start sshd thông qua giao diện dòng lệnh của Windows (nhấn Start->Run->CMD). (Hình 4)

    Vậy là chúng ta đã hoàn tất quá trình cấu hình remote server (hệ thống ở xa) phục vụ cho công việc của mình.

    Cài đặt và cấu hình SSH Client trên local computer bằng PuTTy

    Một trong các chương trình SSH Client miễn phí xuất sắc là PuTTY có thể tải về ở www.webattack.com. Sau khi tải về, ta chỉ cần nhấn đúp biểu tượng PuTTY để khởi động và nhập vào các tham số như hình 5.

    - Host Name (or IP address) 203.210.218.12 là địa chỉ public (công khai trên mạng) của remote server.

    - Port 22 là TCP Port của SSH tại tầng vận chuyển.

    Tiếp theo chọn mục Tunnels từ giao diện PuTTY để thiết lập SSH Tunnel theo các thông số như hình 6 (nhớ nhấn Add để ghi các tham số này vào khung Forwarded ports).

    - Source port là cổng của chương trình remote control đang lắng nghe trên máy được điều khiển (VNC dùng port 5900, Radmin dùng port 4899).

    - Destination là địa chỉ remote server và port đang lắng nghe.

    Bây giờ ta đã có thể tiến hành công việc điều khiển từ xa vượt qua firewall dựa trên ssh tunneling. Nhấn Open để tạo kết nối ssh đến remote server và đăng nhập với tài khoản hợp lệ. Sau khi quá trình đăng nhập hoàn tất kiểm tra lại bằng lệnh netstat –na sẽ thấy TCP Port 4899 trên máy ở xa đã được “gán” đến máy điều khiển (local). (Hình 7)

    Tạo kết nối Remote Control bằng RAdmin client

    Cuối cùng, hãy mở RAdmin client kết nối đến TCP Port 4899 của máy nội bộ (IP: 127.0.0.1) như hình 8. Thật tuyệt! Với tài khoản hợp lệ, chúng ta có thể tương tác được với màn hình trên máy tính ở xa để tiến hành thao tác sửa chữa hay cài đặt thêm phần mềm mà không cần thay đổi chính sách bảo mật của firewall. (Hình 9)
    Kết Luận

    Qua bài viết này tôi cũng muốn đề cập đến một một khía cạnh khác thường được nhiều người quan tâm, đó là: “ tại sao hệ thống (mạng) có firewall được cấu hình rất chặt chẽ nhưng hacker vẫn có thể vào ra như chỗ không người”. Bởi vì phương pháp “Cách Không Chỉ Điểm” giới thiệu ở đây cũng thường được hacker áp dụng để vượt qua firewall từ phía trong mạng nội bộ trên các máy đã bị nhiễm trojan. Vì khuôn khổ bài viết có hạn và cũng không tiện cho việc trình bày giải pháp này, các bạn yêu thích bảo mật có thể tự tìm hiểu thêm để “biết người biết ta”. Mọi ý kiến đóng góp có thể gởi đến
    giaiphapantoan@gmail.com.

    Nguyễn Trần Tường Vinh
    MCSA, MCSEs, SECURITY+
    NEW HORIZONS Computer Learning Center

    ID: A0506_136