server/fickit-backend.yml

376 lines
12 KiB
YAML

kernel:
image: nemunaire/kernel:4.9.210-edfde5a675ea193ae1cadf790b69d67ca1f520c2-dirty-amd64
cmdline: "console=ttyS0 console=tty0"
init:
- linuxkit/init:1d8e0532ca588c5ad0d9ca6038349a70bb7ac626
- linuxkit/runc:c1f0db27e71d948f3134b31ce76276f843849b0a
- linuxkit/containerd:751de142273e1b5d2d247d2832d654ab92e907bc
- linuxkit/ca-certificates:v0.7
- linuxkit/getty:v0.7
- nemunaire/mdadm:18de5ca414227f38a5c0619662077ba5fa26176d
onboot:
# - name: mod
# image: linuxkit/modprobe:v0.7
# command: ["/bin/sh", "-c", "modprobe e1000e"]
- name: sysctl
image: linuxkit/sysctl:v0.7
binds:
- /etc/sysctl.d/01-fic.conf:/etc/sysctl.d/01-fic.conf:ro
# Filesystem
- name: swap
image: linuxkit/swap:v0.7
command: ["/sbin/swapon", "/dev/sda2", "/dev/sdb2"]
- name: mount
image: linuxkit/mount:v0.7
command: ["/usr/bin/mountie", "-device", "/dev/md0", "/var/lib/fic" ]
# Network
# - name: dhcpcd
# image: linuxkit/dhcpcd:v0.7
# command: ["/sbin/dhcpcd", "--nobackground", "-f", "/dhcpcd.conf", "-1"]
# - name: ntp
# image: linuxkit/openntpd:536e5947607c9e6a6771957c2ff817230cba0d3c
- name: synchro-ip-setup
image: linuxkit/ip:v0.7
command: ["/bin/sh", "-c", "ip a add 10.10.10.1/29 dev eth0; ip link set eth0 up;" ]
net: new
runtime:
interfaces:
- name: eth0
bindNS:
net: /run/netns/synchro
- name: admin-ip-setup
image: linuxkit/ip:v0.7
command: ["/bin/sh", "-c", "ip a add 192.168.23.1/24 dev eth1; ip link set eth1 up; ip a add 172.17.0.2/24 dev vethin-admin; ip link set vethin-admin up;" ]
net: new
runtime:
interfaces:
- name: eth1
- name: vethin-admin
add: veth
peer: veth-admin
bindNS:
net: /run/netns/fic-admin
- name: backend-ip-setup
image: linuxkit/ip:v0.7
command: ["/bin/sh", "-c", "ip a add 172.17.0.3/24 dev vethin-backend; ip link set vethin-backend up;" ]
net: new
runtime:
interfaces:
- name: vethin-backend
add: veth
peer: veth-backend
bindNS:
net: /run/netns/fic-backend
- name: mysql-ip-setup
image: linuxkit/ip:v0.7
command: ["/bin/sh", "-c", "ip a add 172.17.0.4/24 dev vethin-db; ip link set vethin-db up;" ]
net: new
runtime:
interfaces:
- name: vethin-db
add: veth
peer: veth-db
bindNS:
net: /run/netns/db
- name: bridge-setup
image: linuxkit/ip:v0.7
command: ["/bin/sh", "-c", "ip a add 172.17.0.1/24 dev br0; ip link set veth-admin master br0; ip link set veth-backend master br0; ip link set veth-db master br0; ip link set br0 up; ip link set veth-admin up; ip link set veth-backend up; ip link set veth-db up;" ]
runtime:
interfaces:
- name: br0
add: bridge
- name: firewall-synchro
image: linuxkit/ip:v0.7
command: ["/bin/bash", "-c", "/sbin/iptables-restore < /etc/iptables/rules-synchro.v4; /sbin/ip6tables-restore < /etc/iptables/rules.v6" ]
binds:
- /etc/iptables/rules-synchro.v4:/etc/iptables/rules-synchro.v4:ro
- /etc/iptables/rules.v6:/etc/iptables/rules.v6:ro
net: /run/netns/synchro
runtime:
mkdir:
- /var/lib/fic/teams
- name: firewall-admin
image: linuxkit/ip:v0.7
command: ["/bin/bash", "-c", "/sbin/iptables-restore < /etc/iptables/rules-admin.v4; /sbin/ip6tables-restore < /etc/iptables/rules.v6" ]
binds:
- /etc/iptables/rules-admin.v4:/etc/iptables/rules-admin.v4:ro
- /etc/iptables/rules.v6:/etc/iptables/rules.v6:ro
net: /run/netns/fic-admin
services:
# - name: getty
# image: linuxkit/getty:v0.7
# env:
# - INSECURE=true
- name: rngd
image: linuxkit/rngd:v0.7
- name: db
image: mariadb:latest
command: ["/bin/bash", "/usr/local/bin/docker-entrypoint.sh", "mysqld"]
capabilities:
- CAP_CHOWN
- CAP_SETUID
- CAP_SETGID
- CAP_DAC_OVERRIDE
env:
- MYSQL_DATABASE=fic
- MYSQL_USER=fic
- MYSQL_PASSWORD=fic
- MYSQL_RANDOM_ROOT_PASSWORD=yes
binds:
- /etc/hosts:/etc/hosts:ro
- /etc/mysql/conf.d:/etc/mysql/conf.d:ro
- /var/lib/fic/mysql:/var/lib/mysql
net: /run/netns/db
pid: new
ipc: new
uts: new
runtime:
mkdir:
- /var/lib/fic/mysql
- name: db-backup
image: nemunaire/mariadb-client:8778512e5dc774e6eb71f566e16a755ddf59bcd8
command: ["/bin/sh", "/root/mysql_backup.sh"]
env:
- MYSQL_HOST=db
- MYSQL_DATABASE=fic
- MYSQL_USER=fic
- MYSQL_PASSWORD=fic
binds:
- /etc/hosts:/etc/hosts:ro
- /root/mysql_backup.sh:/root/mysql_backup.sh:ro
- /var/lib/fic/backups/:/var/lib/fic/backups/
net: /run/netns/db
runtime:
mkdir:
- /var/lib/fic/backups
- name: fic-admin
image: nemunaire/fic-admin:latest
command: ["/srv/admin", "-bind=:8081", "-baseurl=/admin/", "-localimport=/mnt/fic", "-timestampCheck=/srv/submissions"]
env:
- MYSQL_HOST=db
- FICCA_PASS=jee8AhloAith1aesCeQu5ahgIegaeM4K
binds:
- /etc/hosts:/etc/hosts:ro
- /var/lib/fic/raw_files:/mnt/fic
- /var/lib/fic/dashboard:/srv/DASHBOARD
- /var/lib/fic/files:/srv/FILES
- /var/lib/fic/pki:/srv/PKI
- /var/lib/fic/teams:/srv/TEAMS
- /var/lib/fic/settings:/srv/SETTINGS
- /var/lib/fic/submissions:/srv/submissions:ro
net: /run/netns/fic-admin
pid: new
ipc: new
uts: new
runtime:
mkdir:
- /var/lib/fic/dashboard
- /var/lib/fic/files
- /var/lib/fic/raw_files
- /var/lib/fic/pki
- /var/lib/fic/settings
- /var/lib/fic/teams
- name: fic-backend
image: nemunaire/fic-backend:latest
env:
- MYSQL_HOST=db
binds:
- /etc/hosts:/etc/hosts:ro
- /var/lib/fic/teams:/srv/TEAMS
- /var/lib/fic/settings:/srv/SETTINGS:ro
- /var/lib/fic/submissions:/srv/submissions
net: /run/netns/fic-backend
pid: new
ipc: new
uts: new
runtime:
mkdir:
- /var/lib/fic/settings
- /var/lib/fic/submissions
- /var/lib/fic/teams
- name: fic-dashboard
image: nemunaire/fic-dashboard:latest
binds:
- /etc/hosts:/etc/hosts:ro
- /var/lib/fic/dashboard:/srv/DASHBOARD
- /var/lib/fic/files:/srv/FILES:ro
- /var/lib/fic/teams:/srv/TEAMS:ro
- /var/lib/fic/settings:/srv/SETTINGS:ro
net: /run/netns/fic-admin
pid: new
ipc: new
uts: new
runtime:
mkdir:
- /var/lib/fic/dashboard
- /var/lib/fic/teams
- /var/lib/fic/settings
- name: fic-synchro
image: nemunaire/rsync:cabe4226e500c3bbfb1500635c9faedc086add74
command: ["/bin/ash", "/root/synchro.sh"]
binds:
- /etc/hosts:/etc/hosts:ro
- /var/lib/fic/ssh:/etc/ssh:ro
- /root/.ssh/id_ed25519:/root/.ssh/id_ed25519:ro
- /root/synchro.sh:/root/synchro.sh:ro
- /var/lib/fic/files:/srv/FILES:ro
#- /var/lib/fic/pki/ca.key:/srv/PKI/ca.key:ro
- /var/lib/fic/pki/shared:/srv/PKI/shared:ro
- /var/lib/fic/settings:/srv/SETTINGS:ro
- /var/lib/fic/submissions:/srv/submissions
- /var/lib/fic/teams:/srv/TEAMS:ro
- /var/log/frontend:/var/log/frontend
net: /run/netns/synchro
runtime:
mkdir:
- /var/lib/fic/files
- /var/lib/fic/pki/shared
- /var/lib/fic/settings
- /var/lib/fic/ssh
- /var/lib/fic/submissions
- /var/lib/fic/teams
- /var/log/frontend
- name: sshd
image: nemunaire/rsync:ca312b09a5048c165cf727660b7755f001d17650
binds:
- /etc/hosts:/etc/hosts:ro
- /root/.ssh/:/root/.ssh/:ro
- /usr/bin/iptables:/usr/bin/iptables:ro
- /usr/bin/mysql:/usr/bin/mysql:ro
- /usr/bin/pnsenter:/usr/bin/pnsenter:ro
- /var/lib/fic/outofsync:/var/lib/fic/outofsync
- /var/lib/fic/raw_files:/mnt/fic
- /var/log:/var/log:ro
capabilities:
- all
net: /run/netns/fic-admin
pid: host
runtime:
mkdir:
- /var/lib/fic/outofsync
- name: dhcp-server
image: joebiellik/dhcpd
binds:
- /etc/dhcp/dhcpd.conf:/etc/dhcp/dhcpd.conf:ro
capabilities:
- CAP_NET_BIND_SERVICE
- CAP_NET_RAW
- CAP_DAC_OVERRIDE
net: /run/netns/fic-admin
pid: new
ipc: new
uts: new
files:
- path: etc/sysctl.d/01-fic.conf
source: configs/sysctl-backend.conf
mode: "0444"
- path: root/synchro.sh
source: configs/synchro.sh
mode: "0755"
- path: root/mysql_backup.sh
source: configs/mysql_backup.sh
mode: "0755"
- path: etc/hosts
source: configs/hosts
mode: "0644"
- path: root/.ssh/authorized_keys
source: configs/authorized_keys
mode: "0400"
- path: root/.ssh/id_ed25519
source: configs/id_ed25519
mode: "0400"
- path: usr/bin/iptables
source: configs/nsenter_iptables.sh
mode: "0755"
- path: usr/bin/mysql
source: configs/nsenter_mysql.sh
mode: "0755"
- path: usr/bin/pnsenter
source: configs/nsenter_process.sh
mode: "0755"
- path: etc/mysql/conf.d/max-conn.cnf
contents: |
[mysqld]
max_connections = 99999
mode: "0444"
- path: etc/dhcp/dhcpd.conf
contents: |
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.23.255;
subnet 192.168.23.0 netmask 255.255.255.0 {
range 192.168.23.10 192.168.23.250;
}
mode: "0440"
- path: etc/iptables/rules.v6
contents: |
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
COMMIT
mode: "0440"
- path: etc/iptables/rules-admin.v4
contents: |
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
[0:0] -A INPUT -i lo -j ACCEPT
[0:0] -A INPUT -m conntrack --ctstate INVALID -j DROP
[0:0] -A INPUT -p icmp -j ACCEPT
[0:0] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A INPUT -i eth1 -s 192.168.23.0/24 -p tcp -m conntrack --ctstate NEW -m tcp --dport ssh -j ACCEPT
[0:0] -A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 8081 -j ACCEPT
[0:0] -A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 8082 -j ACCEPT
[0:0] -A INPUT -i vethin-admin -s 172.17.0.0/24 -p tcp -m conntrack --ctstate NEW -j ACCEPT
[0:0] -A INPUT -j LOG
[0:0] -A FORWARD -j LOG
[0:0] -A OUTPUT -o lo -j ACCEPT
[0:0] -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A OUTPUT -p icmp -j ACCEPT
[0:0] -A OUTPUT -o vethin-admin -d 172.17.0.0/24 -p tcp -m conntrack --ctstate NEW -j ACCEPT
[0:0] -A OUTPUT -j LOG
[0:0] -A OUTPUT -j REJECT
COMMIT
mode: "0440"
- path: etc/iptables/rules-synchro.v4
contents: |
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
[0:0] -A INPUT -i lo -j ACCEPT
[0:0] -A INPUT -m conntrack --ctstate INVALID -j DROP
[0:0] -A INPUT -p icmp --icmp-type 8 -j ACCEPT
[0:0] -A INPUT -p icmp --icmp-type 0 -j ACCEPT
[0:0] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A INPUT -j LOG
[0:0] -A FORWARD -j LOG
[0:0] -A OUTPUT -o lo -j ACCEPT
[0:0] -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT
[0:0] -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
[0:0] -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A OUTPUT -o eth0 -d 10.10.10.2 -p tcp -m conntrack --ctstate NEW -m tcp --dport ssh -j ACCEPT
[0:0] -A OUTPUT -j LOG
[0:0] -A OUTPUT -j REJECT
COMMIT
mode: "0440"
trust:
org:
- linuxkit
- library