Điểm:0

Làm cách nào để chuyển tiếp tất cả lưu lượng đến một cổng nhất định sang một cổng khác?

lá cờ gb

Làm cách nào để chuyển tiếp tất cả lưu lượng đến một cổng nhất định sang một cổng khác?

Xác định bố cục và vấn đề

bố cục

Đây là cách bố trí của những gì tôi đang cố gắng làm ...

+---------+ +---------------------+ +---------------- +
| mạng LAN | <---> | 6789 | | |
| Khách hàng | | Cổng | | Người dẫn chương trình |
| | | 4567 | <---> | Dịch vụ 2345 |
+---------+ +---------------------+ +---------------- +

Tôi muốn chuyển tiếp một cách minh bạch tất cả lưu lượng đến trên cổng 6789 sang cổng 4567. Máy khách trên mạng WAN và dịch vụ trên máy chủ không được biết gì về cổng.

Cổng là Debian 10 với tường lửa.

Vấn đề

Tôi không thể chuyển lưu lượng truy cập đến cổng 6789 trên cổng để chuyển tiếp đến cổng 4567.


Thiết lập hiện tại

Bước 01 - Hiển thị cổng trên tường lửa và xác nhận cổng đang mở.

Mở cổng trên cổng

  1. Chạy tường lửa-cmd chỉ huy: tường lửa-cmd --add-port=6789

  2. Kiểm tra trạng thái tường lửa...

root@gateway:~# tường lửa-cmd --list-all
công khai (đang hoạt động)
  mục tiêu: mặc định
  icmp-block-đảo ngược: không
  giao diện: etho0
  nguồn: 
  dịch vụ: dhcpv6-client http https ssh
  cổng: 6789/tcp
  giao thức: 
  hóa trang: vâng
  cổng chuyển tiếp: 
  cổng nguồn: 
  khối icmp: 
  Quy tắc phong phú:
  1. Xác nhận cổng đang mở.
  • Trên cổng, bắt đầu một người nghe: nc -vvlp 6789 &
  • Xác nhận người nghe đã bật...
root@gateway:~# netstat -tulnp | grep 6789
tcp 0 0 0.0.0.0:6789 0.0.0.0:* NGHE 2274/nc
  • Từ máy khách, cố gắng tiếp cận cổng:
