用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/akarazhev/crypto-scout-mq --skill container-security命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | container-security |
| description | Container security hardening for RabbitMQ deployment with Podman |
| license | MIT |
| compatibility | opencode |
| metadata | {"container":"podman","security":"hardening","platform":"linux"} |
Provide security hardening guidance for RabbitMQ container deployment using Podman, following production security best practices.
┌─────────────────────────────────────────────────────────┐
│ Host System │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Podman Container │ │
│ │ ┌─────────────────────────────────────────┐ │ │
│ │ │ Non-root User (10001) │ │ │
│ │ │ ┌─────────────────────────────────┐ │ │ │
│ │ │ │ Read-only Root FS │ │ │ │
│ │ │ │ ┌─────────────────────────┐ │ │ │ │
│ │ │ │ │ tmpfs /tmp (rw) │ │ │ │ │
│ │ │ │ └─────────────────────────┘ │ │ │ │
│ │ │ └─────────────────────────────────┘ │ │ │
│ │ └─────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
services:
crypto-scout-mq:
image: rabbitmq:4.1.4-management
security_opt:
- no-new-privileges=true
cap_drop:
- ALL
read_only: true
tmpfs:
- /tmp:rw,size=64m,mode=1777,nodev,nosuid
init: true
pids_limit: 1024
cpus: "1.0"
mem_limit: "256m"
mem_reservation: "128m"
ulimits:
nofile:
soft: 65536
hard: 65536
restart: unless-stopped
stop_signal: SIGTERM
stop_grace_period: 1m
| Option | Value | Purpose |
|---|---|---|
no-new-privileges | true | Prevents privilege escalation |
cap_drop | ALL | Removes all Linux capabilities |
read_only | true | Makes root filesystem read-only |
tmpfs | /tmp | Writable temporary space |
init | true | Uses init system for proper signal handling |
pids_limit | 1024 | Limits process count |
cpus | "1.0" | CPU limit |
mem_limit | "256m" | Hard memory limit |
mem_reservation | "128m" | Soft memory limit |
ulimits.nofile | 65536 | File descriptor limit |
# Only management UI exposed to localhost
ports:
- "127.0.0.1:15672:15672"
# AMQP and Streams use container network only (no host exposure)
networks:
- crypto-scout-bridge
volumes:
- "./data/rabbitmq:/var/lib/rabbitmq" # Data (read-write)
- "./rabbitmq/enabled_plugins:/etc/rabbitmq/enabled_plugins:ro"
- "./rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf:ro"
- "./rabbitmq/definitions.json:/etc/rabbitmq/definitions.json:ro"
# Generate secure cookie
cd crypto-scout-mq
COOKIE=$(openssl rand -base64 48 | tr -dc 'A-Za-z0-9' | head -c 48)
printf "RABBITMQ_ERLANG_COOKIE=%s\n" "$COOKIE" > secret/rabbitmq.env
# Secure permissions
chmod 600 secret/rabbitmq.env
# Verify secret files
ls -la secret/
# Should show: -rw------- (600)
# Verify in .gitignore
grep secret/ .gitignore
# Should show: secret/*.env
# rabbitmq.conf - Management on all interfaces (restricted by container port binding)
management.tcp.ip = 0.0.0.0
management.tcp.port = 15672
The container port binding ensures it's only accessible via localhost:
ports:
- "127.0.0.1:15672:15672" # Localhost only
# Create admin user (do not use default guest)
./script/rmq_user.sh -u admin -p 'strong_random_password' -t administrator -y
# Or manually
rabbitmqctl add_user admin 'strong_random_password'
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
# Delete guest user
rabbitmqctl delete_user guest
# Create service-specific user
./script/rmq_user.sh -u crypto_scout_mq -p 'service_password' -t none -y
# Scan image for vulnerabilities
podman image inspect rabbitmq:4.1.4-management | jq '.[0].Config'
# Check running container security
podman inspect crypto-scout-mq | jq '.[0].HostConfig'
# Verify security options
podman inspect crypto-scout-mq | jq '.[0].HostConfig.SecurityOpt'
podman inspect crypto-scout-mq | jq '.[0].HostConfig.CapDrop'
podman inspect crypto-scout-mq | jq '.[0].HostConfig.ReadonlyRootfs'
# Monitor authentication attempts
podman logs crypto-scout-mq | grep -i "auth\|login"
# Monitor connections
podman logs crypto-scout-mq | grep "accepting connection"
# Check for errors
podman logs crypto-scout-mq | grep -i "error\|warning"
# Check current connections
podman exec crypto-scout-mq rabbitmqctl list_connections peer_host user
# Review recent logins
podman logs crypto-scout-mq | grep -i "auth\|login" | tail -50
# Rotate passwords immediately
./script/rmq_user.sh -u user -p 'new_password' -y
# Stop container immediately
./script/rmq_compose.sh down
# Do not remove - preserve for forensics
# Create new container with rotated secrets
# Review all user connections
Use this skill when: