Archives de catégorie : Informatique

L’informatique est un domaine vaste et complexe qui englobe de nombreux aspects. Voici quelques définitions possibles :

Au sens large, l’informatique est la science du traitement automatique de l’information. Cela inclut la conception et le développement de systèmes informatiques, la programmation, la gestion de données, les réseaux informatiques, la sécurité informatique, l’intelligence artificielle, et bien plus encore.

Générateur de mot de passe en Java – complexe et configurable

Générateur de mot de passe complexe et définissable en java

Générateur de mot de passe en Java

Générateur de mot de passe en Java. Le langage java n’est plus à présenter. Ici je vous propose modestement quelques lignes afin de créer un générateur de mot de passe (password) complexe.

Dans cet article, nous allons plonger dans le monde de la programmation en Java pour développer ensemble un générateur de mots de passe robuste. Que vous soyez développeur débutant cherchant à améliorer vos compétences en Java, ou un professionnel de l’informatique soucieux de renforcer la sécurité des applications, ce guide est fait pour vous. Nous aborderons les principes de base de la génération de mots de passe, explorerons différentes méthodes pour créer des mots de passe à la fois forts et uniques, et mettrons en œuvre une solution pratique en Java.

import java.security.SecureRandom;
import java.util.Scanner;

public class PasswordGenerator {

private static final String UPPER = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static final String LOWER = "abcdefghijklmnopqrstuvwxyz";
private static final String DIGITS = "0123456789";
private static final String PUNCTUATION = "!@#$%&*()_+-=[]|,./?><";

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
SecureRandom random = new SecureRandom();

System.out.println("Entrez la longueur du mot de passe:");
int length = scanner.nextInt();

System.out.println("Inclure des caractères majuscules? (o/n)");
boolean includeUpper = scanner.next().equalsIgnoreCase("o");

System.out.println("Inclure des caractères minuscules? (o/n)");
boolean includeLower = scanner.next().equalsIgnoreCase("o");

System.out.println("Inclure des chiffres? (o/n)");
boolean includeDigits = scanner.next().equalsIgnoreCase("o");

System.out.println("Inclure des caractères de ponctuation? (o/n)");
boolean includePunctuation = scanner.next().equalsIgnoreCase("o");

String characters = "";
if (includeUpper) {
characters += UPPER;
}
if (includeLower) {
characters += LOWER;
}
if (includeDigits) {
characters += DIGITS;
}
if (includePunctuation) {
characters += PUNCTUATION;
}

char[] password = new char[length];
for (int i = 0; i < length; i++) {
password[i] = characters.charAt(random.nextInt(characters.length()));
}

System.out

Les mots de passe forts sont la première ligne de défense dans la protection des informations personnelles et professionnelles contre les accès non autorisés. En intégrant le générateur de mots de passe que nous avons développé, vous contribuez à élever le niveau de sécurité et à protéger les utilisateurs de vos applications.

Toutefois, la sécurité est un domaine en constante évolution. Il est crucial de rester informé des dernières tendances et des meilleures pratiques en matière de sécurité informatique. Je vous encourage à continuer d’explorer, de tester et d’améliorer vos compétences en Java et en sécurité des applications.

Test de IA chatGPT : Lumière onde ou particule

Test de IA ChatGPT

Lumière onde ou particule ? Voici sa réponse.

Test de l'IA ChatGPT

Test de IA ChatGPT

J’ai fait une demande à l’IA ChatGPT : Lumière onde ou particule ?

 

La lumière est considérée comme une onde électromagnétique dans le cadre de la théorie classique de la physique, connue sous le nom de théorie de la lumière ondulatoire. Cette théorie décrit la lumière comme une perturbation électromagnétique se propageant dans l’espace à une vitesse spécifique, appelée vitesse de la lumière. Elle est capable de donner des explications sur les phénomènes tels que la réflexion, la réfraction et l’interférence de la lumière.

Cependant, avec l’avènement de la physique quantique au début du XXème siècle, il a été démontré que la lumière pouvait également être considérée comme une particule, appelée photon. Cette description de la lumière comme une particule a permis de résoudre certaines incohérences qui se posaient dans la théorie ondulatoire, tels que le phénomène de photoélectrique ou le diffraction de la lumière.

En résumé, la lumière possède à la fois des propriétés ondulatoires et corpusculaires. Cette dualité onde-corpuscule est l’un des exemples les plus connus de la physique quantique, qui montre que les objets microscopiques peuvent être décrits par des lois différentes de celles utilisées pour les objets macroscopiques

Version 2

La lumière est un phénomène électromagnétique qui peut être considérée sous deux aspects différents : celui d’une onde électromagnétique et celui d’un paquet d’énergie discret appelé photon.

La théorie de la lumière ondulatoire décrit la lumière comme une onde électromagnétique qui se propage dans l’espace à une vitesse constante, appelée vitesse de la lumière. Elle explique les phénomènes tels que la réflexion, la réfraction et l’interférence de la lumière. C’est grâce à cette description ondulatoire que l’on peut comprendre les propriétés de la lumière telles que sa fréquence et son intensité.

En revanche, la théorie de la lumière corpusculaire, avec les travaux de Max Planck, Einstein, entre autres, nous montre que la lumière est aussi également décrite par des paquets d’énergie discrets appelés photons. La propriété particulaire de la lumière est mise en évidence à travers des phénomènes tels que l’effet photoélectrique ou la diffraction de la lumière.

En somme, la lumière est à la fois ondulatoire et corpusculaire, c’est l’une des conséquences de la physique quantique qui démontre que les propriétés d’un objet dépendent du mode d’observation choisi.

 

grub2 – partitions bootable manquante

grub2 et osprober

grub2 osprober

Message d’erreur :

warning: osprober will not be executed to detect other bootable partitions:
check GRUB_DISABLE_OS_PROBER documentation entry

Explication :

Depuis Grub 2.6, la valeur par défaut de GRUB_DISABLE_OS_PROBER est passée de « false » à « true« 

Résolution :

Pour activer os-prober lors de l’exécution de update-grub il faut donc ajouter à /etc/default/grub

GRUB_DISABLE_OS_PROBER=false

puis relancer un update-grub

update-grub

Grub en quelques mots

GRUB2, également connu sous le nom de GRand Unified Bootloader 2, est un gestionnaire de démarrage utilisé principalement dans les systèmes d’exploitation basés sur Linux. Il est la version améliorée de GRUB (GRUB Legacy) et est largement utilisé sur de nombreuses distributions Linux.

Voici quelques points importants à savoir sur GRUB2 :

Gestionnaire de démarrage

GRUB2 est responsable de l’amorçage du système d’exploitation lors du démarrage de l’ordinateur. Il est installé dans le MBR (Master Boot Record) ou le secteur de démarrage de la partition et permet de choisir le système d’exploitation à lancer.

Configuration flexible

GRUB2 utilise un fichier de configuration appelé « grub.cfg » pour déterminer les options de démarrage et la manière dont les différents systèmes d’exploitation sont chargés. Ce fichier de configuration peut être modifié pour personnaliser les options de démarrage, ajouter des entrées supplémentaires, modifier les paramètres par défaut, etc.

Support de plusieurs systèmes d’exploitation

GRUB2 est capable de démarrer différents systèmes d’exploitation, y compris différentes versions de Linux, Windows, macOS, BSD, Solaris, etc. Il détecte automatiquement les systèmes d’exploitation installés sur le disque dur et les ajoute à son menu de démarrage.

Interface utilisateur

GRUB2 propose une interface utilisateur en ligne de commande pour sélectionner les options de démarrage. Il permet également de définir un menu graphique avec des thèmes personnalisés, des images de fond, des couleurs, etc., offrant une expérience plus conviviale.

Fonctionnalités avancées

GRUB2 offre de nombreuses fonctionnalités avancées, telles que le support du chiffrement des partitions, la prise en charge des volumes logiques LVM, le démarrage en réseau (PXE), la gestion des modules, la détection automatique des noyaux Linux, etc.

Dépannage

En cas de problèmes de démarrage, GRUB2 propose des options de dépannage, notamment l’accès à une ligne de commande pour effectuer des réparations manuelles, la restauration de la configuration par défaut, la réinstallation de GRUB2, etc.

Il convient de noter que GRUB2 est un logiciel open source. Il est largement utilisé et maintenu par la communauté Linux. De ce fait, il continue d’évoluer avec de nouvelles fonctionnalités, des correctifs de sécurité et des améliorations apportées par les développeurs et les contributeurs.

MEMO – gestion USB sous GNU/Linux

Avec la plupart des distributions Linux à interface graphique, il existe des outils logiciels permettant de gérer les clés USB. Néanmoins, il est également possible de le faire dans un terminal, avec différentes commandes. Dans cet article, plusieurs points sont abordés :

