Aufgabe #1988
offenAufgabe #1948: evakuierung aller möglicher daten vom havarierten system srs1337
Neues hosting von Plone
100%
Beschreibung
Als der zpool in srs1337 kaputt gegangen ist haben wir einen Desktop PC mit zwei gemirrorten SSDs und FreeBSD 14 als Ersatzsystem installiert. Auf dem Bachup Server hatten wir ein recht aktuelles Backup liegen, welches mit zfs send / receive importiert wurde.
Dateien
Von GoeranHeinemann vor 3 Monaten aktualisiert
- Datei Untitled Diagram.drawio Untitled Diagram.drawio wurde hinzugefügt
In dem diagramm sind zwei virtuelle bridges zu sehen, an die die jails mit epairs gebunden werden. Das Jail für Plone kann dadurch nur durch nginx erreicht werden.
Von GoeranHeinemann vor 3 Monaten aktualisiert
- Datei Screenshot from 2024-09-06 16-42-53.png Screenshot from 2024-09-06 16-42-53.png wurde hinzugefügt
Von GoeranHeinemann vor 3 Monaten aktualisiert
Wir haben den Freebsd Host wie folgt in /etc/rc.confkonfiguriert:
clear_tmp_enable="YES"
syslogd_flags="-ss"
keymap="de.kbd"
sshd_enable="YES"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
powerd_enable="YES"
moused_nondefault_enable="NO"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="AUTO"
zfs_enable="YES"
auditd_enable="YES"
gateway_enable="NO"
hostname="freebsd-test"
defaultrouter="141.56.51.254"
cloned_interfaces="bridge0 bridge1"
ifconfig_bridge0="inet 141.56.51.1/24 addm vtnet0 up name extern"
ifconfig_bridge1="up name intern"
ifconfig_vtnet0="up"
jail_enable="YES"
Dazu sind folgende Jails konfiguriert:
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown jail";
exec.clean;
mount.devfs;
path = "/jails/$name";
allow.raw_sockets;
vnet;
host.hostname = "$name";
proxy {
$id = 1;
vnet.interface = "epair${id}b";
vnet.interface += "epair${id}1b";
exec.prestart = "ifconfig epair${id} create up";
exec.prestart += "ifconfig epair${id}1 create up";
exec.prestart += "ifconfig epair${id}a up descr jail:${name}";
exec.prestart += "ifconfig epair${id}1a up descr jail:${name}";
exec.prestart += "ifconfig extern addm epair${id}a up";
exec.prestart += "ifconfig intern addm epair${id}1a up";
exec.start += "ifconfig epair${id}b 10.1.1.90/24 up";
#exec.start += "ifconfig epair${id}b 141.56.51.5/24 up";
exec.start += "ifconfig epair${id}1b 10.0.0.1/24 up";
exec.start += "route add default 10.1.1.1";
#exec.start += "route add default 141.56.51.254";
exec.poststop = "ifconfig extern deletem epair${id}a";
exec.poststop = "ifconfig intern deletem epair${id}1a";
exec.poststop += "ifconfig epair${id}a destroy";
exec.poststop += "ifconfig epair${id}1a destroy";
}
website {
$id = 2;
vnet.interface = "epair${id}b";
exec.prestart = "ifconfig epair${id} create up";
exec.prestart += "ifconfig epair${id}a up descr jail:${name}";
exec.prestart += "ifconfig intern addm epair${id}a up";
exec.start += "ifconfig epair${id}b 10.0.0.2/24 up";
#exec.start += "route add default 141.56.51.254";
exec.poststop = "ifconfig intern deletem epair${id}a";
exec.poststop += "ifconfig epair${id}a destroy";
}
Das Jail Proxy hat zwei interfaces, eines zu der internen und eins zu der externen Bridge. Nginx soll extern allen traffic entgegen nehmen, SSL-Zertifikate verwalten und allen Traffic zu der internen ip von Plone weiterleiten.
Danach müssen noch alle notwendigens zfs datasets erstellt werden:
zfs create zroot/jails
zfs create zroot/jails/proxy
bsdinstall jail /jails/proxy
pkg -c /jails/proxy install nginx py311-certbot py311-certbot-nginx
Von GoeranHeinemann vor 3 Monaten aktualisiert
in der nginx config vom Proxy Server muss zuerst noch folgendes angepasst werden für die weiterleitung:
location / {
# root /usr/local/www/nginx;
# index index.html index.htm;
proxy_pass http://10.0.0.2/;
}
Von GoeranHeinemann vor 3 Monaten aktualisiert
mit dem Folgenden Command kann letsencrypt eingerichtet werden, es sollte eine IP mit DNS eintrag verwendet werden.
certbot install --nginx
Von GoeranHeinemann vor 2 Monaten aktualisiert
nachdem all die schritte erfolgreich waren muss noch der alte container deaktiviert werden, dazu erst stoppen und dann autostart deaktivieren, da sonst IP-Konflikte auftreten. Außerdem habe ich den Container aus dem HA entfernt
Von GoeranHeinemann vor 2 Monaten aktualisiert
- Status wurde von Neu zu Erledigt geändert
- Geschätzter Aufwand wurde auf 10:00 h gesetzt
Von PaulRiegel vor 2 Monaten aktualisiert
- Status wurde von Erledigt zu Feedback geändert
- Zugewiesen an wurde auf PaulRiegel gesetzt
- Priorität wurde von Normal zu Hoch geändert
Von GoeranHeinemann vor etwa 1 Monat aktualisiert · Edited
am 21.10. ist uns aufgefallen, dass die website keine mails mehr versendet.
nach dem oben beschriebenen aufbau konnte das ohne nat und route ins internet konnte das auch nicht gehen
als test habe ich in dem proxy jail nat mit der pf firewall aktiviert, aber die alte routing implementation in dem 9.3 jail kann nich mit dem kernel reden.
deshalb hat das jail jetzt nicht mehr die interne adresse, sondern wieder die 141.56.51.5.
in der pf firewall auf dem host ist aber aller traffic zu dieser ip untersagt, außer von der 141.56.51.1 (proxy), die website kann dadurch aber die 141.56.51.14 zum senden von mails wieder erreichen.
jail config für die website:
website {
$id = 2;
vnet.interface = "epair${id}b";
exec.prestart = "ifconfig epair${id} create up";
exec.prestart += "ifconfig epair${id}a up descr jail:${name}";
exec.prestart += "ifconfig extern addm epair${id}a up";
exec.start += "ifconfig epair${id}b 141.56.51.5/24 up";
exec.poststop = "ifconfig extern deletem epair${id}a";
exec.poststop += "ifconfig epair${id}a destroy";
allow.raw_sockets;
vnet;
}
in der jail config hat sich nur der bridge name geändert und die ip
# Define interfaces
# ext_if = "em0"
# int_if = "em1"
# bridge_if = "bridge0"
ext = "extern"
hosting = "intern"
testing = "testing"
set skip on epair*
set skip on lo*
# NAT rule
#nat on $ext from $testing:network to any -> ($ext)
nat on $ext from 10.0.1.0/24 to any -> 141.56.51.122
# Allow all traffic on the bridge
pass quick on extern from 141.56.51.1 to 141.56.51.5
block quick on extern to 141.56.51.5
pass quick on re0 all
pass quick on extern all
pass quick on intern all
pass quick on testing all
# Default deny
block all
# Allow outbound traffic
pass out on $ext all
# Allow established connections
pass in on $ext keep state
die firewall regeln mit expliziten 141... adressen sind hier neu, damit keiner auf die 141.56.51.5 kommt, außer der proxy
in dem proxy musste nur in /usr/local/etc/nginx/nginx.conf die redirect ip wieder auf die 141.56.51.5 geändert werden, sonst bleibt alles gleich