2009-01-04 52 views
5

Tôi hiện đang làm việc tại một khách hàng là họ đã khóa mạng, ngoại trừ các cổng 80 và 443. Tôi cần kết nối với máy chủ của chúng tôi bằng SSH, nhưng cùng một máy chủ cũng chạy trang web của chúng tôi. Chúng tôi không muốn đầu tư vào một máy chủ mới hoặc đặt một card mạng thứ hai.Tường lửa của khách hàng chặn tất cả các cổng nhưng 80 và 443, cần phải chuyển tiếp các yêu cầu trên cổng 443 sang SSH hoặc HTTPS

Tôi đã tìm kiếm trên Internet để thiết lập máy chủ Linux của chúng tôi (chạy CentOS 5), để có một trình nghe nhạc trên cổng 443 tùy thuộc vào giao thức khách gửi yêu cầu đến cổng nội bộ chính xác (SSH 22) hoặc HTTPS chuyển đến một differentport_.

có rất nhiều người trên internet tìm kiếm giải pháp loại này, nhưng không có hướng dẫn rõ ràng làm thế nào để làm điều này.

Bất cứ ai cũng có những ý tưởng/hướng dẫn rõ ràng làm thế nào để làm điều này?

Trân trọng, nidkil

+0

Hầu hết các lần cổng 443 cũng mở ra. Nếu máy chủ web của bạn không hỗ trợ HTTPS, bạn có thể chuyển tiếp cổng đó đến 22 trong tường lửa của bạn. – krosenvold

+0

đúng, nhưng anh ấy muốn chạy HTTPS! – Mikeage

Trả lời

3

Một giải pháp dễ dàng cho vấn đề của bạn có thể là gán nhiều địa chỉ IP cho hộp của bạn và liên kết SSH của bạn với cổng 443 trên một IP riêng biệt; you can usually assign multiple IP addresses to a single adapter, không cần thêm thẻ mạng thứ hai. Nếu không, tôi không biết bất kỳ giải pháp hộp nào cho những gì bạn muốn làm. Bạn có lẽ sẽ phải tạo một daemon tùy chỉnh cho điều đó, mà sẽ là một chút khôn lanh nhưng có thể làm được.

+0

Đây có lẽ là giải pháp tốt nhất nếu anh ta có nhiều IP có sẵn. – Mikeage

1

Bạn có thể xây dựng một ứng dụng web nhỏ nghe trên cổng 443 cho phép vỏ SSH đảo ngược hướng tới IP của kết nối đến, sử dụng xác thực khóa công khai. Nói:

  • Bạn xác thực trên ứng dụng web; các ứng dụng web lấy IP của bạn
  • Ứng dụng này bắt đầu một đường hầm SSH từ IP của nó để IP của bạn (ở cổng 22)
  • Các máy chủ SSH trên máy tính của bạn kết thúc đường hầm và lắng nghe tại localhost: 8080
  • Sau đó, bạn bắt đầu phiên SSH với localhost: 8080. Các lệnh trong phiên tương tác sau được chuyển hướng đến máy chủ từ xa.
3

Các giới hạn tường lửa được đặt ra vì một lý do. Họ có thể không phải là những người tốt, nhưng họ có ý nghĩa với người thực hiện nó hoặc gây ra nó được thực hiện. Tôi sẽ không cố gắng vi phạm chính sách của công ty về các kết nối bên ngoài.

Nếu nhu cầu của bạn là hợp pháp, tôi sẽ yêu cầu cổng hoặc địa chỉ thay thế, được mở tới địa chỉ bạn yêu cầu. Nếu điều đó không hoạt động thì có lẽ một giải pháp VPN sẽ được chấp nhận.

Trong trường hợp các nhân viên mạng chỉ bảo vệ một cách điên rồ, không muốn trả lời lý do, hoặc không đủ năng lực, tôi muốn đảm bảo rằng tôi đã đăng xuất khỏi một người quản lý sẵn sàng đi đến chỗ tôi. nó trở thành một vấn đề trước khi tôi thực hiện một công việc xung quanh. Bất cứ điều gì khác có thể hợp lý kết thúc với việc làm của bạn bị chấm dứt. Xét cho cùng, bạn đang nói về việc vi phạm chính sách bảo mật của công ty.

+0

Giả vờ anh ấy ở Thái Lan hoặc một số quốc gia khác chặn SSH. Tất nhiên, bạn sẽ mạo hiểm cảnh sát bí mật thay vì chỉ là cơn thịnh nộ của đế chế. Có lẽ cần phải tàng hình SSH bên trong gif của quá sau đó;) – krosenvold

+0

Điểm tốt về cách sử dụng SSH để vượt qua an ninh. Hầu hết mọi người bảo mật không thích nó khi bạn phá vỡ quy tắc của họ, và họ thường có rất nhiều kéo. Theo như một người nào đó mở cổng, tôi đoán bạn chưa bao giờ làm việc trong một công ty lớn trước khi chính sách vượt qua bất kỳ lý do chính đáng nào có thể có? –

0

Nếu bạn có apache trên hộp centos của chúng tôi, bạn có thể sử dụng mod_proxy để chuyển hướng các yêu cầu từ cổng này sang cổng khác. Tôi sử dụng để chuyển các yêu cầu để http://webmin.myserver.com-http://myserver.com:10000 (webmin chạy trên một cổng không thể tiếp cận)

ServerName webmin.myserver.co.uk 
SSLProxyEngine On 

ProxyRequests Off 
ProxyPass/https://myserver.co.uk:10000/ 
ProxyPassReverse/https://myserver.co.uk:10000/ 

Đặt trên trong chỉ thị máy chủ ảo của bạn, và bạn tốt để đi.Điều này có thể không hoạt động với Putty, nhưng nếu bạn cài đặt webmin, nó có một mô-đun SSH bạn có thể truy cập thông qua trình duyệt.

6

sslh: http://www.rutschle.net/tech/sslh.shtml

Tôi đang sử dụng 1,5; Tôi chưa thử 1.6b, và 1.3 có vấn đề với việc rời khỏi zombie xung quanh.

Chạy trên cổng 443; nếu không có dữ liệu được gửi đi với 2 giây (mặc định), nó sẽ chuyển tiếp đến ssh. Nếu không, nó sẽ chuyển tiếp đến máy chủ web của bạn.

Tôi đang chạy nó trên trang web của mình (http://mikeage.net) - bạn có thể netcat nếu bạn muốn xem cả hai biểu ngữ đăng nhập.

Trong trường hợp của tôi, nó cũng có mục đích khác. Chúng tôi có một thiết lập hạn chế hơn cả bạn: tất cả các cổng bị chặn, nhưng 80 và 443 có thể đạt được thông qua proxy. Tôi có thể có SSH sử dụng một chương trình như corkscrew (hoặc putty nguyên bản) để proxy kết nối SSH của tôi thông qua proxy công ty đến máy chủ của tôi: 443, sau một thời gian ngắn, máy chủ SSH của tôi phản hồi với biểu ngữ đăng nhập của nó. Tôi cũng có thể phục vụ các trang web qua HTTPS chuẩn (và thực tế).

+0

Rất đẹp. +1. Xem nhận xét của http://stackoverflow.com/questions/487737. 1 xuống, 14 để đi (1 mỗi ngày) – VonC

Các vấn đề liên quan