USB-RS232アダプタを介してサポートする必要があるデバイスに接続するためにクライアントサイトで使用できるようにRaspberry-Piを含むリバースSSHデバイスを設定しました。お客様のITスタッフと一緒に問題を解決し、デバイスが設定、テストされ、正常に動作します。
それ以外の場合ローカルネットワークアクセスの強化、リバースSSHトンネルを介したログインのみを許可し、ローカルの顧客ネットワークの誰もログインできないようにログインを制限したいと思います。
発信するリバースSSH接続は、パスワードなしで4096ビットキーファイルを使用してサーバーに接続しますが、リバースSSH接続を介してサーバーからPiに再接続すると、ユーザー/パスワードのプロンプトが表示されます。これは私にとって問題ではありませんが、ローカルTelnetまたはSSHを使用してローカルにログインするすべての人の能力を制限することが心配です。唯一有効なアカウントに良いパスワードを設定しておいたので、誰が正常にログインできるのか疑問です。
メンテナンス目的で接続されたUSBキーボードを使用してローカルコンピュータにログインできることをお勧めしますが、必須ではありません。デバイスは、ロックされた部屋のロックされた金属製のエンクロージャ内にあるため、不正な物理的アクセスは大きな問題ではありません。リバースSSHトンネルを介してSSHログインを許可しながら、TelnetおよびSSHログインへのローカルネットワークアクセスをロックしたいと思います。
答え1
RPissh
デーモンの場合sshd_config
とAllowUsers
オプションを参照してください。ここでホスト名を指定できます。
リバーストンネリングなので、接続がlocalhost
他の場所から来ることがあります。
AllowUsers yourusername@localhost
場所/etc/ssh/sshd_config
(またはOSが配置する場所)で十分です。変更した後は、再起動sshd
(または単にSIGHUP)することを忘れないでくださいsshd_config
。
ただタッチするだけで、sshd
シリアルコンソールのログインには影響しません。
答え2
RPi はサーバーに接続してリバース SSH トンネルを作成するため、sshd
RPi の localhost で実行できます。
まず、次のようにRPiからサーバーへの呼び出しをbind_address
実行するリバーストンネルコマンドを追加します。ssh
ssh -R localhost:6060:localhost:22 -i path/to/key me@server
はい、2回ですlocalhost
。
localhost:22
トラフィックがリダイレクトされるRPiの場所。localhost:6060
サーバーがリッスンするポートです(サーバーがインターネット上で利用可能であるため、これはlocalhostと見なすことができるので、localhostにあることを望むかもしれないし、望ましくないかもしれません)。
これでRPiに/etc/ssh/sshd_config
次のものを追加できます。
ListenAddress 127.0.0.1
再起動してくださいsshd
。
RPiはソケットがバインドされているlocalhost
(ループバックにローカルIPを持つインターフェイスとは異なるインターフェイス)、ローカルネットワークのポート22への接続を拒否しますが、ソケットが明示的にバインドされているため、リバースSSHトンネルに応答します。localhost
トンネルのRPi側。
ssh -p 6060 user@rpi
サーバーは通常RPiに接続します。
注:RPiにローカルネットワークの接続に再度応答させる簡単な方法がないため、これは危険です。何かが間違っている場合は、問題を解決する唯一の方法は、そこに行き、画面とキーボードを接続することです。真剣に、まずテストしてみてください。どこかにタイプミスがある場合は、物理的なアクセスが必要になります。
注2:このソリューションとStephen Harrisソリューションの唯一の実際の違いは、RPiがポート22への接続を拒否することです。あなたがそれをしたいのか、それとも接続を許可し、承認を拒否したいのかは、好みの問題です(またはハニーポットデザイン:))。