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.service, tomcat.service, `taskomatic.service`과(와) 같은 서비스를 다시 시작해야 합니다.
모든 필요한 서비스를 포함하기 위해서는 루트 사용자로 SUSE Multi-Linux Manager 서버를 재시작하는 것이 가장 좋습니다.
컨테이너 외부에서, 컨테이너 호스트에서 입력하십시오:
mgradm restart
보안상의 이유로 sudo를 SSH와 함께 사용해 루트 권한 대신에 권한 없는 사용자로 시스템에 액세스하고 싶을 때가 있을 수 있습니다.
-
각 클라이언트 시스템에서 적절한 권한 없는 사용자를 생성합니다.
-
각 클라이언트 시스템에서
sudoers파일을 편집합니다:sudo visudo
-
이 줄을
sudo파일의 끝에 추가하여 사용자에게sudoers액세스를 부여하십시오. `<user>`을(를) Web UI에서 클라이언트를 부팅하는 사용자의 이름으로 교체하십시오:<user> ALL=NOPASSWD: /usr/bin/python3, /var/tmp/venv-salt-minion/bin/python
이 절차는 클라이언트를 등록하는 데 필요한 비밀번호 없이 루트 액세스를 부여합니다. 클라이언트가 성공적으로 설치되면 루트 권한으로 실행되므로 더 이상 액세스가 필요하지 않습니다. 클라이언트가 성공적으로 설치된 후
sudoers파일에서 이 줄을 제거하는 것이 좋습니다. -
SUSE Multi-Linux Manager 서버 컨테이너 내에서
/etc/rhn/rhn.conf구성 파일을 편집하고 이 줄에 권한 없는 사용자 이름을 포함하도록 추가하거나 수정합니다:ssh_push_sudo_user = <user>
이 구성 매개변수를 변경한 후에는 salt-secrets-config.service, tomcat.service, `taskomatic.service`과(와) 같은 서비스를 다시 시작해야 합니다.
모든 필요한 서비스를 포함하기 위해서는 루트 사용자로 SUSE Multi-Linux Manager 서버를 재시작하는 것이 가장 좋습니다.
컨테이너 외부에서, 컨테이너 호스트에서 입력하십시오:
mgradm restart
이러한 클라이언트를 Web UI 서버에 등록하려면 SUSE Multi-Linux Manager 또는 API를 사용해야 합니다.
시작하기 전에 SSH 터널링에 사용할 포트를 지정했는지 확인해야 합니다. 포트 번호를 변경하기 전에 클라이언트를 등록한 경우, 재활성화 키로 다시 등록해야 합니다.
-
부팅에 대한 자세한 정보는 부트스트랩 스크립트로 클라이언트 등록을 참조하십시오.
-
부팅에 대한 자세한 정보는 client-configuration:activation-keys.adoc#activation-keys-reactivation을 참조하십시오.
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(풀) -
ssh-push -
ssh-push-tunnel