Bisakah saya membatasi pengguna (dan aplikasinya) untuk satu antarmuka jaringan?

15

Saya sebenarnya punya dua skenario untuk menerapkan ini:

  1. Multiseat Desktop: dua koneksi jaringan baik dengan gateway internet dan dua akun yang masing-masing melakukan tugas bandwidth-intensif. Saya ingin membaginya sehingga satu akun hanya menggunakan eth0 dan akun kedua hanya menggunakan eth1.

  2. Server: Saya memiliki dua IP di server dan saya ingin memastikan pengguna email hanya mengirim email dari IP kedua (eth0: 1 alias)

Yang kedua mungkin bisa IPTable (saya hanya tidak tahu bagaimana) untuk merutekan lalu lintas email melalui antarmuka itu, tetapi yang pertama akan berurusan dengan semua jenis lalu lintas sehingga perlu berbasis pengguna. Jika ada solusi berbasis pengguna, saya bisa menerapkan ini di kedua tempat.

Oli
sumber

Jawaban:

6

Anda akan ingin menggunakan modul iptables owner dan mungkin beberapa paket pintar.

pemilik Modul ini berupaya mencocokkan berbagai karakteristik pembuat paket, untuk paket yang dibuat secara lokal. Ini hanya valid dalam rantai OUTPUT, dan bahkan beberapa paket (seperti respons ping ICMP) mungkin tidak memiliki pemilik, dan karenanya tidak pernah cocok.

--idide-pemilik userid Cocok jika paket itu dibuat oleh suatu proses dengan id pengguna (numerik) yang efektif.

--gid-owner groupid Cocok jika paket itu dibuat oleh suatu proses dengan id grup yang efektif (numerik).

--pid-owner processid Cocok jika paket dibuat oleh suatu proses dengan id proses yang diberikan.

--sid-owner sessionid Cocok jika paket dibuat oleh suatu proses dalam grup sesi yang diberikan.

Lil o
sumber
Anda bisa menggunakan iptables untuk menetapkan tanda, yang kemudian bisa Anda gunakan di tabel routing. Lihat target MARK dan CONNMARK. Dalam iproute, maka 'aturan ip tambahkan fwmark X ...' Saya tidak akan terkejut, sebenarnya, jika iproute2 sendiri dapat melakukan ini ...
derobert
3
Menjadi seseorang yang telah melakukan pekerjaan yang luas dengan pencocokan pemilik, saya dapat mengatakan ini tidak selalu menghasilkan hasil yang diinginkan. Yaitu, tidak semua paket memiliki pemilik seperti yang Anda harapkan. ICMP dan ESP adalah jenis yang dimiliki oleh kernel (atau root) terlepas dari aplikasi yang berasal dan tidak akan cocok dengan -m owner. Ini cukup dapat diandalkan dengan TCP dan UDP, tetapi jenis lainnya tidak begitu dapat diandalkan. Satu- satunya cara yang dapat diandalkan untuk mencapai ini 100% adalah dengan VM atau wadah.
bahamat
7

Anda dapat mengatur dua mesin virtual pada mesin fisik, dan mengatur penghubung antarmuka jaringan sehingga satu VM menggunakan eth0 dan VM lainnya menggunakan eth1. Lihat bagian dokumentasi kotak virtual pada jaringan yang dijembatani .

Wim Coenen
sumber
1

Saya tidak yakin itu mungkin untuk poin pertama. Anda ingin melakukan manipulasi perutean berdasarkan userid dari pengguna. Terakhir kali saya periksa, saya tidak melihat kemungkinan ini.

Untuk poin kedua, itu bukan iptables yang ingin Anda gunakan tetapi iproute2 (http://lartc.org/howto/ dan http://www.policyrouting.org/iproute2.doc.html untuk dokumen lengkap). Ini adalah pengganti untuk perintah ifconfig / route karena dianggap usang. iproute2 memungkinkan kamu untuk merutekan paket sesuai dengan sumbernya. Itu yang kamu mau

Luc Stepniewski
sumber