トンネルがパブリックサーバーのパブリックインターフェイスでリッスンしている場合、必要に応じてパブリックサーバーファイアウォールのポートをブロック/ブロック解除できます。トンネルがブロックされていない場合、SSHからの追加のセキュリティはありません。
トンネルがパブリックサーバーループバックインターフェイスでリッスンしている場合、電源を入れ直したりする必要はありません。パブリックルーターを保護するだけです。安全性に関しては、このソリューションをお勧めします(ほぼ以下で説明します)。トンネルサービスにアクセスします
または
3番目のホスト(プライベートラップトップなど)からこのようなトンネルを確立する(Linux)コマンドは次のとおりです。
ssh <user>@<public-server-IP> -L <portA>:127.0.0.1:<portB>
ここ<portB>
で、元のトンネルがリッスンし<portA>
ているポートは、選択したポートです(少なくとも1024
下位のポートが制限されている可能性があるため、それを作成します)。
次にに接続し127.0.0.1:<portA>
ます。この接続はコンピューターに対してローカルです。公開サーバーにはローカル接続もある127.0.0.1:<portB>
ため、セキュリティ全体がSSHセキュリティであり、適切に使用すると非常に強力になります(パスワード/キーなど)。
私が考えることができる唯一の欠陥は次のとおりです:あなたの公開サーバーへのアクセス(SSHアクセスなど)を持つ別のユーザーが127.0.0.1<portB>
それに接続する可能性があります。これも懸念事項である場合は、以下で説明するようにトンネリングソリューションを変更する必要があります。
(潜在的に安全ではない)サービスにつながるトンネルを作成する代わりに、最初にNAT処理されたサーバーSSHへのトンネルを作成します。
NATが適用されたサーバーでは、次のようになります。
ssh <user>@<public-server-IP> -R <public-server-IP>:<portB>:127.0.0.1:<portSSH>
ここ<portSSH>
で、NATedルーター上のSSHサーバーがリッスンするポート(通常は22
)です。(パブリックルーター上のSSHサーバーの構成により、<public-server-IP>
Linuxにバインドできない場合sshd
がありGatewayPorts
ます。Linux ではオプションです。必要に応じて再構成します。)この方法で、NAT-edサーバーSSHをで利用できます<public-server-IP>:<portB>
。
次に、ローカルコンピューターからNATサーバーへのトンネルを作成します。
ssh <user1>@<public-server-IP> -p <portB> -L <portA>:127.0.0.1:<portS>
<portS>
NAT-edサーバーのサービスポートはどこにあり、再び<portA>
(少なくとも1024
)を選択できます。ここで、NATedサーバー資格情報を使用する必要があります。
次に、に接続し127.0.0.1:<portA>
て、ローカルコンピューターからサービスにアクセスします。
改善点は次のとおりです。パブリックルーターには、NAT対応ルーターのサービスに直接つながるオープンポートがありません。NATが適用されたルーターのループバックインターフェイスでのみサービスをリッスンさせると、LANからもアクセスできなくなります。これにより、ソリューションは非常に安全になり(再び:良好なSSHパスワード/キーなどを使用)、完全にオープンで資格情報を気にしないサービスでも安全に使用できます。