Linux ağ ad alanlarını kullanarak bir işleme farklı ağ yapılandırması atayabilirsiniz . Teorik olarak, PAM * 'ı her kullanıcıyı kendi ayrı ağ ad alanında ayarlamak üzere yapılandırmak mümkün olmalıdır , ancak söz konusu uygulamayı kendi ad alanında başlatmak muhtemelen daha basittir.
Yaygın bir kurulum, ad alanlarını ağa bağlamak için bir Linux köprü arabirimi oluşturmayı açıklayabilir. Biraz daha basit kurulum ipvlan (çekirdek sürüm 3.19 ve üstü) veya macvlan cihazı (kablosuz için macvlan kullanamazsınız ) kullanılarak arşivlenebilir . Linux çekirdek belgelerinde, ağ ad alanında ipvlan kurulumu için ayrıntılı bir örnek bulunmaktadır .
Belgelerdeki örneği takip ederek:
Ağ ad alanı oluşturma ns0
ip netns add ns0
Eth0'da ipvlan köle oluşturun (ana cihaz)
ip link add link eth0 ipvl0 type ipvlan mode l2
Ns0 ağ ad alanına köle atama
ip link set dev ipvl0 netns ns0
Ns0 ağ ad alanında bağımlı cihazı yapılandırın
ip netns exec ns0 ip link set dev ipvl0 up
ip netns exec ns0 ip link set dev lo up
ip netns exec ns0 ip -4 addr add 127.0.0.1 dev lo
ip netns exec ns0 ip -4 addr add $IPADDR dev ipvl0
ip netns exec ns0 ip -4 route add default via $ROUTER dev ipvl0
Ev sahibi ve yönlendirici adresleri sağlayın $IPADDR
ve $ROUTER
.
Uygulamanızı kullanarak ağ ad alanında çalıştırın ip exec
ip netns exec ns0 <command>
Komutu farklı kullanıcı olarak çalıştırmak için, normal olanı kullanın su <user> -c -- <command>
.
* DÜZENLEME: Teoriden pratiğe: Kullanıcı başına ağ ad alanının nasıl değiştirileceğini göstermek için basit bir PAM modülü yazdım. ip netns
Yukarıdaki gibi bir ağ ad alanı yapılandırmanız ve belirli kullanıcıları belirli bir ad alanıyla eşlemeniz gerekir . Daha sonra tüm kullanıcı işlemleri varsayılan yerine kendi yapılandırılmış ad alanında olacaktır. Kod github'da barındırılmaktadır . Kendi tehlikede kullanın.
ubuntu 14.04
Sadece alıyorum:Garbage instead of arguments "mode ...". Try "ip link help"
.