VirtualBox sanal makinesinden gelen trafiği yalnızca bir VPN üzerinden nasıl yönlendirebilirim?


10

Bir VirtualBox VM (hem host & guest Ubuntu Maverick) var. VPN sağlayıcım TUN'ları ayarlamak için OpenVPN kullanıyor. VM'den gelen trafiğin sadece VPN üzerinden geçmesi ve VPN düşerse (düştüğü takdirde) düşmesi için bir şeyler ayarlamak istiyorum. Öneriler? Iptables-fu'm biraz zayıf

Ne denedim: Konuk için ana bilgisayarda bir vboxnet0 geridönüş arabirimi verir, ancak iptables / yolları doğru alamadım VirtualBox'ın "sadece ana bilgisayar ağ" kullanarak. VM'de NAT'tan kaçınmak istiyorum, çünkü zaten çift NAT'dım (ISS ve ev yönlendirici) ve bir seviye daha kafamı patlatacak.

Diğer olasılıklar: TAP'a geçiş (nasıl?) Ve VM'ye köprüleme. VM içinde VPN oluşturma ve iptables ile VPN bağlantısı dışında tüm eth0 trafiğini filtreleme (ancak aşağıya bakın)

Bonus puanları: Konuktan ana bilgisayarın VPN'sine kadar çift tünel oluşturmadan ana bilgisayar ve misafirde farklı VPN çıkış noktalarını nasıl kullanacağımı söyleyebilirseniz.

Yanıtlar:


4

Başka çözümler de olacak, ama ben böyle düşünüyorum:

  1. Sanal Makineyi köprü kipinde kurun. Bu, sanal makinenize ana makinenizle aynı ağda bir IP adresi verecektir.
  2. VPN'yi ana bilgisayara kurun, diyelim ki tun0.
  3. Ana bilgisayarda yönlendirmeyi etkinleştir echo 1 > /proc/sys/net/ipv4/ip_forward
  4. VM'yi ana bilgisayar IP adresiyle varsayılan gw olarak ayarlayın.

Bu noktada, ana bilgisayarın VPN bağlantısı vardır ve VM tüm trafiği ana bilgisayara yönlendirir. Yapılması gereken tek şey, konuğun tun0 cihazından geçmeyecek herhangi bir trafiği yönlendirmesine izin vermemesi için ana makineyi kısıtlamaktır. Bunu iptables kuralları bir dizi ile böyle bir şey yapabilirdi:

iptables -P FORWARD DROP
iptables -A FORWARD -o tun0 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

O gerektiğini çalışır. İlk kural, FORWARD zincirindeki DROP paketlerine varsayılan bir ilke belirler. Bu yalnızca ana makineye yönlendirilecek paketleri etkiler, ana bilgisayara (INPUT) veya ana bilgisayardan (OUTPUT) gelen paketleri etkilemez. İkinci kural tun0'ı yönlendiren trafiğe izin verir - isterseniz bir --source ile sıkılaştırabilirsiniz. Ve son kural tun0'dan gelen cevapların VM'ye geri dönmesine izin vermelidir.

VPN'niz tun arayüzündeki tüm paketlerin tek bir IP'den olmasını bekliyor olacak mı? Öyleyse, bir NAT kuralı da eklemek isteyeceksiniz. Muhtemelen şöyle bir şey:

iptables -t nat -A POSTROUTING -o tun0 -j SNAT --to-source {your host tun0 ip}
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.