SSH Push (トンネル使用)接続メソッド

SSH Push (トンネル使用) (ssh-push-tunnel)は、クライアントがSUSE Multi-Linux Managerサーバに直接アクセスできない環境で使用されます。 この環境では、クライアントはDMZと呼ばれるファイアウォール保護ゾーンに位置しています。 DMZ内のシステムは、SUSE Multi-Linux Managerサーバを含む内部ネットワークへの接続を確立することが許可されていません。

つまり、次のように表すことができます。SSH Push (トンネル使用)は、サーバからクライアントへのリバーストンネルだけでなく、クライアントからSUSE Multi-Linux Managerサーバへのリバーストンネルも作成します。

サーバは、SSHを使用して、定期的にクライアントに接続し、チェックインし、スケジュールされたアクションおよびイベントを実行します。

プロビジョニングモデルを使用したシステムの再インストールは、SSH Pushで管理されているクライアントでは現在サポートされていません。

トンネルは、暗号化されたトンネルを通じてサーバへのアクセスを提供するために使用されます。 SSH Pushクライアント(トンネル使用)に割り当てられたリポジトリは、このトンネルを通じてのみ提供されるため、トンネルが稼働している間のみリポジトリが利用可能です。そのため、クライアントシステムからパッケージ管理ツールを直接使用することはできません。 言い換えれば、セッションがサーバによって開始された場合にのみアクセスが可能です。 クライアント上のすべてのパッケージ管理操作は、サーバ側からのみ実行できます。

サーバコンテナ内でステップを実行する前に、`mgrctl term`を使用してください。

SSH経由でのトンネリング接続には、HTTPS経由でのトンネリング用にポート番号が必要です。 デフォルトで使用されるポート番号は`1233`です。 これを上書きするには、コンテナ内で1024より大きいカスタムポート番号を`/etc/rhn/rhn.conf`に追加できます。

ssh_push_port_https = high_port

この設定パラメータを変更した後、salt-secrets-config.servicetomcat.service、および`taskomatic.service`などのサービスを再起動する必要があります。 必要なすべてのサービスをカバーするためには、SUSE Multi-Linux Managerサーバをルートとして再起動するのが最善です。 コンテナの外部、コンテナホストから、次のように入力します:

mgradm restart

セキュリティ上の理由から、SSHでsudoを使用して、rootとしてではなく非特権ユーザとしてシステムにアクセスする必要がある場合があります。

プロシージャ:非特権SSHアクセスの設定
  1. それぞれのクライアントシステムで、適切な非特権ユーザを作成します。

  2. 各クライアントシステムで、`sudoers`ファイルを編集します。

    sudo visudo
  3. `sudo`ファイルの最後にこの行を追加して、ユーザーに`sudoers`アクセスを付与します。 `<user>`をWeb UIでクライアントを起動しているユーザーの名前に置き換えてください。

    <user>  ALL=NOPASSWD: /usr/bin/python3, /var/tmp/venv-salt-minion/bin/python

    この手順では、クライアントを登録するために必要なパスワードなしでルートアクセスを付与します。 クライアントが正常にインストールされると、ルート権限で実行されるため、アクセスはもはや必要ありません。 クライアントが正常にインストールされた後、`sudoers`ファイルからその行を削除することをお勧めします。

  4. SUSE Multi-Linux Managerサーバコンテナ内で、`/etc/rhn/rhn.conf`設定ファイルを編集し、次の行を追加または修正して、非特権ユーザー名を含めます。

    ssh_push_sudo_user = <user>

この設定パラメータを変更した後、salt-secrets-config.servicetomcat.service、および`taskomatic.service`などのサービスを再起動する必要があります。 必要なすべてのサービスをカバーするためには、SUSE Multi-Linux Managerサーバをルートとして再起動するのが最善です。 コンテナの外部、コンテナホストから、次のように入力します:

mgradm restart

Web UIまたはAPIを使用して、これらのクライアントをSUSE Multi-Linux Managerサーバに登録する必要があります。

始める前に、SSHトンネリングに使用するポートを指定していることを確認する必要があります。 ポート番号を変更する前にクライアントを登録している場合は、再アクティベーションキーで再登録する必要があります。

例:SSH Push (トンネル使用)へのAPIアクセス

APIを使用して、使用する連絡手段を管理できます。 この例のPythonコードは、連絡手段を`ssh-push-tunnel`に設定します。

client = xmlrpclib.Server(MLM_HOST + "/rpc/api", verbose=0)
key = client.auth.login(MLM_LOGIN, MLM_PASSWORD)
client.system.setDetails(key, 1000012345, {'contact_method' : 'ssh-push-tunnel'})

有効な値は次のとおりです。

  • default (pull)

  • ssh-push

  • ssh-push-tunnel