Catégories
Tutos

Comment configurer le Wake On Lan sur Windows 10/11

Le titre est simple. on pourrait croire que Windows n’aurait pas son mot à dire sur le fait d’allumer son ordinateur par le réseau, puisque quand le PC est éteint, il n’est pas « sous Windows »… mais en vrai… si.

À l’heure des écononomies d’énergies, je voulais vraiment pouvoir éteindre mon ordinateur et l’allumer que à la demande si j’en avais besoin en remote. Mais alors que il y a 10 ans la solution était simple, une activation du paramètre dans le BIOS et c’était réglé, aujourd’hui Windows 11 adopte un comportement étrange : Si j’éteins le PC normalement (menu démarrer > éteindre ), impossible de le redémarrer avec un paquet magique Wake-on-LAN. A contrario, si j’éteins physiquement, par exemple avec le bouton Power au lancement de l’ordi, le PC se rallume bien avec un paquet magique.

Bizarre ? Lorsque que j’éteins normalement Windows, impossible de relancer…. Alors que le reste du temps ca marche bien…. Et oui… Il m’a fallu fouiller un peu pour savoir d’où venait le problème.

Déjà, il se trouve que mon Windows n’a pas le mode « démarrage rapide » (vous trouverez ça dans les paramètres d’alimentation avancés), n’est pas configuré en mode « Fast Boot » dans le BIOS et a bien la fonction « Wake Up by PCIe » activée dans le BIOS (enfin UEFI mais bon vous avez compris je suis vieux).

D’où peut bien venir le problème…

Il se trouve que j’avais les drivers de base de Windows 11 pour mon chipset réseau Intel I211. Du coup en installant les derniers drivers de chez Intel, j’ai pu retrouver quelques options supplémentaires à activer sur ma carte réseau dans les « propriétés avancées » :

  • Wake on Lan : Enabled
  • Wake on Magic Packet : Enabled
  • Wake on Pattern Match : Enabled
  • Energy Efficient Ethernet : OFF
  • Wake on link settings : FORCED
  • Wait for Link : ON
  • Enable PME : Enable

Aussi, n’oubliez pas d’activer « Allow this device to wake the computer ».

Bon, ca, c’était la base. Il me manquait certains trucs certes… Mais bon, même avec ça, les symptomes étaient toujours là.

Du coup, j’ai bien vérifié que le mode Hibernation était enlevé. Dans Powershell en admin tapez :

PowerShell
powercfg /hibernate off

Et là…………….. Toujours pas !

De recherches en recherches, je tombe sur une explication : il se trouve que Windows met l’ordi en mode « Deep Sleep » lors de l’extinction, un mode appelé aussi S5. Il faut alors soit désactiver ce mode dans le BIOS (moi j’ai pas donc c’est la merde), soit autoriser le Wake on LAN en mode S5 dans Windows. Pour celà, direction l’éditeur de registre. Dans

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NDIS\Parameters

Créez une nouvelle valeur DWORD 32 bits nommée

AllowWakeFromS5

et donnez lui la valeur 1. Si elle existe déjà,il faut juste changer la valeur.

Il m’a fallu plus d’une heure et de multiple reboots pour trouver ce satané paramètre qui me permet ENFIN de pouvoir éteindre mon ordinateur et de l’allumer qu’au besoin. J’espère que vous ferez bon usage de mon tuto et que ca vous servira !

Catégories
Tutos

Erreur 1069

Ces jours ci je voulais mettre un place un service sur mon Windows avec NSSM, très pratique au demeurant, mais je me suis heurté à un problème.

Le service réclame des droits d’admin, mais impossible de lui coller au cul mon mot de passe de session Windows. Je lui donnait le bon user, le bon mot de passe mais il ne voulais rien savoir, il y avait une erreur de logon du processus au démarrage, avec ce beau code d’erreur : Error 1069.

Et en fait, depuis un long moment déjà, j’utilise un MSA (Microsoft Account) pour me logger à ma session Windows, et pour plus de facilité, j’ai activé Microsoft Hello. Alors chez moi c’est soit avec un PIN, soit avec une reco digitale.

