vpn üzerinden trafiği yönlendiren iptables


0

Ağ oluşturma acemi. Ana bilgisayarda iki arabirim var: eth0ve tun0OpenVPN istemcimden. IP adresleri:

eth0    192.168.1.22
tun0    10.1.0.8

Soru 1

İçin giden o kadar hedef adresini değiştirerek trafik tun0o vpn kullanmaya zorlamak olacak?

Hayır, fakat tun0 için ağ geçidi adresini kullanıyor. Aşağıdakilerle test edilmiştir:

    iptables -t nat -N VPN
    iptables -t nat -I OUTPUT -j VPN
    iptables -t nat -A VPN -p tcp -j DNAT --to-destination 10.1.0.170

10.1.0.170VPN için ağ geçidi adresi neredeydi (kullanarak bulundu ip route).

  1. Yukarıdaki örnek -N, nat tablosu ( -t) için bir NEW ( ) zinciri oluşturur .
  2. VPN zincirine atlamak OUT(yerel uygulamadan hemen sonra). -IOUT içindeki diğer kuralların yerini almak için insert ( ) işlevini kullanma .
  3. Herhangi bir kaynak değişiklik hedefinden tun0cihazın ağ geçidine kaynaklanan trafik için ima edilir .

Soru 2 (a)

Giden trafik için hedef adres, arabirimin IP adresi eth0mi, yoksa ağ geçidi adresi mi? Varsayalım eth0varsayılan arayüz / ağ geçidi.

Soru 2 (b)

Yerel uygulamadan oluşturulan trafik için kaynak adresi nedir?

Soru 3

Bu tamamen iptables tarafından çözülebilir mi yoksa yönlendirme tablosunu değiştirmem gerekiyor mu? Her iki arayüz de aynı konakta olduğu için (yani aynı debian kutusu).

İlave bilgi

İlkeleri anlamaya çalışıyorum, böylece davamı uygulayabileyim. Toplamda üç I adres alt ağı vardır, üçüncüsü, başka bir sanal arayüzle ilişkili olan 172.17.42.1/16 aralığındadır docker0.

Temel olarak trafiği VPN üzerinden sadece 172.17.42.8'den yönlendirmek istiyorum .


Neden bunu çözmeye çalışıyorsun iptables? Uygun bir yönlendirme tablosu gitmek yoludur.
Daniel B,

Çünkü ben cahilim! :) Çözümlerin, insanların ip iletimini ve diğerlerinin ilgili varsayılan ağ geçitleriyle iki farklı yönlendirme tablosu hazırladıklarını gördüm. Bunu yapmanın 'doğru' yolunu bilmiyorum ama görünüşte görülen örneklere dayanarak yapmalı ama çok kolay görünüyor.
fswings

Aslında ne yapmaya çalışıyorsun? Tüm trafiği VPN'inize 192.168.1.22(veya 192.168.1.0/24) gönderilsin mi? Ya da tüm internet trafiğini?
Daniel B,

Belirli bir ip adresinden gelen tüm trafik vpn olsa gitmek istiyorum. Ben yönlendirme çokça örnek gördüm gelen vpn ama çok değil için iptables kullanarak VPN.
fswings

Yönlendirme kaynak adreslerinde çalışmaz, ancak hedef adreslerde çalışır. Belirli bir müşterinin VPN bağlantısı kullanmasını istiyorsanız, bu müşterinin kendi VPN bağlantısını kurması gerekir.
Daniel B,

Yanıtlar:



0

Birincisi ve en önemlisi, ArchLinux wiki iptables sayfasından bağlanan mükemmel rakam, çeşitli iptableszincirlerden (cevabın en altında) paket akışını tanımlamakta kullanışlıdır .

yedek

iptables-save > back.up.file

Linux dağıtımının lezzetini kontrol et, sudokök olmadığım için eklemeliydim .

Soru 2 (a), 2 (b)

Kaynak ve adres adreslerini belirlemek için LOGve TRACEişlevlerini çok yararlı buldum :

iptables -t filter -I OUTPUT -m limit --limit 5/m --limit-burst 10 -j LOG  --log-prefix "ABC-LOG-PREFIX "

Varsayılan tablo şudur, filterancak açıkça belirtmiştim, bu yüzden sözdizimini görebilirsiniz, özellikle diğer tabloları araştırmak istiyorsanız mangle, natvb -I. Günlük dosyası doygun hale gelmemesi için bir fiyat sınırı eklendi -m limit --limit 5/m --limit-burst 10. Sonunda bir önek eklenmiş, böylece günlük dosyası kolayca aranabilir --log-prefix. Örneğin, Linux Mint'te:

cat /var/log/kern.log | grep "ABC-LOG-PREFIX"

İkincisi, hata ayıklama için, TRACEkomut tüm işlem boyunca bir paketi izleyecektir:

IPTABLES -t raw -A PREROUTING -p tcp -j TRACE

Uyarı, bu tüm tcp paketlerini izleyecektir , daha fazla bilgi için bkz. Admin Berlin

Soru 3

Her iki arayüz de ( eth0ve tun0) aynı ana bilgisayardayken, aşağıdaki paket filtre diyagramından, aynı noktadan başlayan giden trafiği görebilirsiniz. Bir paketin hangi rotayı seçtiği, aşağıdakiler kullanılarak çalıştırılarak belirlenebilen varsayılan ağ geçidi ve ilişkili arabirimi iproute2tarafından belirlenir :

ip route

Bu hangi adres aralıkları için hangi arayüzlerin kullanıldığı varsayılan ağ geçidini gösterecektir.

Paket Akış Şeması

iptables paket akış şeması

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.