RabbitMQ 3.3.1은 게스트 / 게스트로 로그인 할 수 없습니다.


79

VPS Debian Linux 상자에 최신 버전의 RabbitMQ를 설치했습니다. 게스트 / 게스트를 통해 로그인을 시도했지만 login failed 메시지와 함께 반환되었습니다 . 나는 약간의 조사를했고 보안상의 이유로 게스트 / 게스트를 통해 원격으로 로그인하는 것이 금지되어 있음을 발견했습니다.

또한 rabbitmq.config수동으로 파일 을 생성하고 (설치시 파일 이 생성 되지 않았기 때문에) 다음 항목 만 배치 하여이 버전에서 게스트 사용을 활성화하여 원격으로 로그인하도록 시도했습니다.

[{rabbit, [{loopback_users, []}]}].

다음 명령으로 rabbitmq를 다시 시작한 후.

invoke-rc.d rabbitmq-server stop -- to stop
invoke-rc.d rabbitmq-server start -- to start

여전히 게스트 / 게스트로 로그인되지 않았습니다. 또한 Windows VPS에 RabbitMQ를 설치하려고 시도하고 localhost를 통해 게스트 / 게스트를 통해 로그인을 시도했지만 다시 동일한 메시지 로그인 실패가 발생 합니다.

또한 게스트 / 게스트를 통해 원격으로 로깅을 지원하는 RabbitMQ의 이전 버전을 설치할 수있는 소스를 제공하십시오.


2
이 게시물을 읽으십시오 : stackoverflow.com/questions/22850546/…
Gabriele Santomaggio

감사합니다 Gabriele이 귀하의 링크를 따라가는 나를 위해 일했습니다. 나는 새로운 테스트 사용자를 만들고 여기에 올바른 권한을 부여 결국
달콤한 칠리 필라델피아에게

나를 도운 정답이 있습니다. stackoverflow.com/a/29344487/1491359
리시 아그라 왈

비슷한 문제가 발생하여 다음 작업이 디버깅에 도움이되는 것으로 나타났습니다. rabbitmq-server직접 시작하십시오 . 실패하면 로그 파일에서 유용한 정보를 찾으십시오. Ubuntu에서 로그 파일은 /var/log/rabbitmq/.
Hong

답변:


208

똑같은 문제가 ..

RabbitMQ와 Enabled Web Interface도 설치했지만 새로 생성 한 사용자로 로그인 할 수 없었습니다. 이는 관리자 권한이 있어야 액세스 할 수 있기 때문입니다.

구성 파일을 생성하지 말고 엉망으로 만드십시오 ..

이것이 내가 한 일입니다.

  1. 새로운 / 새 사용자를 추가하고 사용자 test와 비밀번호를 말합니다 test.

    rabbitmqctl add_user test test
    
  2. 새 사용자에게 관리 액세스 권한을 부여하십시오.

    rabbitmqctl set_user_tags test administrator
    
  3. 새로 생성 된 사용자에게 권한 설정 :

    rabbitmqctl set_permissions -p / test ".*" ".*" ".*"
    

그게 다야, 즐기세요 :)


15
이것이 갈 길이었습니다. 쉬워요.
eriklane

2
3 개의 명령 줄을 실행하면 원격에서 RabbitMQ 관리 콘솔에 액세스 할 수 있습니다
Jeson Martajaya 2017 년

효과가있었습니다. 감사합니다. 저는이 3 단계 이후에 필요한 다시 시작
Kiren 시바에게

management웹 인터페이스에 로그인하려면 태그 만 필요 하다고 생각합니다 . 태그 administrator확장의 버전입니다 management권한 rabbitmq.com/management.html#permissions
piotrekkr을

85

다음 단계에 따라 Debian에서 동일한 구성을 시도했습니다.

  1. RabbitMQ를 설치했습니다.
  2. 웹 관리 플러그인을 활성화했습니다 (필요하지 않음).

로그인을 시도 할 때 동일한 오류가 발생했습니다.

여기에 이미지 설명 입력

그래서 다음 내용 (마지막 점에 주목)으로 디렉토리 안에 rabbitmq.config파일 ( classic configuration file )을 만들었습니다 /etc/rabbitmq.

[{토끼, [{loopback_users, []}]}].

또는 다음 내용으로 동일한 디렉토리 내에 rabbitmq.conf파일 ( 새 구성 파일 )을 대신 만들 수 있습니다 .

loopback_users = 없음

