March 15 2024, 14:41#

Know your wallet like you built it.

Not everyone is a developer. Not everyone has to be.

WalletScrutiny helps everyday bitcoin users verify whether or not their wallet is truly open-source and secure. Enter your wallet's name to get started.

March 15 2024, 07:33#

Fermer ses applications sur iOS pour économiser la batterie ?

En somme, cela est inutile et c'est même le contraire, cela peut nuire à la batterie.

March 12 2024, 09:00#

Gestion et optimisation de la mémoire sur Linux

Quelques notes sur mon analyse et mes optimisations concernant les problèmes de swapping intensif et des solutions possibles pour tenter de libérer du swap et/ou de la RAM.

Analyse

top

Exécuter top et taper M pour classer les processus en fonction de leur consommation de mémoire.

free

free -h

Optimisation

Lister les paramètres système liés à la gestion de la mémoire virtuelle

ls /proc/sys/vm

Diminuer la valeur de ces deux paramètres peut diminuer le swapping

  • vm.swappiness
  • vm.vfs_cache_pressure

Exemples

sysctl vm.swappiness=5
sysctl vm.vfs_cache_pressure=50

Le paramètre vm.vfs_cache_pressure contrôle la vitesse à laquelle le système libère la mémoire cache d'inodes.

Libérer du swap

Une solution efficace, mais dangereuse, est de démonter/remonter le swap pour le vider. Je dis dangereuse car si la quantité d'espace de swap utilisée est supérieure à la quantité d'espace de RAM libre, cela peut partir en kernel panic sur out of memory.

De manière générale si la quantité de swap utilisée est élevée il vaut mieux s'abstenir de le couper.

En supposant que ce n'est pas le cas

swapoff -a
swapon -a

Libérer le cache de la RAM

Clear PageCache

sync; echo 1 > /proc/sys/vm/drop_caches

Clear dentries and inodes

sync; echo 2 > /proc/sys/vm/drop_caches

Clear pagecache, dentries and inodes

sync; echo 3 > /proc/sys/vm/drop_caches
September 16 2023, 16:14#
Halloween

Mes favoris pour Halloween

Mis à jour le 15/10/2023

Halloween

Musique

Titres

Albums

Compilations YouTube

Films

Séries

Films d'animation/Dessins animés

July 23 2023, 10:14#

Fichier en lecture seule malgré tout

Je suis tombé sur un cas où je ne pouvais écrire dans un fichier malgré que :

  • je sois root
  • le owner du fichier est root
  • les droits positionnés sur le fichier permettent l'écriture (-rw-r--r--)
  • le filesystem est monté avec les droits d'écriture (rw)

J'ai donc d'abord vérifié les ACLs sur le fichier

# getfacl /etc/monfichier.conf
getfacl: Removing leading '/' from absolute path names
# file: etc/monfichier.conf
# owner: root
# group: root
user::rw-
group::r--
other::r--

Tout semblait bon, j'étais un peu pris au dépourvu.

En fait il y avait un attribut positionné sur le fichier pour le protéger de toute suppression/modification. Attribut positionné à l'aide de chattr.

lsattr /etc/monfichier.conf
----i----------- /etc/monfichier.conf

L'attribut i permet de protéger le fichier, même du compte root. Il faut donc le retirer pour pouvoir modifier le fichier.

chattr -i /etc/monfichier.conf

Pour remettre l'attribut et protéger le fichier

chattr +i /etc/monfichier.conf

Le man de chattr précise les attributs

Cet article m'a aidé : https://debian-facile.org/doc:systeme:chattr

Tags : unix linux filesystem

June 16 2023, 19:29#

Résolveurs DNS récursifs ouverts

Fournisseur URL IPv4 IPv6 DNSSEC
FDN https://www.fdn.fr/actions/dns/ 80.67.169.12 2001:910:800::12 True
FDN https://www.fdn.fr/actions/dns/ 80.67.169.40 2001:910:800::40 True
ARN https://arn-fai.net/fr/internet-alternatif/dns 89.234.141.66 2a00:5881:8100:1000::3 True

Tags : dns réseau resolvconf

June 16 2023, 10:24#

