Il est temps d’abandonner traq

Dès l’installation de mon premier serveur j’ai voulu mettre en place un trac pour stoker mes bidouilles. Mon chois est tombé sur Traq.io que j’ai aussi utilisé, un peu, de manière professionnel, essentiellement la partie wiki.

Le problème c’est qu’au fil du temps le produit s’est complexifié et le développeur est tombé dans le travers classique de PHP c’est à dire les frameworks. On arrive à la situation d’avoir à installer beaucoup de logiciel que l’on ne peut maintenir et que l’on ne peut correctement auditer. Je pense exactement la même chose de Symphony. Franchement c’est plus une source de problème qu’un vrai gain en développement. En fait Php devrait se concentrer uniquement sur une interface REST et système d’habilitation. C’est ce que j’avais fait sur mon outillage de maquettage en utilisant Jtable.org et en déplaçant la logique entreprise et la partie RBAC directement dans la base de données mysql. Ce qui faisait peu de PHP mais  bien testé et très stable.

Donc voilà le temps de mettre en place la redirection et de supprimer le trac et, et les dépôts maintenant vous retrouverez mes machins directement sur github

Comment se sortir des problème d’Adorcam

Cet Article évoluera au fil des avancées (qui seront lentes)

En fait je pense avoir fait vraiment fausse route,

Le problèmes d’Adorcam est que le serveur P2P (le Broker) situé aux états unis (chez AWS) par moment ne répond plus ou répond de manière erronée ce qui entraîne les déconnexions des caméras. Il est possible de reconnecter les caméras c’est un processus assez aléatoires mais ça peut marcher j’ai réussi à avoir un fonctionnement pendant 2 minutes avant que ma caméra ne se réinitialise comme une grande.

Le premier écueil est la difficulté de lecture du QR-Code sur le téléphone , la cam doit faire un Bip et le témoin lumineux changer de couleur et passer en bleu fixe si c’est le cas vous avez la connexion Wifi. Puis le voyant doit clignoter en rouge rapidement c’est la phase de connexion. Le contenu du QR Code est le suivant :

{"ssid":"Votre_SSID-2,4Ghz","pd":"Votre Clé","t":"Un Token Numérique","c":33}

le code 33 est le code pour la france.

En configurant un hotspot sur mon linux j’ai pu tracer le dialogue d’initialisation.

  • Après la lecture du QR/Code la caméra se connecte au Whifi et fait un échange DHCP pour prendre une adresse IP
  • Puis elle fait une connexion cryptée au serveur root.xmitech.net (j’ai des erreurs sur cette connexion)
  • s’en suit un dialoque avec dev.eu.adorcam.com
  • là le Wifi coupe et remonte
  • on a une connexion vers 18.157.235.36 (ec2-18-157-235-36.eu-central-1.compute.amazonaws.com)
  • en parallèle nouvelle connexion à dev.eu.adorcam.com
  • et la connexion à mqtt.us.xmitech.net (le broker mqtt)
  • On voit la « connect command » avec le broker qui est acceptée
  • puis une « Subscribe Request » à topic/10001/wake/120022100B39 où l’on reconnait la chaîne de caractères qui est inscrite sur la caméra, c’est son identifiant unique.
  • Là le serveur amazon envoie deux paquets de retransmission (en mode push)
  • et la caméra plante avec le voyant étant passé brièvement au violet.

Il semblerait que le bégaiement du serveur Amazon et la séquence suivante soit la cause du plantage de la caméra, qui revient à sont cycle de lecture du QR Code.

811 2026-03-23 15:28:13,624691655 ec2-18-157-235-36.eu-central-1.compute.amazonaws.com 10.42.0.20 TCP 70 12308 → 59492 [PSH, ACK] Seq=35 Ack=155 Win=27872 Len=16 10.42.0.20
812 2026-03-23 15:28:13,624792928 ec2-18-157-235-36.eu-central-1.compute.amazonaws.com 10.42.0.20 TCP 70 [TCP Retransmission] 12308 → 59492 [PSH, ACK] Seq=35 Ack=155 Win=27872 Len=16 10.42.0.20
813 2026-03-23 15:28:13,624823590 ec2-18-157-235-36.eu-central-1.compute.amazonaws.com 10.42.0.20 TCP 70 [TCP Retransmission] 12308 → 59492 [PSH, ACK] Seq=35 Ack=155 Win=27872 Len=16 10.42.0.20

Donc au moins sur la séquence capturée ce n’est pas le Broker qui est en défaut mais à la fois le AWS qui retransmet trop rapidement le paquet et la pile TCP de la caméra qui gère mal cette double retransmission. Mais mon diagnostique est incomplet il se peut que l’erreur soit à chercher dans le dialogue avec dev.eu.adorcam.com.

