Truy cập từ xa vào máy Linux phía sau tường lửa


11

Tôi sẽ triển khai một máy Linux như một loại thiết bị đầu cuối công cộng ở một địa điểm xa. Tôi muốn có thể truy cập nó từ xa thông qua SSH để bảo trì nhưng tôi không muốn mở một cổng trên tường lửa từ xa trong những dịp hiếm hoi tôi cần truy cập vào máy này. Tôi đã nghĩ về một tập lệnh đơn giản để tạo một đường hầm SSH ngược cho máy ở bên ngoài, nhưng tôi không cần người dùng phải làm bất cứ điều gì khi tôi cần truy cập. Có ý kiến ​​gì không?

Cập nhật: Tôi đã quyết định thực hiện kế hoạch ban đầu về kịch bản để tạo đường hầm ssh ngược. Mặc dù các giải pháp được đề xuất khác, chẳng hạn như gõ cổng sẽ giống với những gì tôi thực sự muốn làm, trong trường hợp này, tôi không có quyền truy cập để định cấu hình bộ định tuyến ngoài việc đưa người dùng đi qua cấu hình. rùng mình


Bạn chưa cấu hình bộ định tuyến. Linux có tường lửa iptables đủ để bảo mật tường lửa. Và việc tạo một đường hầm ssh luôn cho máy chủ khiến nó dễ bị tấn công, nó ném máy chủ mà nó được kết nối.
Kazimieras Aliulis

1
Tôi sẽ phải mở một cổng trên bộ định tuyến tuy nhiên để chuyển bất cứ thứ gì tôi cần vào hộp linux. Đường hầm ssh không phải lúc nào cũng vậy. Nó sẽ được bắt đầu bởi một người dùng kết thúc khi tôi cần quyền truy cập vào máy.
baudtack

Câu trả lời:


5

Nó ít liên quan đến việc quan tâm đến một cổng được mở và nhiều việc phải làm với việc không muốn đi bộ người dùng mặc dù quá trình mở một cổng. Thật không may, tôi không có quyền truy cập vào bộ định tuyến này.

Nếu việc thay đổi bộ định tuyến hoàn toàn không có vấn đề, bạn có thể cần xem xét một giải pháp P2P hoặc VPN như Hamachi . Nếu bạn thiết lập hệ thống để tự động thiết lập kết nối VPN khi khởi động, thì bạn sẽ có thể kết nối bất cứ khi nào bạn cần. Hamachi làm tất cả các cuộc đàm phán tường lửa cho bạn. Một nhược điểm là bạn phải dựa vào các máy chủ Hamachi đang hoạt động và hoạt động khi bạn cần kết nối.

Nếu bạn có một máy chủ luôn hoạt động, bạn có thể thiết lập chế độ tự động để hệ thống từ xa luôn giữ một đường hầm mở và kết nối với máy chủ của bạn. Một nhược điểm là hệ thống từ xa bị xâm nhập, kẻ tấn công sẽ lấy các khóa được sử dụng để thiết lập phiên ssh. Sẽ rất quan trọng để giữ cho hệ thống của bạn chấp nhận kết nối ssh thực sự bị khóa.


Dưới đây là câu trả lời ban đầu của tôi, tôi đã giả định rằng cập nhật bộ định tuyến là một tùy chọn.

Một giải pháp bạn có thể muốn điều tra nếu tường lửa của bạn hỗ trợ nó, đó là gõ cổng . Với một số tường lửa, có thể gửi ra một tập hợp các gói đặc biệt mà tường lửa thông báo và sau đó tạm thời mở lỗ thông qua tường lửa.

Có nhiều triển khai một số tốt hơn sau đó những người khác. Một số sử dụng mật mã mạnh để làm cho một người gần như không thể có chìa khóa phù hợp để gửi tiếng gõ chính xác.


Có vẻ là một ý tưởng tuyệt vời! Thật không may, tường lửa trong câu hỏi chỉ là một Linksys cấp người tiêu dùng đơn giản hoặc một số tương đương.
baudtack

1
Nếu bạn có thể cài đặt dd-wrt, bạn có thể sử dụng knd ( dd-wrt.com/wiki/index.php/Knockd )
Zoredache

