Je bosse en ce moment sur une petite API pour un usage ludique au bureau (j’expliquerais ce que c’est une prochaine fois), et ça m’a inspiré une courte note sur comment générer un token sécurisé en perl.
Pour générer des chaînes de caractères en perl, il existe l’excellent String::Random. Il combine plusieurs méthodes mais elles peuvent s’avérer pauvres pour générer un token, car celui-ci doit :
être une suite aléatoire de caractères alphanumériques
avoir un pattern dynamique
Avoir un pattern dynamique, ça veut dire que la séquence ne doit pas se répéter même si les caractères sont aléatoires, par exemple:
Majuscule-minuscule-chiffre-minucule...
C’est un pattern statique : les caractères auront beau être aléatoires, la suite restera la même. Ce serait donc mieux si le pattern était également aléatoire.
Pour répondre à cette problématique, j’ai combiné la méthode randpattern à la méthode randregex.
randpattern renvoie une chaîne de caractère définie par un pattern respectant :
c : tout caractère latin en minuscule
C : tout caractère latin en majuscule
n : tout chiffre
. : n’importe lequel des trois précédents
Par exemple :
my $s = String::Random->new();
$s->randpattern("cCn"); # renvoie jR4, sK1, pF3...
Utiliser seulement randpattern revient à utiliser un pattern statique puisqu’écrit en dur.
randregex renvoie une suite de caractère aléatoire qui sont choisis dans la regex donnée en argument. Par exemple :
my $s = String::Random->new();
$s->randregex('\d\w\d{5}'); # renvoie 5Z61258, 8R46964, 6l14705...
Les lettres pouvant être majuscules ou minuscules, c’est presque aléatoire. Mais en combinant les deux ainsi :
my $s = String::Random->new();
$s->randpattern($s->randregex('[CcnCn]{20}'));
J’obtiens donc une suite réelement aléatoire de 20 caractères, puisque pris aléatoirement dans l’ensemble CcnCn, et utilisés ensuite par randpattern pour mixer ce pattern afin de cracher le token voulu :
S5eYwWj30MWXEZ4FmWmr
1BW93BAh9ueCsYIY2js7
vW9ytOPVaG571BK40Ove
J491kSRwn9Wh3ZoRZS9J
0LQoVwF512GR4mcLAZ86
Cela permet des suites aléatoires et dont le pattern est dynamique : par exemple, le premier caractère est parfois un chiffre, parfois une majuscule, parfois une minuscule.
Gudgeon is a caching/blocking DNS proxy server. What sets Gudgeon apart is the ability to segregate machines, subnets, and IP ranges into different groups that all receive different blocking rules. The motivation for Gudgeon comes from the proliferation of devices on my home network that belong either to outside entities (Google, AT&T, Amazon), kids, or unwise adults. Different groups, classes of user, and devices need different blocking rules.
Take, for example, a user who has shown persistent inability to avoid internet scams. You can assign that user's machine(s) to group(s) that block more suspicious DNS requests. On the other hand you might want to allow a device like a Google Home or Alexa unit to have full access to the internet except for tracking/advert websites. You might want to create extensive blocklists to protect kids who use the internet from their devices.
For all of these reasons Gudgeon has been created to allow more flexibility in host-based DNS blocking.
Description
openBalena VPN augments an OpenVPN server with the following components/features:
open-balena-connect-proxy is a http connect proxy that handles connections through the vpn to services on connected devices, used by external services such as balena-proxy
open-balena-vpn-api which consists of an internal API for handling authentication and tracking device state, and spawns openvpn server instances
haproxy used for balancing new connections between openvpn instances
libnss-openvpn is used to handle dns lookups of devices for connections via open-balena-connect-proxyExcel est un outil fantastique pour organiser et travailler sur des données, mais également pour les présenter. Il est notamment possible de réaliser des graphiques professionnels qui se mettront à jour directement lorsque vous changez vos données. Dans ce tutoriel, je vous donne tous les outils pour créer un graphique et le présenter de manière claire.
Chaque minute, nombreuses sont les tentatives d'intrusion sur l'ensemble des ordinateurs connectées à Internet. Parmi les attaques les plus virulentes, il y a bien sûr les tentatives d'accès SSH, l'exploitation de failles de sécurité sur des services Web (Wordpress, PhpMyAdmin ...) et l'exploitation des failles de sécurité sur des services contenant