iptables で NAT を実行するときに外部ポートをランダム化する

iptables で NAT を実行するときに外部ポートをランダム化する

によって実装されているデフォルトの動作とは異なる NAT 動作を設定したいと考えていますiptables

この例では、

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 193.49.142.107:2000-400

によって実装される NAT のデフォルトの動作は、iptablesエンドポイントに依存しません。つまり、ポートの範囲があっても、同じホストから開始されたすべてのセッションは同じ「外部」(IP、ポート番号) を持つことになります。

各セッションで異なるポート番号を使用するには、変更する必要があるフラグまたはオプションが何であるかを知る必要があります。

答え1

スナトオプション--randomiptables 拡張機能マニュアルページ):

--random
       If  option --random is used then port mapping will be randomized
       (kernel >= 2.6.21).

そこで私は次のようなことを試してみます:

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 193.49.142.107:2000-4000 --random

関連情報