0 oy
kategorisinde tarafından soruldu
Linux'da spesifik bir kullanıcının internete çıkışını farklı bir ağgeçidinden gönderebilirmiyim?

1 cevap

0 oy
tarafından cevaplandı

Senaryo olarak iki farklı ağ cihazı olabilir veya aynı ağda farklı çıkışlara sahip iki gateway olabilir. 2. duruma göre 
örnek olarak 192.168.1.1 (default) ve 192.168.1.2 IP adreslerinde iki tane gateway olduğunu düşünelim. deneme adında bir kullanıcı yaratıp bunu 1.2 IP'sinden çıkartalım:

  • deneme kullanıcısını ekle​
    • adduser deneme
  • bu kullanıcının ağ paketlerini işaretle
    • iptables -t mangle -A OUTPUT -m owner --uid-owner deneme -j MARK --set-mark 42
  • işaretlenmiş paketleri yönlendirme için kural ekleyelim:
    • ip rule add fwmark 42 table 42
    • ip route add default via 192.168.1.2 dev eth0 table 42 # eth0 ı device adıyla değiştir
  • Programları deneme kullanıcısı ile çalıştırıp test et. örnek:
    • sudo -u deneme mtr 8.8.8.8

Eğer ilk senaryoya göre (farklı ağ cihazı ve IP) yapman gerekiyorsa, ilk iptables komutundan sonra aşağıdaki komut ile source nat ta yaptırman gerekiyor:
iptables -t nat -A POSTROUTING -o ath0 -m mark --mark 42 -j SNAT --to-source <diğerAğCihazıIPadresi>
ve 3. adımdaki yönlendirme kuralında default route u ona göre eklemen gerekiyor. örnek: ip route add add default via <diğerAğGeçidiIPadresi> dev eth0 table 42  # eth0 ı kendindeki ağ cihazı adıyla değiştir. örnek: wlan0

 

...