Supprimer le mot de passe d'un document PDF (quand on le connaît) à l'aide de PDF Toolkit

Prérequis

apt install pdftk

Usage

pdftk mondocument.pdf input_pw <mot_de_passe> output mondocument_unsecured.pdf

Tags : pdf linux debian sécurité mot-de-passe document

May 28 2023, 16:28#

Configuration Apache, PHP et Let's Encrypt sur FreeBSD

Petite note rapide sur la configuration d'un serveur httpd d'Apache avec PHP et Let's Encrypt pour chiffrer le flux (SSL/TLS).

Prérequis

pkg inst py39-certbot apache24 mod_php80 php80 php80-extensions

Certbot

Générer un certificat avec Certbot

  • example.com
  • www.example.com

Nécessite qu'un enregistrement DNS (A/alias) pointe vers le serveur pour chaque certificat

certbot certonly --standalone -d example.com,www.example.com

Les certificats sont enregistrés dans /usr/local/etc/letsencrypt/live

Configurer le renouvellement automatique des certificats

Le process de renouvellement ne renouvelle que lorsque c'est nécessaire. Donc il peut être exécuté une fois par jour sans problème.

Ajouter dans la crontab de root la ligne suivante pour lancer le process tous les jours à 02h50

50 2 * * * /usr/local/bin/certbot renew --pre-hook "service apache24 stop" --post-hook "service apache24 start"

Les options pre-hook et post-hook permettent de contrôler l'arrêt et le redémarrage du service Apache avant et après le process de renouvellement.

Apache

Création du répertoire des logs Apache

mkdir /var/log/apache
chmod 750 /var/log/apache

Edition de /usr/local/etc/apache24/httpd.conf

ServerName localhost:80
LoadModule rewrite_module libexec/apache24/mod_rewrite.so
LoadModule ssl_module libexec/apache24/mod_ssl.so
LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
Include etc/apache24/extra/httpd-vhosts.conf
ErrorLog "/var/log/apache/httpd-error.log"
CustomLog "/var/log/apache/httpd-access.log" common

Activation de PHP

Ajouter les lignes suivantes dans le fichier /usr/local/etc/apache24/modules.d/080_mod_php.conf

AddType application/x-httpd-php .php
DirectoryIndex index.php index.html

Copie du fichier de configuration php.ini de production

cp -a /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Configuration SSL dans /usr/local/etc/apache24/modules.d/070_mod_ssl.conf

Listen 443
SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES
SSLHonorCipherOrder on
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLProxyProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:/var/run/ssl_scache(512000)"
SSLSessionCacheTimeout 300
SSLOptions +StrictRequire

Exemple de configuration d'un VirtualHost avec SSL dans /usr/local/etc/apache24/extra/httpd-vhosts.conf

# example.com
<VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com
        ServerAdmin postmaster@example.com

        ErrorLog "/var/log/apache/example-error_log"
        CustomLog "/var/log/apache/example-access_log" common

        RewriteEngine on
        RewriteCond %{SERVER_NAME} =www.example.com [OR]
        RewriteCond %{SERVER_NAME} =example.com
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

<IfModule mod_ssl.c>

# example.com
<VirtualHost *:443>
        ServerName example.com
        ServerAlias www.example.com
        ServerAdmin postmaster@example.com
        DocumentRoot "/var/www/example"

        # /
        <Directory "/var/www/example">
                Options Indexes FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>

        ErrorLog "/var/log/apache/example-error_log"
        CustomLog "/var/log/apache/example-access_log" common

        SSLEngine on
        SSLCertificateFile /usr/local/etc/letsencrypt/live/example.com/fullchain.pem
        SSLCertificateKeyFile /usr/local/etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>

</IfModule>

Activation du service

sysrc clear_tmp_enable=YES
sysrc apache24_enable=YES

La directive clear_tmp_enable permet de vider /tmp au reboot. Utile pour supprimer automatiquement les anciens fichiers de session PHP après un reboot.

Démarrage du service

service apache24 start

Test SSL : https://www.ssllabs.com/

Tags : unix freebsd ssl tls http web php

April 21 2023, 15:34#

