SSHリバーストンネルは非ローカル接続を許可できますか?

SSHリバーストンネルは非ローカル接続を許可できますか?

私のオフィスにはファイアウォールの背後にあるサーバーがあり、NATの背後にはホームサーバーがあり、持ち歩くラップトップがあります。たまに自宅でオフィスサーバーに接続したいので、以下のように設定してみました。

ホームルータはポート2223をホームサーバポート22にリダイレクトします。

私のオフィスでautosshとsystemdデバイスを使用してリバーストンネルを実行しています。

[Unit]
Description=Call home using port 2223 and reverse tunnel 22222 into 22
After=network.target

[Service]
User=atilla
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -p 2223 -N -R 22222:localhost:22 atilla@my_home_ip

[Install]
WantedBy=multi-user.target

私のホームサーバーからssh -p 22222 localhostオフィスサーバーに接続できます。ただし、自宅で実行するとssh -p 22222 homeserver.local接続が拒否されます。常にホームサーバーにログインし、別のホップを実行する必要があります。

オフィスサーバーは最新のRaspbianを使用し、ホームサーバーはUbuntu 22.04を使用し、すべてデフォルト設定になっています。

ベストアンサー1

それについて読んだ後、autossh私はいくつかの兆候に加えて」他のすべてのパラメータはSSHに渡されます。このフラグの仕様はssh -Rマンページに記載されていますman ssh

-R [bind_address:]port:host:hostport

構成のオプションbind_address:部分を(かなり合理的に)省略したので、バインディングはローカルシステムにのみ適用されます。コロンと未定義を含めると、bind_addressワイルドカードになり、*どこからでも(ファイアウォール、ルーティング、およびその他のネットワーク管理層に応じて)ポートにアクセスできます。

ExecStart=/usr/bin/autossh -p 2223 -N -R *:22222:localhost:22 atilla@my_home_ip

サービスGatewayPorts設定を読み、変更することもできますsshd。既定では、この値は上記のno操作を実行するのを防ぎます。選択肢やその他のman sshd_config詳細については、リソースを参照してください。それについて読み取らずに値を選択しないでください。yesclientspecified


この質問に答えた後、あなたのオフィスネットワークへの管理されていないアクセスはITポリシー違反である可能性が高く、懲戒処分を受ける可能性があることを指摘したいと思います。特に「どこでも」アクセスできるルートの場合。

おすすめ記事