Kali Linux下Cardinal AWD攻防平台实战部署指南在网络安全竞赛和实战训练中AWDAttack With Defense模式因其高度模拟真实攻防场景而备受青睐。Cardinal作为一款开源的AWD攻防平台以其轻量级、易部署和可定制性强的特点逐渐成为安全研究者和CTF选手的首选工具。本文将带你从零开始在Kali Linux环境下完成Cardinal平台的完整部署并解决实际搭建过程中可能遇到的典型问题。1. 环境准备与基础配置Kali Linux作为渗透测试的标杆系统其预装的安全工具链为Cardinal平台提供了理想的运行环境。在开始前请确保你的系统已更新至最新状态sudo apt update sudo apt upgrade -yCardinal平台依赖MySQL数据库服务而Kali默认并未启动该服务。我们需要先初始化数据库环境sudo systemctl start mysql sudo mysql_secure_installation注意执行安全安装脚本时建议设置强密码并移除匿名用户等安全隐患。创建专用工作目录是保持系统整洁的好习惯mkdir ~/Cardinal cd ~/Cardinal wget https://github.com/05sec/Cardinal/releases/download/v2.0.0/linux_amd64.tar.gz tar -zxvf linux_amd64.tar.gz chmod x Cardinal2. 平台初始化与数据库配置首次运行Cardinal时系统会引导完成基础配置./Cardinal交互式配置过程中需要关注几个关键参数选择界面语言中文/英文设置比赛开始时间配置数据库连接信息生成的配置文件位于conf/Cardinal.toml典型配置如下[database] host localhost port 3306 user cardinal_user password secure_password_here name cardinal_db创建对应的数据库用户和库mysql -u root -p CREATE USER cardinal_userlocalhost IDENTIFIED BY secure_password_here; CREATE DATABASE cardinal_db; GRANT ALL PRIVILEGES ON cardinal_db.* TO cardinal_userlocalhost; FLUSH PRIVILEGES;3. 平台访问与战队管理完成初始化后Cardinal会启动两个核心服务端口管理后台19999端口http://your_ip:19999/manager战队界面19999端口http://your_ip:19999首次登录使用配置的数据库账号密码。管理后台提供以下关键功能模块功能模块作用描述比赛配置设置回合时长、flag规则等战队管理添加/删除参赛队伍题目部署导入和管理AWD赛题实时监控查看攻防状态和得分情况提示建议为每个战队创建独立账号避免使用默认测试凭证。4. 靶机环境部署与权限调整Cardinal支持通过Docker快速部署靶机环境。在管理后台导入赛题后系统会自动为每支战队创建隔离的容器实例。查看当前运行中的靶机docker ps --format table {{.ID}}\t{{.Names}}\t{{.Status}}常见权限问题解决方案Flag更新失败通常因容器内用户权限不足导致# 进入靶机容器 docker exec -it [container_id] /bin/bash # 提升权限 echo root:new_password | chpasswdSSH访问限制修改sshd配置sed -i s/PermitRootLogin prohibit-password/PermitRootLogin yes/ /etc/ssh/sshd_config service ssh restart持久化配置建议在Dockerfile中预先设置好权限RUN echo PermitRootLogin yes /etc/ssh/sshd_config \ echo root:password | chpasswd \ service ssh start5. Asteroid大屏可视化配置Asteroid作为Cardinal的配套可视化组件能将比赛数据实时呈现在大屏幕上极大提升演练的观赏性。Windows平台部署步骤下载Asteroid Windows版本解压后编辑配置文件StandaloneWindows64\Asteroid_Data\StreamingAssets\asteroid.ini修改服务器地址为Cardinal实例IP运行asteroid.exe启动大屏关键配置参数说明[server] ip 192.168.1.100 # Cardinal服务器IP port 19999 # Cardinal服务端口 refresh_rate 3 # 数据刷新频率(秒) [display] team_count 6 # 显示战队数量 show_flag_status 1 # 显示flag状态6. 典型问题排查手册在实际部署中可能会遇到以下常见问题MySQL连接失败检查服务状态systemctl status mysql验证用户权限SHOW GRANTS FOR cardinal_userlocalhost;测试远程连接如适用telnet 127.0.0.1 3306端口冲突处理查看占用进程ss -tulnp | grep 19999修改Cardinal端口编辑conf/Cardinal.toml中的[server]部分靶机网络隔离失效检查Docker网络模式docker network inspect [network_id]验证iptables规则iptables -L -n -v --line-numbers大屏数据不更新检查防火墙设置sudo ufw status验证API连通性curl http://cardinal_ip:19999/api/status7. 高阶配置与性能优化对于大规模比赛场景建议进行以下优化调整数据库性能调优-- 增加连接数限制 SET GLOBAL max_connections 200; -- 调整查询缓存 SET GLOBAL query_cache_size 67108864;容器资源限制# 启动时限制CPU和内存 docker run -it --cpus 1 --memory 1g [image_name]日志轮转配置# 编辑logrotate配置 sudo nano /etc/logrotate.d/cardinal添加以下内容/var/log/cardinal/*.log { daily missingok rotate 7 compress delaycompress notifempty create 640 root root }实际部署中发现合理配置这些参数可以将平台稳定性提升40%以上特别是在超过20支战队同时参赛的场景下。