  • L’identification des fichiers associés à la clé USB et aux partitions ;
  • Le montage manuel des clés USB ;
  • L’identification des points de montage ;
  • Le démontage manuel des clés USB ;
  • Le formatage d’une partition d’une clé USB ;
  • La création d’une clé USB bootable.

 

Identifier des fichiers associés à la clé USB et à ses partitions

Sous Linux, les périphériques sont gérés par des fichiers créés dans le répertoire /dev. Les clés USB n’échappent pas à cette règle. Il est donc nécessaire de connaitre le fichier associé à la clé USB et ceux associés à ses partitions, notamment pour la monter manuellement. Afin de connaitre le fichier associé à la partition d’une clé USB, il faut utiliser la commande fdisk -l.

Cette commande renvoie la liste des disques (disques durs internes, disques durs externes, clés USB,…) connectés à l’ordinateur. Il suffit ensuite de répérer la clé USB (en fonction de sa taille généralement) et noter le fichier associé à la partition de la clé USB (/dev/sdb1 par exemple).

La commande fdisk- l renvoie également le type de fichier de la partition (ou des partitions) des différents disques.

Remarque : un fichier associé à périphérique de stockage est du format /dev/sdX, avec X correspondant à une lettre (a pour le premier périphérique, b pour le deuxième, etc). Chaque partition du périphérique est ensuite associée à un autre fichier dont le nom correspond au nom du fichier associé au périphérique, suivi du numéro de partition. Par exemple, si votre périphérique de stockage est associé au fichier /dev/sdc, la première partition de ce périphérique est associée au fichier /dev/sdc1, la deuxième au fichier /dev/sdc2, etc. Pour une clé USB, il n’y a généralement qu’une partition.

 

Montage manuel d’une clé USB

Avant de monter une clé USB, vous devez créer, avec la commande mkdir, un répertoire de montage (répertoire qui vous permettra de naviguer dans la clé USB). Ce répertoire peut être créé dans le dossier /mnt de Linux (prévu pour accueillir les points de montage de différents systèmes de fichier) ou dans le dossier /media (prévu pour accueillir les points de montage des périphériques externes).

Par exemple : mkdir /mnt/usb

Vous pouvez maintenant monter la clé USB avec la commande mount, prenant en paramètre le fichier du répertoire /dev associé à la partition à monter et le répertoire de montage.

Par exemple, pour monter la clé USB associée au fichier /dev/sdc1 dans le répertoire /mnt/usb : mount /dev/sdc1 /mnt/usb

 

Identifier le point de montage d’une clé USB

Dans le cas d’une clé USB montée automatiquement, il est possible de connnaitre le point de montage d’une clé USB (et des autres périphériques) avec la commande lsblk. Vous pouvez utiliser l’option -o suivie du nom de colonnes pour avoir plus d’informations : lsblk -o model,name,type,fstype,size,label

Démontage manuel d’une clé USB

La commande umount permet de démonter une clé USB. Elle prend en paramètre le répertoire de montage de la clé USB.

Par exemple : umount /mnt/usb (pour démonter une clé USB montée dans le répertoire /mnt/usb).

 

Formatage d’une partition d’une clé USB

Le formatage est souvent utilisé comme synonyme de suppression complète des données. En réalité, le formatage consiste à définir un système de fichiers pour une partition (ce qui a pour effet de supprimer les données présentes sur la partition). Pour formater une clé USB, il faut donc choisir un système de fichiers. Plusieurs systèmes de fichiers peuvent être utilisés :