@Zoredache Đúng, nhưng đây là một địa điểm từ xa. Tôi không có quyền truy cập vào bộ định tuyến này và tôi rùng mình khi nghĩ đến việc cố gắng hướng dẫn người dùng thông qua cài đặt dd-wrt.
baudtack

Tôi đồng ý rằng đây có lẽ là Cách đúng để thiết lập điều này, miễn là tôi có quyền truy cập vật lý vào bộ định tuyến để cài đặt dd-wrt.
baudtack

Hamachi, kể từ khi được LogMeIn mua lại, đã cho thấy sự cân nhắc sâu sắc đối với người dùng Linux. Tôi thấy sản phẩm này không đáng tin cậy khi các máy Linux là một phần của mạng hamachi của tôi.
bmb

6

Tôi sẽ không lo lắng về việc để cổng 22 có thể truy cập internet, nhưng tôi sẽ thực hiện một số bước để bảo mật nó.

Đầu tiên, vô hiệu hóa xác thực tương tác bàn phím và di chuyển đến các phím ssh.

Thứ hai, cài đặt một cái gì đó như fail2ban trên máy chủ từ xa của bạn để đánh bóng các địa chỉ IP lặp lại thăm dò máy của bạn. Vì bạn đã thiết lập các khóa ssh, nên sẽ không có lỗi xác thực cho người dùng được ủy quyền.

Ngoài ra, nếu bạn có thể, hãy tham khảo lời khuyên của WerkkreWs và định cấu hình tường lửa trước máy để chấm dứt kết nối vpn, sau đó chỉ cho phép ssh daemon trên máy chủ từ xa chấp nhận các kết nối đi qua vpn đó.

Ngoài ra, nếu tường lửa của bạn không thể chấm dứt kết nối vpn, bạn có thể chuyển tiếp các gói GRE hoặc IPSEC đến máy linux của mình và chấm dứt nó ở đó.


Nó ít liên quan đến việc quan tâm đến một cổng được mở và nhiều việc phải làm với việc không muốn đi bộ người dùng mặc dù quá trình mở một cổng. Thật không may, tôi không có quyền truy cập vào bộ định tuyến này.
baudtack

Tôi hiểu và thông cảm với nỗi đau của bạn.
Dave Cheney

2
Bước đầu tiên trong giải pháp này là cấu hình sshd để chạy trên một cổng không chuẩn. Có rất nhiều bot gõ cổng 22 ngoài kia. Chọn một cổng không xuất hiện trên / etc / services và "nmap HOST" không tìm thấy cổng đó.
hayalci

4

Có vẻ như bạn đang tìm kiếm gõ cửa

Bạn có thể cài đặt nó trên máy chủ linux, với iptables để nó giống như tường lửa cấp 2. Ngay cả với cổng 22 mở trên tường lửa frontend, nó sẽ không được mở trên máy chủ, vì vậy các portscans sẽ không nhìn thấy bất kỳ cổng mở nào. Sau đó, khi bạn gửi "tiếng gõ bí mật", đột nhiên bạn có một đường dẫn mở tới cổng 22.

Điều đó có ý nghĩa?


Trừ khi tôi nhầm, tôi cũng phải chuyển tiếp tất cả các cổng gõ phải không? Điều đó không rõ ràng khi ai đó quét bộ định tuyến? Họ sẽ không biết thứ tự nhưng giảm các kết hợp có thể xuống còn 6, nếu tôi nhớ cách thực hiện hoán vị chính xác, sẽ cho họ một khởi đầu khổng lồ. Hay tôi đang nghĩ về điều này sai?
baudtack

Mặc dù các cổng được sử dụng để gõ sẽ cần phải được chuyển tiếp, nhưng máy chủ đang chạy gõ không thực sự cần phải trả lời nguồn của tiếng gõ bằng bất kỳ cách nào.
Zoredache

chính xác - các cổng mở trên tường lửa đầu tiên sẽ không được mở vào ngày 2, do đó, đối với máy quét, tất cả chúng đều xuất hiện đóng. Không có cách nào để phân biệt cổng gõ với không gõ.
Brent

