#Time 2021/11/17
因为之后要在校内组织AWD比赛,所以在github上找了一会,试了试最多star的,虽然说好用但是没有好康的界面,全是一堆代码感觉很枯燥,于是最终还是选择了使用Cardinal来搭建。中间有一些坑点都已解决。
选择debain和ubuntu应该都没问题,我选的是debain9.9
首先拿到一台新的机器,基操
sudo apt-get update
sudo apt-get upgrade
其次,因为要用到docker,所以之后我们还要安装docker。
sudo apt-get install docker
sudo apt-get install docker-compose
因为阿里云服务器的debain没有自带mysql,所以还要安装mysql
sudo apt-get install mysql-server
安装的时候,就可以去准备Cardinal了。
去Cardinal-Releases下载linux_amd64的压缩包。
下载完成后,用Xftp等工具(我用的finalshell)上传下载好的压缩包到服务器。然后在当前目录执行命令
tar -zxvf Cardinal_v0.7.3_linux_amd64.tar.gz
给Cardinal权限
chmod +x ./Cardinal
#在此处打个快照
下一步就是mysql
service mysql start
mysql -uroot -p
密码为空,进入之后,以下命令
CREATE DATABASE `cardinal` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
输入show databases;查看是否创建成功
创建成功,输入exit退出数据库
接下来就是运行Cardinal
./Cardinal
根据引导来安装,在选择自行部署前端的时候选择false
结果这里报错了,发现mysql无法启动
本来是以为,因为我root(mysql)当时是空密码登录,然后设置Cardinal的时候不能空密码,随便设置的密码导致无法登录,结果修改了conf/Cardinal.toml里的password还是报这个错误
但是当前root可能还是空密码或者直接跳过了登录,所以还是要去修改一下root(mysql)的密码的
mysql -uroot -p
use mysql;
update user set authentication_string=password("123456") where user="root";
flush privileges;
quit
如果没有warning说明修改成功,然后去修改conf/Cardinal.toml
结果再次输入./Cardinal还是报之前的错。此时在怀疑是否开启了外部链接(感谢V3的提醒),如果没有开启则只能mysql服务器自己登入,而开启了之后才能让其他应用也进行登录。
我百度之后发现大家的配置文件都直接在/etc/mysql/my.conf,而我装的mysql连接地址并不在/etc/mysql/my.conf里。跟进查看了之后发现/etc/mysql/my.cnf下是include了下图的配置文件
而我是在mariabd.conf.d下的50-server.cnf找到了bind-address,将原来的127.0.0.1改成了0.0.0.0,然后再重启mysql服务
service mysqld restart
尝试再次运行./Caradinal发现运行成功
此时访问网站已搭建成功
http://ip:19999 是选手界面
http://ip:19999/manager 是管理员界面
(图中的调试信息是当时已经全部搭建完而产生的,你们搭建完应该只有最下面两行信息)
可在配置管理设置flag格式
接下来就是添加题目,这里我使用的是赵总的靶机环境
首先是在服务器中安装git
sudo apt-get install git
然后git clone
git clone https://github.com/glzjin/20190511_awd_docker.git
mv 20190511_awd_docker web1_1
进入文件夹后,修改docker-compose.yml文件如下图所示(注意version从3改成2),这里就开一道题就好了。
然后运行docker
docker-compose up -d --build
它说要去他那里安装docker,然后我是debain,所以按https://docs.docker.com/engine/install/debian/来装
1.sudo apt-get remove docker docker-engine docker.io containerd runc
2.sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
3.curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4.echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5.sudo apt-get update
6.sudo apt-get install docker-ce docker-ce-cli containerd.io
最后输入docker-compose ps验证是否安装成功
此时再运行docker-compose up -d --build就可以正常启动了
访问web端正常
接下来,获取docker的ssh账户 docker exec -it ??? passwd
用相同的方法去创建其他人的靶场
比如想给team2创建相同环境,只需要如下操作
先mv web1_1 web1_2,修改一下端口映射8802和2202,剩下方法步骤同上。
下一步,在Cardinal上部署靶机
首先创建题目
在靶机管理处添加靶机
这里是manager,所以ssh必须为root权限,否则无法修改flag
添加之后测试ssh链接即可
此时,整个靶场就安装完成了,但是没有精美的大屏显示怎么行,所以这里用我用了Asteroid
下载链接
选择windows64版本,下载下来后找到\Asteroid_Data\StreamingAssets\asteroid.ini
修改成自己的配置,我的配置如下图
保存之后打开exe文件即可(图中比赛未开始,team2未分配)
至此,整个awd搭建完成