Vue normale

À partir d’avant-hierFlux principal

Sécuriser SSH avec pam_faillock

Par :fred
18 décembre 2024 à 10:09

Un mémo sur la mise en place du module de sécurité pam_faillock sur Debian 12. Ce module permet de verrouiller temporairement un compte utilisateur connu du système après plusieurs tentatives de connexion infructueuses via ssh.

Prérequis

  • Une machine tournant sous Debian 12 (Bookworm).
  • Un accès root ou des privilèges sudo.
  • Une compréhension de base des fichiers PAM (Pluggable Authentication Modules).

Étape 1 : Installer les paquets nécessaires

pam_faillock est inclus dans le paquet libpam-modules, qui est installé par défaut sur Debian 12.

Étape 2 : Configurer pam_faillock

  • Modifier le fichier PAM de gestion des connexions locales :
    • Éditer le fichier /etc/pam.d/common-auth :
      auth    required                        pam_faillock.so preauth
      auth    [success=1 default=ignore]      pam_unix.so nullok
      auth    [default=die]                   pam_faillock.so authfail
      auth    sufficient                      pam_faillock.so authsucc
      auth    requisite                       pam_deny.so
      auth    required                        pam_permit.so
      
  • Éditer le fichier /etc/pam.d/common-account :

account required                        pam_faillock.so

  • Configurer le fichier /etc/security/faillock.conf :
    • deny = 3
    • unlock_time = 900
    • audit
    • ignore_users = root
    • silent

  • Étape 3 : Tester la configuration

    • Vérifier les logs :
      • Les échecs de connexion sont enregistrés dans les journaux système :
      sudo journalctl -xe | grep pam_faillock
    • Simuler des échecs de connexion :
      • Tester plusieurs fois des connexions avec un mauvais mot de passe :
        • Vérifier les comptes verrouillés :
          • Utilisez la commande suivante pour lister les utilisateurs verrouillés :
          sudo faillock

        • Pour réinitialiser les tentatives d’échec d’un utilisateur spécifique :
        sudo faillock --reset --user utilisateur

    proxmox-offline-mirror : créer un miroir local pour Debian et Ubuntu

    Par :fred
    13 décembre 2024 à 15:40

    Un mémo sur comment utiliser la commande proxmox-offline-mirror pour créer un miroir local pour les distributions Debian et Ubuntu.

    Pour la création d’un miroir local Pour Proxmox, voir cet article : https://memo-linux.com/proxmox-offline-mirror-creer-un-miroir-local-pour-proxmox/

    Créer un miroir local Debian

    Pour la création d’un miroir local pour la distribution Debian, rien de compliqué car c’est intégré à la commande proxmox-offline-mirror :

    proxmox-offline-mirror setup
    • Select Action: dd new mirror entry
    • Guided Setup ([yes]): yes
    • Select distro to mirror : 4
    • Select release : 0 (pour Bookworm)
    • Select repository variant :
      • 0) Main repository
      • 1) Security
      • 2) Updates
      • 3) Backports
      • 4) Debug Information
      • Dans mon cas, j’ai éxécuté la commande proxmox-offline-mirror setup 3 fois pour avoir les 3 miroirs : Main repository, Security et Updates.

    • Enter repository components : main contrib (les dépots non-free c’est à vous de choisir)
    • Configure filters for Debian mirror bookworm / main : – (pas de filtres dans mon cas)
    • Enter mirror ID :
      • debian_bookworm_main
      • debian_bookworm_security
      • debian_bookworm_updates
    • Enter (absolute) base path where mirrored repositories will be stored : /srv/mirrors/debian/ (à adapter)
    • Should already mirrored files be re-verified when updating the mirror? : yes
    • Should newly written files be written using FSYNC to ensure crash-consistency? : yes
    • Pour finir, Select Action : Quit
    • Pour automatiser la création et la mise à jour du miroir Debian, voici le script :
    nano /usr/local/bin/sync-debian.sh
    #!/bin/bash
    export ALL_PROXY="http://proxyx.local:PORT"
    
    mirror_dir="/srv/mirrors/debian"
    symlink_dir="/srv/mirrors/debian/latest"
    
    proxmox-offline-mirror mirror snapshot create --config '/etc/proxmox-offline-mirror.cfg' 'debian_bookworm_main'
    proxmox-offline-mirror mirror snapshot create --config '/etc/proxmox-offline-mirror.cfg' 'debian_bookworm_updates'
    proxmox-offline-mirror mirror snapshot create --config '/etc/proxmox-offline-mirror.cfg' 'debian_bookworm_security'
    
    if [ $? -eq 0 ]; then
        for dir in "${mirror_dir}"/*; do
            if [ -d "$dir" ]; then
                dir_name=$(basename "$dir")
                if [[ "$dir_name" != "latest" && "$dir_name" != "lost+found" ]]; then
                    latest_subdir=$(ls -td "$dir"/*/ | head -n 1)
                    if [ -n "$latest_subdir" ]; then
                        latest_subdir_name=$(basename "$latest_subdir")
                        if [ -e "${symlink_dir}/${dir_name}" ]; then
                            rm -f "${symlink_dir}/${dir_name}"
                        fi
                        ln -s "$latest_subdir" "${symlink_dir}/${dir_name}"
                    fi
                fi
            fi
        done
        echo "Done on ${symlink_dir}."
    else
        echo "Error."
    fi
    
  • Rendre le scripte éxécutable :
  • chmod +x /usr/local/bin/sync-debian.sh
  • Exécuter une première fois le script afin de créer le miroir ocal :
  • sync-debian.sh
  • Ensuite, ajouter une tache cron pour l’éxécuter péridioquement :
  • crontab -e
    0 2 * * * /usr/local/bin/sync-debian.sh

    Créer un miroir local Ubuntu

    A la date de publication de l’article, la commande proxmox-offline-mirror setup n’est pas opérationnelle pour créer un miroir local pour la distribution Ubuntu.

    Ici, je choisis la distribution Ubuntu 24.04 LTS Noble.

    • Préparation du miroir Ubuntu Noble :
      • Création des répertoires pour le miroir :
      mkdir -p /srv/mirrors/ubuntu/noble/{ubuntu_noble_main,ubuntu_noble_updates,ubuntu_noble_security,latest}
      mkdir -p /srv/mirrors/ubuntu/noble/.pool
    • Téléchargement de la clé ubuntu :
    gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys F6ECB3762474EDA9D21B7022871920D1991BC93C
    gpg --export F6ECB3762474EDA9D21B7022871920D1991BC93C | tee /usr/share/keyrings/ubuntu-archive-keyring.gpg > /dev/null
  • Ajout du miroir dans le fichier de configuration /etc/proxmox-offline-mirror.cfg à la suite des autres miroirs :
  • nano /etc/proxmox-offline-mirror.cfg
    mirror: ubuntu_noble_main
            architectures amd64
            architectures all
            base-dir /srv/mirrors/ubuntu/noble
            ignore-errors false
            key-path /usr/share/keyrings/ubuntu-archive-keyring.gpg
            repository deb https://fr.archive.ubuntu.com/ubuntu noble main restricted universe multiverse
            sync true
            verify true
    
    mirror: ubuntu_noble_updates
            architectures amd64
            architectures all
            base-dir /srv/mirrors/ubuntu/noble
            ignore-errors false
            key-path /usr/share/keyrings/ubuntu-archive-keyring.gpg
            repository deb https://fr.archive.ubuntu.com/ubuntu noble-updates main restricted universe multiverse
            sync true
            verify true
    
    mirror: ubuntu_noble_security
            architectures amd64
            architectures all
            base-dir /srv/mirrors/ubuntu/noble
            ignore-errors false
            key-path /usr/share/keyrings/ubuntu-archive-keyring.gpg
            repository deb https://fr.archive.ubuntu.com/ubuntu noble-security main restricted universe multiverse
            sync true
            verify true
    
  • Création du script d’automatisation de création et de mise à jour du miroir :
  • nano /usr/local/bin/sync-ubuntu.sh
    #!/bin/bash
    
    export ALL_PROXY="http://proxy.local:PORT"
    
    mirror_dir="/srv/mirrors/ubuntu/noble"
    symlink_dir="/srv/mirrors/ubuntu/noble/latest"
    
    proxmox-offline-mirror mirror snapshot create --config '/etc/proxmox-offline-mirror.cfg' 'ubuntu_noble_main'
    proxmox-offline-mirror mirror snapshot create --config '/etc/proxmox-offline-mirror.cfg' 'ubuntu_noble_updates'
    proxmox-offline-mirror mirror snapshot create --config '/etc/proxmox-offline-mirror.cfg' 'ubuntu_noble_security'
    
    if [ $? -eq 0 ]; then
        for dir in "${mirror_dir}"/*; do
            if [ -d "$dir" ]; then
                dir_name=$(basename "$dir")
                if [[ "$dir_name" != "latest" && "$dir_name" != "lost+found" ]]; then
                    latest_subdir=$(ls -td "$dir"/*/ | head -n 1)
                    if [ -n "$latest_subdir" ]; then
                        latest_subdir_name=$(basename "$latest_subdir")
                        if [ -e "${symlink_dir}/${dir_name}" ]; then
                            rm -f "${symlink_dir}/${dir_name}"
                        fi
                        ln -s "$latest_subdir" "${symlink_dir}/${dir_name}"
                    fi
                fi
            fi
        done
        echo "Done on ${symlink_dir}."
    else
        echo "Error."
    fi
    
  • Rendre le script exécutable :
  • chmod +x /usr/local/bin/sync-ubuntu.sh
  • Exécuter le script pour créer le miroir local :
  • sync-ubuntu.sh
  • Changer les dépots dans le sources.list sous Ubuntu server 24.04 :
    Pour information, sous Ubuntu server 24.04 LTS les dépôts ne se renseignent plus dans le fichier : /etc/apt/sources.list.
    cat /etc/apt/sources.list
    # Ubuntu sources have moved to /etc/apt/sources.list.d/ubuntu.sources
    • Modifier les URLs des dépôts :(dans mon cas le nom de domaine de mon serveur web est mirrors.local) :
    nano /etc/apt/sources.list.d/ubuntu.sources
    Types: deb
    URIs: http://mirrors.local/ubuntu/noble/latest/ubuntu_noble_main
    Suites: noble
    Components: main restricted universe multiverse
    Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
    
    Types: deb
    URIs: http://mirrors.local/ubuntu/noble/latest/ubuntu_noble_security
    Suites: noble-security
    Components: main restricted universe multiverse
    Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
    
    Types: deb
    URIs: http://mirrors.local/ubuntu/noble/latest/ubuntu_noble_updates
    Suites: noble-updates
    Components: main universe restricted multiverse
    Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
    
  • Test d’update :
  • apt update
    Hit:1 http://mirrors.local/ubuntu/noble/latest/ubuntu_noble_main noble InRelease
    Hit:2 http://mirrors.local/ubuntu/noble/latest/ubuntu_noble_security noble-security InRelease
    Hit:3 http://mirrors.local/ubuntu/noble/latest/ubuntu_noble_updates noble-updates InRelease
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    89 packages can be upgraded. Run 'apt list --upgradable' to see them
    
  • Pour finir, ajouter une tache cron pour l’éxécuter péridioquement :
  • crontab -e
    0 3 * * * /usr/local/bin/sync-ubuntu.sh

    proxmox-offline-mirror : créer un miroir local pour Proxmox

    Par :fred
    10 décembre 2024 à 12:21

    Un mémo sur comment créer un serveur miroir local pour Proxmox avec proxmox-offline-mirror sous Debian.

    Cet article fait suite à https://memo-linux.com/creer-un-serveur-miroir-local-sous-debian.

    Installer proxmox-offline-mirror sur Debian via apt

    • Ajouter le dépôt suivant :
    echo "deb http://download.proxmox.com/debian/pbs-client bookworm main" > /etc/apt/sources.list.d/pbs-client.list
  • Ajouter la clé du dépôt :
  • wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg   -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
  • Mettre à jour les dépôts :
  • apt update
  • Installer proxmox-offline-mirror :
  • apt install proxmox-offline-mirror

    Configurer proxmox-offline-mirror pour le dépôt Proxmox

    • Exécuter la commande :
      proxmox-offline-mirror setup
      • Pour ajouter un nouveau miroir, choisir 0 :
      • Pour être guidé, répondre « yes » :
      • Choisir le dépôt Proxmox ve :
      • Choisir la version Bookworm :
      • Choisir la variante « No-Subscription repository » :
      • Pour la question suivante « Should missing Debian mirrors for the selected product be auto-added » ayant déjà mon propre miroir local Debian, je répond non :
      • Pour l’ID laisser pve_bookworm_no_subscription :
      • Entrer le chemin complet du répertoire pour le dépôt, dans mon cas /srv/mirrors/proxmox/ :
      • Revérifier ou pas les dépôts une fois mis à jour, dans mon cas je répond : yes
      • En cas de plantage, utiliser ou pas FSYNC, je répond : yes
      • Retour au menu, choisir 3 pour quitter :
      • Une fois que la configuration est terminée, éxécuter la commande :
        proxmox-offline-mirror mirror snapshot create --config '/etc/proxmox-offline-mirror.cfg' 'pve_bookworm_no_subscription'
        • Si l’accès au dépôt se fait via un proxy, exporter la variable d’environnement PROXY_ALL avant l’éxécution de la synchro:
        export PROXY_ALL="http://proxy.domaine.tld:PORT/"
        

    Ajouter un nouveau dépôt

    Ici le dépôt ajouté sera celui de Ceph.

    • Exécuter la commande :
    proxmox-offline-mirror setup
  • Choisir : Add new mirror entry
  • Guided Setup ([yes]): yes
  • Select distro to mirror : Proxmox Ceph
  • Select release : Bookworm
  • Select Ceph release : Reef (18.x)
  • Select repository variant : No-Subscription repository
  • Enter mirror ID : ceph_reef_bookworm
  • Enter (absolute) base path where mirrored repositories will be stored : /srv/mirrors/proxmox/ (dans mon cas)
  • Should already mirrored files be re-verified when updating the mirror? : yes
  • Should newly written files be written using FSYNC to ensure crash-consistency? :yes
  • Config entry ‘ceph_reef_bookworm’ added
  • Pour finir :Quit
  • Une fois le dépôt ajouté, créer le snapshot du miroir :

    proxmox-offline-mirror mirror snapshot create --config '/etc/proxmox-offline-mirror.cfg' 'ceph_reef_bookworm'

    Configurer le serveur web

    Pour rappel, dans mon cas le serveur web est déjà installé. J’ajoute simplement une directive location dans mon fichiers de conf.
    Ce qui donne :

    nano /etc/nginx/sites-available/mirrors
    server {
        listen 80;
        server_name mirrors.local;
    
        root /srv/mirrors;
        index index.html;
    
        location /debian/ {
            alias /srv/mirrors/debian/;
            autoindex on;
        }
    
        location /ubuntu/ {
            alias /srv/mirrors/ubuntu/;
            autoindex on;
        }
    
       location /proxmox/ {
            alias /srv/mirrors/proxmox/;
            autoindex on;
        }
    
        }
    systemctl reload nginx

    Créer un chemin statique pour les dépôts Proxmox et Ceph

    De base, la commande proxmox-offline-mirror créé pour chaque dépôt un snapshot daté du jour.
    Un problèmes majeur :

    • Sur chaque noeud Proxmox faudra changer le dépôt comme suit :
    deb http://mirrors.local/proxmox/pve_bookworm_no_subscription/2024-12-10T10:20:21Z bookworm pve-no-subscription

    Pour obtenir qu’un seul référentiel pour le dépôt :

    • Créer le dossier :
    mkdir -p /srv/mirrors/proxmox/latest
  • Créer le script suivant :
  • nano /usr/local/bin/sync-proxmox.sh
    #!/bin/bash
    export ALL_PROXY="http://proxy.local:PORT"
    mirror_dir="/srv/mirrors/proxmox"
    symlink_dir="/srv/mirrors/proxmox/latest"
    proxmox-offline-mirror mirror snapshot create-all
    if [ $? -eq 0 ]; then
        for dir in "${mirror_dir}"/*; do
            if [ -d "$dir" ]; then
                dir_name=$(basename "$dir")
                if [[ "$dir_name" != "latest" && "$dir_name" != "lost+found" ]]; then
                    latest_subdir=$(ls -td "$dir"/*/ | head -n 1)
                    if [ -n "$latest_subdir" ]; then
                        latest_subdir_name=$(basename "$latest_subdir")
                        if [ -e "${symlink_dir}/${dir_name}" ]; then
                            rm -f "${symlink_dir}/${dir_name}"
                        fi
                        ln -s "$latest_subdir" "${symlink_dir}/${dir_name}"
                    fi
                fi
            fi
        done
        echo "Done on ${symlink_dir}."
    else
        echo "Error."
    fi
    

    Créer une tache cron pour synchroniser le miroir de Proxmox

    • Créer une tache cron :
    crontab -e
    0 4 * * * /usr/local/bin/sync-proxmox.sh
    

    Changer les dépôts sur les noeuds Proxmox

    • Editer vos fichiers sources.list et changer les url par celle de votre miroir local :
    deb http://mirrors.local/debian bookworm main contrib
    deb http://mirrors.local/debian bookworm-updates main contrib
    deb http://mirrors.local/debian bookworm-security main contrib
    
    deb http://mirrors.local/proxmox/latest/pve_bookworm_no_subscription bookworm pve-no-subscription
    deb http://mirrors.local/proxmox/latest/ceph_reef_bookworm no-subscription
    
  • Test de l’update :
  • apt update

    Nettoyage des snapshots Proxmox et Ceph

    • Créer le script :
    nano /url/local/bin/clean_proxmox_snapshots.sh
    #!/bin/bash
    
    # Variables
    MIRRORS=(
        "/srv/mirrors/proxmox/pve_bookworm_no_subscription"
        "/srv/mirrors/proxmox/ceph_reef_bookworm"
    )
    MAX_AGE=7  # Durée limite (en jours)
    
    # Nettoyage pour chaque miroir
    for MIRROR_PATH in "${MIRRORS[@]}"; do
        echo "Traitement du miroir : $MIRROR_PATH"
    
        # Nettoyage des snapshots anciens
        SNAPSHOTS=$(proxmox-offline-mirror mirror snapshot list --mirror "$MIRROR_PATH" --format json | \
        jq -r ".[] | select(.age > $MAX_AGE) | .name")
    
        if [[ -z "$SNAPSHOTS" ]]; then
            echo "Aucun snapshot à supprimer pour le miroir : $MIRROR_PATH"
        else
            echo "Suppression des snapshots suivants pour $MIRROR_PATH :"
            echo "$SNAPSHOTS"
    
            for SNAPSHOT in $SNAPSHOTS; do
                proxmox-offline-mirror mirror snapshot remove --mirror "$MIRROR_PATH" --snapshot "$SNAPSHOT"
                echo "Snapshot supprimé : $SNAPSHOT"
            done
    
            # Garbage collection
            echo "Exécution de garbage collection (GC) pour le miroir : $MIRROR_PATH"
            proxmox-offline-mirror mirror gc --mirror "$MIRROR_PATH"
            echo "Garbage collection terminée pour $MIRROR_PATH."
        fi
    
        echo "-------------------------------------------"
    done
    
    echo "Nettoyage terminé pour tous les miroirs."
    
    
  • Rendre le script exécutable :
  • chmod +x /url/local/bin/clean_proxmox_snapshots.sh
  • Créer une tâche cron :
  • crontabe -e
    0 0 * * * /usr/local/bin/clean_proxmox_snapshots.sh

    Ressources

    Dons aux associations, épisode 13

    Cette dépêche est la treizième de sa série, après celles de 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 et 2023. Elle tient compte des suggestions des années passées.

    Montre ton amour au Libre

    Bissextile ou pas, cette année encore, je m’adresse à toi libriste, qui procrastine en se disant qu’il reste quasi tout décembre pour faire des dons en 2024, déductibles des impôts ou non. Toute l’année on escompte soutenir telle ou telle action sur tel ou tel sujet qui nous méritait vraiment, car c’est important. Donnons quelques exemples d’associations de promotion et défense du Libre, des droits dans l’espace numérique ou de la liberté d’expression, dont les dons sont déductibles en France : Acrimed, Amnesty France, Basta!, Debian France, Disclose, Framasoft (20 ans <3), Fédération internationale pour les droits humains (FIDH), Fonds pour une Presse Libre, Libre à Toi / Radio Cause Commune, Ligue des Droits de l’Homme (LDH), Open Food Facts, OpenStreetMap France, Politis, Reporterre, Reporters Sans Frontières (RSF), Wikimédia France, (qui n’est pas la Wikimedia Foundation états-unienne qui collecte aussi des dons), etc. Ce premier mardi de décembre (jour de rédaction de cette dépêche) est aussi le Giving Tuesday (aussi appelée journée mondiale de la générosité et de la solidarité).

      Sommaire

      Et comme tu fais vivre les principes du Libre, que tu contribues à des projets libres et défends des idées, tu soutiens aussi des associations ne bénéficiant pas de la déductibilité des dons en France (par exemple, des associations jugées trop dérangeantes ou trop critiques par le gouvernement… ou des associations européennes ou non, voire des associations n’ayant jamais fait la démarche, comme LinuxFr). Citons par exemple AFUL, April, Debian CH (déductible en Suisse), European Digital Rights (EDRi), En Vente Libre, Exodus Privacy, FACIL, FFII, FreeBSD Foundation, FSF (avec une longue liste de méthodes pour donner), FSFE (déductibilité dans plusieurs pays), Paheko, GNOME et GIMP, Haiku (déductible aux États‐Unis), IHateMoney, Internet Archive (déductible aux États‐Unis), KDE e.V (déductible en Allemagne), Léa-Linux, LILA, LQDN, Mageia, Nos Oignons, noyb, OKFN, PHP Foundation, SlackBuild.org, Tails (déductible en Allemagne), TechInquiry (déductible aux États-Unis), Toile Libre, Tor (déductible aux États-Unis et en Europe], Ubuntu-Fr, XSF, etc. (notez qu’elles peuvent parfois avoir la déductibilité des dons dans d’autres pays, voir la décision C-318/07 mentionnée plus bas).

      Cette dépêche récurrente vit aussi grâce à vos remarques, propositions d’ajouts, de compléments et vos retours sur les systèmes fiscaux et les dons dans vos pays respectifs. N’hésitez pas à la commenter pour l’enrichir. Bien que récurrente, cette dépêche est mise à jour et enrichie chaque année.

      Précision : la dépêche parle bien de « don » (je soutiens sans rien obtenir à titre personnel), pas de « financement participatif avec contrepartie » (je cofinance en échange de goodies ou avantages), les deux étant destinés à des choses différentes. Si vous avez lu jusqu’ici, un dessin xkcd sur le sujet en récompense (et d’autres images plus loin pour récompenser les libristes patients qui liront jusqu’au bout).

      Pourquoi les associations ayant des permanents ont des besoins récurrents d’argent ? (tiré de l’épisode 12 mais mis à jour)

      Quand une association veut passer de zéro à un permanent ou à un permanent de plus, elle n’a généralement pas en réserve de quoi le payer sur une année complète. Elle prend donc un risque avec une visibilité sur x mois (comme n’importe quel chef d’entreprise), en faisant de son mieux pour que l’argent rentre (le nouveau permanent va « produire », une campagne de communication ou d’appel à don ou autres sera lancée, une subvention sera recherchée, une convention sera signée avec tel ou tel, des goodies seront vendus, etc.).

      Soutenez Framasoft, parce que le Libre n’est pas qu’une question de logiciel

      Une association qui ne veut pas s’embêter à rechercher des fonds ou qui ne vise pas à passer le cap du premier permanent n’a pas du tout ce souci et peut être très indolente si elle veut.

      Dès qu’il y a un besoin récurrent de payer des salariés, de payer à date les charges de l’employeur — qu’il faut prévoir à trois mois s’il faut gérer un préavis de licenciement économique ou pas, etc. —, cela devient plus compliqué (comme pour n’importe quel chef d’entreprise). Une association militante qui ne prendrait pas de risque financier du tout, ce n’est pas envisageable à mon avis. Toute la question étant de savoir combien elle réussit à faire rentrer d’argent au moment où c’est nécessaire, si elle peut continuer à embaucher pour grossir, faire plus d’actions ou faire mieux, si elle doit licencier, ou bien si elle doit stagner ou continuer ainsi dans l’immédiat.

      Donc, oui, on a toujours l’impression que les associations ayant des permanents recherchent de l’argent (et décembre est particulier, car c’est la fin de l’exercice fiscal et traditionnellement la période des dons défiscalisés, notamment côté humanitaire associé aux bons sentiments des fêtes de fin d’année). Et oui, en décembre, la Croix Rouge ou le Secours Populaire, April, RSF, LQDN, la FSF, Amnesty, Framasoft et bien d’autres font des appels à don.

      Soutenons La Quadrature du Net !

      En dehors de la simple mais cruciale question de la trésorerie (pérennité / continuité), il y a bien évidemment aussi les projets et actions futures à financer. Citons par exemple la justification de Framasoft (une dizaine de permanents) en six points :

      1. parce que l’enfermement, c’est maintenant ;
      2. pour plus d’alternatives libres ;
      3. parce que les gentils, c’est nous !
      4. pour décider où vont vos impôts (avec défiscalisation) ;
      5. parce que l’économie du don rend indépendant ;
      6. pour changer le monde ensemble.

      Quelques chiffres : « Chacun s’accorde pour estimer que près de 90% des associations fonctionnent exclusivement grâce à leurs bénévoles. Vitale dans ces associations, cette ressource humaine reste essentielle dans les 10 à 12% d’associations employant des salariés »
      « en 2022, l’emploi privé non lucratif au sein des associations et des fondations représente plus de 155 000 employeurs, plus de 2 millions de salariés, soit 9,5% du total des salariés du secteur privé, et une masse salariale de plus de 54,4 milliards d’euros (près de 7% de la masse salariale du secteur privé) » (Recherche et Solidarités)

      Et sur l’évolution des bénévoles et du mécénat de compétences :

      « Les 25-34 ans sont de plus en plus nombreux à s’engager (30% en 2024 pour 22% en 2019), quand les 70 ans et plus perdent 10 points pour n’être que 24% aujourd’hui. »
      « En 2024, 9% des Français sont présents chaque semaine dans leurs associations, ils étaient 10% en 2019 et 12,5% en 2010. »
      « Ces tendances fragilisent la colonne vertébrale des associations, à savoir celles et ceux qui les font vivre au quotidien qui se trouvent privées de l’expérience et de la disponibilité des seniors »
      « Parmi les perspectives positives, le mécénat de compétences poursuit sa percée avec 27% de bénévoles tentés par l’expérience en 2024 ; ils étaient 23% en 2022 et 20% en 2019. » (Recherche et Solidarités et France Générosités)

      Petit rappel sur les impôts en France (tiré de l’épisode 10 mais mis à jour)

      • l’article 200 du Code général des impôts prévoit pour un particulier une déduction fiscale de 66 % (réduction d’impôt sur le revenu dans la limite de 20 % du revenu imposable, reportable sur cinq ans en cas de dépassement de ce plafond) des dons vers les associations d’intérêt général ou reconnues d’utilité publique ; ce pourcentage monte même à 75 % pour les organismes d’aide aux personnes en difficulté (dans la limite de 521 €, au‐delà, on retombe sur les 66 %) ;
      • l’article 238 bis du CGI prévoit une déduction fiscale de 60 % des dons pour une entreprise (réduction d’impôt sur le revenu ou d’impôt sur les sociétés dans la limite de 5 ‰ du chiffre d’affaires hors taxes, reportable sur cinq ans en cas de dépassement de ce plafond) vers les associations d’intérêt général ou reconnues d’utilité publique ;
      • fiche pratique ServicePublic.fr : « À noter : l’organisme peut être en France ou dans un État membre de l’Union européenne : Allemagne, Autriche, Belgique, Bulgarie, Chypre, Croatie, Danemark, Espagne, Estonie, Finlande, France, Grèce, Hongrie, Irlande, Italie, Lituanie, Lettonie, Luxembourg, Malte, Pays-Bas, Pologne, Portugal, République tchèque, Roumanie, Slovaquie, Slovénie, Suède, en Islande, en Norvège ou au Liechtenstein. S’il n’est pas agréé, vous devez justifier qu’il a un objectif et des caractéristiques similaires aux organismes situés en France et pouvant bénéficier du dispositif. »
      • loi n° 2021-1109 du 24 août 2021 : « Art. 222 bis.-A l’exception de ceux mentionnés au 3 de l’article 200, les organismes qui délivrent des reçus, des attestations ou tous autres documents par lesquels ils indiquent à un contribuable qu’il est en droit de bénéficier des réductions d’impôt prévues aux articles 200,238 bis et 978 sont tenus de déclarer chaque année à l’administration fiscale, dans les délais prévus à l’article 223, le montant global des dons et versements mentionnés sur ces documents et perçus au cours de l’année civile précédente ou au cours du dernier exercice clos s’il ne coïncide pas avec l’année civile ainsi que le nombre de documents délivrés au cours de cette période ou de cet exercice. »

      France générosités mentionne des évolutions récentes (juillet 2024), notamment le fait que les dons des particuliers aux organismes d’intérêt général qui concourent à l’égalité entre les femmes et les hommes ouvrent droit à réduction d’impôt et la prorogation jusqu’au 31 décembre 2026 du plafond dérogatoire de 1 000 € applicable aux dons retenus pour la réduction d’impôt de 75 % accordée au titre des dons versés aux organismes qui apportent une aide gratuite aux personnes en difficulté.

      Exemple pour un particulier : je suis imposable et donne 99 € à l’association XYZ bénéficiant de la déductibilité des dons à hauteur de 66 %. Mon don me coûte en fait (au final) 33 €, j’ai temporairement avancé 66 € qui seront ensuite déduits de mon imposition fiscale (dit autrement, j’ai choisi l’attribution de 66 € du budget de l’État).

      Soutenir Framasoft

      Autres infos :

      Les dons en France (tiré de l’épisode 11 mais mis à jour)

      « 51 % des Français déclarent avoir donné au moins une fois en 2023 à une fondation ou à un organisme caritatif (+1 point par rapport à 2022). »

      (Baromètre de la solidarité 2024)

      « En 2023, la générosité des Français tient bon dans un contexte encore difficile, avec une progression de 2,1% des dons par rapport à 2022 en euros courants. » (ainsi que la « poursuite de la baisse des petits dons » et un « focus sur les urgences médiatisées »)

      (Baromètre de la générosité 2023)

      « l’augmentation des investissements est aussi due à des coûts d’acquisition en hausse (+ 28%) en raison d’une concurrence accrue pour atteindre 33 € de coût d’acquisition moyen par donateur sur les campagnes de fin d’année (CFA) 2022 du panel de l’étude mais pour un don moyen de 172 € (+ 10%). »
      (Baromètre Orixa Fundraising 2023)

      « L’étude de Recherches & Solidarités montre une progression de 6,3% du montant total des dons déclarés au titre de l’IR en 2022 par rapport à 2021.
      L’étude de Recherches & Solidarités montre une progression de 3,9% du nombre de foyers fiscaux donateurs en 2022 par rapport à 2021. »
      (Étude 2023 sur les dons déclarés 2022 – Recherches & Solidarités)

      « en 2022 : en moyenne, les donateurs de 35-54 ans correspondent à une pénétration de 5,5% des Français de cette tranche d’âge. Soit le plus faible taux comparé aux autres tranches d’âge. » (Étude sur le don des 35-54 ans – France)

      Admincal indique que « seulement 4,61 % des entreprises assujettis à l’Impôt sur les Sociétés (IS) déduisent des dons du mécénat ».

      Selon Infodon.fr (via une enquête Ifop pour France générosités, réalisée sur un échantillon représentatif de la population française (4031 personnes) – Mai 2023)
      « 69% des Français déclarent soutenir financièrement assos et fondations, « 46 % donnent au moins une fois par an ». À comparer avec les chiffres donnés en 2022 (72% 48%), 2021 (58%, 45%) et 2020 (52%, 40%).

      Petit rappel sur les impôts d’autres pays (tiré de l’épisode 12 mais mis à jour)

      Forcément, je connais mieux le sujet pour la France, mais voici néanmoins quelques infos glanées pour d’autres pays (et je ne doute pas que les visiteurs compléteront dans les commentaires) :

      Exemple de dons (source)

      Exemple de dons financiers et parfois de temps

      « Sacrifier une partie de son revenu pour faire un don à une association, c’est une affaire sérieuse. » (patrick_g)
      Liste non exhaustive de dons financiers ou de temps à des associations du Libre ou pour libérer quelque chose :

      Pour les exemples plus ou moins exhaustifs sur les 11 premières années de cette série de dépêches, voir la section de l’année 2022

      Exemple de dons de matériel ou ressources

      Pour les exemples plus ou moins exhaustifs sur les 11 premières années de cette série de dépêches, voir la section de l’année 2022.

      Johann « nojhan » — CC-BY-SA-fr, LAL, GFDL

      Diffusion des idées et questionnements autour du don

      Pour les exemples plus ou moins exhaustifs sur les 11 premières années de cette série de dépêches, voir la section de l’année passée.

      Lettre au Père Noël — Clément Clem Quaquin — Licence Art libre

      Don à une entreprise ? (tiré de l’épisode 11 mais mis à jour)

      Une question un peu annexe ici vu le titre « dons aux associations » mais qui a déjà été posée ici ou sur LinuxFr.org : peut‐on faire un don (sans contrepartie) à une entreprise ? Pour prendre quelques sites que j’aime bien : Next.ink anciennement Next INpact (SARL de presse) a opté pour un mélange de comptes premium (avec contrepartie, donc), publicités et dons. Voir les appels à dons 2023 pour le Fonds pour une presse libre ou Next.ink par exemple). Tandis que Reflets.info (SAS) accepte les dons.

      Lors d’une recherche rapide précédente, j’avais vu évoquer l’utilisation du compte 7713 « libéralités perçues » du plan comptable, d’un justificatif clair pour la comptabilité (un expert comptable et/ou un notaire sont évoqués), d’une exonération de TVA si aucune vente de bien ou de service n’est associée. Bref, la question des taxes et impôts à payer pour le donateur (60 % entre non‐parents ?) et l’entreprise n’est pas forcément claire. Cela reste assez flou et hypothétique, et ça mériterait une question aux impôts.

      « Oups, j’ai procrastiné sur mes dons » généré avec https://framalab.org/gknd-creator/.

      Logiciels libres pour gérer les dons (tiré de l’épisode 12 mais mis à jour)

      La question avait été posée lors de l’épisode 3 de cette série de dépêches : quel(s) logiciel(s) libre(s) utiliser pour faire les dons ? Ou pour les gérer ? En général, pour les faire, un navigateur fait l’affaire : paiement en ligne, réception de l’éventuel reçu fiscal, réception d’un éventuel message de remerciement.

      Pour les reçus fiscaux, il convient de les conserver avec les documents des impôts pendant le temps nécessaire (suivant la législation locale).

      Pour les dons via des intermédiaires, par exemple Liberapay ou HelloAsso, il faut conserver soigneusement les identifiants du compte créé pour l’année suivante.

      Si vous avez opté pour l’adhésion à une structure plutôt que le don, vous allez recevoir des identifiants aussi et probablement une lettre interne ou des choses du genre, ainsi que certainement une convocation à une assemblée générale annuelle.

      Et si vous avez opté pour versement régulier (virement ou prélèvement), ça ne change pas fondamentalement les choses ; éventuellement, l’organisme qui prélève vous prévient un peu avant chaque prélèvement par courriel.

      Il existe aussi dans le Libre des logiciels ou des événements spécialement prévus pour les dons :

      À ma connaissance, le site HelloAsso, structure ayant obtenu son agrément « Entreprise solidaire d’utilité sociale », évoqué dans un commentaire de 2015, n’utilise pas une plate‑forme libre, contrairement à Liberapay.

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Créer un serveur miroir local sous Debian

      Par :fred
      28 novembre 2024 à 15:59

      Un mémo sur comment créer un serveur miroir local sous Debian.

      Pour ce tuto, je ne vais pas utiliser apt-mirroir ni debmirror mais simplement la commande lftp et comme serveur web Nginx.

      De plus, mon miroir local sera dédié pour les distributions et en versions stables de Debian, Ubuntu.

      Alors pourquoi lftp et non rsync ? car tout simplemement le proxy local n’accepte que les ports 80, 443 et 21 en sortie.

      Préparer l’environnement

      • Mettre à jour le système :
      apt update && apt full-upgrade -y
    • Installer les outils nécessaires :
    • apt install lftp nginx -y
    • Créer des répertoires pour stocker les miroirs :
    • mkdir -p /srv/mirrors/{debian,ubuntu}
    • Définir les permissions :
    • chown -R www-data:www-data /srv/mirrors
      chmod -R 755 /srv/mirrors
      

      Synchroniser les miroirs Debian et Ubuntu

      • Miroir Debian :
        • Créer le script suivant pour synchroniser Debian :
        nano /usr/local/bin/sync-debian.sh
      • Le contenu du script :
      #!/bin/bash
      
      # Variables
      BASE_URL_DEBIAN="http://deb.debian.org/debian"
      BASE_URL_SECURITY="https://security.debian.org/debian-security"
      LOCAL_DIR="/srv/mirrors/debian"
      SECTIONS=("bookworm" "bookworm-updates" "bookworm-security")
      
      # Proxy configuration
      export http_proxy="http://monproxy.local:8080"
      export https_proxy="http://monproxy.local:8080:"
      
      # Options pour lftp
      LFTP_OPTS="mirror --parallel=4 --verbose=2 --delete"
      
      # Boucle sur les sections principales (bookworm, bookworm-updates)
      for SECTION in "${SECTIONS[@]}"; do
          if [ "$SECTION" == "bookworm-security" ]; then
              # Pour le dépôt de sécurité, utiliser une URL différente
              echo "Synchronisation de $SECTION..."
              lftp -c "$LFTP_OPTS $BASE_URL_SECURITY/dists/bookworm-security $LOCAL_DIR/dists/bookworm-security"
          else
              # Pour les autres sections, utiliser l'URL Debian principale
              echo "Synchronisation de $SECTION..."
              lftp -c "$LFTP_OPTS $BASE_URL_DEBIAN/dists/$SECTION $LOCAL_DIR/dists/$SECTION"
          fi
      done
      
      echo "Synchronisation terminée."
      
      
    • Donner les permissions d’exécution au script :
    • chmod +x /usr/local/bin/sync-debian.sh
    • Miroir Ubuntu :
      • Créer le script suivant pour synchroniser Ubuntu :
      nano /usr/local/bin/sync-ubuntu.sh
    • Le contenu du script :
    • #!/bin/bash
      
      # Variables
      BASE_URL_UBUNTU="http://archive.ubuntu.com/ubuntu"
      BASE_URL_UBUNTU_SECURITY="http://security.ubuntu.com/ubuntu"
      LOCAL_DIR="/srv/mirrors/ubuntu"
      SECTIONS=("noble" "noble-updates" "noble-security")
      
      # Proxy configuration
      export http_proxy="http://monproxy.local:8080"
      export https_proxy="http://monproxy.local:8080"
      
      # Options pour lftp
      LFTP_OPTS="mirror --parallel=4 --verbose=2 --delete"
      
      # Boucle sur les sections principales (noble, noble-updates)
      for SECTION in "${SECTIONS[@]}"; do
          if [ "$SECTION" == "noble-security" ]; then
              # Pour le dépôt de sécurité, utiliser une URL différente
              echo "Synchronisation de $SECTION..."
              lftp -c "$LFTP_OPTS $BASE_URL_UBUNTU_SECURITY/dists/noble-security $LOCAL_DIR/dists/noble-security"
          else
              # Pour les autres sections, utiliser l'URL Ubuntu principale
              echo "Synchronisation de $SECTION..."
              lftp -c "$LFTP_OPTS $BASE_URL_UBUNTU/dists/$SECTION $LOCAL_DIR/dists/$SECTION"
          fi
      done
      
      echo "Synchronisation terminée."
      
    • Donner les permissions d’exécution au script :
    • chmod +x /usr/local/bin/sync-ubuntu.sh

      Planifier la synchronisation automatique

    • Configurer les tâches avec cron pour automatiser les synchronisations :
    • crontab -e
    • Ajouter les lignes suivantes :
    • 0 2 * * * /usr/local/bin/sync-debian.sh
      0 3 * * * /usr/local/bin/sync-ubuntu.sh
      

      Configurer le serveur web

    • Créer un fichier de configuration Nginx :
    • nano /etc/nginx/sites-available/mirrors
    • Ajouter la configuration suivante :
    • server {
          listen 80;
          server_name mirrors.local;
      
          root /srv/mirrors;
          index index.html;
      
          location /debian/ {
              alias /srv/mirrors/debian/;
              autoindex on;
          }
      
          location /ubuntu/ {
              alias /srv/mirrors/ubuntu/;
              autoindex on;
          }
      
          }
      
    • Activer la configuration :
    • ln -s /etc/nginx/sites-available/mirrors /etc/nginx/sites-enabled/
    • tester la configuration :
    • nginx -t
    • Recharger la configuration de Nginx :
    • systemctl reload nginx
    • Tester l’accès au serveur web (exemple ici avec le miroir local pour Proxmox) :
    • Modification des fichiers sources.list des clients

      Il ne reste que la modification des fichiers sources.list sur l’ensemble des serveurs.
      Pour ce faire, modifier l’url par l’IP du serveur miroir local pour tous les dépôts.

      Afin de déployer les modifcations de chaque serveur, je vous propose d’utiliser Ansible :

      ansible-playbook -i inventory.yml update_sources_grouped.yml

      Les playbooks Ansible sont disponible ici -> https://github.com/freddL/playbook_add_mirror_local/

      Resolve mDNS/Bonjour local network names from CLI

      13 novembre 2024 à 14:52

      ping can resolve .local domains, but e.g. host can't, which is annoying when trying to resolve the IP address of a mDNS host from a e.g. script.
      Fortunately, there is avahi-resolve that can do that, and is easy enough to use in scripts.

      The reason I needed that was to consolidate a setup where a network scanner provides a mDNS name, but it can't be used in the SANE device path, only the IP works. So, replace the IP field in the call with "$(avahi-resolve --name -4 NAME.local | awk '{print $2}')" and voila.


      Permalink

      Comment Installer un Certificat SSL sur un serveur Apache 2 [Debian / Ubuntu]

      11 novembre 2024 à 16:39

      Je vous propose dans ce tutoriel de découvrir comment installer un certificat SSL sur un serveur Apache sous Debian / Ubuntu. Cette étape est indispensable si vous souhaitez déployer un site sécurisé par HTTPS ou migrer un site web existant de HTTP vers HTTPS.

      Sommaire

      1. Introduction
      2. Activer les modules requis pour utiliser SSL sur votre serveur Apache
      3. Déposer votre certificat SSL sur votre serveur
      4. Vérifier que votre serveur Apache écoute sur le port 443 (HTTPS)
      5. Déclarer un VirtualHost pour le HTTPS
      6. Activer le VirtualHost
      7. Vérifier le niveau de sécurité de votre site
      8. Finaliser la configuration

      1 – Introduction

      J’ai écris ce tutoriel dans le cadre de la migration de SysKB de HTTP vers HTTPS. Une migration motivée car Google pénalise depuis quelques mois les sites n’ayant pas migrés en HTTPS. Il était donc temps d’obtenir moi aussi mon petit cadenas vert vous indiquant que les informations qui circulent entres votre navigateur et mon site web sont chiffrées.

      Ce tutoriel s’adresse à ceux qui comme moi hébergent leur site Web sur un serveur dédié ou un VPS (Virtual Private Server). Car contrairement à un hébergement de type mutualisé, c’est à vous de gérer la couche Apache de votre stack LAMP (Linux / Apache / MySQL ou MariaDB / PHP). La plupart des tutos qui expliquent comment migrer un site HTTP vers HTTPS se contentent d’expliquer comment le faire d’un point de vue WordPress et référencement Google, mais n’abordent pas le fait qu’il faut d’abord configurer Apache et déployer votre certificat sur votre serveur Apache.

      D’ailleurs vous allez le voir c’est assez simple même si ça nécessite de suivre scrupuleusement le tutoriel 😉

      SysKB est hébergé sur un VPS chez IONOS. J’ai opté pour l’offre VPS Cloud qui me permet de disposer d’un serveur dédié virtuel performant avec du disque SSD, et suffisamment de mémoire et de CPU pour supporter une charge de plusieurs milliers de connexions journalières. Le petit plus c’est que l’offre intègre un certificat SSL Wildcard gratuit que vous pouvez activer et obtenir en 5 minutes depuis votre interface.

      Si vous envisagez de créer votre site Web je vous invite à consulter mon guide pour vous aider à choisir une solution d’hébergement pour WordPress mais IONOS est un excellent fournisseur que j’utilise depuis plus de 15 ans maintenant avec toujours autant de confiance 🙂

      Je résume, si vous avez un VPS et que vous souhaitez que votre site soit en HTTPS, ce qui est indispensable pour accéder à votre site depuis un navigateur comme Chrome, suivez simplement ce tuto 👌

      2 – Activer les modules requis pour utiliser SSL sur votre VPS sous Apache

      Activer le module SSL

      Après avoir ouvert une session PuTTy sur votre serveur tapez simplement la commande suivante pour activer le module SSL. Un message vous indiquera clairement si le module est déjà ou non déployé.

      a2enmod ssl

      Activer le module headers

      De la même manière cette commande vous permet d’activer le module Header. Ce module, dont l’installation est fortement recommandé par Google, permet d’activer la directive HSTS.

      a2enmod headers

      Redémarrer le service Apache

      Le redémarrage de votre serveur Apache permet d’activer les deux modules précédemment activés. Ce redémarrage prend à peine quelques millisecondes sans impact notable sur votre production.

      service apache2 restart

      3 – Déposer votre certificat SSL sur votre serveur

      Création du répertoire qui contiendra le certificat SSL

      Il est d’usage de stocker les certificats SSL en respectant cette arborescence, mais ce n’est pas une obligation surtout si vous n’avez qu’un seul site. Remplacez domaine-com par votre propre domaine.

      mkdir /etc/ssl/domaine-com/

      Déposer votre certificat SSL dans le répertoire

      Après avoir commandé ou fait la demande de votre certificat SSL gratuit chez IONOS vous avez 3 fichiers à récupérer :

      • Le certificat SSL : Il s’agit d’un fichier au format .cer ou en .crt
      • Votre clé privée : Il s’agit d’un fichier au format .key
      • Le certificat intermédiaire : Il s’agit d’un fichier au format .cer ou en .crt

      Une fois que vous avez récupéré ces fichiers vous devez les déposer dans le répertoire précédemment créé. Pour cela je vous recommande d’utiliser un logiciel comme WinSCP qui vous permet d’accéder à l’arborescence de votre serveur via une interface graphique. Voici ce que cela donne pour mon site SysKB.

      Installer un certificat ssl sur un serveur VPS apache2

      4 – Vérifier que votre serveur Apache écoute sur le port 443 (HTTPS)

      Par défaut Apache écoute sur les ports 80 et 443. Cela signifie qu’il est déjà configuré pour recevoir des requêtes en HTTP et HTTPS. Exécutez la commande netstat afin de vérifier si c’est bien le cas :

      netstat -tanpu | grep "LISTEN" | grep "443"

      Vous devez obtenir un truc de ce genre qui indique que Apache écoute bien sur le port 443

      tcp6       0      0 :::443                  :::*                    LISTEN      30105/apache2

      Si une erreur vous indique que netstat n’est pas installé tapez les commandes suivantes :

      sudo apt update
      sudo apt install net-tools

      Si aucun processus Apache n’est en écoute sur le port 443 c’est qu’il n’est pas paramétré ! Pour cela identifié le fichier qui permet de configurer les ports en écoute en tapant la commande suivante :

      grep -R "Listen" /etc/apache2

      Dans mon cas cela m’indique que c’est le fichier ports.conf qui contient les configuration de ports en écoute

      /etc/apache2/ports.conf:        Listen 80

      Il suffit de modifier le fichier ports.conf qui correspondant au “Listen 80”

      nano /etc/apache2/ports.conf

      et ajoutez simplement le code suivant

      <IfModule mod_ssl.c>
      Listen 443
      </IfModule>

      Redémarrez Apache et vérifier de nouveau les ports en écoute

      service apache2 restart
      netstat -tanpu | grep "LISTEN" | grep "443"

      Cette fois on est bon !

      /etc/apache2/ports.conf:        Listen 80
      /etc/apache2/ports.conf:        Listen 443
      /etc/apache2/ports.conf:        Listen 443

      5 – Déclarer un VirtualHost pour le HTTPS

      Pour accéder à votre site Web il existe par défaut un VirtualHost. Les serveurs Apache qui contiennent plusieurs sites contiennent autant de VirtualHost que de sites hébergés.

      Pour accéder à votre site en HTTPS il faut créer un VirtualHost dédié. Pour cela il suffit de dupliquer le VirtualHost existant et de le configurer pour HTTPS. C’est beaucoup plus simple de procéder ainsi car vous êtes certains de ne pas faire de mauvaises manipulations.

      Accéder au dossier contenant tous les VirtualHost disponibles:

      cd /etc/apache2/sites-available

      Lister les fichiers présents dans ce répertoire :

      ls -la

      Vous devez identifier le fichier de configuration contenant le VirtualHost correspondant à votre site HTTP. Si vous n’avez qu’un seul site il n’y aura qu’un seul fichier mais si votre serveur gère des dizaines de domaines et sous domaines vous gagnerez du temps à faire un grep :

      grep -R "remplacer-par-le-domaine-concerne" /etc/apache2

      Une fois que vous avez identifié le bon fichier il suffit de le dupliquer et le renommer. Dans cet exemple je duplique mon fichier de configuration nommé 000-default.conf en 000-default-ssl.conf.

      cp 000-default.conf 000-default-ssl.conf

      De cette manière je vais configurer le fichier dupliqué plutôt que le fichier d’origine

      Configurer le VirtualHost pour le protocole HTTPS :

      Modifiez le fichier dupliqué avec la commande nano ou avec WinSCP.

      En début de fichier remplacez le port 80 du VirtualHost par le port 443 comme ceci : <VirtualHost *:443>

      Ajoutez ensuite les instructions suivantes juste AVANT la balise de fin </VirtualHost>.

      # On active le SSL
      SSLEngine On
      
      # On active tous les protocoles (TLS v1.0, TLS v1.1 et TLS v1.2), mais on désactive SSL v2 et v3 (obsolètes et remplacés par TLS)
      SSLProtocol All -SSLv3 -SSLv2
      
      # On active les méthodes de chiffrement, et on désactive les méthodes de chiffrement non sécurisés (par la présente d'un !)
      SSLCipherSuite HIGH:!aNULL:!MD5:!ADH:!RC4:!DH
      
      # On demande au navigateur de sélectionner une méthode de chiffrement en respectant l'ordre envoyée par le serveur (HIGH uniquement)
      SSLHonorCipherOrder on
      
      # On renseigne le chemin vers le certificat SSL de l'adresse à sécuriser
      SSLCertificateFile "/etc/ssl/votre-domaine-fr/www-votre-domaine-fr.cer"
      
      # On renseigne le chemin vers la clée privée correspondant au certificat SSL de l'adresse à sécuriser
      SSLCertificateKeyFile "/etc/ssl/votre-domaine-fr/www-votre-domaine-fr.key"
      
      # On renseigne le chemin vers le certificat SSL racine, puis vers le(s) certificat(s) SSL intermédiaire(s).
      # Si vous disposez de plusieurs certificats intermédiaires, vous pouvez ajouter d'autres directives SSLCACertificateFile.
      SSLCACertificateFile "/etc/ssl/votre-domaine-fr/certificat-intermediaire.cer"
      
      Header always set Strict-Transport-Security "max-age=15768000"
      

      Modifiez les chemins d’accès et les intitulés des différents certificats afin qu’ils correspondent à ceux que vous avez déposé à l’étape 3.

      6 – Activer le VirtualHost

      Activer le VirtualHost dans Apache

      Il s’agit maintenant d’activer votre nouveau VirtualHost

      a2ensite nom-du-vhost-ssl
      # Pour désactiver le vhost si vous avez commis une erreur de configuration :
      # Executez : a2dissite nom-du-vhost-ssl

      Recharger la configuration d’Apache

      Et enfin charger la nouvelle configuration. On aurait pu redémarrer entièrement le service Apache, mais le Reload suffit.

      service apache2 reload

      A cette étape votre site est désormais accessible en HTTPS

      7 – Vérifier le bon fonctionnement du certificat et le niveau de sécurité de votre site

      Vérifiez que votre certificat est bien installé grâce au site SSL Checker

      Connectez vous ensuite sur le site SSLLabs.com pour contrôler si votre serveur est bien sécurisé.

      Sans la directive HSTS que l’on a configuré en début de tutoriel vous obtiendrez la note “A“, avec le HSTS vous obtenez un “A+

      8 – Finaliser la configuration

      A cette étape votre site est déjà accessible en HTTPS.

      Mais il y a encore quelques opérations a effectuer pour que tout soit complètement opérationnel

      • Effectuer une redirection HTTP vers HTTPS dans votre .htaccess pour éviter le Duplicate Content.
      # Redirection vers HTTPS 
      RewriteCond %{SERVER_PORT} ^80$ [OR]
      RewriteCond %{HTTPS} =off
      RewriteRule ^(.*)$ https://syskb.com/$1 [R=301,L]
      
      # Redirection du www vers non-www en HTTPS
      RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
      RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
      • Remplacer tous les liens internes HTTP de votre site par HTTPS avec l’extension pour WordPress Search and Replace DB. Si vous n’avez pas fait de modifications manuelles ou vous auriez rentré en sur HTTP vous n’aurez pas de soucis.
      • Vérifier qu’il n’y ait pas d’extensions récalcitrantes qui font des appels en HTTP. C’est très simple à savoir, votre site sera sécurisé mais vous risquez de ne pas avoir le cadenas vert !
      •  Ajoutez la version HTTPS de votre site dans Google Webmaster Tools. Ne retirez pas l’ancien car Google exige que toutes les versions de vos sites soient renseignées afin justement de ne pas vous pénaliser pour Duplicate Content. Dans la version HTTPS pensez à ajouter votre fichier https://votre-site-fr/sitemap_index.xml. Dans 10 à 15 jours dès que Google aura indexé vos pages en HTTPS vous pourrez retirer le sitemap de la propriété HTTP Google Webmaster Tools. Ceci étant cela n’a aucun impact sur l’indexation de votre site.

      Pour cela j’ai suivi le tutoriel Comment passer son site WordPress en HTTPS à la section 9 choses à faire absolument après l’activation du HTTPS.

      Cet article original intitulé Comment Installer un Certificat SSL sur un serveur Apache 2 [Debian / Ubuntu] a été publié la première sur SysKB.

      Décès de lunar, un hacktiviste pédagogue

      9 novembre 2024 à 14:04

      L'annonce du décès de @lunar des suites d'un cancer a été faite le 8 novembre 2024 (par divers comptes, sans ordre particulier Benjamin Sonntag, Alsace Réseau Neutre, Mindiell, BohwaZ, Robinson Boucan, Abelli, et bien d'autres).

      Son pseudo vous est peut-être connu pour ses activités sur le projet Tor, l'association Nos oignons, le projet Debian et Reproducible builds, La Quadrature du net, La Dérivation sur l'éducation populaire et les enjeux numériques, autour de multiples conférences et événements (CCC, DebConf, FOSDEM, RMLL, PSES, etc.), l'Espace Autogéré des Tanneries de Dijon, etc.

      Tristesse. Et nos pensées vont à toutes les personnes qui l'ont connu et côtoyé. <3

      En mémoire de @lunar, quelques références, sans vocation à être exhaustif :

      Commentaires : voir le flux Atom ouvrir dans le navigateur

      Installer et configurer un VPN Wireguard sur OpenVZ

      Par :fred
      4 octobre 2024 à 14:10

      Un mémo sur comment installer et configurer un serveur VPN Wireguard sur un VPS OpenVZ sous Debian 12 Bookworm.

      Pré-requis avant installation de Wireguard

      Installation et Configuration de Wireguard sur OpenVZ

      Pour faciliter l’installation et l’utilisation Wireguard sur OpenVZ, il faut passer par la solution boringtun.

      • Mise à jour du référentiel de paquets, installation de curl et de l’utilitaire de package cargo :
      apt update && apt install curl cargo
    • Installer boringtun-cli :
    • cargo install boringtun-cli --locked
    • Rendre accessible au système l’utilitaire boringtun-cli :
    • ln ~/.cargo/bin/boringtun-cli /usr/local/bin/
    • Télécharger le script d’auto installation de Wireguard partagé par notre ami Angristan :
    • curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
    • Désactiver la vérification de la technologie de virtualisation dans le script d’installation :
    • sed -i 's/^\tcheckVirt/#\tcheckVirt/' wireguard-install.sh
    • Rendre exécutable le script :
    • chmod +x wireguard-install.sh
    • Exécuter le script pour installer Wiregard et répondre aux questions:
    • ./wireguard-install.sh
    • Une fois Wireguard installé, faire ces modifications du service wg-quick@.service pour forcer la gestion de l’interface du tunnel wireguard par boringtun-cli :
    • sed -i '19 i Environment=WG_QUICK_USERSPACE_IMPLEMENTATION=boringtun-cli' /lib/systemd/system/wg-quick@.service
    • Modifier les permissions :
    • sed -i '20 i Environment=WG_SUDO=1' /lib/systemd/system/wg-quick@.service
    • Prise en compte des modifications du service par systemd :
    • systemctl daemon-reload
    • Stopper le service wg-quick@wg0 :
    • systemctl stop wg-quick@wg0
    • Démarrer Wireguard :
    • systemctl start wg-quick@wg0
    • Vérifier le statut de Wireguard :
    • systemctl status wg-quick@wg0

      Resources

      ❌
      ❌