11 Commits
Author SHA1 Message Date
Steven Foerster 54cdfd03cd .global mounted volume 2021-12-11 16:06:47 -05:00
Steven Foerster 449bd96cc7 .global 2021-12-11 14:37:49 -05:00
Steven Foerster 59ef0671c6 v1 docker tag 2021-12-10 21:32:38 -05:00
Steven Foerster 662cb658b7 v1 tag 2021-12-02 13:35:26 -05:00
Steven Foerster 78b9bf997a initial plugins 2021-12-02 12:13:26 -05:00
Steven Foerster d4c43c527d Merge branch '215-sast' into 'master'
Resolve "Static Code Analysis"

Closes #215

See merge request cyber5k/mistborn!96
2021-11-27 17:21:17 +00:00
Steven Foerster 4418eef8d9 Resolve "Static Code Analysis" 2021-11-27 17:21:17 +00:00
Steven Foerster 0cdce73c04 Merge branch '214-oracle' into 'master'
Resolve "Wireguard NO listen port and "Task dawnshard.tasks.wg_info_task" ERROR"

Closes #187, #213, and #214

See merge request cyber5k/mistborn!95
2021-08-18 15:47:37 +00:00
Steven Foerster c137fdc101 Resolve "Wireguard NO listen port and "Task dawnshard.tasks.wg_info_task" ERROR" 2021-08-18 15:47:37 +00:00
Steven Foerster cd4fdd8e44 Merge branch '208-postgres' into 'master'
postgres version

Closes #208

