Basit port yönlendirme


21

Ben bir ters proxy ve ikinci bir sunucu kurmaya çalışıyorum biraz sorun yaşıyorum. Benim fikrim, güvenlik duvarını https'yi ters proxy'ye ve bağlantı noktası 29418'i (gerrit ssh) ikinci sunucuya iletmekti. Şimdi benim işbirliği BT adam diyor: YAPILAMAZ! Her iki bağlantı noktası da sunucu 1'e veya her iki bağlantı noktası da sunucu 2'ye gider.

Tamam, etrafında bir çalışma olarak 29418 bağlantı noktasının ters proxy'si üzerinde bir bağlantı noktası iletme ayarlamaya çalıştım -> sunucu2: 29418

Detaylar:

  • Sunucu1 IP'si: Ubuntu 12.04.2 LTS'de 10.0.0.132 ve 192.168.10.2
  • Sunucu2 IP'si: Ubuntu 12.04.2 LTS'de 10.0.0.133 ve 192.168.10.3

Şimdi hem https hem de 29418 numaralı bağlantı noktası güvenlik duvarından 10.0.0.132'ye gider, bunun tek yol olduğunu söylüyor. :(

Bu yüzden lütfen 10.0.0.132:29418 -> 192.168.10.3:29418 veya 10.0.0.133:29418'den nasıl yönlendirileceğini söyle

10.0.0.132 üzerinde çalışırken, hem 10.0.0.133:29418 hem de 192.168.10.3:29418'e bağlanabilirim, böylece bağlantı noktaları açık olur.

-- Güncelleme --

Benim iptables -t nat -L şöyle görünür:

root @ dev: / root # iptables -t nat -L
Zincir PREROUTING (politika KABUL)
hedef koruma tercih kaynak hedef
DNAT tcp - her yerde dev.example.com tcp dpt: 29418 -: 10.0.0.133

Zincir GİRİŞİ (politika KABUL)
hedef koruma tercih kaynak hedef

Zincir ÇIKIŞI (politika KABUL)
hedef koruma tercih kaynak hedef

Zincir POSTROUTING (politika KABUL)
hedef koruma tercih kaynak hedef
root @ dev: / root # cat / proc / sys / net / ipv4 / ip_forward
1

Yanıtlar:


34

Başka birinin gerçekten işe yarayan bir yol araması durumunda. @HorsePunchKid önerisinde doğru olsa da, eksik adımları dolduran bu yolu buldum:

http://www.debuntu.org/how-to-redirecting-network-traffic-to-a-new-ip-using-iptables/

Özünde:

IP Yönlendirmeyi Etkinleştir:

sysctl net.ipv4.ip_forward=1

Yönlendirme kuralınızı ekleyin (nnnn: port kullanın):

iptables -t nat -A PREROUTING -p tcp -d 10.0.0.132 --dport 29418 -j DNAT --to-destination 10.0.0.133:29418

IPtables'dan Masquerade'den Sor:

iptables -t nat -A POSTROUTING -j MASQUERADE

Ve bu kadar! Her durumda benim için çalıştı :)


1
Bu konuda bulduğum en iyi cevap bu.
Victor Piousbox

Bu çözümü kullandıktan sonra Docker kapsayıcımdaki bağlantı koptu. Kuralı silmek zorunda kaldı. Kural çalışıyordu, ancak diğer tüm trafiği kaybetti. Bunu tavsiye etmiyorum.
Dyin

iptables -t nat -A POSTROUTING -j MASQUERADEOH WOW ... hepsi bu, teşekkürler! Web'de arama yapmak ve bulmak için saatler harcadım. Bu çok basit ve işe yarıyor.
shrimpwagon

Mükemmel çalışıyor, Şimdi, bu kuralları nasıl kalıcı hale getirebilirim?
vmalep

Fark ettiğim bir sorun, port yönlendirme etkinleştirildiğinde, yönlendiricinin artık apt sunucularına erişememesi ... Herhangi bir ipucu?
vmalep

7

10.0.0.132'de kurulu iptables'ınız varsa, bunun oldukça basit olacağını düşünüyorum:

iptables -t nat -A PREROUTING -j DNAT -d 10.0.0.132 -p tcp --dport 29418 --to 10.0.0.133

Bu, 10.0.0.132'nin yapmaya çalışabileceği diğer tüm yönlendirmelerden önce 29418 numaralı bağlantı noktasında 10.0.0.132'ye gelen trafiği, bunun yerine aynı bağlantı noktasında 10.0.0.133'ten 10.0.0.133'e kadar geldiğini söylüyor. Bu komutu çalıştırır ve sorun yaşarsanız, kaldırmak için -A bayrağını -D ile değiştirin.

10.0.0.132 başlatıldığında bu kuralın otomatik olarak çalışmasını istiyorsanız, yukarıdaki komutu / etc / network / interfaces içine "post-up" kuralı olarak eklemeyi düşünün.


Ben de öyle yaptım ama işe yaramadı. Ben /etc/sysctl.conf içinde net.ipv4.ip_forward = 1 uncommented ama hala hatalar 10.0.0.132:29418 bağlanırken olsun
uncletall

7

Geçici bir yöntem arayan biri varsa, aşağıdaki çözümü deneyin.

    ssh -L 192.168.0.10:8080:10.0.0.10:80 root@10.0.0.10

Yukarıdaki komut, tüm bağlantıları ana makinenizdeki 8080 bağlantı noktasına sanal makinenizin 80 bağlantı noktasına yönlendirir. Eğer web sayfasına erişerek çalışma test edebilirsiniz http://192.168.0.10:8080 ve size misafir makinede web sayfasını göstereceğiz.

Bu, tüm bağlantı noktaları için geçerlidir :)


0

Sonunda, Ubuntu'da çalışamadığım için trafiği farklı VM'lere yönlendirmek için ESXi sunucum içinde bir yönlendirici olarak pfSense'i kurmak zorunda kaldım.

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.