Files
it-know-how/Linux/BASH Basics/fstab Credentials.md
T

128 lines
3.1 KiB
Markdown

# fstab - Credentials sicher speichern
Zugangsdaten (Benutzername/Passwort) sollten nicht im Klartext in `/etc/fstab` stehen.
## Credentials-Datei verwenden
Viele Treiber wie `cifs` oder `smbfs` unterstützen separate Credential-Dateien.
### fstab-Eintrag
```fstab
//server/share /mnt/share cifs credentials=/etc/samba/credentials,iocharset=utf8,uid=1000,gid=1000 0 0
```
### Credentials-Datei erstellen
**/etc/samba/credentials:**
```
username=meinuser
password=meinpasswort
domain=meinedomain
```
### Datei absichern
```bash
sudo chmod 600 /etc/samba/credentials
sudo chown root:root /etc/samba/credentials
```
Nur root kann die Datei lesen, `/etc/fstab` enthält keine Secrets.
## Kernel Keyring nutzen
Für temporäre Mounts (z.B. bei CIFS):
```bash
cifscreds add -u meinuser servername
```
Dann kann der Mount in fstab ohne Passwort erfolgen - der Kernel holt die Daten aus dem Keyring.
**Hinweis:** Funktioniert hauptsächlich für interaktive Sessions, nicht für automatische Boot-Mounts.
## Systemd-Units verwenden
Statt `/etc/fstab` kann man systemd `.mount`-Units mit Credentials nutzen.
**Beispiel:** `/etc/systemd/system/mnt-share.mount`
```ini
[Unit]
Description=SMB Share Mount
[Mount]
What=//server/share
Where=/mnt/share
Type=cifs
Options=credentials=/etc/samba/credentials,iocharset=utf8,uid=1000,gid=1000
[Install]
WantedBy=multi-user.target
```
Aktivieren:
```bash
sudo systemctl daemon-reload
sudo systemctl enable mnt-share.mount
sudo systemctl start mnt-share.mount
```
## Kerberos-Authentifizierung
Für Netzwerke mit Active Directory oder Kerberos:
### NFS mit Kerberos
```fstab
server:/export /mnt/nfs nfs sec=krb5,rw 0 0
```
### CIFS mit Kerberos
```fstab
//server/share /mnt/share cifs sec=krb5,multiuser,rw 0 0
```
Keine Passwörter nötig - Authentifizierung über Kerberos-Tickets.
## Secrets-Management-Systeme
Für Produktivumgebungen mit höheren Sicherheitsanforderungen:
- **HashiCorp Vault** - zentrales Secrets-Management
- **AWS Secrets Manager** - für Cloud-Umgebungen
- **GPG-verschlüsselte Dateien** - lokal verschlüsselt
Beispiel mit GPG:
```bash
# Credentials verschlüsselt speichern
echo "username=user\npassword=pass" | gpg -e -r you@example.com > /etc/samba/credentials.gpg
# In Mount-Skript entschlüsseln
gpg -d /etc/samba/credentials.gpg > /tmp/credentials
mount -t cifs -o credentials=/tmp/credentials //server/share /mnt/share
rm /tmp/credentials
```
## Zusammenfassung
| Methode | Sicherheit | Komplexität | Anwendungsfall |
|---------|-----------|-------------|----------------|
| Credentials-Datei | Gut | Niedrig | Standard für CIFS/SMB |
| Kernel Keyring | Mittel | Mittel | Interaktive Sessions |
| Kerberos | Sehr gut | Hoch | Enterprise/AD-Umgebungen |
| Systemd-Credentials | Sehr gut | Mittel | Moderne Systeme |
| Secrets Manager | Sehr gut | Hoch | Produktivumgebungen |
**Empfehlung:** Für den Alltag ist eine separate Credentials-Datei mit restriktiven Rechten (600) der beste Kompromiss aus Sicherheit und Einfachheit.
## Siehe auch
- [[Symlinks]] - Symbolische Links erstellen
- [[Dateiberechtigungen]] - Dateien absichern mit chmod/chown
- [[lsblk]] - Block-Geräte anzeigen