VPN üzerinden rota iptali


1

Çalışan bir VPN almaya çalışıyorum. Programların, tıpkı TÜM trafiği yönlendirmek yerine, arayüzü açıkça istemesini istiyorum curl --interface.

curl --interface ppp0 ip.bsd-unix.netVPN üzerinden göndermelidir, ancak bir şekilde, kaynak IP 10.10.1.2 olsa bile,tcpdump ya da iftop, bunun yerine, eth0 içinden geçen trafiği görebiliyorum . İşte benim ip route show:

default via 149.x.y.z dev eth0
10.10.1.1 dev ppp0  proto kernel  scope link  src 10.10.1.2
149.x.y.128/25 dev eth0  proto kernel  scope link  src 149.x.y.172

Bazı IP'ler gizlendi. İkincisi, başladığında xl2tp tarafından eklenir ve ppp0 arabirimi oluşturulur. 149.etc benim LAN'ım ve 10.etc benim VPN'im.


Ayrıca, ping -I ppp0 8.8.8.8ppp0 aktivitesini görebildiğimde ve daha yüksek ms ile cevap alıyorum ki bu da VPN'den geçeceklerini gösteriyor.


Bu oldukça zor - Ben denemedim, bu yüzden bir cevap değil bir yorum, ama ilke tabanlı yönlendirme için 2 rota tablosu ayarlamanız gerekiyor, sonra nfacct veya owner gibi bir modülle iptables kullanmanız gerekir (ve curl’ın çalıştığını doğrulayın. Aynı kullanıcı) - alternatif bağlantıyı aşağı yönlendirmek için bu paketleri işaretleme. Erişmek istediğiniz belirli bir siteyi biliyorsanız ve o siteye yönlendirmeniz gerekmiyorsa, VPN kurulumunda (VPN istemcinize bağlı olarak) veya bir rota ekleyerek vpn tablosuna statik bir yol ekleyebilirsiniz. manuel.
davidgo,

@davidgo yikes ... sadece varsayılandan geçilecekse, bir arabirime bağlanan bir uygulamanın amacı nedir?
Hipershadi

2
Beni yanlış anladığınızı düşünüyorum - 2 çözüm var - en basit olanı VPN'ye statik bir rota eklemek, sadece ilgilendiğiniz web siteleri için olacaktır. Bununla birlikte, internete farklı yollara erişmek için programlara ihtiyacınız varsa (yani bazıları VPN üzerinden bazıları değil), o zaman 2 yönlendirme tablosu ayarlamanız ve söz konusu uygulamanın yönlendirmesini farklı çalışması için ilke tabanlı yönlendirme kullanmanız gerekir.
davidgo

Yanıtlar:


1

Bir paketin kaynak IP'si bir arabiriminkiyle eşleşirse, bahsedilen arayüzü kullanacağını varsaymıştım. Ve eğer bu doğal bir IP davranışı olmasaydı, o zaman ikinci güzergahım bunu gerçekleştirirdi: srcgüzergahın parçası benim için kırmızı bir ringa balığıydı.

Yani, programlarım kaynak IP’lerini belirleyen ppp0 adresine bağlanıyor, değil mi? @Davidgo'nun söylediklerini yaptım ve ayrı bir yönlendirme masası yaptım ...

echo 200 custom | sudo tee -a /etc/iproute2/rt_tables

... sonra, bu kaynak IP’ye sahip paketler için özel tabloyu kullanmak için bir kural ekledi ...

sudo ip rule add from 10.10.1.2 lookup custom

... ve ppp0'ın ağ geçidinden geçen herhangi bir trafik için ppp0'ı kullanmak üzere özel tabloya bir kural ekledi.

sudo ip route add default via 10.10.1.1 dev ppp0 table custom

curl ip.bsd-unix.netbana ev IP'imi curl --interface ppp0 ip.bsd-unix.netveriyor ve VPN'imin uzak IP'sini veriyor. İşe yarıyor!

Yine de, ping'in neden ppp0'ı doğru bir şekilde geçtiğini merak ediyorum.

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.