Compte verrouillé par tally après un trop grand nombre de tentatives en échec

Symptôme

$ su - johndoe
Account locked due to 70 failed logins
Password:
su: incorrect password

Dans /var/log/secure on constate

Apr 21 17:20:59 myhost su: pam_tally2(su-l:auth): user johndoe (20001) tally 70, deny 5
Apr 21 17:21:01 myhost unix_chkpwd[14328]: password check failed for user (johndoe)
Apr 21 17:21:01 myhost su: pam_unix(su-l:auth): authentication failure; logname=janedoe uid=1099 euid=0 tty=pts/1 ruser=janedoe rhost=  user=johndoe
Apr 21 17:21:01 myhost su: pam_sss(su-l:auth): authentication failure; logname=janedoe uid=1099 euid=0 tty=pts/1 ruser=janedoe rhost= user=johndoe
Apr 21 17:21:01 myhost su: pam_sss(su-l:auth): received for user johndoe: 10 (User not known to the underlying authentication module)

Le compte ne semble pourtant pas verrouillé

# passwd -S johndoe
johndoe PS 2023-04-21 1 60 10 -1 (Password set, MD5 crypt.)

La méthode classique pour déverrouiller le compte ne fonctionne pas

# usermod -U johndoe

Il est verrouillé par tally, il faut donc le déverrouiller avec tally..

# pam_tally2 -r -u johndoe

Tags : linux redhat tally pam mot-de-passe

April 18 2023, 09:51#

Effacement sécurisé d'un disque dur avec dd sous FreeBSD

Pour effacer le disque /dev/da1 j'utilise la commande dd combinée avec /dev/urandom pour générer des nombres aléatoires.

Exemple

dd if=/dev/urandom of=/dev/da1 conv=sync status=progress

Par défaut, dd positionne la taille du bloc/secteur à 512. Pour accélérer le process, on peut l'aligner à la taille du secteur physique du disque, qui est de 4096 (stripesize).

Cette information peut s'obtenir à l'aide de diskinfo et camcontrol.

Exemple avec diskinfo

$ diskinfo -v /dev/da1
/dev/da1
    512             # sectorsize
    500107862016    # mediasize in bytes (466G)
    976773168       # mediasize in sectors
    4096            # stripesize
    0               # stripeoffset
    60801           # Cylinders according to firmware.
    255             # Heads according to firmware.
    63              # Sectors according to firmware.
    ST500LM0 12 HN-M500MBB  # Disk descr.
    0322031102F9    # Disk ident.
    umass-sim1      # Attachment
    No              # TRIM/UNMAP support
    Unknown         # Rotation rate in RPM
    Not_Zoned       # Zone Mode

Petit calcul pour comprendre : si on reprend la taille du media en bytes (mediasize in bytes) et qu'on divise par la taille du secteur (sectorsize), on retrouve la taille du media en nombre de secteurs (mediasize in sectors).

$ echo $((500107862016 / 512))
976773168

On peut obtenir d'avantage d'infos sur le disque avec camcontrol identify /dev/da1, mais je vais pas aborder ce sujet dans cette note, on a déjà l'info nécessaire avec diskinfo.

Le paramètre bs de la commande dd permet de paramétrer la taille du bloc/secteur (block/sector size).

Avec cette nouvelle info cela donne

dd if=/dev/urandom of=/dev/da1 bs=4096 conv=sync status=progress

Top, c'est bien plus rapide !

Vu la taille de mon disque (500G), j'ai interrompu le process par manque de temps pour le laisser finir. 309G ont été effacés. Pour ne pas recommencer depuis le début, il me fallait calculer le nombre de secteurs à sauter pour donner un point de départ à dd.

J'ai décidé de repartir à 300G, voici comment j'ai calculé.

Calculer la taille à sauter en bytes

$ echo $((300 * 1024 * 1024 * 1024))
322122547200

Calcul du nombre de secteurs d'une taille de 4096 à sauter

# echo $((322122547200 / 4096))
78643200

Pour reprendre la tâche après interruption, il est possible de définir un nombre de blocs à sauter en sortie avec l'argument oseek.

