Cách sử dụng đường hầm SSH để truy cập các máy chủ bị hạn chế và duyệt an toàn
Máy khách SSH kết nối với máy chủ Secure Shell, cho phép bạn chạy các lệnh đầu cuối như thể bạn đang ngồi trước một máy tính khác. Nhưng một máy khách SSH cũng cho phép bạn đường hầm đường hầm Một cổng giữa hệ thống cục bộ của bạn và một máy chủ SSH từ xa.
Có ba loại đường hầm SSH khác nhau và chúng đều được sử dụng cho các mục đích khác nhau. Mỗi liên quan đến việc sử dụng máy chủ SSH để chuyển hướng lưu lượng truy cập từ một cổng mạng sang một cổng khác. Lưu lượng được gửi qua kết nối SSH được mã hóa, do đó, nó không thể được theo dõi hoặc sửa đổi trong quá trình.
Bạn có thể làm điều này với ssh
lệnh bao gồm trên Linux, macOS và các hệ điều hành tương tự UNIX khác. Trên Windows, không bao gồm lệnh ssh tích hợp, chúng tôi khuyên dùng công cụ miễn phí PuTTY để kết nối với máy chủ SSH. Nó cũng hỗ trợ SSH đường hầm.
Chuyển tiếp cổng cục bộ: Giúp tài nguyên từ xa có thể truy cập trên hệ thống cục bộ của bạn
Chuyển tiếp cổng cục bộ của Nhật Bản cho phép bạn truy cập các tài nguyên mạng cục bộ không tiếp xúc với Internet. Ví dụ: giả sử bạn muốn truy cập máy chủ cơ sở dữ liệu tại văn phòng từ nhà của bạn. Vì lý do bảo mật, máy chủ cơ sở dữ liệu đó chỉ được cấu hình để chấp nhận kết nối từ mạng văn phòng địa phương. Nhưng nếu bạn có quyền truy cập vào máy chủ SSH tại văn phòng và máy chủ SSH đó cho phép kết nối từ bên ngoài mạng văn phòng, thì bạn có thể kết nối với máy chủ SSH đó từ nhà và truy cập máy chủ cơ sở dữ liệu như thể bạn đang ở trong văn phòng. Đây thường là trường hợp, vì nó dễ dàng bảo mật một máy chủ SSH chống lại các cuộc tấn công hơn là bảo mật nhiều loại tài nguyên mạng khác nhau.
Để thực hiện việc này, bạn thiết lập kết nối SSH với máy chủ SSH và yêu cầu khách chuyển tiếp lưu lượng truy cập từ một cổng cụ thể từ PC cục bộ của bạn - ví dụ: cổng 1234 - đến địa chỉ của máy chủ cơ sở dữ liệu và cổng của nó trên mạng văn phòng. Vì vậy, khi bạn cố gắng truy cập máy chủ cơ sở dữ liệu tại cổng 1234, máy tính hiện tại của bạn, thì local localhost, lưu lượng đó sẽ tự động được chuyển qua đường hầm qua kết nối SSH và được gửi đến máy chủ cơ sở dữ liệu. Máy chủ SSH nằm ở giữa, chuyển tiếp lưu lượng qua lại. Bạn có thể sử dụng bất kỳ dòng lệnh hoặc công cụ đồ họa nào để truy cập máy chủ cơ sở dữ liệu như thể nó đang chạy trên PC cục bộ của bạn.
Để sử dụng chuyển tiếp cục bộ, hãy kết nối với máy chủ SSH bình thường, nhưng cũng cung cấp -L
tranh luận. Cú pháp là:
ssh -L local_port: remote_address: remote_port [email protected]
Ví dụ: giả sử máy chủ cơ sở dữ liệu tại văn phòng của bạn được đặt tại 192.168.1.111 trên mạng văn phòng. Bạn có quyền truy cập vào máy chủ SSH của văn phòng tại ssh.youroffice.com
, và tài khoản người dùng của bạn trên máy chủ SSH là bob
. Trong trường hợp đó, lệnh của bạn sẽ trông như thế này:
ssh -L 8888: 192.168.1.111: 1234 [email protected]
Sau khi chạy lệnh đó, bạn có thể truy cập máy chủ cơ sở dữ liệu tại cổng 8888 tại localhost. Vì vậy, nếu máy chủ cơ sở dữ liệu cung cấp quyền truy cập web, bạn có thể cắm http: // localhost: 8888 vào trình duyệt web của mình để truy cập. Nếu bạn có một công cụ dòng lệnh cần địa chỉ mạng của cơ sở dữ liệu, bạn sẽ trỏ nó vào localhost: 8888. Tất cả lưu lượng truy cập được gửi đến cổng 8888 trên PC của bạn sẽ được chuyển sang 192.168.1.111:1234 trên mạng văn phòng của bạn.
Khó hiểu hơn một chút nếu bạn muốn kết nối với ứng dụng máy chủ chạy trên cùng hệ thống với chính máy chủ SSH. Ví dụ: giả sử bạn có máy chủ SSH chạy ở cổng 22 trên máy tính văn phòng của mình, nhưng bạn cũng có máy chủ cơ sở dữ liệu chạy ở cổng 1234 trên cùng hệ thống tại cùng một địa chỉ. Bạn muốn truy cập máy chủ cơ sở dữ liệu từ nhà, nhưng hệ thống chỉ chấp nhận kết nối SSH trên cổng 22 và tường lửa của nó không cho phép bất kỳ kết nối bên ngoài nào khác.
Trong trường hợp này, bạn có thể chạy một lệnh như sau:
ssh -L 8888: localhost: 1234 [email protected]
Khi bạn cố truy cập máy chủ cơ sở dữ liệu tại cổng 8888 trên PC hiện tại của mình, lưu lượng sẽ được gửi qua kết nối SSH. Khi nó đến trên hệ thống chạy máy chủ SSH, máy chủ SSH sẽ gửi nó đến cổng 1234 trên cơ sở cục bộ cục bộ, đó là cùng một PC chạy chính máy chủ SSH. Vì vậy, các local localhost trong lệnh trên có nghĩa là local localhost trực tiếp từ góc nhìn của máy chủ từ xa.
Để thực hiện việc này trong ứng dụng PuTTY trên Windows, chọn Kết nối> SSH> Đường hầm. Chọn tùy chọn của Local Local. Đối với Cổng Nguồn Cổng, hãy nhập cổng địa phương. Đối với Đích đích, hãy nhập địa chỉ đích và cổng ở dạng remote_address: remote_port.
Ví dụ: nếu bạn muốn thiết lập cùng một đường hầm SSH như trên, bạn sẽ nhập 8888
là cổng nguồn và lưu trữ nội bộ: 1234
làm đích đến Sau đó, nhấp vào Thêm Add Add và sau đó nhấp vào Mở Open Open để mở kết nối SSH. Tất nhiên, bạn cũng cần nhập địa chỉ và cổng của máy chủ SSH trên màn hình chính Phiên bản chính trước khi kết nối.
Chuyển tiếp cổng từ xa: Giúp tài nguyên cục bộ có thể truy cập trên hệ thống từ xa
Chuyển tiếp cổng từ xa của Nhật Bản ngược lại với chuyển tiếp cục bộ và không được sử dụng thường xuyên. Nó cho phép bạn cung cấp tài nguyên trên PC cục bộ của mình trên máy chủ SSH. Ví dụ: giả sử bạn đang chạy một máy chủ web trên PC cục bộ mà bạn đang ngồi trước. Nhưng PC của bạn đứng sau một tường lửa không cho phép lưu lượng truy cập đến phần mềm máy chủ.
Giả sử bạn có thể truy cập máy chủ SSH từ xa, bạn có thể kết nối với máy chủ SSH đó và sử dụng chuyển tiếp cổng từ xa. Máy khách SSH của bạn sẽ yêu cầu máy chủ chuyển tiếp một cổng cụ thể - ví dụ: cổng 1234 - trên máy chủ SSH đến một địa chỉ và cổng cụ thể trên PC hiện tại hoặc mạng cục bộ của bạn. Khi ai đó truy cập vào cổng 1234 trên máy chủ SSH, lưu lượng truy cập đó sẽ tự động được đường hầm mật khẩu qua kết nối SSH. Bất cứ ai có quyền truy cập vào máy chủ SSH đều có thể truy cập máy chủ web đang chạy trên PC của bạn. Đây thực sự là một cách để đào hầm qua tường lửa.
Để sử dụng chuyển tiếp từ xa, hãy sử dụng ssh
lệnh với -R
tranh luận. Cú pháp phần lớn giống như với chuyển tiếp cục bộ:
ssh -R remote_port: local_address: local_port [email protected]
Giả sử bạn muốn làm cho ứng dụng máy chủ lắng nghe tại cổng 1234 trên PC cục bộ của bạn khả dụng tại cổng 8888 trên máy chủ SSH từ xa. Địa chỉ của máy chủ SSH là ssh.youroffice.com
và tên người dùng của bạn trên máy chủ SSH là bob. Bạn sẽ chạy lệnh sau:
ssh -R 8888: localhost: 1234 [email protected]
Sau đó, ai đó có thể kết nối với máy chủ SSH tại cổng 8888 và kết nối đó sẽ được chuyển sang ứng dụng máy chủ đang chạy ở cổng 1234 trên PC cục bộ mà bạn đã thiết lập kết nối từ.
Để thực hiện việc này trong PuTTY trên Windows, chọn Kết nối> SSH> Đường hầm. Chọn tùy chọn Remote Remote. Đối với Cổng Nguồn Cổng, hãy nhập cổng từ xa. Đối với Đích đích, hãy nhập địa chỉ đích và cổng ở dạng local_address: local_port.
Ví dụ: nếu bạn muốn thiết lập ví dụ trên, bạn sẽ nhập 8888
là cổng nguồn và lưu trữ nội bộ: 1234
làm đích đến Sau đó, nhấp vào Thêm Add Add và sau đó nhấp vào Mở Open Open để mở kết nối SSH. Tất nhiên, bạn cũng cần nhập địa chỉ và cổng của máy chủ SSH trên màn hình chính Phiên bản chính trước khi kết nối.
Mọi người sau đó có thể kết nối với cổng 8888 trên máy chủ SSH và lưu lượng truy cập của họ sẽ được chuyển sang cổng 1234 trên hệ thống cục bộ của bạn.
Theo mặc định, máy chủ SSH từ xa sẽ chỉ nghe các kết nối từ cùng một máy chủ. Nói cách khác, chỉ những người trên cùng hệ thống với chính máy chủ SSH mới có thể kết nối. Điều này là vì lý do bảo mật. Bạn sẽ cần bật tùy chọn của Cổng Gateway Gateway trong sshd_config trên máy chủ SSH từ xa nếu bạn muốn ghi đè hành vi này.
Chuyển tiếp cổng động: Sử dụng máy chủ SSH của bạn làm proxy
Ngoài ra còn có cổng chuyển tiếp năng động, có chức năng tương tự như proxy hoặc VPN. Máy khách SSH sẽ tạo proxy SOCKS mà bạn có thể định cấu hình các ứng dụng để sử dụng. Tất cả lưu lượng được gửi qua proxy sẽ được gửi qua máy chủ SSH. Điều này tương tự như chuyển tiếp cục bộ - nó nhận lưu lượng truy cập cục bộ được gửi đến một cổng cụ thể trên PC của bạn và gửi nó qua kết nối SSH đến một địa điểm từ xa.
Ví dụ: giả sử bạn đang sử dụng mạng Wi-Fi công cộng. Bạn muốn duyệt một cách an toàn mà không bị rình mò. Nếu bạn có quyền truy cập vào máy chủ SSH tại nhà, bạn có thể kết nối với nó và sử dụng chuyển tiếp cổng động. Máy khách SSH sẽ tạo proxy SOCKS trên PC của bạn. Tất cả lưu lượng được gửi đến proxy đó sẽ được gửi qua kết nối máy chủ SSH. Không ai giám sát mạng Wi-Fi công cộng sẽ có thể theo dõi trình duyệt của bạn hoặc kiểm duyệt các trang web bạn có thể truy cập. Từ quan điểm của bất kỳ trang web nào bạn truy cập, nó sẽ như thể bạn đang ngồi trước PC của bạn ở nhà. Điều này cũng có nghĩa là bạn có thể sử dụng thủ thuật này để truy cập các trang web chỉ có ở Hoa Kỳ trong khi bên ngoài Hoa Kỳ - giả sử bạn có quyền truy cập vào máy chủ SSH ở Hoa Kỳ, tất nhiên.
Một ví dụ khác, bạn có thể muốn truy cập ứng dụng máy chủ phương tiện bạn có trên mạng gia đình. Vì lý do bảo mật, bạn chỉ có thể có máy chủ SSH tiếp xúc với Internet. Bạn không cho phép kết nối đến từ Internet đến ứng dụng máy chủ phương tiện của mình. Bạn có thể thiết lập chuyển tiếp cổng động, định cấu hình trình duyệt web để sử dụng proxy SOCKS và sau đó truy cập các máy chủ chạy trên mạng gia đình của bạn thông qua trình duyệt web như thể bạn đang ngồi trước hệ thống SSH tại nhà. Ví dụ: nếu máy chủ phương tiện của bạn được đặt tại cổng 192.168.1.123 trên mạng gia đình của bạn, bạn có thể cắm địa chỉ 192.168.1.123
vào bất kỳ ứng dụng nào sử dụng proxy SOCKS và bạn sẽ truy cập máy chủ phương tiện như thể bạn đang ở trên mạng gia đình của mình.
Để sử dụng chuyển tiếp động, hãy chạy lệnh ssh với -D
tranh luận, như vậy:
ssh -D local_port [email protected]
Ví dụ: giả sử bạn có quyền truy cập vào máy chủ SSH tại ssh.yourhome.com
và tên người dùng của bạn trên máy chủ SSH là bob
. Bạn muốn sử dụng chuyển tiếp động để mở proxy SOCKS tại cổng 8888 trên PC hiện tại. Bạn sẽ chạy lệnh sau:
ssh -D 8888 [email protected]
Sau đó, bạn có thể định cấu hình trình duyệt web hoặc ứng dụng khác để sử dụng địa chỉ IP cục bộ của mình (127.0.01) và cổng 8888. Tất cả lưu lượng truy cập từ ứng dụng đó sẽ được chuyển hướng qua đường hầm.
Để thực hiện việc này trong PuTTY trên Windows, chọn Kết nối> SSH> Đường hầm. Chọn tùy chọn của Dynamic Dynamic. Đối với Cổng Nguồn Cổng, hãy nhập cổng địa phương.
Ví dụ: nếu bạn muốn tạo proxy SOCKS trên cổng 8888, bạn sẽ nhập 8888
làm cổng nguồn. Sau đó, nhấp vào Thêm Add Add và sau đó nhấp vào Mở Open Open để mở kết nối SSH. Tất nhiên, bạn cũng cần nhập địa chỉ và cổng của máy chủ SSH trên màn hình chính Phiên bản chính trước khi kết nối.
Sau đó, bạn có thể định cấu hình ứng dụng để truy cập proxy SOCKS trên PC cục bộ của mình (nghĩa là địa chỉ IP 127.0.0.1, trỏ đến PC cục bộ của bạn) và chỉ định đúng cổng.
Ví dụ: bạn có thể định cấu hình Firefox để sử dụng proxy SOCKS. Điều này đặc biệt hữu ích vì Firefox có thể có cài đặt proxy riêng và không phải sử dụng cài đặt proxy toàn hệ thống. Firefox sẽ gửi lưu lượng truy cập của nó thông qua đường hầm SSH, trong khi các ứng dụng khác sẽ sử dụng kết nối Internet của bạn một cách bình thường.
Khi thực hiện việc này trong Firefox, hãy chọn cấu hình proxy bằng tay của chanh, hãy nhập vào 127 127.0.0.1 vào hộp máy chủ SOCKS và nhập cổng động vào hộp Cổng Cổng. Để trống các hộp HTTP Proxy, SSL Proxy và FTP Proxy.
Đường hầm sẽ vẫn hoạt động và mở miễn là bạn có kết nối phiên SSH mở. Khi bạn kết thúc phiên SSH và ngắt kết nối với máy chủ, đường hầm cũng sẽ bị đóng. Chỉ cần kết nối lại với lệnh thích hợp (hoặc các tùy chọn thích hợp trong PuTTY) để mở lại đường hầm.