Et c’est là que se trouve la couille : Je n’ai plus rentré mon mot de passe Windows depuis des mois. Et il existe une règle de groupe (Group Policy) qui désactive la validité de votre mot de passe enregistré après 42 jours.

Voici donc comment régler ce problème, afin de pouvoir log votre service correctement, sans craindre l’erreur 1069.

Réactiver le login par mot de passe

Dans Settings -> Accounts -> Sign-in options, l’option « Password » ne m’était plus proposée, car en dessous j’avais coché la case « For improved security, only allow Windows Hello sign-in for Microsoft accounts on this device« .

J’ai donc désactivé l’option, fermé les settings puis réouvert : paf, l’option password était réapparu.

Désactiver l’expiration du mot de passe.

Ouvrez le Group Policy Editor (Executer puis, « gpedit.msc ») et

PS : Astuce, si vous êtes sur Windows 10 ou 11 et que vous voulez activer le Group Policy Editor, dans une invite de commande ouvert en Admin (important), entrez ces deux commandes une par une :

BAT (Batchfile)
FOR %F IN ("%SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~*.mum") DO (DISM /Online /NoRestart /Add-Package:"%F")
FOR %F IN ("%SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~*.mum") DO (DISM /Online /NoRestart /Add-Package:"%F")

Bref, une fois le Group Policy Editor ouvert, allez dans

Computer Configuration -> Windows Settings -> Security Settings -> Account Policies -> Password Policy. 

Sur la droite vous aurez l’option « Maximum password age » qui est normalement à 42 jours, il faudra la mettre à 0, tout simplement.

Puis, on ne sait jamais, on va vérifier au passage que l’user a bien les droits de logon as service. Ca serait con quand même.

Toujours dans le même Group Policy Editor, allez dans

Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> User Rights Assignement

Vérifiez que votre utilisateur est bien enregistré dans l’option « Log on as a service ».

Réactiver la validité du mot de passe

C’est la partie la plus simple. Déconnectez vous de votre session avec un bon logout des familles, et reconnectez vous pour cette fois ci avec votre mot de passe.

Et paf. La validité du mot de passe a été réactivé, et cette fois-ci, elle n’expirera plus. Le service en question ne m’a plus embêté et a bien accepté le login de mon compte Windows.

Catégories
Tutos

Installer un serveur FTP sur debian

Easy commandes pour easy life. Voici comment créer rapidement un serveur ftp sur debian sans docker (héhé ca aurait été la solution la plus facile pourtant)..

Ici, on va utiliser pure-ftpd pour sa simplicité de configuration.

Installation

Bash
sudo apt-get install pure-ftpd pure-ftpd-common

Passez root pour la suite de la configuration, ou rajoutez sudo au début de chaque commande, vous connaissez la chanson :

Bash
sudo su

Ensuite on va sécuriser un ptit peu en créant un groupe isolé pour lancer pure-ftpd

Bash
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser

Désactivation de l’authentification par PAM

Bash
echo 'no' > /etc/pure-ftpd/conf/PAMAuthentication
echo 'yes' > /etc/pure-ftpd/conf/DontResolve
cd /etc/pure-ftpd/auth/ && ln -s ../conf/PureDB 50puredb

Création de notre premier user FTP

Pour la suite de l’exercice, on va créer un user nommé « painteau », dont le repertoire ftp racine sera « /home/painteau/ftp/ ». Adaptez au besoin.

On va créer le repertoire racine ftp de l’user, donner les droits au groupe ftp (et oui sinon ca va être dur d’y avoir accès) et enfin ajouter cet user dans la base de données de pure-ftpd

Bash
mkdir /home/painteau/ftp/
chown -R ftpuser:ftpgroup /home/painteau/ftp/
pure-pw useradd painteau -u ftpuser -g ftpgroup -d /home/painteau/ftp/

Vous serez alors invités à renseigner un mot de passe de votre choix pour l’accès ftp.

Pour vérifier que tout s’est bien passé :

Bash
cat /etc/pure-ftpd/pureftpd.passwd

Vous devriez alors voir votre user suivi du hash de votre mot de passe choisi.

