iptablesを使用してSSHを介して外部ネットワークが内部サーバーに接続できるようにする方法[閉じる]

iptablesを使用してSSHを介して外部ネットワークが内部サーバーに接続できるようにする方法[閉じる]

私のファイアウォールIPはデフォルトゲートウェイでもある10.0.0.2/24です。外部ネットワークがSSH経由でIP 10.0.0.1/24を使用するサーバーに接続できるようにする必要があります。 iptablesを使用し、ファイアウォールの権限を設定する必要があります。

ベストアンサー1

他のすべてが準備されていると仮定すると、ファイアウォールに2つの規則があることを確認する必要があります。

  1. 転送ルール:トラフィックが外部から10.0.0.1ポート22に転送されることを許可する必要があります。
  2. NATルール:RFC 1918プライベートIPv4ネットワークを使用しているため、ポート22に向かうファイアウォールに到着するパケットの宛先アドレスを変更する必要があります。

もう一度申し上げますが、ファイアウォールがWANバインドトラフィックを偽装するように設定されており、IPv4転送が有効になっており、戻りトラフィック転送を許可しているとします。

転送が許可されていることを確認するために最初の部分を解決するには、次の手順を実行します。

iptables -I FORWARD -d 10.0.0.1 --p TCP --dport 22 -j ACCEPT

FORWARDチェーンのデフォルト値がACCEPT(通常はデフォルト値)の場合、このルールは不要です。

第2に、宛先アドレス変換を行う。

iptables -t nat -I PREROUTING -p tcp --dport 22 -j DNAT --to 10.0.0.1

-Iどちらの例でも、ルールが既存のルールより優先的にそのチェーンに挿入されるようにしました。これは望ましいかもしれないし望ましくないかもしれない。

インターフェイス名を追加してルールをより具体的にすることはできますが、質問に何も指定しませんでした。

さらに、これらの規則は永久的ではありません。システムを再起動すると、そのルールは消えます。

おすすめ記事