Ubuntu Linux'ta tüm trafiği VPN üzerinden yönlendirme


13

Şimdi sorun giderme, bu sitede ve diğerleri üzerinde potansiyel çözümler trol, saatlerce geçirdikten sonra ve ben betters benim tavsiye yalvarmaya istifa etti. Bir üniversitede bir Cisco VPN üzerinden bir Ubuntu örneğindeki tüm ağ trafiğini yönlendirmek için çalışıyorum. Yerleşik ağ yöneticisini veya vpnc'yi kullanarak, VPN ile başarılı bir şekilde bağlantı kurabilirim ve trafiği VPN üzerinden herhangi bir üniversite IP'sine başarıyla yönlendirebilirim. Ancak, bu belirli IP aralıklarının yanı sıra, tüm ağ trafiğini VPN üzerinden başarıyla eşleştirecek hiçbir yolu göremiyorum.

Şimdiye kadar denedim:

rota ekleme -net 0.0.0.0 gw homeportal dev tun0
güzergah ekleme -net 0.0.0.0 tun0
güzergah ekleme -net 0.0.0.0 gw 128.122.252.77 dev tun0
güzergah ekleme -net 0.0.0.0 gw 128.122.252.77 dev eth0
iptables -İLERİ -o tun0 -j KABUL ET
iptables -İLERİ -I tun0 -j KABUL
iptables -t nat -BİR POSTROUTING -o tun0 -j MASQUERADE

Ve doğru bir şekilde yazıya dökmek için yeterince iyi hatırlayamadığım birçok aptal, etkisiz.

Buna ek olarak, her biri boşuna küçük IP aralıkları ve belirli IP'ler yönlendirmeyi denedim. Neyin yanlış gittiğinden tam olarak emin değilim, çünkü gözlemleyebildiğim etkilerin boyutu isim çözümlemesinin başarısızlıkları ve trafiği VPN üzerinden yönlendirmedeki başarısızlıklar. Burada neyi yanlış yapıyorum?

Düzenle-

ip route showVPNC ile VPN bağlantısını başlattıktan sonra çıktısı :

192.168.1.254 dev eth0 proto statik ile varsayılan 
10.0.0.0/8 dev tun0 kapsam bağlantısı 
91.230.41.0/24 dev tun0 kapsam bağlantısı 
128.122.0.0/16 dev tun0 kapsam bağlantısı 
128.122.252.68 ile 192.168.1.254 dev eth0 src 192.168.1.32 
128.122.253.46 dev tun0 kapsam bağlantısı 
128.122.253.79 dev tun0 kapsam bağlantısı 
172.16.0.0/12 dev tun0 kapsam bağlantısı 
192.168.0.0/16 dev tun0 kapsam bağlantısı 
192.168.1.0/24 dev eth0 proto çekirdek kapsam bağlantısı src 192.168.1.32 metrik 1 
193.175.54.0/24 dev tun0 kapsam bağlantısı 
193.205.158.0/25 dev tun0 kapsam bağlantısı 
193.206.104.0/24 dev tun0 kapsam bağlantısı 
195.113.94.0/24 dev tun0 kapsam bağlantısı 
203.126.200.0/24 dev tun0 kapsam bağlantısı 
203.174.165.128/25 dev tun0 kapsam bağlantısı 
212.219.93.0/24 dev tun0 kapsam bağlantısı 
216.165.0.0/17 dev tun0 kapsam bağlantısı

Daha fazla bilgi-

Varsayılan yapılandırma ile Cisco AnyConnect istemcisi aracılığıyla MS Windows'ta bu VPN üzerinden rasgele trafiği başarıyla yönlendirdim. AnyConnect istemcisi çalışırken yönlendirme tablosu şöyle görünür (bu, 192.168.1.254'te aynı yönlendiricinin arkasındaki farklı bir bilgisayardır).