C’est ok ? Plus qu’à finaliser la création de l’user en l’intégrant maintenant à la base de données pure-ftpd

Bash
pure-pw mkdb

Une fois terminé, on restart le deamon ftp pour prendre en compte tout notre bazar :

Bash
/etc/init.d/pure-ftpd restart

Et voilà c’est terminé !

On peut aller un peu plus loin, avec quelques commandes intéressantes, comme par exemple check la liste des user avec :

Bash
pure-pw list

changer le mot de passe d’un user existant avec :

Bash
pure-pw passwd painteau

ou simplement le delete :

Bash
pure-pw userdel painteau
Catégories
Tutos

Add Portainer Edge Agent to Synology

To add the Portainer Edge Agent to your synology NAS

Bash
docker run -d \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /volume1/@docker/volumes:/var/lib/docker/volumes \
-v /:/host \
-v portainer_agent_data:/data \
--restart always \
-e EDGE=1 \
-e EDGE_ID=YOURSECRETID \
-e EDGE_KEY=YOURSECRETKEY \
-e CAP_HOST_MANAGEMENT=1 \
--name portainer_edge_agent \
portainer/agent
Catégories
Tutos

Add Portainer Edge Agent to Docker Desktop Windows 11

If you want to connect your portainer to a Portainer Server, you will have to adapt your code to windows

Bash
docker run -d \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
--restart always \
-e EDGE=1 \
-e EDGE_ID=YOURID \
-e EDGE_KEY=YOURKEY \
-e EDGE_INSECURE_POLL=1 \
--name portainer_edge_agent \
portainer/agent:latest
Catégories
Tutos

Installer un serveur Jamulus sur Debian 10

Des semaines de confinement ne vous empêcherons plus de jammer avec vos collègues musiciens. Jamulus est un petit soft vous permettant de jouer avec eux (ou d’autre musiciens inconnus) avec une latence faible, tel un discord optimisé latence. Beaucoup de serveurs sont publics, mais peut-être voulez vous garder votre intimité ?

Alors même si un petit serveur Jamulus est rapide à lancer sous Windows (il est inclus dans le setup), peut-être certains d’entre vous souhaitent un serveur tournant 24h/24 sur un Linux, ou tout simplement ne pas utiliser la connexion, squattée par 2 enfants en mal de Disney+.

Voici donc un petit tuto pour vous expliquer comment installer un serveur sur une Debian 10

Préparatifs

Alors il va falloir vous connecter en root pour installer des packages, puis créer un utilisateur, le rajouter au groupe des sudoers, puis vous loger avec. Si vous avez un autre utilisateur, n’hésitez pas à l’utiliser et modifier le tuto en conséquence 🙂

Bash
apt-get update
apt-get upgrade
apt-get install build-essential gcc libssl-dev 
apt-get install make libpcre3-dev git 
apt-get install jackd qjackctl openjdk-8-jdk fakeroot

adduser jamjam
sudo adduser jamjam sudo
su - jamjam
sudo whoami

Setup

Jusque là, rien de nouveau et de très compliqué. Lançons donc maintenant le cœur du sujet. Toujours log avec cet utilisateur :

Bash
mkdir /home/jamjam/jam && cd /home/jamjam/jam
git clone https://github.com/corrados/jamulus
cd jamulus/distributions/ && ./build-debian-package.sh
cd /home/jamjam/jam/ && ls

Il faut à ce moment check votre version de Jamulus. La mienne est une 3.4.7 à l’heure où j’écris ces mots. Du coup installons le fichier .deb :

Bash
sudo dpkg --install jamulus_3.4.7_amd64.deb
sudo apt-get install -f
sudo dpkg --install jamulus_3.4.7_amd64.deb

Alors ici j’ai TOUJOURS du le faire 2 fois car la première il me mettait certains paquets en erreur. N’hésitez donc pas à le refaire après le apt-get install -f si il a généré une erreur.

Maintenant on veut lancer le service au démarrage, puis lancer le dit service. Repassez root, puis :

