Tôi có thể giới hạn người dùng (và ứng dụng của họ) trong một giao diện mạng không?


15

Tôi thực sự có hai kịch bản để áp dụng điều này:

  1. Multiseat Desktop: hai kết nối mạng cả với cổng internet và hai tài khoản thực hiện các nhiệm vụ cần nhiều băng thông trên mỗi mạng. Tôi muốn tách chúng ra để một tài khoản chỉ sử dụng eth0 và tài khoản thứ hai chỉ sử dụng eth1.

  2. Máy chủ: Tôi có hai IP trên một máy chủ và tôi muốn đảm bảo rằng người dùng thư chỉ gửi email từ IP thứ hai (bí danh eth0: 1)

Thứ hai có thể là IPT bật (tôi chỉ không biết làm thế nào) để định tuyến lưu lượng email qua giao diện đó, nhưng thứ nhất sẽ xử lý tất cả các loại lưu lượng truy cập nên cần phải dựa trên người dùng. Nếu có một giải pháp dựa trên người dùng, tôi có thể áp dụng điều này ở cả hai nơi.

Câu trả lời:


6

Bạn sẽ muốn sử dụng mô-đun chủ sở hữu iptables và có thể một số xáo trộn gói thông minh.

chủ sở hữu Mô-đun này cố gắng khớp các đặc điểm khác nhau của người tạo gói, cho các gói được tạo cục bộ. Nó chỉ hợp lệ trong chuỗi OUTPUT và thậm chí sau đó một số gói (như phản hồi ping ICMP) có thể không có chủ sở hữu và do đó không bao giờ khớp.

--uid-own userid Khớp nếu gói được tạo bởi một quy trình với id người dùng (số) hiệu quả nhất định.

--gid-own groupid Khớp nếu gói được tạo bởi một quy trình với id nhóm hiệu quả (số) đã cho.

--pid-own processid Khớp nếu gói được tạo bởi một tiến trình với id tiến trình đã cho.

--sid-session sessionid Khớp nếu gói được tạo bởi một tiến trình trong nhóm phiên đã cho.


Bạn có thể sử dụng iptables để đặt dấu, sau đó bạn có thể sử dụng trong bảng định tuyến. Xem các mục tiêu Mark và CONNophone. Trong iproute, quy tắc ip sau đó thêm fwmark X ... 'Tôi thực sự không ngạc nhiên, nếu chỉ một mình iproute2 có thể làm điều này ...
derobert

3
Là một người thực hiện công việc rộng rãi với kết hợp chủ sở hữu, tôi có thể nói điều này sẽ không luôn tạo ra kết quả mong muốn. Tức là không phải tất cả các gói đều có chủ sở hữu như bạn mong đợi. ICMP và ESP là các loại được sở hữu bởi kernel (hoặc root) bất kể ứng dụng gốc và sẽ không được khớp bởi -m owner. Nó khá đáng tin cậy với TCP và UDP, nhưng các loại khác không đáng tin cậy lắm. Cách đáng tin cậy duy nhất để đạt được 100% này là với VM hoặc container.
bahamat


1

Tôi không chắc điều đó có thể cho điểm đầu tiên. Bạn muốn thực hiện một số thao tác định tuyến dựa trên userid của người dùng. Lần trước tôi kiểm tra tôi đã không thấy khả năng này.

Đối với điểm thứ hai, đó không phải là iptables mà bạn muốn sử dụng mà là iproute2 (http://lartc.org/howto/ và http://www.policyrouting.org/iproute2.doc.html cho tài liệu hoàn chỉnh). Đây là sự thay thế cho các lệnh ifconfig / route vì chúng bị coi là lỗi thời. iproute2 cho phép yo định tuyến các gói theo nguồn của nó. Đó là những gì bạn muố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.