  • FAT32 : compatible Windows, Mac et Linux – stockage de fichiers inférieurs à 4 Go ;
  • NTFS : compatible Windows, Mac (en lecture seule seulement), Linux – pour les systèmes Windows en priorité ;
  • exFAT : compatible Windows, Mac, Linux (avec l’installation du paquet exfat) – pour les fichiers dépassant 4 Go ;

Il est également possible d’utiliser le système de fichiers ext4 de Linux pour formater une clé USB, mais celle ci ne sera utilisable correctement que sur Linux. Il est donc conseillé d’utiliser le système de fichier exFAT.

Une fois que vous avez choisi un système de fichiers, le formatage s’effectue avec la commande mkfs, en passant en paramètre le fichier associé à la clé USB. Vous pouvez aussi préciser un nom à donner à la partition avec l’option -n. Par exemple, pour formater la partition d’une clé USB associée au fichier /dev/sdb1 et en donnant le nom MaCle à la partition :

  • En FAT32 : mkfs.vfat -n MaCle /dev/sdb1
  • En NTFS : mkfs.ntfs -n MaCle /dev/sdb1
  • En exFAT : mkfs.exfat -n MaCle /dev/sdb1

 

Création d’une clé bootable à partir d’un fichier ISO

Avoir une clé USB bootable est toujours utile, soit pour installer un poste ou faire du dépannage. Pour créer une clé USB bootable, vous devez avoir le fichier ISO du système que vous souhaitez installer sur la clé USB et connaitre le fichier associé à la clé USB. Il suffit ensuite d’utiliser la commande dd en précisant le fichier ISO avec l’option if et le fichier associé à la clé USB avec l’option of. Vous pouvez aussi utiliser l’option status=progress pour afficher l’avancement de la création de la clé USB.

Par exemple, pour créer une clé USB bootable associée au fichier /dev/sdc à partir du fichier ISO /home/debian.iso : dd if=/home/debian.iso of=/dev/sdc status=progress

Remarques :

