Sadece belirli IP’den yönlendirici (ve maskeli balo)


0

Eth0 arabirimindeki 192.168.2.10 tarihinden itibaren gelen tüm trafiğin maskelenmesini ve tun0 arabirimiyle iletilmesini istiyorum. Cevabın tun0'dan geri gelmesini istiyorum. Eth0 arabirimindeki diğer trafiğin etkilenmesini istemiyorum. Elimde bu var:

# iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
# iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i eth0 -s 192.168.2.10/32 -o tun0 -j ACCEPT
# ip rule add from 192.168.2.10/32 table 100
# ip route add default via 10.8.0.1 table 100

Bu yapılandırma doğru mu? Çalışıyor gibi görünüyor ama iftop'ta trafik çok garip görünüyor. Giden trafik tun0'dan geçiyor gibi görünüyor, ancak yanlış okumak ya da diğer ucunda yanlış yapılanma nedeniyle ortaya çıkmasına rağmen, eth0'a yanıt geliyor.


Yapmaya çalıştığınız şey, etkili bir şekilde, biri 192.168..2.10 için diğeri ise her biri için iki tane yönlendirme masası kullanmaktır. Bu başarılabilir, ancak iptablesbununla ilgisi yok. Buna policy routingveya denir source routing. Bunu okuyarak başlayabilirsiniz, unix.stackexchange.com/questions/22770/…
MariusMatutiae

Teşekkürler, benim anladığım şey, ilk iptables satırının tun0 dışına çıkacak paketlerin maskelenmesini sağlaması (192.168.2.10 olması gerekiyor. Bu arayüz için geçerli bir IP değil). Sonraki iki satır, paketlerin iki arayüz arasında akmasına izin veren politika kurallarıdır (yani, eğer paketleri elimde bırakmazsa, hayır?) Ve 192.168.2.10'dan gelen paketlerin 10.8 kullanması gereken ip kural ve rota setleri. Varsayılan ağ geçidinden bağımsız olarak ağ geçidi olarak 0.1. Anlayışım yanlış mı?
Stefan D

Yanıtlar:


0

Yanıtların hangi arabirime girdiğini doğrudan değiştiremezsiniz - alıcı bu kararı vermez, gönderen (aracıların yanı sıra) yapar.

Ancak, giden paketlerin doğru kaynak adresleriyle maskelendiğinden emin olmalısınız . Doğru değilse, otomatik seçime -j SNATgüvenmek yerine açıkça yapılandırılmış bir kaynak adresiyle kullanmayı düşünün -j MASQUERADE.

Başka bir deyişle, cevapların tun0 yoluyla gelmesini sağlamak için, orijinal paketlerin normalde tun0 üzerinden de ulaşılabilecek bir 'kaynak' adresine sahip olması gerekir.


Tcpdump ile çalışıp çalışmadığını kontrol edebilmemin bir yolu var mı? Yaparsam: tun0 arabiriminde tcpdump trafiğin düzgün şekilde maskelenmiş olduğunu görüyorum. Bununla birlikte, eth0 üzerine bir tcpdump yaparsam, src 192.168.2.10 olan paketleri görüyorum ve paketin tun0 üzerinden iletildikten sonra gitmesi gereken harici IP'yi hedefliyorum. Beklendiği gibi mi?
Stefan D

Peki, paket alınmadan önce iptables tarafından işlenemez ... bu yüzden eth0'daki bir döküm elbette 'orijinal' paketleri gösterir.
Grawity

Peki. İyi çalışıyor gibi görünüyor. Daha iyi bir önerin yoksa, cevabını doğru olarak kabul edeceğim.
Stefan D

Peki, öneri devam ediyor - uzak ucun cevapları nereye gönderdiğini nasıl değiştireceğinizi belirleyin . Veya aradaki yönlendiriciler.
Grawity

Uzak uç yanıtları tun0'a gönderir, beklendiği gibi çalışır. Eth0'daki 'orijinal' paketler ile kafam karıştı, ancak açıklamanız anlamlı.
Stefan D
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.