Auteur/autrice : starmate

19 août 2018 /

Pour sécuriser l’accès à l’édition du Grub et le démarrage de la distribution GNU/linux, nous allons voir comment paramétrer Grub pour qu’un login et un mot de passe soit systématiquement demandé au démarrage.

1. Création d’un mot de passe chiffré
grub-mkpasswd-pbkdf2

Cette commande te demande interactivement un mot de passe, puis génère un hachage PBKDF2 très sécurisé (bien plus résistant que l’ancien MD5):

Le hachage PBKDF2 du mot de passe est grub.pbkdf2.sha512.10000.3B267CE5F2E6451530863695C434B6388DE36E5FBDB7619F21A956F4ED98D907A082306EDC6FD56CF7B879BBA86BE03F141723579ABC9F4D3CF2C39265D1B81A.757509B33EC2C5F693C674FB9420360597B2736730CE9EE008A71BABC32A920950DA15A27C2FE96E1F950CC65E7A75B2636F92059F70EA5F0ADB4FBB15935AC8

Copie uniquement la partie après grub.pbkdf2.sha512. (tout le long string hexadécimal).
2. Édition du fichier de configuration GRUB
sudo vi /etc/grub.d/00_header

On ajoute à la fin du fichier ces 4 lignes, en déclarant le login que l’on souhaite ainsi que le hachage généré au début:

set superusers="starmate"
password_pbkdf2 starmate grub.pbkdf2.sha512.10000.3B267CE5F2E6451530863695C434B6388DE36E5FBDB7619F21A956F4ED98D907A082306EDC6FD56CF7B879BBA86BE03F141723579ABC9F4D3CF2C39265D1B81A.757509B33EC2C5F693C674FB9420360597B2736730CE9EE008A71BABC32A920950DA15A27C2FE96E1F950CC65E7A75B2636F92059F70EA5F0ADB4FBB15935AC8

Notes importantes :

  • set superusers= »starmate » : définit l’utilisateur autorisé à accéder au menu GRUB complet et aux commandes d’édition.
  • password_pbkdf2 starmate <hachage> : associe le hachage au superuser.
  • Tu peux avoir plusieurs superusers : set superusers= »starmate,autreuser ».
3. Reconstruction du fichier GRUB
sudo update-grub

Il n’y a plus qu’a redémarrer (attention, votre clavier sera probablement en QWERTY lors de la demande du mot de passe)!

Pense à noter ton mot de passe en disposition QWERTY (ex. si ton mot de passe contient « a », c’est la touche « q » physique).
11 août 2018 /
1. Lister les règles iptables avec numéros de ligne
iptables -L -n --line-numbers

Explication :

  • -L : liste les règles.
  • -n : affiche les IP en numérique (pas de résolution DNS, plus rapide).
  • –line-numbers : ajoute le numéro de chaque règle (indispensable pour la suppression).

Tu cherches la chaîne utilisée par Fail2Ban (ex. f2b-sshd, f2b-sshd-ddos, f2b-recidive, etc.) et tu repères le numéro de ligne correspondant à l’IP que tu veux libérer.

2. Supprimer la règle qui bloque l’IP (exemple avec la règle n°1)
iptables -D f2b-sshd-ddos 1
Attention : après un redémarrage de Fail2Ban ou un nouveau ban, les règles iptables sont régénérées, donc la suppression manuelle est temporaire.
Au lieu de manipuler directement iptables, on peut utiliser la commande officielle :
Lister les jails
fail2ban-client status
Status
|- Number of jail:      5
`- Jail list:           sshd, apache-auth, apache-badbots, postfix, dovecot
Les noms des jails sont ceux listés après Jail list: (ici : sshd, apache-auth, apache-badbots, postfix, dovecot).Le plus courant est sshd (pour les tentatives de connexion SSH bruteforce).
Comment voir le détail d’une jail spécifique (et vérifier quelle IP est bloquée), ici sshd:
fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     42
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 3
   |- Total banned:     12
   `- Banned IP list:   203.0.113.42 198.51.100.23 192.168.1.100
Tu vois directement les IP actuellement bannies par cette jail.
Pour débloquer une IP (récapitulatif) une fois que tu as le nom du jail (ex. sshd) et l’IP (ex. 203.0.113.42) :
fail2ban-client set sshd unbanip 203.0.113.42
Avec ça, tu peux gérer Fail2Ban proprement sans toucher à iptables manuellement.
11 août 2018 /
1. Méthode Bash pure avec /dev/tcp (la plus légère)
timeout 1 bash -c '</dev/tcp/216.58.207.46/443 && echo Le port est ouvert || echo Le port est fermé' || echo Timeout

