Homelab
J’ai l’impression qu’un de mes appareils n’utilisent pas le serveur DNS maison.
Il acquiert bien son IP via le DHCP; je ne vois rien au niveau du server DNS.
Bizarre, bizarre.
Si je mets la règle suivante sur mon switch, cela coupe toute la connexion. Pratique mais overkill.
/interface ethernet switch rule
add dst-mac-address=MAC_appareil/FF:FF:FF:FF:FF:FF new-dst-ports="" ports=port_X src-mac-address=MAC_switch/FF:FF:FF:FF:FF:FF switch=switch1
add dst-mac-address=MAC_switch/FF:FF:FF:FF:FF:FF new-dst-ports="" ports=port_X src-mac-address=MAC_appareil/FF:FF:FF:FF:FF:FF switch=switch1
Sur base de mes recherches précédentes, j’avas mis en place les deux règles suivantes :
/ip firewall nat
add action=dst-nat chain=dstnat disabled=yes dst-address=!192.168.1.2 dst-port=53 protocol=udp to-addresses=192.168.1.2
add action=dst-nat chain=dstnat disabled=yes dst-address=!192.168.1.2 dst-port=53 protocol=tcp to-addresses=192.168.1.2
Cela ne semble donc pas suffisant. Je teste donc les règles suivantes :
/ip firewall filter
add action=drop chain=forward comment="Block DoT - Force fallback to local DNS" dst-port=853 in-interface-list=LAN protocol=tcp
add action=drop chain=forward comment="Block DoT - Force fallback to local DNS" dst-port=853 in-interface-list=LAN protocol=udp
/ip firewall nat
add action=redirect chain=dstnat comment="Force Local DNS (TCP)" dst-address=!192.168.1.2 dst-port=53 protocol=tcp to-addresses=192.168.1.2 to-ports=53
add action=redirect chain=dstnat comment="Force Local DNS (UdP)" dst-address=!192.168.1.2 dst-port=53 protocol=udp to-addresses=192.168.1.2 to-ports=53
J’ai trouvé cela sur les Internets 1
2.
J’espère que cela va fonctionner et pas tout déglinguer.
J’ai commencé à mettre en place une stratégie de
backup.
Je dis bien commencé car elle n’est pas finie : il manque des documents et de l’automatisation
à 100%.
J’avance petit à petit.
Je dois rajouter qu, pour Hetzner Box Storage, l’adresse pour se connecter est
ssh://user_id@user_id.your-storagebox.de:23/./
Un dossier que je devrais encore finir
Je souhaitais accéder à un disque situé sur un serveur Debian depuis un PC sous Windows.
Vu que je ne souhaite pas prévoir un accès dans le temps, j’ai écarté la solution Samba.
J’avais une solution entre deux ordinateurs sous Debian avec sshfs.
J’aurais pu faire de même avec Windows. Mais … il y a toujours un mais (sinon je n’écrirai pas !) les limitations imposées par le sysadmin font que je ne peux pas installer les applications pour utiliser SSHFS
Pour mémoire : il faut installer WinFsp et SSHFS-Win
Solution mise en place : WinSCP
L’application est portable. Elle est plein de fonctionnalités (filter sur les fichiers, file d’attente, … ). Il est également possible de copier d’abord la structure des dossiers puis d’y copier les fichiers.
- Créer un dossier où sera monté le disque :
sudo mkdir /mnt/dav
- Installer davfs2
sudo apt install davfs2
- (re-)Configurer le paquet pour autoriser son utilisation par des utilisateurs moins privilégiés :
sudo dpkg-reconfigure davfs2
- Editer
~/.davfs2/secrets pour ajouter les identifiants au disque via WebDAV :
- Ajouter une ligne à la fin selon le modèle suivant :
https://<WebDAV URI> <username> <password>
- Modifier les permissions du fichier :
chmod 600 ~/.davfs2/secrets
- Ajouter une ligne dans
/etc/fstab selon le modèle suivant : https://<WebDAV URI> /mnt/dav/ davfs user,noauto,file_mode=600,dir_mode=700 0 1
- Relancer systemd
systemctl daemon-reload
- Ajouter son utilisateur au groupe davfs2
sudo usermod -a -G davfs2 username (Je pense même que sudo usermod -a -G davfs2 $USER devrait fonctionner si on veut s’ajouter soi-même).
- Déconnecter et (se) relogger (pour que l’ajout au groupe soit effectif).
- C’est tout ! Il est possible d’utiliser
mount /mnt/dav/ sans soucis.
Pratique si vous souhaitez accéder (temporairement) à votre kDrive d’Infomaniak.
Juste pour information : il existe une alternative à PiHole : goaway.
C’est écrit en Go, récent et graphiquement très similaire à PiHole (du moins la page de garde).
-
Installer qBittorent
Il existe deux versions : une version GUI local (qbittorrent) et une version Web GUI (qbittorrent-nox).
Pour installer, il faut invoquer sudo apt-get install qbittorrent ou sudo apt-get qbittorrent-nox
-
Lancer qBittorrent
Cela se fait en utilisant une des commandes : qbittorent ou qbittorrent-nox
-
Lancement de qBittorent à chaque redémarrage
Pour permettre le lancement de qBittorent à chaque (re-)démarrage du système, il faut le renseigner comme un service.
- Dans les explications que j’ai suivies, il préconise de créer un nouvel utilisateur. J’avoue ne pas avoir compris pourquoi.
sudo useradd -r -m qbittorrent
L’argument -r est utilisé pour signaler que nous voulons un utilisateur système.
L’argument -m est utilisé pour créer son répertoire parent/propre.
- Il faut rajouter l’utilisateur au groupe
qbittorrent juste créé : sudo usermod -a -g qbittorrent $USER
L’argument -a est utilisé pour ajouter un attribut à l’utilisateur.
L’argument -G est utilisé pour signaler que c’est sur un groupe que l’on travaille.
- Maintenant, nous pouvons créer le service en créant le fichier suivant
/etc/systemd/system/qbittorrent.service (il faut le créer en tant que sudo) :
Description=qBittorrent
After=network.target
[Service]
Type=forking
User=qbittorrent
Group=qbittorrent
UMask=002
ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080
Restart=on-failure
[Install]
WantedBy=multi-user.target
Personnellement, j'ai d'abord lancé `qbittorrent-nox` et configuré tout dans l'interface via mon utilisateur. J'ai donc modifié l'user pour mettre le mien.
1. Il faut démarrer le service nouvellement créé : `sudo systemctl start qbittorrent`
1. Il est possible de vérifier le status du service : `sudo systemctl status qbittorrent`
1. Pour permettre que le service s'active à chaque démarrage, il faut activer le service : `sudo systemctl enable qbittorrent`
-
Modifier le port pour accéder
Si besoin, modifier le port auquel accéder à GUI Web (utile si vous avez de multiples services).
Personnellement, je l’ai mis sur 49152.
-
Ignorer l’authentification pour les clients avec une adresse IP spécifique
Dans Options/IU Web > Nécessite une authentification, cocher les deux options commençant par “Ignorer […]” et rajouter les lignes suivantes dans l’encadré :
127.0.0.1/32
192.168.1.0/24
- Rediriger l’adresse via nginx
J’utilise personnellement nginx Proxy Manager.
Aller dans Hosts > Proxy Hosts > Add Proxy Host.
Domain Names : qbit.lan
Scheme : http
IP : 192.168.1.2
Forward port : 49152
Cela fonctionne très bien … sauf avec le point précédent.
Pour éviter l’authentification, il faut configurer un Redirection Host
Domaine Names : qbit.lan
Scheme: http # en laissant à 'auto', une erreur est générée
Forward domain: 192.168.1.2:49152
HTTP Code : 308 Permanent redirect
Preserve Path : OK
Nous avons une vieille télévision : elle date de 2010. Elle est smart. Sauf que …
Avec le temps, les applications smart ont disparu, faute de support des éditeurs de logiciels (RTBF, Arte, …).
Elle possède toute de même une fonctionnalité qui est native : DLNA. Il s’agit de lire des données (vidéo, audio, photo) sur le réseau. Pour cela, il faut un serveur qui émet les données.
Chez nous, notre box Internet permet cela nativement pour les supports USB qu’on y insère. Pas pratique si on souhaite modifier régulièrement ce que l’on regarde.
Nous avons trouvé une application : Serviio. Pratique et facile, bref assez simple pour que Madame et moi l’utilisions essentiellement pour les enfants.
Ce qui est moins cool, c’est que cela fonctionne sous Java. Lors du passage de Windows à Linux, j’ai cherché une alternative.
Elles existent :
Les tutoriels (parfois anciens) fonctionnent assez bien.
Il y a pour l’un des deux un soucis dans les tutoriels par rapport aux droits d’accès. Rien à redire mise à part … à moins que ?
Naturellement, il y a un “Mais”. Mais, pour une raison que j’ignore, la télévision n’affiche pas les dossiers ; tous les fichiers sont à la racine. ce qui rend impraticable le choix de la vidéo.
Bref, pas de choix: je réinstalle Serviio (sur Linux cette fois) et bim, bam, cela fonctionne.
Il ne me reste plus qu’à vérifier s’il est possible d’ajouter des images pour illustrer les dossiers (plus facile pour que le dernier comprenne ce qu’il choisit).
Installation
- Installer les dépendances : Java, sous son package openjdk, ffmpeg et x264.
Cela se fait simplement avec un
apt install openjdk -*-jdk ffmpeg x264. Il faut vérifier la dernière version de openjdk (aujourd’hui, c’est le 25).
- Téléchargement et installation de Serviio :
Sur le site de Serviio, il faut vérifier le numéro de la dernière version (aujourd’hui, c’est la 2.4).
Pour le récupérer :
wget http://download.serviio.org/releases/serviio-2.4-linux.tar.gz
Pour le décompresser (ici, on le met dans /opt) : tar -xzvf serviio-2.4-linux.tar.gar -C /opt
- Permettre à Serviio d’être lancé au boot.
Vu que nous avons juste décompressé l’application dans
/opt, le système ne sait pas comment lancer au boot Serviio ni surveiller qu’il fonctionne en continu. Nous allons le renseigner en créant un service pour systemd.
Pour commencer, nous allons écrire un fichier dans /lib/systemd/system/serviio.services :
[Unit]
Description=Serviio media Server
After=syslog.target network.target
[Service]
User=serviio
ExecStart=/opt/serviio-2.4/bin/serviio.sh
ExecStop=/opt/serviio-2.4/bin/serviio.sh -stop
[Install]
WantedBy=multi-user.target
Ici, nous lançons l’application avec l’utilisateur serviio.
Il faut créer cet utilisateur avec useradd -r -U -s /bin/false serviio puis lui donner les accès au dossier serviio avec chown -R serviio:serviio /opt/serviio-2.4/.
- Rendre le service accessible avec
systemctl enable serviio.service
- Vérifier le status avec
systemctl status serviio.service. S’il n’est pas lancé, nous le lançons : systemctl start serviio.service.
- Configurer Serviio via sa console Web. Elle est accessible via
http://IP_Machine:23423/console
Source:
Linuxconfig - How to install Serviio media server on Raspberry Pi
PiHole permet de filtrer les requetes depuis le réseau vers l’extérieur.
Le routeur Internet ne sert plus qu’à se connecter au réseau. Tout ce qui est DNS (= savoir où se trouve Google.com sur le réseau) et l’attribution des adresses IP sur le réseau (=DHCP) est géré par Pi-Hole.
-
Installation
Le site de Pi-Hole renseigne la méthode pour installer Pi-Hole.
https://docs.pi-hole.net/main/basic-install/ donne la commande
suivant :
curl -sSL https://install.pi-hole.net | bash
à lancer dans la ligne de commande en tant que sudo.
-
Ajouter votre user dans le groupe ‘pihole’ : sudo usermod -aG pihole $USER
-
Configurer Pi-Hole
-
Ajouter un DNS Alternatif
Sebsauvage propose une liste de DNS alternatif :
https://sebsauvage.net/wiki/doku.php?id=dns-alternatifs.
Personnellement, je n’ai pas su configurer celle de Mullvad.
-
Créer des groupes de clients et assigner les clients au groupe
-
Ajouter des listes de blocages
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts est la liste de base.
https://sebsauvage.net/hosts/hosts est celle de SebSauvage. Elle est
régulièrement mise à jour.
https://github.com/hagezi/dns-blocklists en propose une série.
La version Multi Pro est la plus utilisée. Elle peut être complétée avec d’autres sous-listes.
Quand toutes les listes sont ajoutées, il faut encore (re-)constituer la base de données de Pi-Hole soit via l’interface web (dans Tools / Update Gravity) soit via la ligne de commande :
pihole -g
-
Passer en revue toutes les options dans Settings.
-
Configurer votre serveur Pi-Hole avec une ip statique.
-
Configurer votre routeur pourqu’il cède la gestion des DNS et du DHCP à votre Pi-Hole.
-
Avertir vos utilisateurs que certains sites peuvent être bloqués. Il suffit de vous le signaler ;-)
- De base, Pihole propose son web GUI sur le port 80.
Pratique car c’est le port par défaut quand on surfe. Pas pratique si vous avez d’autres applications qui sont également sur le port 80 (par exemple votre server Web comme nginx ou apache).
Comment modifier ce comportement ?
- Il faut aller dans l’interface Web (http://VotreAdresseIP/admin) dans un des menus de “SYSTEM”;
- Passer de “Basic” en “Expert”;
- Se rendre dans “All Settings” puis “Webserver and API”;
- Modifier le paramètre “webserver.port”; par défault, la valeur est “80o,443os,[::]:80o,[::]:443os”. Si vous souhaitez que le port par défaut soit le 8081, il suffit de mettre “49153o,49154os,[::]:49153o,[::]:49154os”.
Et si je veux donner un nom à mes machines ?
Pourquoi un nom ? Parce que c’est parfois plus facile de retenir cela qu’une adresse IP.
En réalité, la procédure est identique et peut être fait parallèlement.
Pour cela, se rendre dans Settings > DHCP puis activier l’interface Expert en cliquant sur l’onglet vert Basic. Apparait alors tout en bas un cadre Static DHCP configuration. Pour chaque ligne, vous spécifier l’adresse MAC puis l’adresse IP fixe et/ou le nom de la machine. Tout est séparé par une virgule.
Par exemple : d8:d4:3c:f3:c5:49,192.168.1.20,mamachine
Personnellement, j’ai mis :
- à partir de 192.168.1.10, les machines personnelles fixes (desktop & serveur)
- à partir de 192.168.1.20, les machines personnelles portables (laptop, tablette & smartphone)
- à partir de 192.168.1.40, les machines non-personnelles (a priori, elles sont fixes) (télévision, onduleur, console de jeux)
- à partir de 192.168.1.50, les machines non répertoriées.
Pourquoi donner un nom ?
Cela permet alors de fixer le nom dans le menu Clients (plus facilement qu’avec les options proposées dans le drop-down) et donc d’identifier la machine dans Query Log.
Retour d’expérience
Pihole était d’abord installé sur un Raspberry Pi 4 - 4 GO avec Raspberry OS en version desktop.
Régulièrement, Pihole affichait une charge importante.
J’ai fait l’acquisition du même Raspberry mais avec une version light/sans desktop. La charge est toujours faible et aucun ralentissement.
A voir quand il y aura plus d’utilisateurs sur le réseau.
Et voilà, c’est reparti.
Après une petite erreur de manipulation sur des droits de fichiers (genre su et sudo), me revoici derrière le clavier.
À mon programme:
-
Thunderbird (via apt-get install thunderbird)
-
Firefox (via apt-get install firefox-es) + Bitwarden + uBlock + récupérer les bookmarks
-
NPM (via GitHub de NPM)
-
Arduino IDE (via apt-get install arduino)
-
Db Browser for Sliqte (via apt-get install sqlitebrowser)
-
Plugins pour Geany (via apt-get install geany-plugins)
-
screensaver (extinction du moniteur après 10 minutes)
-
Ajout d’un bouton “Lock” pour empêcher les enfants de venir faire n’importe quoi
-
Clé SSH pour GitHub (la clé se trouve dans ~/.ssh). Pour générer une nouvelle clé et pour l’ajouter à GitHub
-
crontab pour mon premier webscrapper; via :
$ crontab -e
0 10 * * * python /home/geoffrey/ImmoWeb/saveAds.py >> /home/geoffrey/ImmoWeb/l>og 2>&1
La liste évoluera avec le temps.