# dd if=/dev/urandom of=/dev/da1 bs=4096 oseek=78643200 conv=sync status=progress
dd: /dev/da1: end of deviceB, 166 GiB) transferred 16298.003s, 11 MB/s

43453447+0 records in
43453446+0 records out
177985314816 bytes transferred in 16298.896788 secs (10920084 bytes/sec)

Résumons et vérifions le résultat ci-dessus. J'ai un disque de 500G dont j'ai déjà formaté 309G (disons 300).

Le mediasize in bytes est de 500107862016 (466G). Vérifions...

$ echo $((500107862016 / 1024 / 1024 / 1024))
465

Plus précisément 465.76, arrondi à 465 par le Shell et à 466 par diskinfo.

Calcul de la taille restant à effacer

$ echo $((466 - 300))
166

La commande dd nous dit que 166G ont été transférés.

Elle nous dit aussi que 177985314816 bytes ont été transférés, calculons cela encore une fois...

$ echo $((177985314816 / 1024 / 1024 / 1024))
165

Plus précisément 165.76, arrondi à 165 par le Shell et à 166 par dd. On est tout bon !

Tags : freebsd dd cybersécurité hdd disk camcontrol shell

April 16 2023, 22:17#

Save Me (Tidal Waves Remix)

Lien : https://www.youtube.com/watch?v=9ohuEovlsu8

Bruno Martini - AVIAN GRAYS - TRIXL - Mayra

Tags : musique vidéo youtube nostalgie

April 16 2023, 22:00#

Forever Young - Danny Darko ft Julien Kelland (Official Music Video)

Lien : https://www.youtube.com/watch?v=OK7q46tQCNg

Superbe découverte cette reprise du titre Forever Young d'Alphaville

Tags : musique souvenir nostalgie vidéo youtube

April 02 2023, 15:16#

Configuration de ssmtp

Petite note sur la configuration de ssmtp sur FreeBSD

Prérequis

pkg inst ssmtp

Désactivation de sendmail

sysrc sendmail_enable=NO
sysrc sendmail_msp_queue_enable=NO
sysrc sendmail_outbound_enable=NO
sysrc sendmail_submit_enable=NO

Remplacement de sendmail par ssmtp dans le mailer /etc/mail/mailer.conf

#sendmail       /usr/libexec/sendmail/sendmail
#mailq          /usr/libexec/sendmail/sendmail
#newaliases     /usr/libexec/sendmail/sendmail
#hoststat       /usr/libexec/sendmail/sendmail
#purgestat      /usr/libexec/sendmail/sendmail
sendmail        /usr/local/sbin/ssmtp
send-mail       /usr/local/sbin/ssmtp
mailq           /usr/local/sbin/ssmtp
newaliases      /usr/local/sbin/ssmtp
hoststat        /usr/bin/true
purgestat       /usr/bin/true

Configuration de ssmtp /usr/local/etc/ssmtp/ssmtp.conf

mailhub=mail.example.com:465
rewriteDomain=example.com
hostname=host.example.com
FromLineOverride=YES
UseTLS=YES
AuthUser=user@example.com
AuthPass=SecretPassword

Reboot recommandé

Pour tester

mail johndoe@example.com

Tags : freebsd mail ssmtp sendmail smtp

March 27 2023, 10:32#

Lister les paquets installés avec repoquery

Prérequis

yum install yum-utils

Lister les paquets installés avec la version et la source

ui_from_repo ou from_repo

repoquery -a --installed --queryformat='%{name} %{evr} %{ui_from_repo}' | column -t | sort | uniq

Lister les sources des paquets installés

repoquery -a --installed --queryformat='%{ui_from_repo}' | sort | uniq

Ce sujet m'a aidé : https://unix.stackexchange.com/questions/274938/how-to-get-yum-list-output-to-stay-on-one-line-when-getting-output-via-remote

Tags : linux redhat rpm yum repoquery centos

March 17 2023, 14:32#

Red Hat repositories

Lister les repos des paquets installés

yum list installed | grep -oE '@.*$' | sed 's/@//' | sort | uniq

Lister les repositories présentés

subscription-manager repos --list | grep 'Repo ID' | cut -d: -f2 | sed 's/\s*//g' | sort | uniq

