• |
  • Hotline: 02422.111.997
  • |

Bypass firewall with SSH tunelling


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 từ máy tính trong văn phòng đến các máy tính ở nhà hoặc ở các chi nhánh để tiến hành các thao tác xử lý sự cố họăc hổ trợ kỹ thuật nào đó thông qua các chương trình như VNC,Terminal Service hay RAdmin. Tuy nhiên khi công ty sử dụng Firewall như ISA, CheckPoint để bảo vệ hệ thống và kiểm sóat các luồng dữ liệu vào và ra một cách chặt chẽ 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 TCP Port 4899 (Radmin), hay 5900 (VNC) để thực hiện các kết nối của mình. Vậy làm cách nào để chúng ta vẫn có thể hòan thành được công việc mà vẫn đảm bảo chính sách bảo mật của công ty không bị thay đổi?

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 từ máy tính trong văn phòng đến các máy tính ở nhà hoặc ở các chi nhánh để tiến hành các thao tác xử lý sự cố họăc hổ trợ kỹ thuật nào đó thông qua các chương trình như VNC,Terminal Service hay RAdmin. Tuy nhiên khi công ty sử dụng Firewall như ISA, CheckPoint để bảo vệ hệ thống và kiểm sóat các luồng dữ liệu vào và ra một cách chặt chẽ 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 TCP Port 4899 (Radmin), hay 5900 (VNC) để thực hiện các kết nối của mình. Vậy làm cách nào để chúng ta vẫn có thể hòan thành được công việc mà vẫn đảm bảo chính sách bảo mật của công ty không bị thay đổi?

Cho dù hệ thống của bạn có các Firewall bảo vệ thì các TCP Port quan trọng như 110 (pop3), 80 (http), 21 (ftp), 22 (ssh) vẫn thường mở để tiến hành 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. Trong phần này tôi sẽ dùng một chường trình rất thông dụng là RAdmin (ngòai 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à ta phải 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 cần điều khiển chạy các hệ thống như Linux thì bạn có thể tải về các gói openSSH từ http://sourceforge.net(thông thường trên các bản Redhat, FC hay Mandrake đã có sẳn openSSH trên bộ đĩa source (ta chỉ cần vào Add/Remote Application và chọn gói openSSH để cài đặt SSH Server. Còn nếu như các máy xa dùng hệ điều hành Windows thì các 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 linux-like 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.

 

 

 

 

Hình vẽ quá trình cài đặt từ http://cygwin.com

 

 

Chọn Ftp site và nhấn Next sau đó lựa các gói openssh và openssl trong khung select Packages của chương trình cài đặt, tuy nhiên ta có thể cài thêm các gói

khác nếu muốn:

 

 

 

 

Hình vẽ các gói openssh và openssl trong Seclect Packages

 

 

 

 

Hình vẽ quá trình cài đặt cygwin với các package được chọn

 

 

 

Khi quá trình cài đặt hòan tất ta hãy nhấp vào biểu tượng cygwin trên Desktop để load shell của cygwin, và thực thi dòng lệnh ssh-host-config để cấu hình SSH Server như hình dưới đây:

 

 

 

 

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).

 

 

 

 

Vậy là chúng ta đã hòan tất quá trình cấu hình remote server phục vụ cho công việc của mình (ở đây tôi không trình bày phương pháp cài đặt VNC hay RAdmin).

 

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ề từ www.webattack.com. Sau khi tải về ta chỉ cần double click vào biểu tượng PuTTY để khởi động và nhập vào các tham số như dưới đây:

Host Name (or IP address) 203.210.218.12 là địa chỉ public của remote server .

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

Tiếp theo hãy 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 bên (nhớ chọn nút Add để ghi các tham số này vào khung Forwarded ports)

Source port là port của chương trình remote control đang lắng nghe trên máy được điều khiển (VNC dung port 5900, RAdmin: 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 remote control vượt qua firewall dựa trên ssh tunneling, hãy nhấn Open để tạo kết nối ssh đến remote server và đăng nhập với tài khỏan hợp lệ. Sau khi quá trình đăng nhập hòan tất kiểm tra lại bằng lệnhnetstat –na sẽ thấy TCP Port 4899 trên máy ở xa đã được map đến máy nội bộ:

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 ), WoW!, với tài khỏan hợp lệ 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 policy của firewall.

Hình vẽ màn hình của remote computer với public ip 203.210.218.12

 

Kết Luận:

Thông qua bài viết này tôi muốn nhấn mạnh thêm một khía cạnh khác thường được nhiều người quan tâm đó là : “ tại sao công ty của tôi có các hệ thống firewall được cấu hình rất chặt chẽ nhưng các 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” này cũng thường được các hacker áp dụng để vượt 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, tuy nhiên các bạn yêu thích bảo mật chỉ cần làm ngược lại để hòan thiện qui tắc Biết Người Biết Ta.

Nguyễn Trần Tường Vinh

Bình luận
Bài liên quan
Thời tiết