Bash
sudo cp /home/jamjam/jam/jamulus/distributions/jamulus-server.service /usr/lib/systemd/system/jamulus-server.service
systemctl enable jamulus-server.service
systemctl start jamulus-server.service

Voilà ! Le serveur doit être opérationnel ! Il vous suffit d’ouvrir le port 22124 UDP vers votre serveur si vous êtes derrière une box ou un routeur, ou a rajouter ca dans vos iptables.

Vous pouvez delete l’user que on a créé, et les dossiers téléchargés. Enjoy !

MAJ :

Pour les plus fenéants (ou les plus malins), il y aussi un docker pour ça :

Bash
docker run -d --name jamulus \
-e TZ="Europe/Paris" \
-p 22124:22124/udp \
-v /home/jam:/jam \
grundic/jamulus -n -s -p 22124 -l /jam/jamulus.log -w "Welcome to Jamulus server."
Catégories
Tutos

Ajouter la prise en charge du RTMPS à un serveur NGINX RTMP

Depuis l’abandon par Facebook Live du RTMP pour son homologue sécurisé RTMPS, le module RTMP de NGINX ne fonctionne plus pour renvoyer son flux vidéo sur Facebook. Et Twitter va peut-être suivre la même voie….

Il existe un moyen très simple de créer un proxy sécurisé sur son serveur Debian ou Windows afin d’encapsuler les données dans le protocole sécurisé, puis de le renvoyer vers les serveurs Facebook ou Twitter. Et voici comment faire.

L’idée est d’installer stunnel (https://www.stunnel.org/downloads.html sur Windows):

Bash
apt-get install stunnel4 -y

Sur linux, il va falloir l’activer en modifiant le fichier « /etc/default/stunnel4 » :

Bash
nano /etc/default/stunnel4

Ajoutez ou modifier la ligne :

Bash
ENABLE=1

Ensuite, créez / modifiez le fichier stunnel.conf (sur Windows il se trouve dans le dossier C:\Program Files (x86)\stunnel\config)

Bash
nano /etc/stunnel/stunnel.conf

Ajoutez y cela :

Bash
pid = /var/run/stunnel4/stunnel.pid
output = /var/log/stunnel4/stunnel.log

setuid = stunnel4
setgid = stunnel4

socket = r:TCP_NODELAY=1
socket = l:TCP_NODELAY=1

debug = 4

[fb-live]
client = yes
accept = 1936
connect = live-api-s.facebook.com:443
verifyChain = no

[twitter]
client = yes
accept = 1937
connect = fr.pscp.tv:443
verifyChain = no

Pour Windows, il suffit juste de rajouter cela :

Bash
[fb-live]
client = yes
accept = 1936
connect = live-api-s.facebook.com:443
verifyChain = no

[twitter]
client = yes
accept = 1937
connect = fr.pscp.tv:443
verifyChain = no

Enregistrez puis faites en sorte de démarrer stunnel au démarrage puis redémarrez le service :

Bash
systemctl enable stunnel4.service
systemctl restart stunnel4.service

Pour Windows, dans le dossier « stunnel » du menu Démarrage, cliquez sur « Service Install ». Le service Windows se chargera alors au démarrage.

Voilà ! Il n’y a plus qu’à changer votre fichier de configuration de NGINX ! Voici quelques exemples d’applications :

Bash
application live_facebook {
live on;
record off;
push rtmp://127.0.0.1:1936/rtmp/VOTRE_KEY_FACEBOOK;
}
Bash
application live_twitter {
live on;
record off;
push rtmp://127.0.0.1:1937/x/VOTRE_KEY_TWITTER;
}
Catégories
Tutos

Comment supprimer le renouvellement d’un certificat SSL Let’s Encrypt

Et bien voilà le premier billet tuto / astuce !

Hier j’ai du réinstaller ce blog et j’ai déménagé de serveur. Il me fallait donc refaire des certificats SSL sur le nouveau serveur, mais surtout, supprimer le renouvellement prochain depuis mon ancien serveur.

Pour cela j’ai donc utilisé la commande suivante :

certbot delete --cert-name MyDomain.tld

Pas besoin de revoke préalablement, le script s’en charge !