SSH Push (トンネル使用)接続メソッド
SSH Push (トンネル使用)は、クライアントでSUSE Managerサーバに直接接続できない環境で使用されます。この環境では、DMZと呼ばれるファイアウォール保護ゾーンにクライアントはあります。内部ネットワークとの接続を開くことを認可されているシステム(SUSE Managerサーバなど)はDMZ内にはありません。
このSSHメソッドは、DMZにあるクライアントに内部ネットワークのSUSE Managerサーバから暗号化トンネルを作成します。すべてのアクションおよびイベントが実行された後、トンネルはクローズします。
サーバは、SSHを使用して、定期的にクライアントに接続し、チェックインし、スケジュールされたアクションおよびイベントを実行します。
プロビジョニングモデルを使用したシステムの再インストールは、SSH Pushで管理されているクライアントでは現在サポートされていません。 |
トンネルを使用して、暗号化されたトンネルを介したサーバへのアクセスを提供します。SSH Pushクライアント(トンネル使用)に割り当てられたリポジトリは、このトンネルを介してのみ提供されます。したがって、リポジトリを利用できるのはトンネルの動作中だけであるため、クライアントシステムから直接、パッケージマネージャツールを使用することはできません。つまり、セッションがサーバによって開始された場合にのみ、アクセスが可能です。クライアント上でのすべてのパッケージ管理操作はサーバ側からのみ実行できます。 |
SSHでのトンネル接続では、HTTPS経由のトンネル用のポート番号が必要です。デフォルトで使用されるポート番号は1233
です。この番号を上書きするには、1024よりも大きいカスタムポート番号を/etc/rhn/rhn.conf
に追加します。
ssh_push_port_https = high_port
この設定パラメータを変更した後に、salt-secrets-config.service
、tomcat.service
、taskomatic.service
などのサービスを再起動する必要があります。必要なすべてのサービスを対象とするには、rootとしてspacewalk-service
を再起動することをお勧めします。
spacewalk-service restart
セキュリティ上の理由から、SSHでsudoを使用して、rootとしてではなく非特権ユーザとしてシステムにアクセスする必要がある場合があります。
-
それぞれのクライアントシステムで、適切な非特権ユーザを作成します。
-
各クライアントシステムで、
sudoers
ファイルを編集します。sudo visudo
-
この行を
sudoers
ファイルの末尾に追加してsudo
アクセス権をユーザに付与します。 Web UIでクライアントをブートストラップしているユーザの名前で<user>
を置き換えます。<user> ALL=NOPASSWD: /usr/bin/python3, /var/tmp/venv-salt-minion/bin/python
このプロシージャによりrootアクセス権が付与されます。クライアントの登録に必要なパスワードは不要です。 クライアントは正常にインストールされると、root特権で実行されるため、アクセス権は不要です。 クライアントを正しくインストールした後、
sudoers
ファイルからこの行を削除することをお勧めします。 -
SUSE Managerサーバの
/etc/rhn/rhn.conf
設定ファイルで、次の行を追加または修正して、非特権ユーザ名を含めます。ssh_push_sudo_user = <user>
この設定パラメータを変更した後に、salt-secrets-config.service
、tomcat.service
、taskomatic.service
などのサービスを再起動する必要があります。必要なすべてのサービスを対象とするには、rootとしてspacewalk-service
を再起動することをお勧めします。
spacewalk-service restart
Web UIまたはAPIを使用して、これらのクライアントをSUSE Managerサーバに登録する必要があります。
始める前に、SSHトンネルに使用するポートを指定済みであることを確認する必要があります。ポート番号を変更する前にクライアントを登録した場合、再アクティベーションキーを使用して再登録する必要があります。
-
ブートストラップの詳細については、ブートストラップスクリプトを使用してクライアントを登録するを参照してください。
-
ブートストラップの詳細については、client-configuration:activation-keys.adoc#activation-keys-reactivationを参照してください。
APIを使用して、使用する接続メソッドを管理できます。このPythonコードの例では、接続メソッドがssh-push-tunnel
に設定されます。
有効な値は次のとおりです。
-
default
(pull) -
ssh-push
-
ssh-push-tunnel
client = xmlrpclib.Server(SUMA_HOST + "/rpc/api", verbose=0) key = client.auth.login(SUMA_LOGIN, SUMA_PASSWORD) client.system.setDetails(key, 1000012345, {'contact_method' : 'ssh-push-tunnel'})