그런 다음 invoke-rc.d rabbitmq-server start명령을 실행하고 콘솔과 Java 클라이언트 모두 게스트 / 게스트 자격 증명을 사용하여 연결할 수있었습니다.

여기에 이미지 설명 입력

이 절차가 작동하지 않으면 다른 문제가 있다고 생각합니다. 예를 들어 어떤 이유로 RABBITMQ_CONFIG_FILE환경 변수를 변경 한 경우 RabbitMQ가 구성 파일을 읽지 못할 수 있습니다 .


이것은 우분투 14에서도 작동하지 않았습니다. /etc/rabbitmq/rabbitmq.config
Cerin

1
공식 사이트에서 Ubuntu에 대한 지침을 사용하여 rabbit을 설치하면 구성 파일도 누락되었습니다. 이 대답은 그것을 고쳤습니다.
David

18

이것은 버전 3.3.0 이후의 새로운 기능입니다. localhost에서 guest / guest를 사용해서 만 로그인 할 수 있습니다. 다른 컴퓨터 또는 IP에서 로깅하려면 사용자를 만들고 권한을 할당해야합니다. 다음과 같이 수행 할 수 있습니다.

rabbitmqctl add_user test test
rabbitmqctl set_user_tags test administrator
rabbitmqctl set_permissions -p / test ".*" ".*" ".*"

4

RabbitMQ 프로비저닝에 Ansible을 사용하는 다른 사람들의 경우 rabbitmq_user모듈에서 놓친 것은tags: administrator

다음은 "게스트"사용자를 다시 생성하기위한 내 작업 Ansible 구성입니다 (개발 환경 목적으로 프로덕션 환경에서는 수행하지 마십시오).

- name: Create RabbitMQ user "guest" become: yes rabbitmq_user: user: guest password: guest vhost: / configure_priv: .* read_priv: .* write_priv: .* tags: administrator force: yes # recreate existing user state: present

또한 /etc/rabbitmq/rabbitmq.config다음을 포함 하는 파일을 설정해야했습니다 .

[{rabbit, [{loopback_users, []}]}].

localhost 외부에서 "guest"/ "guest"를 사용하여 로그인 할 수 있도록하기 위해


이 사용 사례가 있었는데 ... ansible을 사용하여 토끼 사용자를 만들었고 웹을 통해 로그인 할 수 없었습니다.
Tomislav Mikulin 19.04.30

4

주의 사항 : 포트가 15672인지 확인하십시오! (버전> 3.3) 5672가 작동하지 않는 경우

먼저 "위에서 선택한 답변"을 확인하십시오.

rabbitmqctl add_user test test
rabbitmqctl set_user_tags test administrator
rabbitmqctl set_permissions -p / test ".*" ".*" ".*"

그래도 연결이되지 않으면 포트가 올바른지 확인하세요!

나를 위해이 명령은 작동합니다.

$ rabbitmqadmin -H 10.140.0.2 -P 15672 -u test -p test list vhosts
+------+----------+
| name | messages |
+------+----------+
| /    |          |
+------+----------+

완료된 포트에 대해 다음을 확인하십시오. RabbitMQ는 어떤 포트를 사용합니까?

Rabbit mq 서버를 확인하려면 다음을 확인하십시오. rabbitmq 버전 확인

추신

나는 "테스트"사용자와 실행을 만든 후 나에게 set_user_tags, set_permissions나는 포트 5672. 통해 rabbitmq에 연결할 수 있지만 15672를 통해 연결할 수 있습니다.

그러나 포트 15672는 항상 "빈 응답"을 제공합니다. 내 코드가 작동하지 않습니다.

약 5 분 후에 5672로 전환했습니다.

매우 유선 문제입니다. 더 깊이 파고들 시간이 없습니다. 그래서 같은 문제를 겪는 사람을 위해 여기에 적었습니다.


2

나는 같은 문제가 있었다. 나는 Gas가 제안한 것을 시도하고 "invoke-rc.d rabbitmq-server start"를 실행했지만 시작되지 않았습니다. 서버를 재부팅하려고했고 webui는 게스트 사용자와 함께 작동했습니다. rabbitmq.config 파일을 추가 한 후 다른 작업을 시작해야 할 수도 있습니다.

rabbitmq 버전 3.5.3을 사용했습니다.

한 가지 더 알아 두어야 할 사항 : AWS 인스턴스를 사용하는 경우 인바운드 포트 15672를 열어야합니다 (3.0 이전의 RabbitMQ 버전 용 포트는 55672입니다.).


