Có nghĩa là gì bind bind_address có nghĩa là gì trong chuyển tiếp cổng SSH?


7

Trong SSH chuyển tiếp cục bộ:

 -L [bind_address:]port:host:hostport
         Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.  This works by
         allocating a socket to listen to port on the local side, optionally bound to the specified bind_address.  Whenever a connection is made to
         this port, the connection is forwarded over the secure channel, and a connection is made to host port hostport from the remote machine.  Port
         forwardings can also be specified in the configuration file.  IPv6 addresses can be specified by enclosing the address in square brackets.
         Only the superuser can forward privileged ports.  By default, the local port is bound in accordance with the GatewayPorts setting.  However,
         an explicit bind_address may be used to bind the connection to a specific address.  The bind_address of “localhost” indicates that the listen‐
         ing port be bound for local use only, while an empty address or ‘*’ indicates that the port should be available from all interfaces.

Trong "một địa chỉ trống hoặc *chỉ ra rằng cổng phải có sẵn từ tất cả các giao diện", "tất cả các giao diện" có nghĩa là gì? Điều đó có nghĩa là tất cả các giao diện mạng trên máy chủ cục bộ khi máy chủ cục bộ có thể có nhiều giao diện mạng và cổng portcó thể được sử dụng với tất cả các giao diện mạng trên máy chủ cục bộ?

Trong "bind_address of localhostchỉ ra rằng cổng nghe chỉ bị ràng buộc chỉ sử dụng cục bộ", "chỉ sử dụng cục bộ" có nghĩa là một giao diện mạng cụ thể trên máy chủ cục bộ không?

Có thể bind_addresstham khảo một giao diện mạng trên một máy chủ khác ngoài máy chủ cục bộ không?

Câu trả lời:


8

Nói chung, ràng buộc địa chỉ là sự liên kết giữa một dịch vụ (ví dụ: SSH) và địa chỉ IP.

Một máy chủ có thể có nhiều địa chỉ IP (ví dụ: 127.0.0.1, 192.168.1.2). Liên kết địa chỉ cho phép bạn chạy một dịch vụ trên một số hoặc tất cả các địa chỉ này.

Giả sử máy chủ của bạn được cấu hình với hai giao diện mạng, một giao diện được kết nối với mạng đáng tin cậy (ví dụ: 192.168.1.0/24), mạng còn lại được kết nối với mạng không tin cậy (ví dụ: 192.168.2.0/24). Giả sử bạn muốn máy chủ của mình chỉ chấp nhận kết nối SSH từ mạng đáng tin cậy. Trong trường hợp này, bạn sẽ liên kết dịch vụ SSH với địa chỉ của máy chủ lưu trữ trên mạng đáng tin cậy (ví dụ: 192.168.1.2).

Sử dụng localhostnhư bind_addresssẽ chỉ cho phép các máy khách SSH chạy trên máy cục bộ kết nối với dịch vụ SSH.


Có phải "192.168.1.0" và "192.168.2.0" là địa chỉ IP của hai giao diện mạng trên máy chủ cục bộ không?
Tim

Không, đó là các mạng, không phải địa chỉ. Xem en.wikipedia.org/wiki/ Kẻ
ThatGuy

1
@ThatGuy: Bạn có thể muốn thêm một đoạn trích từ một netstat -tnulpđầu ra được chuẩn bị phù hợp . Điều đó sẽ làm cho quan điểm của bạn dễ dàng hơn / tốt hơn để minh họa.
Alex Stragies

1

Tất cả các giao diện có nghĩa là ... tất cả các giao diện, mặc dù có lẽ có ngoại lệ cho các giao diện đặc biệt như pflog0(giao diện nhật ký bộ lọc gói). Sử dụng cục bộ có nghĩa là giao diện loopback, thường lo0hoặc như vậy, nên có ::1địa chỉ được gán cho nó. Sự khác biệt chính ở đây là liệu các hệ thống từ xa có thể truy cập vào cổng hay không; sử dụng localhost, chỉ các quá trình trên hệ thống cục bộ mới có thể kết nối.

Địa chỉ liên kết thực sự có thể là một địa chỉ không cục bộ. Tuy nhiên, điều này sẽ gây ra bind: Can't assign requested addresslỗi như vậy, vì vậy sẽ không phục vụ nhiều nếu có mục đích.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.