A noter mqtt.us.xmitech.net correspond au cloud ec2-18-192-177-27.eu-central-1.compute.amazonaws.com

root.xmitech.net est ec2-54-219-47-98.us-west-1.compute.amazonaws.com

et dev.eu.adorcam.com est ec2-18-157-72-216.eu-central-1.compute.amazonaws.com

Comment j’ai redonné du PEP’s à mon Linux

Et un petit billet pour une opération très simple à faire après installation ou en installant une distribution. En général un système qui ne réagit pas correctement par moment est le symptôme d’un engorgement de ressources. Le plus couramment ce sont les ressources disques un coup d’ œil sur la diode d’activité permet de s’en assurer. Si vous n’avez pas de programme gourmand en accès disque qui tourne à ce moment vous pouvez être sur que c’est le swap. Et c’était mon cas j’avais fait une installation classique de Debian sur disque unique et les gros coups de mou que je constatais ont disparu lorsque j’ai déplacé le swap sur un autre disque, qui a l’avantage aussi d’être plus rapide et cerise sur le gâteau sur un autre contrôleur.

Donc à retenir l’installation sur disque unique lorsque l’on en a plusieurs n’est pas la plus optimale et si vous avez un SSD et des HD classiques mettez le système sur SSD et le swap sur  HD classique votre SSD durera plus longtemps.

Abuseipdb + Nftables = abuseipdb2nftable

Je viens de finir mon premier « programme go », en fait ce n’est jamais complètement fini mais ça marche.

Pour ceux qui ne connaisse pas Abuseipdb c’est un service où des milliers de sites, à travers de l’utilisation de fail2ban ou d’autres système et firewall, rapportent les adresses IP dont ils ont détecté des attaques. Une grosse base de données d’adresses qui ne vous veulent pas du bien, avec plus de 100000 signalisation journalières.

Mon bout de code a pour fonction d’aller récupérer une liste des IPS les plus nocives à travers l’API d’Abuseipdb pour les bloquer.  En créant tout le nécessaire dans nftable

Pour les curieux « Read the Source Luke » c’est sur Github

Résultat, les comptes gratuit d’Abusipdb ne permettant de récupérer que 10000 adresses au plus voilà ce que je constate sur 10000 adresses ip en une journée je bloque presque 5000 paquets. Une broutille.

Nftable Conntrack sur trafic sortant

Ça m’aura bouffer un max de temps et pourtant c’était simple.

Depuis plus d’un an j’étais inquiet de voir des connexions sortant sur mon serveur vers des ports et des adresses inconnues. Donc pour éviter les dégats je listait et dropait ces paquets.

Le deuxième temps de la brasse a été l’utilisation de pctpdump et de auditd pour essayer de coincer le process coupable sans jamais rien obtenir de probant. Bien sur ça m’a poussé à faire un ménage sérieux sur la machine. Et alors que j’ai déjà lu une bonne centaine de fois mes logs …

2025-06-29T01:46:57.611976+02:00 vps kernel: [2367637.155868] IN= OUT=eth0 SRC=137.74.47.15 DST=61.230.109.100 LEN=1492 TOS=0x00 PREC=0x00 TTL=64 ID=62010 DF PROTO=TCP SPT=443 DPT=64105 WINDOW=501 RES=0x00 ACK URGP=0

Je me suis exclamé mékilécon le premier paquet d’un connexion doit avoir les flags SYN,ACK et là je n’ai que des ACK -> ce ne sont donc pas des nouvelles connexions et Conntrack doit se baser sur les séquences et là probablement que l’on a une répétition de l’envoi de l’acquittement d’un paquet.

Donc je ne me suis pas fait poutrer et ma machine n’est pas utilisée pour emm… le monde. Franchement c’est rassurant.

ehci_hcd should always be loaded before uhci_hcd not after

Bon j’avais l’erreur de l’objet sur ma Debian Trixie avec comme effet un scanner plutôt lent.

Après avoir cherché sur le net des solutions aucune ne me satisfaisait vraiment. Donc j’ai creusé et je suis tombé sur les softdeps . (man 5 modprobe.d)

La solution à affiner est de créer un fichier dans /etc/modprobe.d moi je l’ai appelé ehci_hcd.conf

dans ce fichier j’ai mis les lignes :

#devrais forcer le chargement d'EHCI avant OHCI 
softdep ehci_hcd post: ohci_hcd uhci_hcd
softdep ohci_hcd pre: ehci_hcd
softdep uhci_hcd pre: ehci_hcd

un depmod -a suivi de update-initramfs -u et le tour est joué.