IPv4 Rota Tablosu
================================================== =========================
Aktif Rotalar:
Ağ Hedef Ağ Maskesi Ağ Geçidi Arabirimi Metriği
          0.0.0.0 0.0.0.0 192.168.1.254 192.168.1.13 30
         10.0.0.0 255.0.0.0 192.168.128.1 192.168.128.197 2
      91.230.41.0 255.255.255.0 192.168.128.1 192.168.128.197 2
        127.0.0.0 255.0.0.0 Bağlantıda 127.0.0.1 306
        127.0.0.1 255.255.255.255 Bağlantıda 127.0.0.1 306
  127.255.255.255 255.255.255.255 Bağlantıda 127.0.0.1 306
      128.122.0.0 255.255.0.0 192.168.128.1 192.168.128.197 2
   128.122.252.68 255.255.255.255 192.168.1.254 192.168.1.13 31
       172.16.0.0 255.240.0.0 192.168.128.1 192.168.128.197 2
      192.168.0.0 255.255.0.0 192.168.128.1 192.168.128.197 2
      192.168.1.0 255.255.255.0 Bağlantıda 192.168.1.13 286
     192.168.1.13 255.255.255.255 Bağlantıda 192.168.1.13 286
    192.168.1.254 255.255.255.255 Bağlantıda 192.168.1.13 31
    192.168.1.255 255.255.255.255 Bağlantıda 192.168.1.13 286
     192.168.31.0 255.255.255.0 Bağlantıda 192.168.31.1 276
     192.168.31.1 255.255.255.255 Bağlantıda 192.168.31.1 276
   192.168.31.255 255.255.255.255 Bağlantıda 192.168.31.1 276
    192.168.128.0 255.255.255.0 Bağlantıda 192.168.128.197 257
  192.168.128.197 255.255.255.255 Bağlantıda 192.168.128.197 257
  192.168.128.255 255.255.255.255 Bağlantıda 192.168.128.197 257
    192.168.203.0 255.255.255.0 Bağlantıda 192.168.203.1 276
    192.168.203.1 255.255.255.255 Bağlantıda 192.168.203.1 276
  192.168.203.255 255.255.255.255 Bağlantıda 192.168.203.1 276
     193.175.54.0 255.255.255.0 192.168.128.1 192.168.128.197 2
    193.205.158.0 255.255.255.128 192.168.128.1 192.168.128.197 2
    193.206.104.0 255.255.255.0 192.168.128.1 192.168.128.197 2
     195.113.94.0 255.255.255.0 192.168.128.1 192.168.128.197 2
    203.126.200.0 255.255.255.0 192.168.128.1 192.168.128.197 2
  203.174.165.128 255.255.255.128 192.168.128.1 192.168.128.197 2
     212.219.93.0 255.255.255.0 192.168.128.1 192.168.128.197 2
      216.165.0.0 255.255.128.0 192.168.128.1 192.168.128.197 2
        224.0.0.0 240.0.0.0 Bağlantıda 127.0.0.1 306
        224.0.0.0 240.0.0.0 Bağlantıda 192.168.1.13 286
        224.0.0.0 240.0.0.0 Bağlantıda 192.168.203.1 276
        224.0.0.0 240.0.0.0 Bağlantıda 192.168.31.1 276
        224.0.0.0 240.0.0.0 Bağlantıda 192.168.128.197 10000
  255.255.255.255 255.255.255.255 Bağlantıda 127.0.0.1 306
  255.255.255.255 255.255.255.255 Bağlantıda 192.168.1.13 286
  255.255.255.255 255.255.255.255 Bağlantıda 192.168.203.1 276
  255.255.255.255 255.255.255.255 Bağlantıda 192.168.31.1 276
  255.255.255.255 255.255.255.255 Bağlantıda 192.168.128.197 10000
================================================== =========================

Ağ yönlendirmenin benim için oldukça yeni olacağı açıktır, bu yüzden cevaplarda oldukça yüksek düzeyde ayrıntı vermeyi takdir ediyorum.
deftfyodor

