Storage Box – SMB Share versleutelen met gocryptfs Met deze configuratie wordt een onversleutelde SMB-share van een Storage Box gebruikt als opslag voor een versleutelde gocryptfs-container. De structuur wordt: Storage Box └── SMB Share └── encrypted/ ← Versleutelde bestanden ├── ... ← Niet rechtstreeks openen/bewerken └── ... /mnt/decrypted/ ← Normale, leesbare bestanden Je werkt dus altijd met: /mnt/decrypted De bestanden die daadwerkelijk op de Storage Box staan, bevinden zich in: /mnt/smb/encrypted en zijn daar versleuteld en onleesbaar zonder de gocryptfs-sleutel. 1. Benodigde pakketten installeren Installeer cifs-utils voor SMB en gocryptfs voor de encryptie: sudo apt update sudo apt install cifs-utils gocryptfs -y 2. Mountpoints aanmaken Maak de directories aan waarop de SMB-share en de gedecrypteerde bestanden worden gemount: sudo mkdir -p /mnt/smb sudo mkdir -p /mnt/decrypted 3. SMB-inloggegevens opslaan Maak een apart bestand voor de inloggegevens van de Storage Box: sudo nano /etc/backup-credentials.txt Zet hierin: username=u474777 password=PASSWORD Vervang PASSWORD uiteraard door het daadwerkelijke wachtwoord. Sla het bestand op: CTRL + X Y Enter Zorg vervolgens dat alleen root het bestand kan lezen: sudo chmod 600 /etc/backup-credentials.txt Belangrijk: dit bestand bevat het wachtwoord van de Storage Box. Deel het niet en zorg dat de permissies 600 blijven. 4. SMB-share automatisch mounten Maak een systemd mount-unit: sudo nano /etc/systemd/system/mnt-smb.mount Plaats hierin: [Unit] Description=Mount SMB share Wants=network-online.target After=network-online.target [Mount] What=//u474777.your-storagebox.de/backup Where=/mnt/smb Type=cifs Options=vers=3.1.1,credentials=/etc/backup-credentials.txt,uid=0,gid=0,file_mode=0755,dir_mode=0755,nofail TimeoutSec=30 [Install] WantedBy=multi-user.target Sla het bestand op: CTRL + X Y Enter systemd opnieuw laden sudo systemctl daemon-reload Zorg dat de netwerk-wachtservice actief is: sudo systemctl enable systemd-networkd-wait-online.service sudo systemctl start systemd-networkd-wait-online.service Activeer vervolgens de SMB-mount: sudo systemctl enable mnt-smb.mount sudo systemctl start mnt-smb.mount Controleer de status: systemctl status mnt-smb.mount Als alles goed staat, moet de SMB-share beschikbaar zijn via: /mnt/smb Je kunt dit eventueel controleren met: ls -la /mnt/smb 5. Versleutelde directory aanmaken Maak binnen de SMB-share een directory voor de versleutelde opslag: sudo mkdir -p /mnt/smb/encrypted Let op: de directory encrypted bevat straks de versleutelde data. Bewerk de bestanden hierin niet rechtstreeks. 6. gocryptfs initialiseren Initialiseer gocryptfs: sudo gocryptfs -init /mnt/smb/encrypted gocryptfs vraagt nu om een wachtwoord. Dit wachtwoord is belangrijk: zonder dit wachtwoord kan de versleutelde data niet worden ontsleuteld. Bewaar het wachtwoord daarom veilig. 7. gocryptfs-wachtwoord opslaan Om de decrypted mount automatisch bij het opstarten te kunnen mounten, slaan we het wachtwoord op in een beveiligd bestand. Maak het bestand: sudo nano /root/.gocryptfs-key Zet daarin het gocryptfs-wachtwoord: gocryptfs-PASSWORD Sla op: CTRL + X Y Enter Beperk de toegang tot het bestand: sudo chmod 600 /root/.gocryptfs-key Belangrijk: dit bestand bevat de sleutel/wachtwoord waarmee de versleutelde Storage Box kan worden geopend. Zorg dat hiervan een veilige back-up bestaat. Als zowel de data als deze sleutel verloren gaan, kan de data niet meer worden geopend. 8. Decrypted mount aanmaken Nu maken we een tweede systemd mount-unit. Deze mount zorgt ervoor dat de versleutelde directory: /mnt/smb/encrypted zichtbaar wordt als normale, leesbare bestanden via: /mnt/decrypted Maak de unit aan: sudo nano /etc/systemd/system/mnt-decrypted.mount Plaats hierin: [Unit] Description=Mount gocryptfs decrypted folder Requires=mnt-smb.mount After=mnt-smb.mount network-online.target local-fs.target [Mount] What=/mnt/smb/encrypted Where=/mnt/decrypted Type=fuse.gocryptfs Options=passfile=/root/.gocryptfs-key,allow_other,nonempty TimeoutSec=30 [Install] WantedBy=multi-user.target Sla op: CTRL + X Y Enter 9. Decrypted mount activeren Laad systemd opnieuw: sudo systemctl daemon-reload Activeer de mount bij het opstarten: sudo systemctl enable mnt-decrypted.mount Start de mount: sudo systemctl start mnt-decrypted.mount Controleer de status: systemctl status mnt-decrypted.mount Als alles goed werkt, zijn de bestanden beschikbaar via: /mnt/decrypted 10. Controleren of alles werkt Controleer eerst de SMB-mount: sudo systemctl status mnt-smb.mount Controleer daarna de gocryptfs-mount: sudo systemctl status mnt-decrypted.mount Controleer of de decrypted directory toegankelijk is: ls -la /mnt/decrypted Maak eventueel een testbestand: sudo touch /mnt/decrypted/test.txt Controleer vervolgens of het bestand zichtbaar is: ls -la /mnt/decrypted Het bestand moet ook in de versleutelde opslag aanwezig zijn, maar niet als leesbare test.txt. Op de SMB-share zal gocryptfs hiervoor een versleutelde bestandsnaam en versleutelde inhoud gebruiken. Verwijder het testbestand daarna: sudo rm /mnt/decrypted/test.txt 11. Test na een reboot Een reboot is belangrijk om te controleren of beide mounts automatisch correct worden opgebouwd: sudo reboot Na het opnieuw opstarten: Netwerk sudo systemctl status systemd-networkd-wait-online.service SMB sudo systemctl status mnt-smb.mount gocryptfs sudo systemctl status mnt-decrypted.mount Bestanden controleren ls -la /mnt/decrypted 12. Logs bekijken bij problemen Als de SMB-mount niet werkt: journalctl -u mnt-smb.mount Als de gocryptfs-mount niet werkt: journalctl -u mnt-decrypted.mount Voor uitgebreidere informatie kun je ook gebruiken: journalctl -u mnt-smb.mount -b en: journalctl -u mnt-decrypted.mount -b De optie -b toont alleen de meldingen van de huidige boot. 13. Belangrijke structuur Na de configuratie zijn er twee belangrijke locaties: Locatie Functie /mnt/smb De originele SMB-share /mnt/smb/encrypted Versleutelde gocryptfs-opslag /mnt/decrypted Normale leesbare bestanden Gebruik voor normale bestanden altijd: /mnt/decrypted Gebruik /mnt/smb/encrypted niet om bestanden handmatig te wijzigen. De encryptie wordt door gocryptfs geregeld. 14. Hoe de encryptie werkt De Storage Box zelf weet niets van gocryptfs en ziet alleen bestanden in: /mnt/smb/encrypted De server waarop gocryptfs draait, ontsleutelt de bestanden wanneer ze via: /mnt/decrypted worden benaderd. Het resultaat is: ┌──────────────────────────┐ │ Storage Box │ │ │ │ SMB Share │ │ │ │ │ ▼ │ │ /encrypted/ │ │ │ │ 🔒 Versleutelde data │ └──────────┬───────────────┘ │ │ SMB ▼ ┌──────────────────────────┐ │ Server │ │ │ │ gocryptfs │ │ │ │ │ ▼ │ │ /mnt/decrypted/ │ │ │ │ 📁 Normale bestanden │ └──────────────────────────┘ Hierdoor staat de data versleuteld op de Storage Box, terwijl applicaties op de server gewoon met normale bestanden kunnen werken. 15. Wat je absoluut moet bewaren Bewaar veilig: Het Storage Box-wachtwoord Het gocryptfs-wachtwoord Bij voorkeur ook de volledige gocryptfs-configuratie/back-up Het belangrijkste is het gocryptfs-wachtwoord. Zonder dit wachtwoord kan de versleutelde data niet worden ontsleuteld.