この手順で 内部 → 外部 のNATができる。しかし逆の外部 → 内部 へのアクセスはできない。
例えば以下みたいな構成で、外側から内側の4040で起動しているプロセスにアクセスしたい時。
External |10.0.0.254 +---+---+ | sv1 | | | +---+---+ |192.168.128.254 | | Internal --------+---------+-- | |192.168.128.10 +---+---+ | 4040 | | | +-------+
まずsv1の4040ポートへのアクセスを内部の192.168.128.10:4040へポートフォワーディングさせる
sv1# iptables -t nat -I PREROUTING 1 -p tcp --dport 4040 -j DNAT --to-destination 192.168.128.10:4040
これだけではルーティング(フォワーディング)がブロックされるので、192.168.128.10:4040へのフォワードを許可してやる。
sv1# iptables -I FORWARD 1 -p tcp -d 192.168.128.10 --dport 4040 -j ACCEPT
確立済みのセッションに対するフォワーディングを許可する(戻りパケット用)
sv1# iptables -I FORWARD 2 -m state --state ESTABLISHED,RELATED -j ACCEPT
上手く行ったら設定を保存しておく。
sv1# /etc/init.d/iptables save