Debian'da port yönlendirme / yönlendirme nasıl yapılır?


12

İki sorum var.

Soru 1: Debian makinem ip 192.168.57.28 ile eth3 arayüzüne sahip. Birisi 192.168.57.28:1234'e bağlanmaya çalışırsa, isteği başka bir makineye nasıl yeniden yönlendirebilirim: 192.168.57.25:80?

Soru 2: Debian makinemin iki arayüzü varsa: 192.168.57.28 ile eth3 ve bazı dinamik IP ile ppp0 ve birisi 1234 numaralı bağlantı noktasında ppp0 üzerinden bağlanmaya çalışırsa, isteği 192.168.57.25:80 adresine nasıl yönlendirebilirim?

Bunu denedim:

$ iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to-destination 192.168.57.25:80
$ echo 1 > /proc/sys/net/ipv4/ip_forward

ama işe yaramıyor.

Yanıtlar:


12
iptables -A PREROUTING -t nat -i eth3 -p tcp --dport 1234 -j DNAT --to-destination 192.168.57.25:80
iptables -A FORWARD -p tcp -d 192.168.57.25 --dport 80 -j ACCEPT
iptables -A POSTROUTING -t nat -s 192.168.57.25 -o eth3 -j MASQUERADE

Birincisi, 1234 numaralı bağlantı noktasına gelen tüm tcp bağlantılarının, 192.168.57.25 numaralı dahili makinenin 80 numaralı bağlantı noktasına gönderilmesi gerektiğini belirtir. Bu kural tek başına işi tamamlamaz çünkü iptables tüm gelen bağlantıları reddeder. Daha sonra, ikinci kural ile internete publich IP ile bağlanan eth3'ten 1234 numaralı bağlantı noktasına gelen bağlantıyı kabul ediyoruz. Paketlerin 192.168.57.25'in 80 numaralı bağlantı noktasına iletilmesine izin vermek için FORWARD zincirine ikinci kuralı ekliyoruz.

DÜZENLEME: POSTROUTING eklendi.

Bağlantıyı takip etmek. aksi halde dış konağın ipucu olmayan Dahili IP 192.168.57.25'i görür.

EDIT2: Sadece --to (sry) yerine - hedefe olması gerektiği ipucunu aldım


Önerinizi denedim ama işe yaramıyor. 192.168.57.25'e göz atabilirim ve web sayfası geri dönüyor, ancak 192.168.57.28:1234'e göz atma çalışmıyor.
Dánjal Salberg Adlersson

@ DánjalSalbergAdlersson Postanı güncelledi (bir şeyi kaçırdı. Sry.)
Daywalker

3
Önerinizi denedim, ama işe yaramadı. Sonra buna sonuncusu olarak değiştiriyorum: iptables -A POSTROUTING -t nat -j MASQUERADE, o zaman çalıştı!
Dánjal Salberg Adlersson

8

Daywalker ve Dánjal Salberg Adlersson'a teşekkürler. Saatler süren küfür sonunda iptables ile port yönlendirme çalışır. (Debian üzerinde test edilmiştir)

bash-komut

#!/bin/bash

IPTBL=/sbin/iptables

IF_IN=eth0
PORT_IN=40022

IP_OUT=172.16.93.128
PORT_OUT=22

echo "1" > /proc/sys/net/ipv4/ip_forward
$IPTBL -A PREROUTING -t nat -i $IF_IN -p tcp --dport $PORT_IN -j DNAT --to-destination ${IP_OUT}:${PORT_OUT}
$IPTBL -A FORWARD -p tcp -d $IP_OUT --dport $PORT_OUT -j ACCEPT
$IPTBL -A POSTROUTING -t nat -j MASQUERADE

"-s 192.168.57.25" dosyasının POSTROUTING satırından çıkarılmasının bir nedeni var mı?
edwardsmarkf

Ayrıca "-o eth3" atlandı
edwardsmarkf

POSTROUTING satırındaki -s ve -o isteğe bağlı görünüyor. SSL kullanımıyla ilgili düşünceleriniz var mı? betiği buraya
göndererek
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.