Linuxポートを独自に再マッピング

Linuxポートを独自に再マッピング

シナリオがあります。モデム/ルーターを介して許可する必要がある4つのサーバーと3つのWebインバウンド要求があります。ポートはhttps(ssl)443 ssh22とhttp80です。 4つのサーバーすべてがこれを望んでいます。

次のようにポート転送と再マッピングを使用するようにサーバーを設定しました。

2241->port 22 on ip 192.168.0.41
2242->port 22 on ip 192.168.0.42
2243->port 22 on ip 192.168.0.43
2244->port 22 on ip 192.168.0.44

and so on using 44341(..2..3..4) and 8041(..2..3..4)

私はこの設定が好きです。ファイアウォールの背後にはデフォルトポート(このポートを好む)を使用でき、外部では(必要に応じて)コロン:inを使用できます。

二つのことが起こった。モデムの古いルータが故障して新しいルータ(高価)を購入しましたが、この新しいテクノロジでは8つ以上のポートを再マッピングすることはできません。悪い。偽ガラス天井。その後、カスタマーオフィスで設定しました。 >顧客に行きましたが、ポート転送がまったくなく、最新のモデムルーター(より高価な)を購入し、より多くの作業が必要かどうか心配しました。ポートが8つより多く、これについて心配しました。このポート再マッピング機能は「高度な」機能です。私が間違っています。 *さらに*より高価な新しいモデムルーターは、ポートフラット転送のみを許可し、ポートの再マッピングを許可しません。ただリツイートしてください。

だから私は大きく外れます。しかし、ポートの再マッピングを直接行う方法はありますか?

次のようなものを使用すると役に立ちますか?

iptables -t nat -A PREROUTING -i eth0 -p TCP --dport 2202 -j REDIRECT --to-port 22

この使用を避ける理由はありますか?

ベストアンサー1

ルーターはポートマッピングをサポートしていないため、各ホストまたは1つのホストでこれを行うことができます。

ポート 2241 から着信トラフィックを localhost:22 に転送するには、次のようにします。

iptables -t nat -A PREROUTING -p tcp --dport 2241 -j REDIRECT --to-ports 22    

192.168.0.41:2242 から着信トラフィックを 192.168.0.42:22 に転送するには、DNAT (ターゲット NAT) を使用できます。たとえば、次の方法でこれを行うことができます(より安全なソリューションがある可能性があります)。

echo 1 > /proc/sys/net/ipv4/ip_forward # or use /etc/sysctl.conf
iptables -t nat -A PREROUTING -p tcp --dport 2242 -j DNAT --to-destination 192.168.0.42:22 
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P FORWARD DROP
iptables -A FORWARD -d 192.168.0.42 -p 22 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

おすすめ記事