Explication :

  • Bash (sur la plupart des distros) supporte nativement les pseudo-fichiers /dev/tcp/hôte/port.
  • </dev/tcp/… tente d’ouvrir une connexion TCP sortante.
  • Si ça réussit → « Le port est ouvert ».
  • Si ça échoue → « Le port est fermé ».
  • timeout 1 limite à 1 seconde pour éviter d’attendre indéfiniment.
  • Le || echo Timeout gère le cas où la connexion timed out (port filtré ou très lent).

À adapter : remplace 216.58.207.46 par l’IP cible et 443 par le port voulu.

2. Avec curl en mode telnet
curl telnet://192.168.0.50:22

Explication :

  • Curl supporte le protocole telnet://hôte:port.
  • Si le port est ouvert → curl se connecte et attend (tu peux taper Ctrl+C pour quitter).
  • Si fermé → message d’erreur immédiat « Connection refused » ou « Couldn’t connect to server ».

Avantage : très visuel, tu vois directement si la connexion passe.

3. Avec curl silencieux + test de code retour
curl -s 192.168.0.50:22 >/dev/null && echo Le port est ouvert || echo Le port est fermé

 

Explication :

  • -s : mode silencieux (pas de barre de progression).
  • >/dev/null : jette toute sortie.
  • && / || teste le code retour de curl :
    • 0 → connexion réussie → port ouvert.
    • Autre → connexion refusée/timeout → port fermé.

Pour ajouter un timeout (recommandé) :

curl -s --connect-timeout 2 192.168.0.50:22 >/dev/null && echo Le port est ouvert || echo Le port est fermé

 

 

 

11 août 2018 /
1. Créer un fichier de 10 Mo (instantané)
dd if=/dev/zero of=10M.bin bs=1024 count=0 seek=$[1024*10]
2. Créer un fichier de 100 Mo (instantané)
dd if=/dev/zero of=100M.bin bs=1024 count=0 seek=$[1024*100]
3. Créer un fichier de 1 Go (instantané)
dd if=/dev/zero of=1G.bin bs=1024 count=0 seek=$[1024*1024]
Explication du principe :

  • count=0 → on n’écrit aucun bloc réel.
  • seek=… → on avance le pointeur de fichier à la taille souhaitée.
  • Résultat : le fichier apparaît comme ayant la taille demandée (ls -lh), mais il n’occupe presque aucun espace physique sur le disque tant qu’on n’y écrit pas vraiment de données (c’est un sparse file).
  • Instantané, même pour des dizaines de Go.

Vérification :

ls -lh *.bin          # Taille affichée
ls -lhS *.bin         # Taille réelle occupée sur disque (très petite)
du -h *.bin           # Espace réellement utilisé
Depuis bash 4+ et dd récent, tu peux utiliser des suffixes directs (plus clair, pas de calcul manuel) :

# 10 Mo
dd if=/dev/zero of=10M.bin bs=1 count=0 seek=10M

# 100 Mo
dd if=/dev/zero of=100M.bin bs=1 count=0 seek=100M

# 1 Go
dd if=/dev/zero of=1G.bin bs=1 count=0 seek=1G

# 10 Go en une ligne
dd if=/dev/zero of=10G.bin bs=1 count=0 seek=10G
Alternative avec truncate (encore plus simple et portable) :
truncate -s 10M 10M.bin
truncate -s 100M 100M.bin
truncate -s 1G 1G.bin
truncate -s 10G 10G.bin
truncate est souvent plus direct et disponible partout.

 

30 juillet 2018 /
1. Sur Linux : afficher le Service Tag / numéro de série
sudo dmidecode -s system-serial-number
Explication :

  • dmidecode lit les informations du BIOS/UEFI (DMI/SMBIOS).
  • -s system-serial-number affiche uniquement le champ du numéro de série (c’est exactement le Service Tag sur les machines Dell).
  • Nécessite sudo car l’accès aux données SMBIOS est restreint.

Alternative si dmidecode n’est pas installé :

cat /sys/class/dmi/id/product_serial
2. Sur Windows : afficher le Service Tag / numéro de série
wmic bios get serialnumber
Explication :

  • wmic (Windows Management Instrumentation Command-line) interroge le BIOS.
  • bios get serialnumber renvoie le numéro de série, qui est bien le Service Tag Dell.
Version PowerShell:
Get-WmiObject win32_bios | Select-Object SerialNumber

ou

(Get-CimInstance win32_bios).SerialNumber