Deploying in dev
Ubuntu 18 or 20 users will benefit from make commands available for quickly bootstrapping this deployment.
- Install few dependencies:
sudo apt-get install make curl git -y. - Clone the project:
git clone https://github.com/saferwall/saferwall - Copy the
example.envto.env, this file stores the project configuration.
Deploying in a VM vs on a physical machine
- There are 2 options:
It is recommanded to go with kind if you don't know know which one to choose.
Deploying in Kind or Minikube
- Install
Docker:make docker-install. - Install
Kind:make kind-installor Minikube:make minikube-install - Install
Kubectl:make kubectl-install - Minikube users only:
- A hypervisor like
QEMU/KVMorVirtualboxis required: For KVM/QEMU:make kvm-install, for VirtualBox:make vbox-install. - Edit the
.envto specify which driver to use and number of cpus, ram and disk size:# supported values ['virtualbox', 'kvm2']
export MINIKUBE_DRIVER=virtualbox
export MINIKUBE_CPU=4
export MINIKUBE_MEMORY=8192
export MINIKUBE_DISK_SIZE=40GB
- A hypervisor like
- Optional step: build the paid anti-virus docker images.
- Some AVs are not free and requires a license, you need to supply the licenses keys to be able to build the images. See Building AV Images on how to configure them.
- By default, saferwall will use only the free ones.
- Create kind cluster:
make kind-upor minikube cluster:make minikube-up. - Install Helm:
make helm-install. - Edit the
deployments/saferwall/values.yaml- If you are interested to see the logs in EFK:
- Set
elasticsearch.enabledto true. - Set
kibana.enabledto true. - Set
filebeat.enabledto true.
- Set
- Set
prometheus-operator.enabledto true if you want to get metrics.
- If you are interested to see the logs in EFK:
- Install helm chart:
make helm-release. - Wait until the output of
watch | kubectl get podsshow all pods are running fine. - Edit your host file to setup a dns entry for for the services running inside the cluster:
- Minikube:
echo "$(minikube ip) mysaferwall.com api.mysaferwall.com" | sudo tee -a /etc/hosts - Kind:
echo "127.0.0.1 mysaferwall.com api.mysaferwall.com" | sudo tee -a /etc/hosts
- Minikube:
- Open the browser and naviguate to
mysaferwall.comandapi.mysaferwall.comand add an certificate exception for both domains. - Create a user so you can start scanning files.
Building AV Images
Edit the
.envand fill the secrets according to which AVs you want to have.- Eset: copy the license to
./build/data/ERA-Endpoint.lic, and also inside the.env:export ESET_USER = EAV-KEYHERE
export ESET_PWD = passwordhere - Avast: copy the license to
./build/data/license.avastlic - Kaspersky: copy the license to
./build/data/kaspersky.license.key
- Eset: copy the license to
Run
make multiav-build: this will build and push to docker hub all the AVs.Run
make multiav-build-go: this will take the images created before as a base, and build on top of them a gRPC daemon listening for files to scan.Logs are found elasticsearch:
