9.3. 발신 연결 보안
라우터가 외부 AMQP 컨테이너(예: 메시지 브로커)에 대한 연결을 생성하도록 구성된 경우 다음 방법을 사용하여 연결을 보호할 수 있습니다.
9.3.1. 단방향 SSL/TLS 인증을 사용하여 연결
단방향 SSL/TLS를 사용하여 외부 AMQP 컨테이너(예: 브로커)에 연결할 수 있습니다. 이 방법을 사용하면 라우터에서 외부 AMQP 컨테이너의 서버 인증서를 확인하여 ID를 확인합니다.
절차
-
/etc/qpid-dispatch/qdrouterd.conf
구성 파일을 엽니다. 라우터에 외부 AMQP 컨테이너의 ID를 확인하는 데 사용할 수 있는 인증서를 정의하는
sslProfile
이 포함되어 있지 않은 경우 이를 추가합니다.sslProfile { name: broker-tls caCertFile: /etc/qpid-dispatch-certs/ca.crt ... }
name
-
이
sslProfile
을 참조하는 데 사용할 수 있는 고유한 이름입니다. caCertFile
- 외부 AMQP 컨테이너의 ID를 확인하는 데 사용되는 CA 인증서의 절대 경로입니다.
SSL/TLS를 사용하도록 이 연결에 대한
커넥터
를 구성하여 SSL 핸드셰이크 중에 브로커가 수신한 서버 인증서의 유효성을 검사합니다.이 예제에서는 브로커에 대한
커넥터
를 구성합니다. 라우터가 브로커에 연결하면broker-tls
sslProfile
에 정의된 CA 인증서를 사용하여 브로커에서 수신한 서버 인증서의 유효성을 검사합니다.connector { host: 192.0.2.1 port: 5672 role: route-container sslProfile: broker-tls ... }
sslProfile
-
외부 AMQP 컨테이너의 ID를 확인하는 데 사용할 인증서를 정의하는
sslProfile
의 이름입니다.
9.3.2. 상호 SSL/TLS 인증을 사용하여 연결
상호 SSL/TLS 인증을 사용하여 외부 AMQP 컨테이너(예: 브로커)에 연결할 수 있습니다. 이 방법을 사용하면 라우터에서 클라이언트 역할을 하며 외부 AMQP 컨테이너에 인증서를 제공하므로 라우터의 ID를 확인할 수 있습니다.
사전 요구 사항
- 라우터에는 X.509 인증 기관(CA)이 있어야 합니다.
- 라우터용 보안 인증서를 생성해야 하며 CA에서 서명해야 합니다.
절차
-
/etc/qpid-dispatch/qdrouterd.conf
구성 파일을 엽니다. 라우터에 외부 AMQP 컨테이너에 연결할 개인 키와 인증서를 정의하는
sslProfile
이 포함되어 있지 않은 경우 하나를 추가합니다.이
sslProfile
에는 개인 키의 위치와 라우터에서 피어로 인증하는 데 사용해야 하는 인증서가 포함되어 있습니다.sslProfile { name: broker-tls certFile: /etc/pki/tls/certs/tls.crt caCertFile: /etc/pki/tls/certs/ca.crt privateKeyFile: /etc/pki/tls/private/tls.key password: file:/etc/pki/tls/private/password.txt ... }
name
-
이
sslProfile
을 참조하는 데 사용할 수 있는 고유한 이름입니다. certFile
- 이 라우터의 공용 인증서가 포함된 파일의 절대 경로입니다.
caCertFile
- 라우터가 들어오는 클라이언트를 인증하는 데 사용하는 CA 인증서의 절대 경로입니다.
privateKeyFile
이 라우터의 공용 인증서에 대한 개인 키가 포함된 파일의 절대 경로입니다.
참고qdrouterd
또는 root 사용자가 개인 키에 액세스할 수 있는지 확인합니다. 예를 들면 다음과 같습니다.chmod 0600 /etc/pki/tls/private/tls.key chown qdrouterd /etc/pki/tls/private/tls.key
암호
인증서 키의 잠금을 해제하는 암호입니다. 인증서 키에 암호가 없는 경우 이를 지정할 필요가 없습니다. 다른 접두사를 사용하여 보안 요구 사항에 따라 암호를 여러 가지 방법으로 지정할 수 있습니다.
암호가 포함된 파일의 절대 경로를 지정합니다. 암호가 포함된 파일에 대한 권한을 설정할 수 있으므로 가장 안전한 옵션입니다. 예를 들면 다음과 같습니다.
password: file:/etc/qpid-dispatch-certs/inter-router/password.txt
암호를 저장하는 환경 변수를 지정합니다. 다른 프로세스의 환경이 특정 플랫폼에 표시되므로 이 옵션을 신중하게 사용합니다. 예를 들면 다음과 같습니다.
password: env:CERT_PASSWORD
암호를 일반 텍스트로 지정합니다. 이 옵션은 안전하지 않으므로 보안이 우려되지 않은 경우에만 사용해야 합니다. 예를 들면 다음과 같습니다.
password: pass:mycertpassword
생성한
sslProfile
을 사용하도록 이 연결에 대한커넥터
를 구성합니다.connector { host: 192.0.2.1 port: 5672 role: route-container sslProfile: broker-tls saslMechanisms: EXTERNAL ... }
sslProfile
-
라우터 간 네트워크의 SSL/TLS 개인 키 및 인증서를 정의하는
sslProfile
의 이름입니다.
9.3.3. 사용자 이름 및 암호 인증을 사용하여 연결
SASL PLAIN 메커니즘을 사용하여 사용자 이름과 암호가 필요한 외부 AMQP 컨테이너에 연결할 수 있습니다. 이 방법을 자체적으로 사용하거나 SSL/TLS 암호화와 결합할 수 있습니다.
사전 요구 사항
cyrus-sasl-plain
플러그인이 설치됩니다.Cyrus SASL은 플러그인을 사용하여 특정 SASL 메커니즘을 지원합니다. 특정 SASL 메커니즘을 사용하려면 먼저 관련 플러그인을 설치해야 합니다.
Red Hat Enterprise Linux의 Cyrus SASL 플러그인 목록을 보려면
yum search cyrus-sasl
명령을 사용합니다. Cyrus SASL 플러그인을 설치하려면yum install < plugin> 명령을
사용합니다.
절차
-
/etc/qpid-dispatch/qdrouterd.conf
구성 파일을 엽니다. 외부 AMQP 컨테이너에 사용자 이름 및 암호 자격 증명을 제공하도록 이 연결에 대한
커넥터
를 구성합니다.connector { host: 192.0.2.1 port: 5672 role: route-container saslMechanisms: PLAIN saslUsername: user saslPassword: file:/path/to/file/password.txt }
saslPassword
피어에 연결할 암호입니다. 다른 접두사를 사용하여 보안 요구 사항에 따라 암호를 여러 가지 방법으로 지정할 수 있습니다.
암호가 포함된 파일의 절대 경로를 지정합니다. 암호가 포함된 파일에 대한 권한을 설정할 수 있으므로 가장 안전한 옵션입니다. 예를 들면 다음과 같습니다.
password: file:/path/to/file/password.txt
암호를 저장하는 환경 변수를 지정합니다. 다른 프로세스의 환경이 특정 플랫폼에 표시되므로 이 옵션을 신중하게 사용합니다. 예를 들면 다음과 같습니다.
password: env:PASSWORD
암호를 일반 텍스트로 지정합니다. 이 옵션은 안전하지 않으므로 보안이 우려되지 않은 경우에만 사용해야 합니다. 예를 들면 다음과 같습니다.
password: pass:mypassword