SSH qua kết nối VPN


11

Chúng tôi có máy chủ AWS EC2 mà chúng tôi đã cấu hình để chỉ có thể truy cập (thông qua SSH) từ trong mạng văn phòng của chúng tôi. Rõ ràng điều này không lý tưởng cho các sắp xếp từ xa, nơi ai đó phải kết nối với thể hiện EC2 và đang làm việc từ xa bên ngoài văn phòng, chẳng hạn như trong một chuyến công tác.

Tôi đã quản lý để thiết lập VPN thông qua PPTP và có thể kết nối với mạng văn phòng (tôi có hai IP cục bộ từ wlan0 và một từ ppp0) bất kể tôi ở đâu. Tuy nhiên, khi tôi SSH tới phiên bản EC2, rất có thể nó vẫn từ chối tôi vì tôi thấy rằng tôi vẫn đang cố gắng ssh từ bên ngoài mạng.

Tôi đoán vấn đề là tôi không thể định tuyến lưu lượng ssh để đi qua VPN. Bất kỳ ý tưởng làm thế nào tôi có thể thực hiện điều này?

Tùy chọn khác của tôi là ssh đến một máy trong mạng văn phòng và sau đó sử dụng máy đó để ssh đến phiên bản EC2 nhưng tôi đã do dự để làm điều đó vì nó có vẻ quá mức.


Câu trả lời ngắn gọn là định tuyến lưu lượng SSH của bạn thông qua VPN. Và sử dụng một cái gì đó an toàn hơn một chút so với PPTP.
Hyppy 22/12/14

Câu trả lời:


15

Giả sử AWS của bạn có thể truy cập thông qua SSH tại IP "your.ec2.ip.address". Giả sử mạng văn phòng của bạn có quyền truy cập Internet thông qua bộ định tuyến áp dụng một số bản dịch NAT và, như vậy, các PC văn phòng của bạn được nhìn thấy, trên Internet, với IP "your.office.external.ip".

Chúng ta cũng giả sử rằng bạn đang ở NGOÀI TRỜI văn phòng của bạn, với máy tính xách tay của bạn được kết nối trên toàn thế giới, với:

  • một địa chỉ IP chính được chỉ định bởi nhà cung cấp Internet địa phương của bạn (giả sử 192.168.0.33 với netmask 255.255.255.0 và def-gw 192.168.0.1);
  • một địa chỉ PPP0, được gán cho máy tính xách tay của bạn bởi máy chủ PPTP từ xa (khi đường hầm VPN của bạn được thiết lập thành công). Giả sử PPP0 là.local.ppp0.ip với P2P từ xa the.remote.pptp.address. Nói cách khác, máy tính xách tay của bạn biết là.local.ppp0.ip và cũng biết rằng ở phía bên kia của đường hầm VPN có máy chủ PPTP của bạn có thể truy cập, qua VPN, tại.remote.pptp.address.

Trong trường hợp như vậy, nếu bạn không thể - từ máy tính xách tay của bạn-- để truy cập AWS của bạn tại "your.ec2.ip.address" Tôi đặt cược vấn đề là - như bạn đoán-- định tuyến: lưu lượng SSH của bạn hướng đến " your.ec2.ip.address " KHÔNG rời netbook của bạn trong VPN, nhưng, thay vào đó, sẽ rời khỏi đường dẫn chung, VPN bên ngoài (còn gọi là: được gửi đến cổng cục bộ của bạn: 192.168.0.1).

Để chẩn đoán vấn đề này, có thể thực hiện kiểm tra rất dễ dàng với:

  • Linux: lệnh tracepath (es.: "Tracepath -n your.ec2.ip.address")
  • windows: lệnh "tracert" (es.: "tracert -d your.ec2.ip.address")

Từ đầu ra, bạn có thể kiểm tra xem bước thứ hai có báo cáo địa chỉ PPTP hay không.

Nếu lưu lượng truy cập của bạn đi dọc theo đường dẫn sai, cách khắc phục dễ dàng để định tuyến nó trong VPN là:

  • Linux: "định tuyến thêm -host your.ec2.ip.address gw the.remote.pptp.address"
  • Windows: "tuyến đường thêm mặt nạ your.ec2.ip.address 255.255.255.255 the.remote.pptp.address"

Sau khi định cấu hình tuyến đường trên, bạn có thể kiểm tra lại định tuyến bằng tracert / tracepath

Khi định tuyến được định cấu hình đúng, có một xác suất nhỏ có thể phát sinh sự cố trong văn phòng của bạn: nếu máy chủ PPTP của bạn KHÔNG thực hiện chuyển tiếp IP và dịch thuật NAT, thì có khả năng cao là bạn sẽ gặp phải "lọc", trong trường hợp thiếu chuyển tiếp ip hoặc "định tuyến không đối xứng" (trong trường hợp thiếu NAT) giữa máy tính xách tay của bạn và your.ec2.ip.address:

  • lưu lượng truy cập từ bạn đến amazon, đi dọc VPN đến văn phòng của bạn và từ đó đến Amazon;
  • trả lại lưu lượng truy cập từ Amazon cho bạn, được chuyển theo đường truyền internet phổ biến và ... rất có thể nó bị bỏ ở đâu đó.

Một lần nữa: tracepath / tracert có thể giúp bạn kiểm tra vấn đề.

Trên các hộp linux, một người bạn rất hữu ích khác là "tcpdump". Một số lệnh tcpdump hữu ích là:

  • "tcpdump -n -i interface icmp" để kiểm tra yêu cầu / phản hồi PING đến / đi;
  • "tcpdump -n -i lưu trữ an.ip.add.ress " để kiểm tra lưu lượng đến / gửi đến an.ip.add.ress;
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.