以下是Ubuntu RabbitMQ的安全设置方法:
guest
或修改其密码,创建具有强密码的新管理员用户并授予权限。sudo rabbitmqctl delete_user guest # 删除默认用户(可选)
sudo rabbitmqctl add_user admin strongpassword # 添加新用户
sudo rabbitmqctl set_user_tags admin administrator # 授予管理员权限
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" # 配置权限
sudo rabbitmq-plugins enable rabbitmq_management # 启用插件
sudo nano /etc/rabbitmq/rabbitmq.conf # 编辑配置文件
# 添加以下内容(限制管理界面IP)
management.tcp.ip = 192.168.1.100
sudo ufw allow 15672/tcp # 放行管理端口
sudo ufw reload
# 生成自签名证书(示例)
openssl req -x509 -newkey rsa:2048 -keyout rabbitmq.key -out rabbitmq.crt -days 365 -nodes
sudo mkdir -p /etc/rabbitmq/ssl
sudo cp rabbitmq.* /etc/rabbitmq/ssl/
# 编辑配置文件
sudo nano /etc/rabbitmq/rabbitmq.conf
# 添加以下内容
listeners.ssl.default = 5671
ssl_options.cacertfile = /etc/rabbitmq/ssl/rabbitmq.crt
ssl_options.certfile = /etc/rabbitmq/ssl/rabbitmq.crt
ssl_options.keyfile = /etc/rabbitmq/ssl/rabbitmq.key
ssl_options.verify = verify_peer
ssl_options.fail_if_no_peer_cert = true
sudo systemctl restart rabbitmq-server # 重启服务
sudo ufw deny in on eth0 from any to any port 5672 # 拒绝非信任IP访问AMQP端口(示例)
sudo ufw allow 15672/tcp # 允许管理端口(若需远程访问)
sudo ufw reload
sudo apt update && sudo apt upgrade rabbitmq-server erlang # 更新软件包
sudo tail -f /var/log/rabbitmq/rabbit@主机名.log # 查看日志
注:生产环境中建议结合集群部署、虚拟主机隔离及更严格的权限策略,参考官方文档可获取更详细的SSL配置步骤。