dokcer部署rabbitmq

创建工作目录

[root@localhost mongo]# mkdir -p /root/tools/rabbitmq/{data,conf,init}

创建初始用户脚本


[root@localhost init]# cat  /root/tools/rabbitmq/init/init.sh
#!/usr/bin/env bash
echo "Creating rabbitmq users..."
rabbitmqctl add_user root 123456
rabbitmqctl set_user_tags root administrator
rabbitmq-plugins enable rabbitmq_management

echo "rabbitmq users created."

赋予执行权限

[root@localhost init]# chmod +x /root/tools/rabbitmq/init/init.sh

创建配置文件

[root@localhost rabbitmq]# cat docker-compose.yml

version: '3'
services:
  rebbitmq:
    restart: always
    image: rabbitmq:3.5.7
    container_name: rabbitmq
    hostname: rabbitmq
    ports:
      - 5672:5672
      - 15672:15672
    environment:
      RABBITMQ_DEFAULT_USER: username
      RABBITMQ_DEFAULT_PASS: pwd
      TZ: Asia/Shanghai
    volumes:
      - /etc/localtime:/etc/localtime
      - /root/tools/rabbitmq/data:/var/lib/rabbitmq
      - /root/tools/rabbitmq/conf:/etc/rabbitmq
      - /root/tools/rabbitmq/init/:/docker-entrypoint-initdb.d/

创建服务

[root@localhost conf]# docker-compose up -d

执行初始化脚本

[root@localhost conf]# docker exec rabbitmq /docker-entrypoint-initdb.d/init.sh

登录验证

应对安全测评nessus扫描出的问题AMQP Cleartext Authentication

创建docker-compose文件,注意不要设置任何rabbitmq识别的环境变量,否则配置文件rabbitmq.config将会被重写

[root@localhost rabbitmq]# cat docker-compose.yml
version: '3'
services:
  rebbitmq:
    restart: always
    image: rabbitmq:3.5.7
    container_name: rabbitmq
    hostname: rabbitmq
    ports:
      - 5672:5672
      - 15672:15672
    environment:
      TZ: Asia/Shanghai
    volumes:
      - /etc/localtime:/etc/localtime
      - /root/tools/rabbitmq/data:/var/lib/rabbitmq
      - /root/tools/rabbitmq/conf:/etc/rabbitmq
      - /root/tools/rabbitmq/init/:/docker-entrypoint-initdb.d/

增加rabbitmq.config配置文件
[root@localhost conf]# cat rabbitmq.config

[
  {rabbit,
    [
      { tcp_listeners, [ 5672 ] },
      { ssl_listeners, [ ] },
      {default_user, <<"username">>},
      {default_pass, <<"pwd123">>},
       {auth_mechanisms,['EXTERNAL']},
      {loopback_users, []}
    ]
  }
].

启动服务
查看环境变量

root@rabbitmq:/# rabbitmqctl environment
Application environment of node rabbit@rabbitmq ...
[{amqp_client,[{prefer_ipv6,false},{ssl_options,[]}]},
 {inets,[]},
 {kernel,
     [{error_logger,tty},
      {inet_default_connect_options,[{nodelay,true}]},
      {inet_dist_listen_max,25672},
      {inet_dist_listen_min,25672}]},
 {mnesia,[{dir,"/var/lib/rabbitmq/mnesia/rabbit@rabbitmq"}]},
 {mochiweb,[]},
 {os_mon,
     [{start_cpu_sup,false},
      {start_disksup,false},
      {start_memsup,false},
      {start_os_sup,false}]},
 {rabbit,
     [{auth_backends,[rabbit_auth_backend_internal]},
      {auth_mechanisms,['EXTERNAL']},
      {backing_queue_module,rabbit_priority_queue},
      {channel_max,0},
      {cluster_keepalive_interval,10000},
      {cluster_nodes,{[],disc}},

{auth_mechanisms,['EXTERNAL'] 表示使用x509证书对等验证,客户端IP地址范围或类似的带外机制进行身份验证

posted @ 2022-01-24 14:44  小小青年  阅读(124)  评论(0编辑  收藏  举报