See merge request cyber5k/mistborn!94
2021-08-06 12:25:13 +00:00
Steven Foerster cb0ff4216a postgres version 2021-08-06 12:25:13 +00:00
78 changed files with 161 additions and 12 deletions
+1
View File
@@ -13,6 +13,7 @@ stages:
include:
- template: Code-Quality.gitlab-ci.yml
- template: Security/SAST.gitlab-ci.yml
docker_build:
stage: test
+3 -2
View File
@@ -15,7 +15,7 @@ The term [Mistborn](http://www.brandonsanderson.com/the-mistborn-saga-the-origin
Mistborn started as a passion project for a husband and father protecting his family. Certain family members insisted on connecting their devices to free public WiFi networks. We needed a way to secure all family devices with a solid VPN (WireGuard). Once we had that we wanted to control DNS to block ads to all devices and block malicious websites across all family devices. Then we wanted chat, file-sharing, and webchat services that we could use for ourselves without entrusting our data to some big tech company. And then... home automation. I know I'll be adding more services so I made that easy to do.
As an [Offensive Security Certified Professional (OSCP)](https://resources.infosecinstitute.com/certification/the-oscp-certification-and-exam/), I designed Mistborn thinking about how it would be attacked by both external and internal threats. In making design trade-off decisions I tend to the paranoid. See [Technical and Security Insights](#technical-and-security-insights).
As a [Certified Information Systems Security Professional (CISSP)](https://www.credly.com/badges/ebcb76f2-1e82-4079-9ea3-b507ffbd1d15/public_url) and an [Offensive Security Certified Professional (OSCP)](https://www.credly.com/badges/b93c44ec-3af5-48e8-9a33-b64365b70c61/public_url), I designed Mistborn thinking about how it would be attacked by both external and internal threats. In making design trade-off decisions I tend to the paranoid. See [Technical and Security Insights](#technical-and-security-insights).
Ideal for teams who:
- hate internet ads
@@ -62,8 +62,9 @@ Within Mistborn is a panel to enable and manage these free extra services (off b
# Quickstart
Tested Operating Systems (in order of thoroughness):
- Ubuntu 20.04 LTS
- Debian 10 (Buster)
- Debian 11 (Bullseye)
- Raspberry Pi OS (formerly Raspbian) Buster
- Formerly tested and may still work: Ubuntu 18.04 LTS, Debian 10 (Buster)
**Note:** Install operating system updates and restart. Raspberry Pi OS particularly needs to be restarted after kernel updates (kernel modules for the currently running kernel may be missing).
+3 -1
View File
@@ -119,7 +119,7 @@ services:
restart: unless-stopped
redis:
image: redis:6.2-alpine
image: redis:5.0
container_name: mistborn_production_redis
restart: unless-stopped
@@ -130,6 +130,7 @@ services:
- /home/mistborn/.ssh:/ssh
- ../mistborn_volumes/base/media:/mistborn-media
- ../mistborn_volumes/base/private_media:/mistborn-private-media
- ./.envs/.production/.global:/.global
env_file:
- ./.envs/.production/.django
- ./.envs/.production/.postgres
@@ -153,6 +154,7 @@ services:
- /home/mistborn/.ssh:/ssh
- ../mistborn_volumes/base/media:/mistborn-media
- ../mistborn_volumes/base/private_media:/mistborn-private-media
- ./.envs/.production/.global:/.global
env_file:
- ./.envs/.production/.django
- ./.envs/.production/.postgres
+1 -1
View File
@@ -1,4 +1,4 @@
FROM postgres:13.3-alpine
FROM postgres:11.3
COPY ./compose/production/postgres/maintenance /usr/local/bin/maintenance
RUN chmod +x /usr/local/bin/maintenance/*
Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

+9
View File
@@ -0,0 +1,9 @@
[DEFAULT]
name = bitwarden
subdomain = bitwarden
desc = Bitwarden is a free and open-source password management service that stores sensitive information such as website credentials in an encrypted vault. The Bitwarden platform offers a variety of client applications including a web interface, desktop applications, browser extensions, mobile apps, and a CLI.
img = img/bitwarden.png
compose = compose/docker-compose.yml
service = service/plugin.service
environment = environment/environment.sh
+8
View File
@@ -0,0 +1,8 @@
[DEFAULT]
name = elasticsearch
subdomain = elasticsearch
compose = compose/docker-compose.yml
service = service/plugin.service
environment = environment/environment.sh
resources = resources
Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

+10
View File
@@ -0,0 +1,10 @@
[DEFAULT]
name = guacamole
subdomain = guacamole
desc = Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.
img = img/guacamole.png
compose = compose/docker-compose.yml
service = service/plugin.service
environment = environment/environment.sh
resources = resources
Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

+9
View File
@@ -0,0 +1,9 @@
[DEFAULT]
name = homeassistant
subdomain = homeassistant
desc = Home Assistant is an Open source home automation software that puts local control and privacy first.
img = img/homeassistant.png
compose = compose/docker-compose.yml
service = service/plugin.service
resources = resources
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

+8
View File
@@ -0,0 +1,8 @@
[DEFAULT]
name = jellyfin
subdomain = jellyfin
desc = The Free Software Media System. Jellyfin is the volunteer-built media solution that puts you in control of your media. Stream to any device from your own server, with no strings attached.
img = img/jellyfin.png
compose = compose/docker-compose.yml
service = service/plugin.service
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

+10
View File
@@ -0,0 +1,10 @@
[DEFAULT]
name = jitsi
subdomain = jitsi
desc = Jitsi is a collection of free and open-source multiplatform voice, videoconferencing and instant messaging applications for the web platform, Windows, Linux, Mac OS X and Android.
img = img/jitsi.png
compose = compose/docker-compose.yml
service = service/plugin.service
environment = environment/environment.sh
resources = resources
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

+9
View File
@@ -0,0 +1,9 @@
[DEFAULT]
name = nextcloud
subdomain = nextcloud
desc = Nextcloud is a suite of client-server software for creating and using file hosting services. Nextcloud application functionally is similar to Dropbox.
img = img/nextcloud.png
compose = compose/docker-compose.yml
service = service/plugin.service
environment = environment/environment.sh
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

+9
View File
@@ -0,0 +1,9 @@
[DEFAULT]
name = onlyoffice
subdomain = onlyoffice
desc = An open source office suite featuring online document editors, platform for document management, corporate communication, mail and project management tools.
img = img/onlyoffice.jpg
compose = compose/docker-compose.yml
service = service/plugin.service
environment = environment/environment.sh
Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

+9
View File
@@ -0,0 +1,9 @@
[DEFAULT]
name = raspap
subdomain = raspap
desc = The easiest, full-featured wireless router setup for Debian-based devices. Period. (Mistborn integration in alpha testing)
img = img/raspap.png
compose = compose/docker-compose.yml
service = service/plugin.service
environment = environment/environment.sh
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

+9
View File
@@ -0,0 +1,9 @@
[DEFAULT]
name = rocketchat
subdomain = rocketchat
desc = Rocket.Chat is the leading open source team chat software solution.
img = img/rocketchat.png
compose = compose/docker-compose.yml
service = service/plugin.service
environment = environment/environment.sh
Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

+8
View File
@@ -0,0 +1,8 @@
[DEFAULT]
name = syncthing
subdomain = syncthing
desc = Syncthing is a free, open-source peer-to-peer file synchronization application available for Windows, Mac, Linux, Android, Solaris, Darwin, and BSD. It can sync files between devices on a local network, or between remote devices over the Internet. Data security and data safety are built into the design of the software.
img = img/syncthing.png
compose = compose/docker-compose.yml
service = service/plugin.service
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

+8
View File
@@ -0,0 +1,8 @@
[DEFAULT]
name = tor
subdomain = tor
desc = Tor is free and open-source software for enabling anonymous communication.
img = img/tor.png
compose = compose/docker-compose.yml
service = service/plugin.service
+8
View File
@@ -0,0 +1,8 @@
[DEFAULT]
name = wazuh
subdomain = wazuh
compose = compose/docker-compose.yml
service = service/plugin.service
environment = environment/environment.sh
resources = resources
+3 -3
View File
@@ -28,9 +28,9 @@ echo "MISTBORN_BIND_IP=10.2.3.1" | sudo tee -a ${VAR_FILE}
# MISTBORN_TAG
GIT_BRANCH=$(git -C /opt/mistborn symbolic-ref --short HEAD || echo "master")
MISTBORN_TAG="latest"
if [ "$GIT_BRANCH" != "master" ]; then
GIT_BRANCH=$(git -C /opt/mistborn symbolic-ref --short HEAD || echo "v1-1")
MISTBORN_TAG="v1"
if [ "$GIT_BRANCH" != "v1-1" ]; then
MISTBORN_TAG="test"
fi
+30 -4
View File
@@ -105,13 +105,39 @@ source ./scripts/subinstallers/platform.sh
# iptables
echo "Setting up firewall (iptables)"
if [ ! -f "/etc/iptables/rules.v4" ]; then
echo "Setting iptables rules..."
./scripts/subinstallers/iptables.sh
if [ -f "/etc/iptables/rules.v4" ]; then
echo "Caution: iptables rules exist."
read -p "Would you like to Clear (C) existing iptables rules or Add (A) to existing rules (this may cause problems)? [c/a] " MISTBORN_IPTABLES_ACTION
echo
if [[ "${MISTBORN_IPTABLES_ACTION}" =~ ^([cC])$ ]]; then
# clear
echo "Clearing existing iptables rules..."
sudo rm -rf /etc/iptables/rules.v4
sudo iptables -F
sudo iptables -t nat -F
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo rm -rf /etc/iptables/rules.v6 || true
sudo ip6tables -F || true
sudo ip6tables -t nat -F || true
sudo ip6tables -P INPUT ACCEPT || true
sudo ip6tables -P FORWARD ACCEPT || true
elif [[ "${MISTBORN_IPTABLES_ACTION}" =~ ^([aA])$ ]]; then
# do nothing
echo "Proceeding..."
else
echo "iptables rules exist. Leaving alone."
echo "Unrecognized action: stopping"
exit 1;
fi
fi
echo "Setting iptables rules..."
source ./scripts/subinstallers/iptables.sh
# SSH Server
sudo -E apt-get install -y openssh-server
+5
View File
@@ -43,3 +43,8 @@ WEBPASSWORD="$1"
echo "TZ=\"America/New York\"" > $PIHOLE_PROD_FILE
echo "WEBPASSWORD=$WEBPASSWORD" >> $PIHOLE_PROD_FILE
chmod 600 $PIHOLE_PROD_FILE
GLOBAL_SERVICES_FILE="./.envs/.production/.global"
echo "[DEFAULT]" > $GLOBAL_SERVICES_FILE
chmod 600 $GLOBAL_SERVICES_FILE