Điểm:0

Cách tốt nhất để định tuyến lưu lượng dựa trên người dùng đã đăng nhập thông qua tuyến dự phòng cụ thể?

lá cờ br

Tôi có một máy Ubuntu 20.04 với 2 giao diện ethernet với 2 địa chỉ IP mỗi giao diện. Đó là một phiên bản AWS EC2 và mỗi trong số 4 địa chỉ IP đều có một EIP được đính kèm thông qua NAT.Cả hai giao diện kết nối với cùng một mạng con bên trong. Thiết lập trông như thế này:

Máy EC2:

- vi1:

  • riêng tư-IP1 -> công khai-IP1
  • riêng tư-IP2 -> công khai-IP2

- vi2:

  • riêng tư-IP3 -> công khai-IP3
  • riêng tư-IP4 -> công khai-IP4

Tất cả 4 địa chỉ đều có thể truy cập được từ bên ngoài nên có vẻ như mọi thứ đều ổn. Tuy nhiên, đối với lưu lượng gửi đi hiện tại luôn luôn sử dụng private-IP1 (và do đó, public-IP1). Tôi muốn chỉ định rằng người dùng SSH cá nhân sử dụng các địa chỉ IP cụ thể, vì vậy họ sẽ đến từ IP công cộng tương ứng khi nói chuyện với các dịch vụ trên internet, tức là.

user1 -> private-IP1

user2 -> private-IP2

user3 -> private-IP3

user4 -> private-IP4

Cách tốt nhất để đạt được kết quả này là gì?

Zac67 avatar
lá cờ ru
Bạn có thể chạy 802.1X không? Bạn có thể chỉ định địa chỉ IP dựa trên xác thực RADIUS.
lá cờ br
hmm, tôi đoán nó sẽ là một lựa chọn. Chưa bao giờ làm việc với xác thực RADIUS trước đây. Bạn có biết bất kỳ tài nguyên nào mà tôi có thể kiểm tra để giúp tôi bắt đầu việc này không?
Zac67 avatar
lá cờ ru
Không, xin lỗi - dù sao thì các yêu cầu về tài nguyên không có chủ đề ở đây. Bạn nên khám phá những tùy chọn mà bạn có EC2. Mặc dù có thể dễ dàng thêm máy chủ RADIUS, nhưng 802.1X cần được cung cấp bởi đám mây (trừ khi bạn đặt một lớp ảo hóa hoàn chỉnh lên trên cùng).
Điểm:1
lá cờ bd

Cách tốt nhất để đạt được điều đó là sao chép phiên bản EC2 thành bốn phiên bản, gán cho mỗi bản sao một địa chỉ IP và cho phép mỗi người dùng chỉ sử dụng máy có địa chỉ IP mà họ nên sử dụng.

lá cờ br
Cách tiếp cận thú vị nhưng không phải những gì tôi đang tìm kiếm. Tôi đang lên kế hoạch mở rộng quy mô này lên nhiều IP hơn trong thời gian dài và việc triển khai một nhóm phiên bản chỉ cho mục đích này có vẻ lãng phí và sẽ tạo ra nhiều chi phí bảo trì.
Tilman Schmidt avatar
lá cờ bd
Xin lỗi, tất cả các giải pháp khác mà tôi có thể nghĩ ra sẽ tạo ra nhiều chi phí bảo trì hơn nữa.
lá cờ br
Nhưng phải có một cách để yêu cầu nhân linux sử dụng các tuyến khác nhau mà nó có sẵn. Nó hoạt động với lưu lượng đi qua hộp, tại sao nó không hoạt động đối với lưu lượng bắt nguồn từ hộp?
Tilman Schmidt avatar
lá cờ bd
Tất nhiên là có. Khó khăn là đưa ra quyết định định tuyến đó phụ thuộc vào ID người dùng. Bản thân lưu lượng truy cập không có thông tin về người dùng đã khởi tạo nó. Nói một cách đơn giản, bạn sẽ phải tạo *và duy trì* một cơ chế để ánh xạ UID tới các địa chỉ IP nguồn *và* để yêu cầu ngăn xếp mạng sử dụng nó thay vì cơ chế bất khả tri của người dùng thông thường. Một lần nữa, tạo một phiên bản riêng cho mỗi người dùng cho đến nay là cách dễ nhất để đạt được điều đó.
lá cờ br
hừm. Tôi đã thử sử dụng chủ sở hữu -m trong iptables để khớp lưu lượng truy cập với người dùng, đánh dấu các gói và sau đó sử dụng quy tắc ip để ánh xạ chúng tới một bảng định tuyến cụ thể.Thật không may, nó không hoạt động nên tôi đang tìm kiếm các giải pháp thay thế... Tôi vẫn nghĩ rằng nó phải khả thi hoặc phải tồn tại một giải pháp thay thế. Tôi chỉ không thể tìm ra nó ...
lá cờ br
Cuối cùng tôi đã giải quyết thông qua một cách giải quyết. Cảm ơn những suy nghĩ mặc dù!
Điểm:1
lá cờ br

Cuối cùng tôi đã tự giải quyết vấn đề này sau khi đổ nhiều giờ vào việc này. Cuối cùng, tôi đã làm cho nó hoạt động bằng cách thêm quy tắc ip như sau:

quy tắc sudo ip thêm tra cứu uidrange 1000-1001 if1
quy tắc sudo ip thêm tra cứu uidrange 1002-1004 if2

và sau đó thêm các quy tắc định tuyến sau iptables như thế này:

$ sudo iptables -S -t nat
-P CHẤP NHẬN TRƯỚC
-P CHẤP NHẬN ĐẦU VÀO
-P CHẤP NHẬN ĐẦU RA
-P SAU KHI CHẤP NHẬN
-A POSTROUTING -o interface1 -m chủ sở hữu --uid-chủ sở hữu 1000 -j SNAT --to-nguồn IP1
-A POSTROUTING -o interface1 -m chủ sở hữu --uid-chủ sở hữu 1001 -j SNAT --to-source IP2
-A POSTROUTING -o interface2 -m chủ sở hữu --uid-chủ sở hữu 1002 -j SNAT --to-nguồn IP3
-A POSTROUTING -o interface2 -m chủ sở hữu --uid-chủ sở hữu 1003 -j SNAT --to-source IP3

với if1 và if2 là các bảng định tuyến tùy chỉnh của tôi chứa các tuyến mặc định tương ứng. Hoạt động tốt! Có lẽ điều này có thể hữu ích cho ai đó trong tương lai :)

Đă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.