1

학생들과 저는 한 시간 동안이 문제를 쳐다 보았습니다. 파일 이름을 올바르게 지정했는지 확인하십시오. 에서 /etc/rabbitmq디렉토리, 두 가지 파일이 있습니다. 가 /etc/rabbitmq/rabbitmq.config당신이 설명 된대로 루프백 사용자를 얻기 위해 편집해야합니다 파일,하지만라는 또 다른 파일이 rabbitmq-env.conf파일은. 많은 사람들이 탭 완성 기능을 사용하고 올바른 파일이 아닌 "ig"만 추가했습니다. 이중 점검!


1

때로는 구성 파일에 기본적으로있는 쉼표가 필요하지 않습니다. rabbit 태그 아래에 다른 항목이 구성되어 있지 않으면 브로커를 시작하는 동안 충돌이 발생합니다.

{loopback_users, []}처럼 저는 이것을 잊어 버리고 나중에 쉼표를 제거하는 데 여러 시간을 소비합니다. SSL을 포함한 다른 모든 구성에 적용됩니다.


1

rabbitmq를 다시 시작하고 다시 로그인하십시오.


1

# 다음을 사용하여 rabbitmq.conf 파일 만들기

rabbitmq.conf

loopback_users = none

Dockerfile :

FROM rabbitmq:3.7-management

#Rabbitmq config
COPY rabbitmq.conf /etc/rabbitmq/rabbitmq.conf

#Install vim (edit file)
RUN ["apt-get", "update"]
RUN ["apt-get", "-y", "install", "vim"]

#Enable plugins rabbitmq
RUN rabbitmq-plugins enable --offline rabbitmq_mqtt rabbitmq_federation_management rabbitmq_stomp

운영:

$ docker build -t  my-rabbitmq-image .

$ docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672  my-rabbitmq-image

rabbitmq.conf 파일이 올바르게 복사되었는지 확인하십시오.

$ docker exec -it my_container_id /bin/bash

$ vim /etc/rabbitmq/rabbitmq.conf

0

약간 다른 사용을 위해,하지만 목적을 모니터링하기위한 API에 액세스 다루는 사람에게 유용 할 수 있습니다 : 나는 Oliboy50 잘 작동 @에 의해 주어진 답을 확인할 수 있습니다 그러나 당신이 당신이 사용자가 할 수 있도록하려면 각 가상 호스트에 대한 활성화하기 다음과 같은 모니터 :

      permissions:
    - vhost: "{{item.name}}"
      configure_priv: .*
      write_priv: .*
      read_priv: .*
  state: present
  tags: management
with_items: "{{user_system_users}}"

이 루프를 사용하면 가상 호스트에 API를 사용할 때 "401 Unauthorized"오류를 통과 할 수있었습니다.


-1

정보 보고서 아래의 로그 파일을 확인하면 이것을 얻을 수 있습니다.

`config file(s) : /etc/rabbitmq/rabbitmq.config (not found)`. 

아래 명령을 사용하여 구성 파일 권한을 변경 한 다음 게스트를 사용하여 로그인하면 작동합니다.

sudo chmod 777 /etc/rabbitmq/rabbitmq.config


-1

기본적으로 게스트 사용자는 원격 호스트에서 연결할 수 없습니다. 루프백 인터페이스 (예 : localhost)를 통해서만 연결할 수 있습니다. 이것은 프로토콜에 관계없이 연결에 적용됩니다. 다른 사용자는 이러한 방식으로 제한되지 않습니다 (기본적으로).

loopback_users 구성을 none으로 설정하여 게스트 사용자가 원격 호스트에서 연결하도록 허용 할 수 있습니다.

# DANGER ZONE!
#
# allowing remote connections for default user is highly discouraged
# as it dramatically decreases the security of the system. Delete the user
# instead and create a new one with generated secure credentials.
loopback_users = none

또는 클래식 구성 파일 형식 (rabbitmq.config) :

%% DANGER ZONE!
%%
%% Allowing remote connections for default user is highly discouraged
%% as it dramatically decreases the security of the system. Delete the user
%% instead and create a new one with generated secure credentials.
[{rabbit, [{loopback_users, []}]}].

에서 참조하십시오 "게스트"사용자는 로컬 호스트에서 연결할 수 있습니다

팁 : 게스트 사용자를 삭제하거나 최소한 일반에게 알려지지 않은 합리적으로 안전한 생성 값으로 암호를 변경하는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.