S3 mit Hetzner StorageBox

Hi, ich bin gerade dabei mein Offsite backup vom S3 Storage Hoster Wasabi zu eine Hetzner StorageBox umzuziehen.

S3 mit Hetzner StorageBox

Hetzner StorageBox mit S3 bereitstellen

Hi, ich bin gerade dabei mein Offsite backup vom S3 Storage Hoster Wasabi zu eine Hetzner StorageBox umzuziehen.

Leider bietet mir Hetzner kein S3 Protokoll an um die StorageBox anzusteuern, ich kann meine Backups auch via rsync auf die StorageBox sichern jedoch wollte ich ausprobieren ob das nicht auch mit S3 moeglich waere.

Nun ich bin auf MinIO gestossen, eine Open Source Implementierung des S3 Storage Protokolls.

Da ich bereits einen Hetzner vServer habe als Ingress Point zu meinen Diensten habe ich mir gedacht, koennte ich doch solch einen nehmen um meine StorageBox via S3 zugaenglich zu machen.

Storagebox einbinden

Zu aller erst habe ich in der StorageBox SAMBA aktiviert und externen Zugriff deaktiviert, damit ich mir um die SMB Credentials uebers Internet nicht soviel sorgen machen muss.

Nun auf dem vServer habe ich dann die cifs-utils installiert und dann den cifs mount in der fstab eingetragen und die StorageBox zu eingebunden.//u294301.your-storagebox.de/backup /mnt/u294301 cifs defaults,auto,uid=1000,gid=1000,user=u294301,password=***********

MinIO konfigurieren

MinIO verwendet fuer seinen standard dienst den user minio-user welcher noch angelegt werden muss, da es sich bei mir um einen blanken rockylinux server handelt, denn ich bei bedarf direkt mit root verwalte habe ich so auch keinen anderen user gehabt, weshalb bei mir dieser die id 1000 erhalten hat, welche ich auch angegeben habe beim mount.

um MinIO nun zu installieren erstelle ich zuerst den user mit:$ adduser minio-user

dann holfe ich mir den aktuellen RPM installationsbefehl von der minio download page: https://min.io/download#/linux und waehle RPM aus$ dnf install https://dl.min.io/server/minio/release/linux-amd64/minio-20220308222851.0.0.x86_64.rpm

Dies hier oben ist die aktuelle Version von Heute. Nachdem die installation durch ist muss man noch die minio config erstellen, unter /etc/default/minio/etc/default/minio:
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=**************
MINIO_VOLUMES="/mnt/u294301"
MINIO_OPTS="--console-address :9001"

Damit wird der admin account angelegt, das volume definiert und die Console eingeschaltet, um den S3 Dienst zu verwalten.

In diesem Fall ist aber noch kein SSL eingerichtet, wenn man jetzt mit$ systemctl enable --now minio

den Dienst starten wuerde.

SSL einrichten

Folgende einstellung ist noch in der config file notwendig:MINIO_SERVER_URL="https://s3.storagebox.mydomain.de"

Nun muessen wir auch dieses SSL Zertifikat erstellen, dafuer gibt es auch eine anleitung fuer LetsEncrypt: https://docs.min.io/docs/generate-let-s-encypt-certificate-using-concert-for-minio.html

In meinem fall werde ich dies manuell mit certbot machen. Der Ordner wurde dafür bereits von MinIO angelegt. Dieser ist unter /home/minio-user/.minio/certs zu finden.

Zum anlegen des LetsEncrypt certificates ist folgendes notwendig einzugeben:$ certbot certonly --standalone -d s3.storagebox.mydomain.de --stable-oscp -m hostmaster@mydomain.de --agree-tos

Nun nachdem die Erstellung erfolgreich war kann ich nun das zertifikat an den richtigen Ort kopieren

$ cp /etc/letsencrypt/live/s3.storagebox.mydomain.de/fullchain.pem /home/minio-user/.minio/certs/public.crt 
$ cp /etc/letsencrypt/live/s3.storagebox.mydomain.de/privkey.pem /home/minio-user/.minio/certs/private.key 
$ sudo chown minio-user:minio-user /home/minio-user/.minio/certs/private.key 
$ sudo chown mini-user:mino-user /home/minio-user/.minio/certs/public.crt

Hier ist es wichtig dann auch den certbot-autorenew zu aktivieren und die kommandos von oben in ein post-hook script zu speichern damit bei jeder erneuerung auch minio die zertifikate am richtigen ordner hat.

Region konfigurieren

Man hat auch noch die Moeglichkeit die Region zu konfigurieren mitMINIO_SITE_NAME="fsn1-dc14"
MINIO_SITE_REGION="eu-central"


GANZ WICHTIG!!!: bitte stelle den root account von der Console auf ein sehr sicheres passwort was auch mehrmals rotiert werden sollte. oder im privaten gebrauch blockiere per firewall den Zugang auf die Konsole wenn sie nicht gerade benoetigt wird.