RabbitMQ 3.3.1 не може ввійти в систему як гість / гість


79

Я встановив останню версію RabbitMQ на поле VPS Debian Linux. Намагався отримати вхід через гість / гість, але повернувся з повідомленням, що вхід не вдався . Я зробив невелике дослідження і виявив, що з міркувань безпеки заборонено отримувати логін через гість / гість віддалено.

Я також спробував дозволити гостьовим використанням у цій версії віддалено увійти в систему, створивши rabbitmq.configфайл вручну (оскільки інсталяція його не створила) і розмістивши лише такий запис

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

після перезапуску rabbitmq наступною командою.

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

Я все ще не ввійшов у систему з гість / гість. Я також спробував встановити RabbitMQ на Windows VPS і спробував отримати вхід через гостя / гостя через localhost, але знову я отримую те саме повідомлення для входу в систему .

Також надайте мені джерело, де я можу спробувати встановити стару версію RabbitMQ, яка підтримує дистанційне ведення журналу за допомогою гостя / гостя.


2
Будь ласка , прочитайте цей пост: stackoverflow.com/questions/22850546 / ...
Gabriele Santomaggio

Дякую, Габріеле, це мені вдалося, перейшовши за вашим посиланням. У підсумку я створив нового тестового користувача і дав йому правильні дозволи
Sweet Chilly Philly

Ось правильна відповідь, яка мені допомогла. stackoverflow.com/a/29344487/1491359
Rishi Agrawal

Я зіткнувся з подібною проблемою і виявив, що такі дії корисні для налагодження. Спробуйте почати rabbitmq-serverбезпосередньо. Якщо це не вдається, спробуйте знайти корисну інформацію у файлі журналу. У Ubuntu файл журналу знаходиться в /var/log/rabbitmq/.
Гонг

Відповіді:


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

Це спрацювало. Дякую. Для мене потрібен перезапуск після цих 3 кроків
Кірен Сіва

Я думаю, що managementдля входу в веб-інтерфейс потрібен лише тег . Тег administrator- це розширена версія managementдозволу rabbitmq.com/management.html#permissions
piotrekkr

85

Я спробував на Debian ту саму конфігурацію, виконавши такі дії:

  1. Встановлено RabbitMQ.
  2. Увімкнено плагін веб-управління (не потрібно).

Коли я намагався увійти, у мене сталася та ж помилка:

введіть тут опис зображення

Тож я створив rabbitmq.configфайл ( класичний файл конфігурації ) всередині /etc/rabbitmqкаталогу із таким вмістом (зверніть увагу на остаточну крапку):

[{кролик, [{loopback_users, []}]}].

Крім того, замість цього можна створити rabbitmq.confфайл ( новий файл конфігурації ) у тому ж каталозі з таким вмістом:

loopback_users = немає

Потім я виконав invoke-rc.d rabbitmq-server startкоманду, і консоль, і клієнт Java змогли підключитися за допомогою облікових даних гостя / гостя:

введіть тут опис зображення

Тому я думаю, що у вас є інші проблеми, якщо ця процедура не працює. Наприклад, ваш RabbitMQ може бути не в змозі прочитати файл конфігурації, якщо з якихось причин ви змінили RABBITMQ_CONFIG_FILEзмінну середовища.


Це також не спрацювало для мене на Ubuntu 14. Здається, ігнорує /etc/rabbitmq/rabbitmq.config
Cerin

1
Я виявив, що встановлюючи кролика, використовуючи інструкції для Ubuntu на офіційному сайті, файл конфігурації також відсутній і для мене. Ця відповідь це виправила.
Девід

18

Це нова функція з версії 3.3.0. Увійти можна лише за допомогою гостя / гостя на localhost. Для входу з інших машин або на ip вам доведеться створювати користувачів і призначати дозволи. Це можна зробити наступним чином:

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

4

для інших хлопців, які використовують Ansible для підготовки RabbitMQ, чого я пропустив 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


щойно був цей варіант використання ... створив користувача кролика з ansible, і я не зміг увійти через Інтернет .... це спрацювало!
Томіслав Мікулін

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

ps

Для мене, після того, як я створив "тестового" користувача та запустив його set_user_tags, set_permissionsя не можу підключитися до rabbitmq через порт 5672. але я можу підключитися через 15672.

Однак порт 15672 завжди дає мені "порожню відповідь". і мій код перестає працювати.

так приблизно через 5 хвилин я перейшов на 5672, все працювало!

Дуже дротова проблема. Я не маю часу копати глибше. тому я записав це тут для тих, хто стикається з тими ж проблемами.


2

У мене була та сама проблема. Я спробував те, що запропонував Gas, і запустив "invoke-rc.d rabbitmq-server start" він не запускався. Я спробував перезавантажити сервер, і веб-сайт працював із гостьовим користувачем. Можливо, після додавання файлу rabbitmq.config також потрібно було розпочати щось інше.

Я використовував rabbitmq версії 3.5.3.

Ще одне, на що слід звернути увагу: якщо ви використовуєте екземпляр AWS, то вам потрібно відкрити вхідний порт 15672. (Порт для версій RabbitMQ до 3.0 - 55672.).


1

Ми зі студентами цілу годину дивились на цю проблему. Переконайтеся, що ви правильно назвали файли. У /etc/rabbitmqкаталозі є два різних файли. Існує /etc/rabbitmq/rabbitmq.configфайл, який ви повинні відредагувати, щоб отримати користувачів із зворотним зв'язком, як описано, але є інший файл, який називається rabbitmq-env.confфайл. Багато людей використовували заповнення вкладок і просто додавали "ig", що не є правильним файлом. Подвійна перевірка!


1

іноді вам не потрібна кома, яка є у файлі конфігурації за замовчуванням, якщо під тегом rabbit нічого не налаштовано, під час запуску брокера ми отримаємо збій

подібно до {loopback_users, []}, я провожу багато разів, забуваючи про це, а потім видаляючи кому, це застосовно до всіх інших конфігурацій, включаючи SSL



1

# Створити файл rabbitmq.conf за допомогою

rabbitmq.conf

loopback_users = none

Файл Docker:

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}}"

За допомогою цього циклу я зміг подолати помилку "401 unauthorized" при використанні API для будь-якого vhost.


-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, []}]}].

Див. У розділі "гість" користувач може підключатися лише з localhost

ПОРАДА: Бажано видалити запрошеного користувача або, принаймні, змінити його пароль, щоб забезпечити достатньо безпечне згенероване значення, яке не буде відоме широкому загалу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.