1
Herhangi bir istemci (anyconnect?) Kullanıp kullanmadığınızı belirtebiliyorsanız ve yönlendirme tablonuzu gönderebiliyorsanız, teşekkür ederim.
MariusMatutiae

Bu ip routearada, bunu kullanarak yapın .
user1686

2
Evet, lütfen eski yönlendirme komutlarını kullanmayın: yönlendirme tablosu için ip yol gösterisini kullanın . Eski komutlar, VLAN'lar da
olsa VPN'lerle

@grawity, @MariusMatutiae - Elbette, soruyu komut komutuyla düzenledim. Komuttan bahsettiğiniz için teşekkürler ip route, daha önce onunla karşılaşmamıştım.
deftfyodor

Yanıtlar:


3

Yönlendirme tablonuzda bu satırda gösterildiği gibi yerel ağınız 192.168.1.0/24:

 192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.32  metric 1

VPN ağınız bu satırda gösterildiği gibi 10.0.0.0/8:

 10.0.0.0/8 dev tun0  scope link 

Şu anda varsayılan yönlendiriciniz:

 default via 192.168.1.254 dev eth0  proto static 

hangi ne elbette değil o yerel LAN ait olduğu, istiyorum: VPN olmasaydı sanki böylece tüm eşyalarını, yerel ağ geçidi üzerinden yönlendirilir.

 You do have however, the all-important statement

 128.122.252.68 via 192.168.1.254 dev eth0  src 192.168.1.32  

VPN sağlayıcınıza giden yol budur.

DÜZENLE:

Yönlendirme tablosunun müdahaleniz olmadan VPN'nizden elde edilen masa olduğunu fark etmemiştim. Bu, (dolaylı olarak) servis sağlayıcınızın tablonuzda sadece izin verilen trafiği tun0 arabirimi üzerinden iletmeye istekli olduğunu gösterebilir ve diğer tüm trafiği engellemek için daha ileri adımlar atmış olabilir, bu durumda çabalarınız boş olacaktır.

Ancak, sağlayıcınızın tüm trafiğinizi yönlendirmek istediğini varsayarsak, yapmanız gereken aşağıdakilerdir.

İlk olarak, diğer tarafta bağlantınızı kabul etmeye istekli bir ağ geçidi olup olmadığını bulmanız gerekir, çünkü IP adresine ihtiyacımız var. Bunu yapmak için size dört yöntem vereceğim.

1) PC VPN'ye bağlıyken, aşağıdaki komutu deneyin:

   sudo dhclient -v tun0

Her şey yolunda giderse, bu satırı içeren bir yanıt görmelisiniz:

 DHCPOFFER of a.b.c.d from x.y.w.z

xywz, yerel ağ geçidinin IP adresidir. Bu testten sonra VPN'nizi kapatmanız ve hatta bilgisayarınızı yeniden başlatmanız gerekebilir, çünkü yönlendirme tablosunu oldukça iyi bozmuş olacağız.

2) Alternatif olarak, izin verilen sitelerden birine (yönlendirme tablonuzda tun0 arayüzünden geçerken görünen ) birine gidip komutu vermeyi deneyebilirsiniz :

  ip neigh show

MAC ve IP adresi ile ARP protokolü ile temasa geçen adetlerin bir listesini almalısınız; büyük olasılıkla sıfır veya bir cevap alırsınız. Tek bir yanıt alırsanız, yönlendiriciniz budur.

3) Böyle bir cevap almazsanız,

  sudo nmap -sn 10.0.0.0/8

(ki bu çok yavaş olacaktır). Ağ geçidiniz listelenen parçalardan biri olacaktır , büyük olasılıkla adresi .1 veya .254 ile bitmiş olanlardan biri (varsa).

4) tcpdump komutunu kullanın:

  sudo tcpdump -n -i tun0