En fait le premier softdep ne suffisait pas je n’ai pas creusé mais il devait y avoir un jeu de dépendances qui bloquait, peut être le fait d’imposer le chargement ohci_cd avant uhci_cd. Donc j’ai bétonné avec les deux autre lignes.

Je trouve la solution assez élégante même si pour l’instant c’est un peu brut de fonderie. En tout cas ça fait le job.

 

 

 

Souvenirs: ma première installation Linux

Depuis maintenant un certain temps je suis fidèle à Debian, en gros depuis Debian Woody avec ,quelques infidélité, et je m’en porte bien. Debian Stable sur mon VPS et mon Raspberry pi zéro et Debian testing sur mon poste de travail.

Mais mon aventure Linux a commencé peu de temps après avoir remis en service une sparcstation, j’ai eu l’occasion de mettre la main sur une tour HP avec un vrai 386 .. et sur les conseils du gourou de la boîte (un coucou à Philippe Cabioch) j’ai installé une des premières distribution Linux Yggdrasil, et j’avais trouvé ça sympa. C’était ma machine labo pour mettre au points des scripts pour Bull DPX2 et DEC. Jusqu’à ce que j’ai la main sur des RS6000 de chez IBM. Et oui on est dans les année 90.

La machine est passée ensuite sous Slackware et je ne sais ce qu’elle est devenue après mon départ.

Plus tard, ayant quitté le domaine informatique, et pour maintenir mes compétences j’ai acheté Linux Magazine et j’ai testé un de leur CD c’était donc une Debian Woody, à qui lui a succédé une red hat que j’ai cassée plusieurs fois ce qui m’a profondément dégoutté des système RPM. Le moment était venu d’aller plus loin et ça a été la construction d’un Linux From Scratch. Je recommande chaudement l’exercice. Par contre maintenir dans le temps une LFS c’est contraignant et au bout d’un certain temps on perd du fun. Donc j’ai eu ma période Gentoo. Qui s’est achevée avec un gros crash répété sur plusieurs mise à jour et franchement je n’avais pas le temps à ça ne faisant du bricolage info que les soirs.

D’où un retour à Debian … qui à partir de Jessie est devenu ma référence. Un système qui ne casse pas, qui est suffisamment performant pour tenir sur des petites config et apporte un niveau de sécurité correct.

Où trouver les fichiers .klt pour syslinux ou lilo / where to find .klt file for syslinux or lilo

Grosse partie de plaisir pour adapter le keymap de sysconfig sur Debian Trixie.
En fait une grande partie de la documentation est dépassée et l’utilitaire keymap-lillo.pl est souvent une version qui ne fonctionne pas, il faut trouver une version adapté dans repo syslinux j’ai trouvé  un bon/good keytab-lilo sous forme d’un fichier texte mais ça reste encore du boulot pénible le paquet kbd ne fournissant pas les keymap.

La voie de la simplicité est sur ce repo où on trouve Les fichiers .ktl/the .ktl files.

Voilà peut être gagnerez vous deux heures de recherches à vous arracher les cheveux.

les bot d’OpenAI et de Meta me saturaient le serveur

Depuis un certain temps les traces du serveur étaient devenues inexploitables, et donc avec le risque de laisser passer une vraie attaque, et ça à cause des bot d’OpenAI et Meta qui se mettaient à délirer et à pilonner le serveur avec des requêtes avec la chaîne . »atom » répétée un certain nombre de fois dans la query string.

Ç’aura été l’occasion de replonger dans les paramétrage de lighttpd et de fail2ban, pour les mettre à jour, les simplifier et les rendre plus maintenables et bien sur durcir la durée de rétention du jail recidive.

Sur le principe au niveau fail2ban j’ai une règle qui porte sur les erreurs 40x (au lieu de plusieurs) et au niveau lighttpd une erreur 403 est générée lorsque la chaîne fautive et détectée. Pour que les bot qui balayent systématiquement l’internet à la recherche de faille soient moins présent une règle lighttpd passe en 403 les accès sur un domaine non admis, tant pis pour les script kiddy et les chercheurs en sécurité mais ils me gavaient grave, voir passer 10 fois par jour les mêmes tests argh …

A l’ocassion aussi j’ai nettoyé la base sqlite de fail2ban (requête VACUUM;)  ce qui l’a fait passer de plus de 500Mo à une petite dizaine. Toujours ça de gagner.

On peut en résumé dire que j’ai appliqué les deux règles :
– simplifier
– diminuer la surface d’attaque

Suis je serein ? non mais ayant baissé le niveau de bruit dans les logs je me sens plus prêt pour réagir en cas de nouvelle attaque. Dans tous les cas un serveur sur Internet demande un peu d’attention journalière.