Téléverser les fichiers vers "/"

This commit is contained in:
Ldfa committed 2026-10-05 11:06:18 +02:00
1 parent 9852c54e14
commit 54e9f679b3
1 file changed
+92 -2
+92 -2
View File
@@ -1,3 +1,93 @@
# Scripts-Linux # post-install.sh
Des scripts Bash pour Linux Script Bash de personnalisation d'une installation **Debian** fraîche : mise à jour du système, création d'un utilisateur sudo, durcissement léger de SSH, confort du shell, fuseau horaire et locale.
Le script est **idempotent** : il peut être relancé sans dupliquer la configuration ni écraser l'existant (utilisateur, clés SSH, alias).
## Ce que fait le script
- Met à jour le système (`apt-get update`, `dist-upgrade`, `autoremove`)
- Installe `curl`, `wget`, `git`, `sudo`, `locales` et `unattended-upgrades`
- Active les mises à jour de sécurité automatiques (`/etc/apt/apt.conf.d/20auto-upgrades`)
- Crée un utilisateur et l'ajoute au groupe `sudo`
- Copie les clés SSH de `root` vers ce nouvel utilisateur (permissions 700/600)
- Change le port SSH via un fichier drop-in dans `/etc/ssh/sshd_config.d/`, après validation avec `sshd -t`
- Installe et configure **fail2ban** (optionnel, la question est posée pendant l'exécution)
- Ajoute des alias (`ls`, `ll`, `l`) et la coloration dans le `.bashrc` de root et de l'utilisateur
- Configure le fuseau horaire et la locale
## Prérequis
- Debian 11 ou supérieur (le répertoire `/etc/ssh/sshd_config.d/` est requis)
- Un accès root (ou `sudo`)
- Un accès réseau pour installer les paquets
## Utilisation
```bash
git clone https://github.com/<utilisateur>/<depot>.git
cd <depot>
chmod +x post-install.sh
sudo ./post-install.sh
```
### Options
| Option | Description | Défaut |
|--------|-------------|--------|
| `-u NOM` | Nom de l'utilisateur à créer | `ldfa` |
| `-p PORT` | Port SSH | `50822` |
| `-f` | Installe fail2ban sans poser la question | question posée |
| `-h` | Affiche l'aide | |
Exemples :
```bash
sudo ./post-install.sh -u alice -p 2222
sudo ./post-install.sh -f
```
### Variables d'environnement
Les valeurs par défaut peuvent aussi être modifiées par variables d'environnement :
| Variable | Description | Défaut |
|----------|-------------|--------|
| `NEW_USER` | Utilisateur à créer | `ldfa` |
| `SSH_PORT` | Port SSH | `50822` |
| `TIMEZONE` | Fuseau horaire | `Europe/Paris` |
| `LOCALE` | Locale du système | `fr_FR.UTF-8` |
| `INSTALL_FAIL2BAN` | `ask` (question), `1` (oui), `0` (non) | `ask` |
```bash
sudo TIMEZONE=Europe/Brussels INSTALL_FAIL2BAN=0 ./post-install.sh
```
## ⚠️ Avant de lancer le script
Le script modifie la configuration SSH. Pour ne pas vous retrouver bloqué :
1. **Ouvrez le port SSH choisi** dans votre pare-feu (et chez votre hébergeur, le cas échéant) avant de fermer votre session.
2. **Testez la connexion dans un nouveau terminal** (`ssh -p <port> <utilisateur>@<serveur>`) avant de quitter la session d'origine.
3. Le script copie les clés de `/root/.ssh/authorized_keys`. S'il n'existe pas, aucune clé n'est copiée : prévoyez un mot de passe pour le nouvel utilisateur.
Le script demande un mot de passe pour le nouvel utilisateur et propose un redémarrage à la fin. Ces questions nécessitent un terminal interactif : sans terminal (cron, pipe), le redémarrage est seulement recommandé et fail2ban est ignoré, sauf avec `-f`.
## Pistes d'amélioration
Ces options ne sont volontairement pas activées par défaut :
- Désactiver la connexion SSH de root (`PermitRootLogin no`) et l'authentification par mot de passe (`PasswordAuthentication no`), une fois la connexion par clé validée
- Installer un pare-feu (`ufw` ou `nftables`)
## Contribuer
Les issues et pull requests sont les bienvenues. Avant de proposer une modification, vérifiez le script avec [ShellCheck](https://www.shellcheck.net/) :
```bash
shellcheck post-install.sh
```
## Licence
Distribué sous licence MIT. Voir le fichier [LICENSE](LICENSE).