Téléverser les fichiers vers "/"
This commit is contained in:
1 parent
9852c54e14
commit
54e9f679b3
1 file changed
+92
-2
@@ -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).
|
||||
Reference in new issue
Block a user