IPが10.0.0.2/24のファイアウォールがあります。これもデフォルトゲートウェイです。外部ネットワークがIPが10.0.0.1/24のサーバーにSSH接続できるようにする必要があります。 iptablesを使用する必要があり、ファイアウォールにアクセス許可を設定する必要があります。
他のすべてが整っていると仮定して、ファイアウォールに2つのルールが存在することを確認する必要があります。
繰り返しになりますが、ファイアウォールがWAN行きのトラフィックをマスカレードするように設定されており、IPv4転送が有効になっていて、リターントラフィックを転送できるようになっていると想定しています。
転送が許可されていることを確認するために最初の部分に対処するには:
iptables -I FORWARD -d 10.0.0.1 --p TCP --dport 22 -j ACCEPT
FORWARDチェーンのデフォルトがACCEPT(通常はデフォルト)の場合、このルールは不要な場合があります。
次に、宛先アドレス変換を実行するには:
iptables -t nat -I PREROUTING -p tcp --dport 22 -j DNAT --to 10.0.0.1
どちらの例でも、-I
を使用して、ルールがそれぞれのチェーンの最初に挿入されるようにしました。既存のルールよりも優先されます。これは望ましい場合と望ましくない場合があります。
インターフェイス名を追加することでルールをより具体的にすることができますが、質問で何も指定しませんでした。
また、これらのルールは永続的ではないことに注意してください。システムを再起動すると、それらは消えます。
以下の権限を使用することで、外部から内部ネットワークにSSH接続することができました。
# nano /etc/sysctl.conf
net.ipv4.ip_forward = 1
# route add -net 10.0.0.0/24 dev ens33
# iptables -t nat -A POSTROUTING ! -d 10.0.0.0/24 -o ens33 -j SNAT --to-source 192.168.1.200
# iptables -A PREROUTING -t nat -i ens38 -p tcp --dport 22 -j DNAT --to 10.0.0.1
# iptables -A FORWARD -p tcp -d 10.0.0.1 --dport 22 -j ACCEPT