client@client123:~$ nc -vvN gateway.example.org 6789
Đã kết nối với cổng gateway.example.org 6789 [tcp/*] thành công!

Kết luận: Cổng 6789 đang mở trên tường lửa.

Làm sạch bằng cách giết chết nc xử lý trên cả máy khách và cổng.

Bước 02 - Xác nhận kết nối giữa gateway và dịch vụ trên máy chủ

root@gateway:~# telnet localhost 4567
Đang thử 127.0.0.1...
Đã kết nối với máy chủ cục bộ.
Ký tự thoát là '^]'.
220 backendhost.backendhost MyService (Debian/GNU)

Kết luận: Đường hầm giữa cổng và dịch vụ trên máy chủ đã hoạt động.

Bước 03 - Thêm cổng chuyển tiếp trên cổng và kiểm tra trạng thái tường lửa

root@gateway:~# tường lửa-cmd --add-forward-port=port=6789:proto=tcp:toport=4567`
root@gateway:~# tường lửa-cmd --list-all
công khai (đang hoạt động)
  mục tiêu: mặc định
  icmp-block-đảo ngược: không
  giao diện: etho0
  nguồn: 
  dịch vụ: dhcpv6-client ssh
  cổng: 6789/tcp
  giao thức: 
  hóa trang: không
  cổng chuyển tiếp: port=6789:proto=tcp:toport=4567:toaddr=
  cổng nguồn: 
  khối icmp: 
  Quy tắc phong phú: 

Kết luận: Cổng chuyển tiếp nằm trong tường lửa.


Tại thời điểm này, nếu tôi cố gắng telnet máy chủ từ máy khách, tôi nhận được...

client@client123:~$ telnet gateway.example.org 6789
Đang thử <IP_of_gateway>...
telnet: Không thể kết nối với máy chủ từ xa: Kết nối bị từ chối

Tại thời điểm này, tôi muốn xem những gì tôi đã thấy ở Bước 02 ở trên.

các câu hỏi

Đây là nơi tôi không chắc chắn về ...

Khi tôi chạy netstat -tulnp trên cổng, nó KHÔNG hiển thị bất kỳ thứ gì đang nghe trên cổng 6789. Tôi không mong đợi điều đó xảy ra vì tôi không có bất kỳ dịch vụ nào đang chạy nghe trên cổng 6789.

Tôi có cần một số loại dịch vụ để nghe trên cổng 6789 không? Nếu vậy thì sao? Hay tôi đang thiếu thứ gì đó trong cài đặt tường lửa? Tôi có cần một số loại proxy minh bạch như được đề cập không đây?

Tôi sẽ không làm lộn xộn bài đăng này với các liên kết đến tất cả những thứ tôi đã đọc trong vài tuần qua, nhưng nếu có một bài đăng có câu trả lời, xin vui lòng chỉ ra nó.

Chỉnh sửa

Đáp lại @A.B

Máy chủ chạy phía sau tường lửa. Khi máy chủ được khởi động, nó sẽ tự động tạo một đường hầm đến cổng bằng cổng SSH chuyển tiếp.

Đây là lệnh mà máy chủ chạy khi khởi động: ssh -N -R 4567:localhost:2345 [email protected]

Đường hầm đó đã được xác nhận trong Bước 02. Và mặc dù tôi không đề cập đến điều đó trước đó, nhưng máy khách hoạt động khi nằm trong cùng mạng LAN với máy chủ.

Điều tôi đang gặp khó khăn là khiến lưu lượng truy cập đến cổng được chuyển thành công đến máy chủ lưu trữ. Cổng phải "trong suốt". Chứng chỉ bảo mật do máy chủ nắm giữ và máy khách nên nghĩ rằng nó đang nói chuyện trực tiếp với máy chủ.

Tôi vẫn đang cố gắng tìm hiểu các thuật ngữ, vì vậy nếu có một cách chính xác hơn để đặt câu hỏi này, tôi chắc chắn muốn biết nó là gì.

Michael Hampton avatar
lá cờ cz
Bạn cần nghe gì đó trên cổng 4567.
user371793 avatar
lá cờ gb
@MichaelHampton - Cảm ơn bạn đã trả lời. Trên host có 1 port SSH forward được cấu hình tự động kết nối với gateway. Cổng chuyển tiếp được kết nối và, theo những gì tôi hiểu và trình bày trong Bước 02, nó đang lắng nghe trên cổng 4567. Hay tôi đang hiểu nhầm điều gì đó về ý của bạn khi bạn đề cập đến việc tôi "cần thứ gì đó đang lắng nghe trên cổng 4567"? Cảm ơn một lần nữa.
A.B avatar
lá cờ cl
A.B
Từ vựng nên được sử dụng (và được những người đọc câu hỏi của bạn mong đợi) là "chuyển tiếp tới Máy chủ trên cổng 2345", không phải "chuyển tiếp tới cổng 4567". Một số cổng trong sơ đồ của bạn xuất hiện dưới dạng đích, một số khác là nguồn (hoặc tôi không hiểu cách đọc sơ đồ). Bạn phải làm rõ câu hỏi của bạn.
Michael Hampton avatar
lá cờ cz
Hãy quay trở lại vấn đề cơ bản ở đây. Điểm thay đổi cổng bằng tường lửa là gì? Bạn chỉ có thể chuyển tiếp cổng ssh của mình để nghe trực tiếp trên cổng bạn muốn.
Điểm:0
lá cờ gb

Cảm ơn các ý kiến ​​​​khác nhau.

Có hai điều tôi đã bỏ lỡ...

  1. CổngCổng Trong /etc/ssh/sshd_config cần phải được thay đổi từ mặc định không đến khách hàng chỉ định
  2. Các ssh lệnh cần được thay đổi từ nghe trên loopback sang nghe trên tất cả các địa chỉ. Lệnh cập nhật trông như thế này: ssh -N -R 0.0.0.0:4567:localhost:2345 [email protected] (Chú ý các 0.0.0.0: đã được thêm vào trước cổng 4567.)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.