3

Để tổng hợp tất cả các câu trả lời:

sử dụng ssh, nhưng làm cho nó tối nghĩa và an toàn hơn.

Để bảo mật:

  • Đảm bảo đăng nhập root không được phép (PermitRootLogin no).
  • Giới hạn người dùng, có thể đăng nhập bằng tùy chọn cấu hình AllowUsers hoặc Allowgroup.
  • Đảm bảo nó chỉ sử dụng giao thức ssh 2 phiên bản (Giao thức 2).
  • Bạn chỉ nên sử dụng các khóa xác thực, nhưng mật khẩu sẽ thuận tiện hơn, khi có thể cần kết nối với máy chủ từ kỳ nghỉ mà bạn không có quyền truy cập vào các khóa xác thực.

Đối với che khuất:

  • Thay đổi cổng ssh thành một số cổng cao ngẫu nhiên mà bạn sẽ nhớ, như năm 20486. Điều này sẽ loại bỏ hầu hết các bệnh ung thư tự động, nhưng nó sẽ không ẩn nó khỏi tất cả các lần quét cổng trên máy chủ.
  • Ẩn khả năng kết nối với cổng. Một cách là gõ cổng được đề cập trong các câu trả lời khác, nhưng bạn cần phần mềm đặc biệt, không thể truy cập ở mọi nơi. Một tùy chọn đơn giản khác là sử dụng tường lửa iptables với mô-đun gần đây để tạo quy tắc, điều này sẽ chỉ cho phép kết nối ở lần thử thứ hai hoặc thứ ba. Vì vậy, bạn biết rằng bạn phải thử nhiều lần để kết nối thành công, nhưng đơn giản tất cả quét cổng sẽ không tiết lộ cổng ssh. Các quy tắc sẽ tương tự như:


iptables -A INPUT -m tcp -p tcp --dport 20486 -m state --state NEW -m recent --set
iptables -A INPUT -m tcp -p tcp --dport 20486 -m state --state NEW  -m recent --rcheck --seconds 60 --hitcount 2 -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport 20486 -j DROP


+1 tóm tắt hay và ý tưởng thú vị về thủ thuật nhiều lần thử.
David Z

2

Tác vụ theo lịch trình tập lệnh cho đường hầm ssh ngược của bạn hoặc mở cổng tường lửa.

Nếu bạn lo lắng về việc SSH sẽ mở cửa ra thế giới, bạn có thể lên lịch tác vụ khi thời gian bảo trì của bạn với các tập lệnh iptables và chỉ có sẵn cổng sau đó.


1
Đã đồng ý. Trừ khi bạn có cách để VPN, giải pháp thực sự duy nhất là về cơ bản là mở một cổng. Nếu bạn lo lắng về điều đó, bạn luôn có thể sử dụng một cổng không chuẩn.
WerkkreW

2

Nhìn vào cổng gõ để mở đường hầm SSH của bạn.

Ngoài ra, chạy denyhosts để khóa mọi người sau khi có quá nhiều yêu cầu xấu.

Cả hai gói đều có sẵn trong kho Ubuntu, Fedora và RHEL tiêu chuẩn.


1

Đi trước và mở một cổng, chỉ cần làm cho nó một bên ngoài phạm vi bình thường. Tôi sẽ làm cho nó một số cổng ngẫu nhiên trên 1024. Bằng cách đó, tin tặc sẽ không thể tìm thấy nó.


0

Không có lý do để không chọc lỗ trên tường lửa nếu bạn cần truy cập vào máy từ xa, tuy nhiên không thường xuyên.

Tuy nhiên, nếu bạn vẫn không (hoặc không thể) mở cổng, tập lệnh shell đơn giản có thể giám sát một số tài nguyên có sẵn trên Internet mà bạn kiểm soát và nghe lệnh để khởi chạy đường hầm ngược. Tài khoản email, kênh IRC và trang web xuất hiện ngay lập tức dưới dạng thiết bị kích hoạt.

Tất nhiên, điều này dễ vỡ hơn và kém an toàn hơn so với việc chỉ mở cổng. Nhưng tôi chắc chắn bạn có lý do của bạn.

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.