2012-04-27 2 views
4

이제는 Websphere MQ 클라이언트를 사용하여 원격 MQ 서버 (7.0 버전)에 C#으로 연결하고 권한 문제가 발생합니다. MQ 클라이언트 응용 프로그램을 실행하는 사용자는 불충분합니다. 권한을 qmgr.에 액세스 할 수 있습니다. 그런 다음 사용자에게 충분한 권한을 부여하기 위해 'setmqaut'명령을 사용하면 작동합니다.MQ 클라이언트가 원격 MQ 서버에 연결 권한이 충분하지 않습니다.

나는 MQ 서버에서 사용자의 IP를 추가하는 것이 매우 편리하고 더 나은 방법이어야한다고 생각합니다. 그러나 나는 그것을 어떻게하는지 모른다.

의견을 보내 주시면 대단히 감사하겠습니다. 감사합니다.

답변

5

WebSphere MQ는 인증을 수행하지 않습니다. 로컬 응용 프로그램은 운영 체제에서 인증되므로 ID를 신뢰할 수 있습니다. 정의에 따르면 로컬 OS 인증을 신뢰할 수 없으면 전체 서버가 손상됩니다. 로컬 연결과 마찬가지로 WMQ는 원격으로 연결하는 ID가 정품임을 신뢰합니다. WMQ 관리자는 고용 할 인증 수준을 결정해야합니다. WMQ v7에는 SSL/TLS 채널로 인증하거나 채널 종료를 사용하여 인증하는 두 가지 옵션이 있습니다.

두 경우 모두 권한 부여에 사용되는 ID를 결정하는 것은 채널의 MCAUSER 값입니다. MCAUSER가 비어 있으면 채널은 클라이언트가 보내는 사용자 ID를 사용합니다. 클라이언트가 관리 (mqm) 그룹에없는 ID를 전송했기 때문에 귀하의 경우 2035 오류가 발생했습니다. 클라이언트가 ID 'mqm'(또는 Windows 'MUSR_MQADMIN')을 전송했으면 연결에 성공한 것입니다. 프로그램이 Java 또는 JMS 인 경우 제공된 ID를 선택하는 기능은 API의 일부입니다. QMgr에게 당신이되고 싶은 사람에게 말하십시오.

원격 연결이 서버에서 OS 명령을 실행하도록 허용하려는 경우 관리 ID를 채널의 MCAUSER에 넣기 만하면됩니다. 예를 들어, UNIX/Linux에서는 MCAUSER ('mqm'), Windows에서는 일반적으로 MCAUSER ('MUSR_MQADMIN')입니다. 그러나 관리자 권한이있는 원격 사용자는 QMgr을 사용하여 원격으로 임의의 OS 명령 줄 코드를 실행할 수 있습니다. 이것은 WMQ의 기능이며 버그가 아니기 때문에 프로덕션에서는 권장하지 않습니다. 실제로 개인적으로 개발 환경에서 보안을 사용할 것을 권장합니다. 프로덕션에서 연결을 인증하는 방법과 필요한 권한 부여를 파악하기 위해 대기하는 경우 종종 불필요한 배포 지연이 발생합니다.

IP 필터링을 사용하여 위협을 완화하려는 경우이 기능이 기본적으로 포함 된 WMQ v7.1로 이동하거나 BlockIP2과 같은 종료를 사용할 수 있습니다. 이러한 솔루션 중 하나를 사용하면 들어오는 연결 요청을 IP 주소, 사용자 ID 등으로 필터링하는 규칙을 만들 수 있습니다.

v7.0 QMgr에서 모든 채널은 기본적으로 보호되지 않습니다. 따라서 한 채널에서 들어오는 요청을 필터링하는 경우에도 다른 채널이 기본 상태로 남아 있으면 누구나 관리자로 연결하여 명령을 실행할 수 있습니다. 이 모든 내용을 종합적으로 검토하려면 WebSphere MQ 프레젠테이션 강화 (t-rob.net)를 살펴보십시오. v7.0 프리젠 테이션으로 스크롤하십시오.

+0

감사합니다. T.Rob.It 정말 도움이됩니다. 이제 어떻게 해야할지 압니다. –