ve komut tarafından belirtilen IP adreslerine bakın.

Bu teste de uygun bir cevap alamazsanız, birisi ağındaki vidaları gerçekten sıkmış demektir.

Ama iyimser olalım ve şimdi uzak yönlendirici için bir aday IP adresi xwyz olduğunu varsayalım. Varsayılan ağ geçidini (sudo olarak) silmeniz gerekir:

  ip route del default via 192.168.1.254

bir yenisini ekleyin:

  ip route add default via x.w.y.z 

ve gezinmeye çalışın.

Tekrar edeyim: Sağlayıcınız VPN üzerinden yalnızca birkaç seçili IP adresine trafiğe izin verdiğinden, akıllı bir kullanıcının genel trafiğini VPN üzerinden zorlamasını önlemek için ekstra önlemler (= güvenlik duvarı) almış olabilir. Bu durumda, yapabileceğiniz hiçbir şey yoktur. Ancak eğer yapmadıysa, yukarıdaki adımlar bir çözüm bulmanıza yardımcı olacaktır.


Çok ayrıntılı cevap için teşekkür ederim, ancak ikinci yarıya girerken biraz hıçkırık yaşıyorum. hiçbir akran adresi gözlemlenmeden ip addr show dev tun0okuma çıktısı 10: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1412 qdisc pfifo_fast state UNKNOWN group default qlen 500 link/none inet 192.168.128.193/24 brd 192.168.128.255 scope global tun0 valid_lft forever preferred_lft forever. Buna ek olarak, daha önce gönderdiğim yönlendirme tablosu benim tarafımdan hiç değiştirilmedi - tamamen vpn istemcisi tarafından oluşturuldu.
deftfyodor

@deftfyodor Lütfen düzenlememe bakın.
MariusMatutiae

Tcpdump komutunu kullanarak, gerçekten ağ geçidini fark edebildim ve varsayılan trafiği ona yönlendirebildim. Ne yazık ki, hala sadece özel olarak sağlanan IP aralıkları için çalışıyor. Kesinlikle bazı ek güvenlik önlemi olduğuna inanmaya meyilliyim - ancak AnyConnect istemcisini kullanarak MS Windows'ta aynı VPN üzerinden rastgele trafik yönlendirmede hiç sorunum yok - bu yüzden hikayeye kesinlikle daha fazla ihtiyaç duyulmalıdır.
deftfyodor

@deftfyodor Windows'taki yönlendirme tablonuzun Linux'takinden farklı olup olmadığını kontrol edebilir misiniz?
MariusMatutiae

Genel olarak benzerdir, ancak bazı farklılıklar olsa da, özellikle 0.0.0.0, ağ yönlendiricim aracılığıyla ağ geçidi olarak yönlendirilecek ve VPN ağ geçidini arabirim olarak tutacak şekilde ayarlanmıştır. Soruyu Windows yönlendirme tablosunu göstermek için düzenledim.
deftfyodor

3

Tüm routekomutlarınızda net maskeler eksik, bu nedenle sadece belirli 0.0.0.0adresle eşleşiyorlar, tüm internetle eşleşmiyorlar. Bu yüzden denediğiniz ilk komutta 0.0.0.0ile değiştirin 0.0.0.0/0:

ip route add -net 0.0.0.0/0 gw homeportal dev tun0

VPN istemcinizin kendiliğinden çözülüp çözülmediğinden emin olamadığım bir uyarı olabilir: tünel bitiş noktasının VPN üzerinden yönlendirilmesinin dışlanması gerekiyor, eth0arayüzünüzden yönlendirilmesi gerekiyor . Dolayısıyla, bu varsayılan rotayı eklemek VPN'nizi bozarsa, VPN uç noktanız için belirli bir rota ekleyin:

ip route add <ENDPOINT>/32 dev eth0


2
Sanırım ikincisi olması gerekiyor ip route, değil mi? Ayrıca, route
netmasks
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.