Hardening & Automatisation de postes Linux — Preseed + Ansible
2 min read
Page Views
Contexte
En stage, ma mission : automatiser le déploiement de postes Linux (postes utilisateurs et postes de pentest) — installation, sécurisation et configuration, sans intervention manuelle.
Le problème
Une installation manuelle de poste = temps perdu, configuration non reproductible, et risque d’incohérences de sécurité entre les machines (services inutiles actifs, outils mal isolés, pas de chiffrement par défaut).
Ce que j’ai mis en place
- Installation automatisée de Debian via fichier Preseed (zéro clic, zéro saisie manuelle)
- Playbooks Ansible pour le déploiement des applications de base (VSCode, Thunderbird, Bitwarden, USBGuard…)
- Chiffrement du disque automatisé (VeraCrypt) via script Bash
- Environnement pentest dédié : déploiement automatisé de Go + outils offensifs (ffuf, amass, subfinder, gowitness, dnsx, gau…), outils Python isolés en venv (Bypass URL Parser, Droopescan), SecLists intégré
- Documentation complète des procédures pour rendre le déploiement reproductible par toute l’équipe
Résultat
Un poste — travail ou pentest — entièrement provisionné, durci et prêt à l’emploi en une seule exécution de playbook, sans configuration manuelle ni risque d’oubli de sécurité.
Stack : Debian, Preseed, Ansible, Bash, VeraCrypt, USBGuard, Go, Python (venv)
Exemplde de playbook réalisé
---
- name: Install basic apps
hosts: all
become: true
tasks:
- name: Install base utilities
apt:
name:
- curl
- wget
- gnupg
- ca-certificates
- git
- thunderbird
- usbguard
state: present
update_cache: yes
- name: Ensure keyrings directory exists
file:
path: /usr/share/keyrings
state: directory
mode: '0755'
- name: Add Microsoft GPG key
shell: |
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | \
gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
args:
creates: /usr/share/keyrings/microsoft-prod.gpg
- name: Add VS Code repository
ansible.builtin.apt_repository:
repo: >-
deb [arch=amd64,arm64,armhf signed-by=/usr/share/keyrings/microsoft-prod.gpg]
https://packages.microsoft.com/repos/code stable main
state: present
filename: vscode
update_cache: yes
- name: Add Element Nightly GPG key
get_url:
url: https://packages.element.io/debian/element-io-archive-keyring.gpg
dest: /usr/share/keyrings/element-io-archive-keyring.gpg
mode: '0644'
- name: Add Element Nightly repository
ansible.builtin.apt_repository:
repo: deb [signed-by=/usr/share/keyrings/element-io-archive-keyring.gpg] https://packages.element.io/debian/ default main
state: present
filename: element-nightly
update_cache: yes
- name: Install main applications
apt:
name:
- code
- element-nightly
state: present
update_cache: yes