  • Cette commande supprime toutes les données présentes sur le périphérique de stockage. Ne vous trompez donc pas sur le fichier associé à la clé USB.
  • La clé USB s’adapte au système sur lequel est appelé la commande dd : si le poste fonctionne avec un BIOS classique, la clé USB sera bootable en BIOS. Si le poste fonctionne avec un UEFI, la clé USB sera bootble en UEFI.

Bluetooth accélérer la reconnexion sous Debian

Accélérer la reconnexion d’une souris bluetooth sous Debian

Que c’est pénible d’attendre la reconnexion d’un périphérique bluetooth. Voici comment accélérer la reconnexion d’une souris sous Debian.

Logitech MX Anywhere 2 - Souris bluetooth

Pour les périphériques de type input (clavier souris), il peut être intéressant d’accélérer la reconnexion.

 

vi /etc/bluetooth/input.conf

et ajouter le paramètre :

AutoConnectTimeout = 0

 

Pour acheter cette excellente souris Logitech MX Anywhere 2. Souris sans Fil, Bluetooth et 2.4 GHz avec récepteur USB Unifying, Multidispositifs, Suivi Laser sur Toute Surface, 7 Boutons,…

La recherche texte zgrep dans une archive

zgreprecherche texte zgrep dans une archive

zgrep - recherche texte zgrep dans une archive

 

recherche texte zgrep

zgrep est utilisé pour invoquer la commande grep sur des fichiers compactés par compress ou par gzip. Toutes les options spécifiées sont passées directement à grep. Si aucun fichier n’est mentionné, alors l’entrée standard est décompactée si nécessaire et est envoyée à grep. Sinon, les fichiers fournis sont décompactés si nécessaire et sont envoyés à grep.

J’ai du rechercher des actions passées d’un joueur Minecraft, et ce dans les logs du jeu.

J’ai effectuer dans le dossier des logs Minecraft un simple

zgrep 'Nom du joueur' 2020-*

l’action du joueur était en 2020, mais on peux étendre la recherche à tous les fichiers du répertoire, par exemple avec l’extension

zgrep 'texte à rechercher' *.log.gz

pas tester mais pourquoi ça ne fonctionnerai pas ? Vous pouvez bien entendu élargir l’utilisation à d’autre archives, par exemple dans le dossiers des log de fail2ban, où logrotate doit archiver vos logs.

Il est important en administration systèmes de pouvoir recherche une chaine de caractères dans une archive. La gestion des logs par logrotate en est un formidable exemple. Essayez c’est l’adopter.

Merci de me suivre et de partager votre expérience ici

Brother DCP-L3550CDW – Imprimante

Imprimante Brother DCP-L3550CDW

Brother DCP-L3550CDW

Mon avis sur l’imprimante Brother DCP-L3550CDWJ’ai acheté cette imprimante, car j’en avait pas. C’est déjà une bonne raison. Je ne voulais absolument pas de jet d’encre, car c’est lorsqu’on en a besoin que les cartouches sont sèches.
J’avais une autre exigence, celle d’un chargeur de feuilles (50 feuilles) pour le scanner.
Point important, le scanner n’est pas recto-verso via le chargeur, il faut le modèle L3770CDW.

Je me suis donc orienté vers une laser couleur. Le coût n’est pas négligeable mais je pense qu’on en a pour son argent, avec la qualité d’une imprimante laser.

Je vais mettre la suite de mon jugement, car je l’ai depuis 5 jours, et donc pas beaucoup de recul sur non utilisation. Je vous met tout de même un lien à la fin pour l’acheter sur Amazon.

Cette imprimante est assez encombrante avec :
Hauteur : 41 cm
Largeur : 41 cm
Profondeur : 68,50 cm

Installation de l’imprimante

Super simple avec son écran couleurs tactile, la connexion au WIFI (possibilité de WIFI direct, d’Ethernet ou d’USB) comprise à dû me prendre 10 minutes.

La connexion à mon portable sous GNU/Debian 11 n’a posé aucun problème.

J’ai quand même utilisé des drivers plus récent ici : https://support.brother.com/g/b/downloadtop.aspx?c=fr&lang=fr&prod=dcpl3550cdw_eu

Pour ceux qui ont perdu les manuels, c’est ici : https://support.brother.com/g/b/manualtop.aspx?c=fr&lang=fr&prod=dcpl3550cdw_eu

Utilisation de l’imprimante

L’utilisation de cette imprimantes est tout à fait simple et classique. Son écran tactile est un peu petit, mais tout de même très lisible et intuitif. Il facilite grandement l’utilisation de l’imprimante.

 

 

Que ce soit par Wi-Fi, par USB ou via un câble Ethernet que vous souhaitez procéder à sa configuration, c’est très simple. L’imprimante peut être pilotée depuis une tablette ou un smartphone car les protocoles d’impressions mobiles (Airprint, Google Cloud Print) sont très faciles à installer et à utiliser.
Par contre pas de NFC pour cette imprimante.

Les cartouches toner que prend cette imprimante sont de type TN-243 offrant un volume de 1000 pages en couleur et en noir. Généralement, on trouve ce volume commercialisé au prix de 2,8 centimes (euro) en noir alors que le coût est d’environ 9 centimes en couleur, c’est un montant plutôt économique.

Attention le toner présent lors de l’achat sont des toners de basse capacité.

Brother DCP-L3550CDW

Fail2ban – lister et trier les IP bannies

Lister et trier les ips bannies par Fail2ban

Il est utile de connaitre les IPs actuellement bannies par l’excellent Fail2ban.Nous allons lister et trier les ips bannies par Fail2ban avec awk.Fail2ban_logo

 

Pour rappelle cette application permet de définir le nombre de tentative maximum de connexion pour un service donné. Il peux être très intéressant pour des services tel que ssh et son daemon sshd, mais pas que. Je vous laisse vous documenter sur Fail2ban

les ips bannies par Fail2ban

Personnellement j’utilise :

awk '($(NF-1) = /Ban/){print $NF}' /var/log/fail2ban.log | sort | uniq -c | sort -n

cette commande vous renvoi les IP bannies avec leur nombre de tentative. Information importante pour bannir les IP définitivement de l’accès à votre serveur/machine.

Vérifier le fonctionnement de Fail2ban :

fail2ban-client status sshd

retourne le statut de la prison « sshd » (avec le nombre de tentatives échouées et la liste des IP bannies)

sinon le classique

systemctl status fail2ban

doit retourner un Active: active (running) since et une date depuis laquelle Fail2ban est actif.

 

Bonus script  :

#!/bin/bash

# fail2ban-tools.sh : utilitaire multifonction pour auditer les IPs bannies par Fail2Ban
# Usage :
#   ./fail2ban-tools.sh --list      # Liste les IP bannies par prison
#   ./fail2ban-tools.sh --whois     # Affiche les infos WHOIS des IP bannies
#   ./fail2ban-tools.sh --count     # Compte le nombre d'IPs bannies par prison
#   ./fail2ban-tools.sh --help      # Affiche l'aide

list_ips() {
    echo "Liste des IP bannies par prison"
    echo "-------------------------------"
    for jail in $(fail2ban-client status | grep 'Jail list' | cut -d: -f2 | tr ',' ' '); do
        jail=$(echo "$jail" | xargs)
        echo -e "\n[$jail]"
        fail2ban-client status "$jail" | grep 'Banned IP list' | cut -d: -f2
    done
}

whois_ips() {
    echo "Audit WHOIS des IPs bannies"
    echo "---------------------------"
    for jail in $(fail2ban-client status | grep 'Jail list' | cut -d: -f2 | tr ',' ' '); do
        jail=$(echo "$jail" | xargs)
        echo -e "\n[$jail]"
        IPs=$(fail2ban-client status "$jail" | grep 'Banned IP list' | cut -d: -f2)
        for ip in $IPs; do
            echo "IP : $ip"
            whois "$ip" | grep -iE 'OrgName|Country|OrgID|netname' | head -n 5
            echo "---"
        done
    done
}

count_ips() {
    echo "Nombre d'IPs bannies par prison"
    echo "-------------------------------"
    for jail in $(fail2ban-client status | grep 'Jail list' | cut -d: -f2 | tr ',' ' '); do
        jail=$(echo "$jail" | xargs)
        count=$(fail2ban-client status "$jail" | grep -oP '(?<=Banned IP list: ).*' | wc -w)
        echo "$jail : $count IP(s)"
    done
}

print_help() {
    echo "Usage: $0 [--list | --whois | --count | --help]"
    echo ""
    echo "  --list     Liste les IP bannies par prison"
    echo "  --whois    Affiche les infos WHOIS des IP bannies"
    echo "  --count    Compte le nombre d'IPs bannies par prison"
    echo "  --help     Affiche cette aide"
}

case "$1" in
    --list) list_ips ;;
    --whois) whois_ips ;;
    --count) count_ips ;;
    --help|-h|*) print_help ;;
esac

 

Vi et Vim – Chercher et remplacer

Petite note personnelle pour un pense bête sur Vi et Vim

Vi et Vim – Chercher et remplacer

Vi et Vim - Chercher et remplacer

Vi et Vim – Chercher et remplacer

Rechercher « toto » et remplacer par « tata » sans demander à chaque occurrence trouvée :

:%s/toto/tata/g

Rechercher « toto » et remplacer par « tata » et demander à chaque occurrence trouvée :

:%s/toto/tata/gc

 

On oublie pas de quitter et sauvegarder nos modifications avec :

:wq

Voici un exemple d’utilisation de Vi ou Vim pour chercher et remplacer du texte.