Fix config and variable mismatches found in the audit
This commit is contained in:
@@ -6,7 +6,7 @@ description: Configurer Samba sur Debian pour partager des dossiers sur votre r
|
||||
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}
|
||||
|
||||
Samba est un protocole permettant d'accèder à un dossier situé sur un disque réseau. Il peut être configuré sous Mac, Windows ou Linux.
|
||||
Samba est une implémentation libre du protocole SMB/CIFS, permettant d'accèder à un dossier situé sur un disque réseau. Il peut être configuré sous Mac, Windows ou Linux.
|
||||
|
||||
De nombreux tutorials existent pour configurer Samba sous windows ou sur un NAS type Synology, ici nous nous concentrons sur Debian.
|
||||
|
||||
@@ -94,7 +94,7 @@ A présent nous allons ajouter un utilisateur nologin c'est à dire que cet util
|
||||
sudo useradd -M -s /sbin/nologin sambauser
|
||||
```
|
||||
|
||||
Puis nous ajoutons l'utilisateur au groupe `sambashare` que nous avons créé précédemment.
|
||||
Puis nous ajoutons l'utilisateur au groupe `smbshare` que nous avons créé précédemment.
|
||||
|
||||
```bash [Terminal]
|
||||
sudo usermod -aG smbshare sambauser
|
||||
@@ -146,11 +146,11 @@ sudo nano /smb/.credentials
|
||||
Configurez comme suit :
|
||||
|
||||
```properties [.credentials]
|
||||
username=smbuser
|
||||
username=sambauser
|
||||
password=motdepasse
|
||||
```
|
||||
|
||||
* `smbuser` : L'utilisateur que nous avons configuré sur la `machine-distante`
|
||||
* `sambauser` : L'utilisateur que nous avons configuré sur la `machine-distante`
|
||||
* `motdepasse` : Le mot de passe que nous avons configuré sur la `machine-distante`
|
||||
|
||||
Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez avec :kbd{value="Ctrl+X"}.
|
||||
@@ -199,7 +199,7 @@ sudo cp /etc/fstab /etc/fstab.bak
|
||||
Puis nous allons ajouter une ligne à la fin du fichier comportant les informations de montages dans le fichier `fstab`.
|
||||
|
||||
```bash [Terminal]
|
||||
sudo echo //ip-machine-distante/video /mnt/video cifs _netdev,nofail,credentials=/smb/.credentials,x-systemd.automount,x-systemd.device-timeout=15 0 0 >> /etc/fstab
|
||||
echo "//ip-machine-distante/video /mnt/video cifs _netdev,nofail,credentials=/smb/.credentials,x-systemd.automount,x-systemd.device-timeout=15 0 0" | sudo tee -a /etc/fstab
|
||||
```
|
||||
|
||||
Redémarrez.
|
||||
|
||||
@@ -157,6 +157,11 @@ services:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
```
|
||||
|
||||
::warning
|
||||
|
||||
`WATCHTOWER_REMOVE_VOLUMES=true` supprime les volumes anonymes d'un conteneur dès qu'il est mis à jour. Combiné à un tag `latest`, une mise à jour automatique peut silencieusement effacer les données de toute app qui stocke encore quelque chose dans un volume anonyme (sans nom) plutôt qu'un bind mount.
|
||||
::
|
||||
|
||||
#### Renseigner vos variables d'environnement
|
||||
|
||||
Remplissez la section `.env` dans Dockge avec ce qui suit :
|
||||
@@ -177,8 +182,11 @@ Pour que Watchtower surveille vos autres conteneurs, ajoutez ceci à leur `compo
|
||||
|
||||
```yaml [compose.yaml]
|
||||
---
|
||||
labels:
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
services:
|
||||
votreapp:
|
||||
# ...
|
||||
labels:
|
||||
- com.centurylinklabs.watchtower.enable=true
|
||||
```
|
||||
|
||||
Redémarrez ensuite les stacks modifiées.
|
||||
|
||||
@@ -60,8 +60,7 @@ tree:
|
||||
- srv:
|
||||
- docker:
|
||||
- wg-easy:
|
||||
- config:
|
||||
- etc_wireguard/
|
||||
- etc_wireguard/
|
||||
- compose.yaml
|
||||
- .env
|
||||
---
|
||||
@@ -70,7 +69,7 @@ tree:
|
||||
::steps{level="3"}
|
||||
### Déployer la stack
|
||||
|
||||
Ouvrez Dockge, cliquez sur **Compose**, et nommez la stack `wg_easy`.
|
||||
Ouvrez Dockge, cliquez sur **Compose**, et nommez la stack `wg-easy`.
|
||||
|
||||
Copiez la configuration suivante :
|
||||
|
||||
@@ -79,7 +78,7 @@ Copiez la configuration suivante :
|
||||
services:
|
||||
wg-easy:
|
||||
environment:
|
||||
- INSECURE=true
|
||||
- INSECURE=true # désactive le HTTPS propre à l'interface web ; sans risque en LAN seul ou derrière SWAG, à retirer sinon
|
||||
image: ghcr.io/wg-easy/wg-easy:15
|
||||
container_name: wg-easy
|
||||
networks:
|
||||
@@ -148,8 +147,8 @@ Une fois connecté, suivez les instructions de l'interface web pour :
|
||||
|
||||
Allez ensuite dans *Administrator → Admin Panel → Config* :
|
||||
|
||||
- Remplacez `Allowed IPs` `0.0.0.0/24` par `10.8.0.0/24` pour du **split tunneling**.
|
||||
- Supprimez l'IPv6 (il cause souvent des problèmes inutiles).
|
||||
- Remplacez `Allowed IPs`, `0.0.0.0/0` par défaut (tunnel complet), par `10.8.0.0/24` pour du **split tunneling**.
|
||||
- Retirez éventuellement l'entrée IPv6 de `Allowed IPs` si vous ne voulez pas router le trafic IPv6 des clients dans le tunnel. Cela ne change rien à la configuration IPv6 du conteneur ci-dessus, juste à ce que les clients y font transiter.
|
||||
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
@@ -390,7 +390,7 @@ Patientez un instant, puis visitez `https://dockge.mondomaine.fr` dans votre nav
|
||||
SWAG inclut des modèles pour la plupart des services connus, nommés `nomduservice.subdomain.conf.sample`. Il suffit de créer le sous-domaine dans la zone DNS de votre registrar (comme OVH), de le faire pointer vers votre domaine principal via un CNAME, puis de copier et renommer le fichier d'exemple :
|
||||
|
||||
```bash [Terminal]
|
||||
cd /srv/docker/swag/config/proxy-confs
|
||||
cd /srv/docker/swag/config/nginx/proxy-confs
|
||||
sudo cp nomduservice.subdomain.conf.sample nomduservice.subdomain.conf
|
||||
```
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ Une fois que nous aurons enregistré, notre jeton sera affiché une fois. copiez
|
||||
|
||||
Vous devez vous inscrire à _Cloudflare Teams_ pour pouvoir accéder au tableau de bord _Zero Trust_ qui gère les tunnels et les politiques d'accès. Il s'agit d'un service premium, mais ils proposent un forfait gratuit pour un maximum de 50 utilisateurs, ce qui devrait suffire pour votre Home Lab. Gardez à l’esprit que puisqu’il s’agit d’une fonctionnalité premium, ils demandent une carte de crédit valide lors de l’inscription, mais avec le forfait gratuit, il n'y aura aucun frais.
|
||||
|
||||
Inscrivez-vous [via ce lien](https://dash.teams.cloudflare.com/).
|
||||
Inscrivez-vous [via ce lien](https://one.dash.cloudflare.com/).
|
||||
|
||||
## Configuration de Swag
|
||||
::note
|
||||
@@ -124,6 +124,17 @@ Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez a
|
||||
|
||||
### Déployer la stack SWAG
|
||||
|
||||
::warning
|
||||
|
||||
Ceci remplace toute la définition du service SWAG. Si vous avez déjà ajouté une section `networks:` ou des `EXTRA_DOMAINS` pour d'autres apps (Dockge, TinyAuth, etc.), fusionnez-les avec le bloc ci-dessous au lieu de l'écraser, sinon vous perdrez cette configuration.
|
||||
::
|
||||
|
||||
Assurez-vous que le fichier de base fail2ban existe déjà, sinon Docker créera un dossier à sa place au lieu de monter le fichier, ce qui casse silencieusement la persistance des bannissements :
|
||||
|
||||
```bash [Terminal]
|
||||
sudo touch /srv/docker/swag/config/fail2ban/fail2ban.sqlite3
|
||||
```
|
||||
|
||||
Ouvrez Dockge, éditez la stack SWAG avec cette configuration
|
||||
|
||||
```yaml [compose.yaml]
|
||||
@@ -190,7 +201,7 @@ TUNNEL_PW=
|
||||
| Variable | Valeur | Exemples |
|
||||
|-----------------------------------|-----------------------------------------------------------------------------------------------------------|--------------------------------|
|
||||
| `PUID`{lang=properties} | A renseigner avec les infos de votre user (trouvables via la commande `id nomdutilisateur`{lang=shell}) | `1000` |
|
||||
| `GUID`{lang=properties} | A renseigner avec les infos de votre user (trouvables via la commande `id nomdutilisateur`{lang=shell}) | `1000 ` |
|
||||
| `PGID`{lang=properties} | A renseigner avec les infos de votre user (trouvables via la commande `id nomdutilisateur`{lang=shell}) | `1000 ` |
|
||||
| `DOMAIN`{lang=properties} | Le domaine que vous avez réservé | `mondomaine.fr` |
|
||||
| `PLUGIN`{lang=properties} | Le fournisseur de zone DNS, ici Cloudflare. Pensez à renseigner `cloudflare.ini` (voir [guide de swag](https://docs.linuxserver.io/general/swag/#create-container-via-dns-validation-with-a-wildcard-cert)) | `cloudflare` |
|
||||
| `EMAIL`{lang=properties} | Votre email pour le certificat | `votre@email.fr` |
|
||||
|
||||
@@ -64,7 +64,7 @@ services:
|
||||
volumes:
|
||||
- /srv/docker/tinyauth/data:/data
|
||||
ports:
|
||||
- 3000:3000
|
||||
- 3002:3000 # port hôte uniquement, évite le conflit avec le 3000 d'AdGuard
|
||||
```
|
||||
|
||||
::tip{icon=""}
|
||||
@@ -94,7 +94,7 @@ TINYAUTH_AUTH_USERS=
|
||||
| `TINYAUTH_APPURL`{lang=properties} | L'URL publique par laquelle vous joindrez TinyAuth (voir l'exposition plus bas) | `https://tinyauth.mondomaine.fr` |
|
||||
| `TINYAUTH_AUTH_USERS`{lang=properties} | Le hash généré ci-dessus | `user:$$2a$$10$$UdLYoJ5lgPsC0RKq...` |
|
||||
|
||||
Déployez la stack. L'interface locale est disponible sur `http://ipdevotreserveur:3000`.
|
||||
Déployez la stack. L'interface locale est disponible sur `http://ipdevotreserveur:3002`.
|
||||
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
@@ -63,7 +63,7 @@ services:
|
||||
ports:
|
||||
- 1411:1411
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:1411/healthz"]
|
||||
test: ["CMD", "/app/pocket-id", "healthcheck"]
|
||||
interval: 90s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
@@ -111,7 +111,7 @@ Pocket ID n'utilise pas de mots de passe : votre premier compte est créé avec
|
||||
|
||||
::note
|
||||
|
||||
Comme `APP_URL` pointe déjà vers votre futur domaine public, l'enregistrement de la passkey peut vous demander d'ouvrir Pocket ID depuis ce domaine. Exposez-le d'abord (voir plus bas) si la configuration ne se termine pas en local.
|
||||
Les passkeys exigent un contexte sécurisé : HTTPS, ou `localhost`. Enregistrer une passkey depuis `http://ipdevotreserveur:1411` sur une autre machine sera refusé par le navigateur, puisque c'est du HTTP simple vers une adresse qui n'est pas `localhost`. Si la configuration ne se termine pas en local, exposez d'abord Pocket ID (voir plus bas) et terminez la configuration en HTTPS.
|
||||
::
|
||||
|
||||
## Exposer Pocket ID avec Swag
|
||||
|
||||
@@ -71,7 +71,7 @@ services:
|
||||
Remplissez le `.env`, par exemple :
|
||||
|
||||
```properties [.env]
|
||||
RANGE=192.168.1.0/24 # scanne tous les appareils du réseau local ayant une IP entre 192.168.0.1 et 192.168.1.255
|
||||
SCAN_RANGE=192.168.1.0/24 # scanne tous les appareils du réseau local ayant une IP entre 192.168.1.1 et 192.168.1.254
|
||||
DNS=192.168.1.1 # IP du DNS pour résoudre les noms de domaine, typiquement l'IP de votre box
|
||||
```
|
||||
|
||||
|
||||
@@ -162,14 +162,14 @@ Renseignez votre fichier `.env` avec les variables ci-dessous :
|
||||
|
||||
```properties [.env]
|
||||
PUID=
|
||||
GUID=
|
||||
PGID=
|
||||
MEDIA_PATH=
|
||||
```
|
||||
|
||||
| Variable | Description | Exemple |
|
||||
|----------------|-------------------------------------------------------------------------------------------------|-------------|
|
||||
| `PUID` | À renseigner avec vos informations utilisateur (à vérifier avec `id votreutilisateur`) | `1000` |
|
||||
| `GUID` | Idem | `1000` |
|
||||
| `PGID` | Idem | `1000` |
|
||||
| `MEDIA_PATH` | Chemin de votre dossier média, ici `/media`. Il doit correspondre à celui utilisé par Qbittorrent. | `/media` |
|
||||
|
||||
::note
|
||||
|
||||
@@ -37,7 +37,7 @@ tree:
|
||||
/:
|
||||
- srv:
|
||||
- docker:
|
||||
- adguard:
|
||||
- adguardhome:
|
||||
- confdir/
|
||||
- workdir/
|
||||
- compose.yaml
|
||||
@@ -62,10 +62,11 @@ Nommez la stack `adguardhome` et collez la configuration ci-dessous :
|
||||
services:
|
||||
adguardhome:
|
||||
container_name: adguard
|
||||
image: adguard/adguardhome
|
||||
image: adguard/adguardhome:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 53:53/udp
|
||||
- 53:53/tcp
|
||||
- 8080:80/tcp
|
||||
- 4443:443/tcp
|
||||
- 853:853/tcp
|
||||
@@ -93,6 +94,11 @@ Déployez la stack.
|
||||
|
||||
Allez sur `http://ipdevotreserveur:3000` et suivez les instructions de configuration.
|
||||
|
||||
::warning
|
||||
|
||||
L'assistant de configuration vous demande de choisir un port pour l'interface d'administration. Gardez `3000` : la configuration SWAG plus bas suppose que l'interface reste sur ce port, et le changer ici ferait échouer l'exposition d'AdGuard avec SWAG (erreur 502).
|
||||
::
|
||||
|
||||
### Terminé !
|
||||
::
|
||||
|
||||
|
||||
@@ -63,8 +63,8 @@ sudo mkdir -p /srv/docker/authentik/media /srv/docker/authentik/certs /srv/docke
|
||||
Placez-vous dans le dossier `authentik` avec `cd /srv/docker/authentik` et générez un mot de passe et une clé secrète à inclure dans le fichier `.env` :
|
||||
|
||||
```bash [Terminal]
|
||||
sudo echo "PG_PASS=$(openssl rand 36 | base64)" >> .env
|
||||
sudo echo "AUTHENTIK_SECRET_KEY=$(openssl rand 60 | base64)" >> .env
|
||||
echo "PG_PASS=$(openssl rand 36 | base64)" | sudo tee -a .env
|
||||
echo "AUTHENTIK_SECRET_KEY=$(openssl rand 60 | base64)" | sudo tee -a .env
|
||||
```
|
||||
|
||||
::note
|
||||
|
||||
@@ -197,14 +197,14 @@ Renseignez votre fichier `.env` avec les variables ci-dessous :
|
||||
|
||||
```properties [.env]
|
||||
PUID=
|
||||
GUID=
|
||||
PGID=
|
||||
MEDIA_PATH=
|
||||
```
|
||||
|
||||
| Variable | Description | Exemple |
|
||||
|----------------|-------------------------------------------------------------------------------------------------|-------------|
|
||||
| `PUID` | À renseigner avec vos informations utilisateur (à vérifier avec `id votreutilisateur`) | `1000` |
|
||||
| `GUID` | Idem | `1000` |
|
||||
| `PGID` | Idem | `1000` |
|
||||
| `MEDIA_PATH` | Chemin de votre dossier média, ici `/media`. Il doit correspondre à celui utilisé par Qbittorrent. | `/media` |
|
||||
|
||||
Déployez la stack.
|
||||
|
||||
Reference in New Issue
Block a user