知方号

知方号

在阿里云CentOS上搭建W12Scan:一款网络安全资产扫描引擎(更新日期2023年4月22日)<网络资产搜索引擎搭建>

在阿里云CentOS上搭建W12Scan:一款网络安全资产扫描引擎(更新日期2023年4月22日)

一、W12Scan简介

    W12Scan是一款网络安全资产扫描引擎。

Github地址:https://github.com/w-digital-scanner/w12scan

二、准备工作:阿里云CentOS

1、去阿里云购买一台服务器,1核2G就够了。

2、在服务器上新建实例,选择创建CentOS 8.1操作系统(推荐在阿里云上使用CentOS 8.1,搭建起来最方便。我试过在阿里云上使用CentOS 7,以及在本地创建的虚拟机上用CentOS 8.1,都遇到了一些奇奇怪怪的问题,会走许多弯路,有兴趣请见文章的“其他环境搭建的时候遇到的问题”)。创建CentOS的时候,可以设置root账号的密码,建好后也可以重置密码,这些操作阿里云都有,不是什么疑难杂症,这里不详细说明了。

3、远程连接到CentOS服务器。阿里云提供远程连接的功能。也可以使用其他工具,比如在VSCode的终端,输入ssh root@xx.xx.xx.xx(阿里云服务器的公网IP地址),回车后输入root账号的密码就能远程连接了。

三、安装Docker

    总体原则有三点:一是期间要选择确认,输入 y 即可;二是遇到中断报错啥的,重新执行命令;三是多次执行都不行,就百度。

以下安装步骤亲自实测有效并总结:

1、查看内核版本,CentOS7、8都符合,不查看也没事: uname -a

2、把yum包更新到最新: yum update

3、按顺序照着做: yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4、这一步中的containerd.io-1.2.13-3.1.el7.x86_64.rpm以后如果版本有更新,修改以下即可。现在可以直接用: dnf install https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm

5、安装docker-ce,它会自己安装需要的依赖: dnf install docker-ce

6、启用: systemctl start docker  systemctl restart docker #这个是重启docker的命令,不用执行

7、设置开机启动: systemctl enable  docker

8、以上就安装完成了,下面是确认一下版本 docker version docker --version

9、测试一下是否生效: sudo docker run hello-world

如遇到问题,可以学习参考https://blog.csdn.net/u014069688/article/details/100532774

四、安装docker-compose

1、自动安装docker-compose(推荐自动安装): sudo pip3 --default-timeout=200 install -U docker-compose

2、实在自动安装失败,就手动安装docker-compose: dnf install curl -y curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose

3、查看确认docker-compose版本: docker-compose -version which docker-compose

五、从github下载源代码并搭建W12Scan

1、安装git: yum install -y git

2、下载源代码(在哪个目录,就下载到哪里,我是在root目录): git clone https://github.com/boy-hack/w12scan

3、下载完后进到w12scan目录下面: cd /root/w12scan

4、启用容器搭建,第一次执行这一步要下载很多资源,时间比较久,大概30分钟,根据网络情况来定: docker-compose up -d

Creating w12scan_elasticsearch_1 ... doneCreating w12scan_redis_1 ... doneCreating w12scan_web_1 ... doneCreating w12scan_client_1 ... done

5、查看启用的容器,包含4个容器,检查4个容器的状态十分都是up。如果都是up,那就安装成功: docker-compose ps

6、由于2G内存不够的原因,可能会出现w12scan_elasticsearch_1容器启用失败,状态是Exit 1的情况,那就调整占用的内存: vi docker-compose.yml #编辑docker-compose.yml ,在environment:加上 - ES_JAVA_OPTS=-Xms64M -Xmx256M ,控制占用的内存大小 (按i进入编辑状态,修改完成后,按Esc,再输入“:wq”,按回车退出)

elasticsearch: image: elasticsearch:5.6-alpine environment: 

- ES_JAVA_OPTS=-Xms64M -Xmx256M

- cluster.name=docker-cluster

 - bootstrap.memory_lock=true expose: - "9200"

修改docker-compose.yml完成后,再次执行命令  docker-compose up -d 启用容器: docker-compose up -d

7、以上步骤就全部搭建完成了。如果想关闭w12scan系统,就停止容器: docker-compose stop

六、访问w12scan

1、在浏览器输入http://xx.xx.xx.xx:8000/user/login,就能访问了(xx.xx.xx.xx是阿里云服务器的公网IP地址)。账号密码都是boyhack。

2、如果无法访问,就在远程连接的终端里执行命令curl http://xx.xx.xx.xx:8000/user/login,看能否连接,如果能连接,那就说明系统搭建成功的,但是阿里云没有开启8000端口,导致外网无法访问。此时需要去阿里云配置安全规则。这个百度一大堆。

3、如果配置了阿里云安全规则还是不行,那就关闭防火墙: yum install firewalld #安装一下 yum install firewall-config #安装一下 systemctl start firewalld         # 启动 systemctl enable firewalld        # 开机启动 systemctl stop firewalld          # 关闭 systemctl disable firewalld       # 取消开机启动 #查看防火墙状态,两句命令都可以: service firewalld status systemctl status firewalld #永久关闭防火墙 systemctl disable firewalld

4、如果遇到报错:ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:  (iptables failed: iptables --wait -t nat -I DOCKER -i br-2add1a39bc5d -j RETURN: iptables: No chain/target/match by that name. 原因是关闭防火墙之后docker需要重启,执行以下命令重启docker即可: service docker restart

七、其他环境搭建的时候遇到的问题

1、CentOS 7 下安装需要首先安装pip3,而且即使安装了,还会遇到下面这句在Dockerfile里运行报错pip3 not found,可我明明已经安装了pip3。最后把这句命令从Dockerfile里单独拿出来执行,就可以了。 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple -r /root/w12scan/requirements.txt

2、在本机安装虚拟机,虚拟机上安装CentOS 8,会出现下面的报错,原因大概是虚拟机的网络是和本地主机桥接导致的。我用阿里云上的CentOS8就没用遇到这个问题,所以没有去找最终的解决方法,有找到解决方法的朋友请留言分享给我,谢谢。 这里有官方的讨论https://github.com/gliderlabs/docker-alpine/issues/334 + apk update fetch http://mirrors.ustc.edu.cn/alpine/v3.7/main/x86_64/APKINDEX.tar.gz ERROR: http://mirrors.ustc.edu.cn/alpine/v3.7/main: temporary error (try again later) WARNING: Ignoring APKINDEX.c3d3bf97.tar.gz: No such file or directory

以下方法试了没用 对我来说,这是一个DNS错误。通过设置/etc/docker/daemon.json, {   "dns": ["8.8.8.8"] } 然后重新启动docker

以下方法试了也没用: #vim /etc/default/docker #DOCKER_OPTS="--dns 114.114.114.114" #systemctl restart docker

docker build -t hoge:latest . --network=host

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。