Tags : redhat yum subscription-manager

February 17 2023, 08:05#

Bye X201

Une page se tourne, je cède mon ThinkPad X201, après de nombreuses années de loyaux services (et quelques moments pénibles).

Tags : unix laptop lenovo thinkpad linux debian xfce souvenir

October 15 2022, 15:19#

Erreur "mdadm: No arrays found in config file or automatically" après extension d'un volume swap

Pour pouvoir mettre le laptop en veille prolongée, j'ai étendu le volume swap avec lvextend sans l'option -r car elle n'est pas compatible avec le type swap.

lvextend -L +8G /dev/mapper/lvg-swap

Puis pour étendre le swap

swapoff -a
mkswap /dev/mapper/lvg-swap
swapon -a

Au reboot j'ai eu droit à un tas d'erreurs mdadm du type

mdadm: No arrays found in config file or automatically
mdadm: No arrays found in config file or automatically
mdadm: No arrays found in config file or automatically
mdadm: No arrays found in config file or automatically
mdadm: No arrays found in config file or automatically
mdadm: No arrays found in config file or automatically
mdadm: error opening /dev/md?*: No such file or directory
mdadm: No arrays found in config file or automatically
mdadm: No arrays found in config file or automatically

J'ai pas compris le lien entre mdadm et LVM surtout que je n'ai pas configuré de RAID.

L'erreur se produit car l'UUID du swap pour permettre la sortie de veille n'est pas mis à jour dans initramfs.

Et oui, le précédent mkswap a réinitialiser l'UUID.

Pour identifier l'UUID du swap

ls -l /dev/mapper/lvg-swap

Cela m'a renvoyé un lien symbolique vers ../dm-1

J'ai donc listé les disques par UUID et fait le rapprochement avec la cible des liens sur dm-1

ls -l /dev/disk/by-uuid/

Puis j'ai mis à jour l'UUID dans /etc/initramfs-tools/conf.d/resume

Et enfin mise à jour d' initramfs

update-initramfs -u

Tags : linux lvm debian mdadm swap initramfs

October 07 2022, 09:26#

Correct Way of Securing /tmp and /var/tmp in FreeBSD | The FreeBSD Forums

Lien : https://forums.FreeBSD.org/threads/correct-way-of-securing-tmp-and-var-tmp-in-freebsd.30864/post-171745

Sécuriser et monter /tmp et /var/tmp en mémoire (tmpfs)

kldload tmpfs
sysrc -f /boot/loader.conf tmpfs_load=YES
rm -rf /tmp /var/tmp
mkdir /tmp /var/tmp
mount -t tmpfs tmpfs -o rw,nosuid,noexec,mode=01777 /tmp
mount -t tmpfs tmpfs -o rw,nosuid,noexec,mode=01777 /var/tmp

Dans /etc/fstab

# Device Mountpoint FStype Options                       Dump Pass#
tmpfs    /tmp       tmpfs  rw,nosuid,noexec,mode=01777   0    0
tmpfs    /var/tmp   tmpfs  rw,nosuid,noexec,mode=01777   0    0

Tags : freebsd linux unix tmpfs cybersécurité fstab

October 01 2022, 15:27#

Metadata Cleaner

Lien : https://gitlab.com/rmnvgr/metadata-cleaner

Python GTK application to view and clean metadata in files, using mat2 · https://metadatacleaner.romainvigier.fr/

Installation

Debian

apt install metadata-cleaner

FreeBSD

pkg install multimedia/py-metadata-cleaner

Tags : logiciel image photo exif vie-privée metadata anonymisation cybersécurité

September 29 2022, 08:12#

Afficher uniquement la cible d'un lien symbolique avec find

Par exemple, pour lister les liens symboliques sur la racine / et afficher uniquement leur cible :

find / -maxdepth 1 -type l -printf "%p %l\n"

-maxdepth 1 détermine la profondeur de la recherche à un seul niveau pour ne pas rechercher récursivement

-printf pour formater la sortie

%p affiche le nom du fichier/dossier

%l récupère uniquement les éléments de type lien symbolique

\n saut de ligne

Tout est dans man find

Tags : linux unix find symlink