Compare commits

...

14 Commits

33 changed files with 413 additions and 80 deletions

View File

@ -0,0 +1,88 @@
### ✅ **Résumé des commandes pour créer une clé GPG avec une sous-clé sur Debian**
---
## **1⃣ Générer une clé principale avec une sous-clé automatique**
```bash
gpg --full-generate-key
```
- Choisissez **RSA and RSA (par défaut)**
- Sélectionnez **4096 bits** (plus sécurisé)
- Définissez la durée de validité (**ex: 2y pour 2 ans, 0 pour illimité**)
- Renseignez **Nom, Email et un commentaire (facultatif)**
- Définissez un **mot de passe sécurisé** pour protéger votre clé
🔹 **Résultat** :
GPG crée **une clé principale** (pour signer/certifier) et **une sous-clé** (pour chiffrer les messages).
---
## **2⃣ Vérifier la clé et la sous-clé**
```bash
gpg --list-keys
```
Vous devriez voir quelque chose comme :
```
pub rsa4096 2025-03-13 [SC]
B8423648B0F61354C04C06CD45E9DF477F0EC7A5
uid [ultimate] Donald Duck <donald@duck.com>
sub rsa4096 2025-03-13 [E]
```
- `pub` = **Clé principale** (Sign & Certify)
- `sub` = **Sous-clé** (Encryption)
---
## **3⃣ Ajouter une nouvelle sous-clé (facultatif)**
Si vous voulez **ajouter une sous-clé manuellement**, exécutez :
```bash
gpg --edit-key B8423648B0F61354C04C06CD45E9DF477F0EC7A5
```
Puis, dans linterface interactive :
```text
addkey
```
- Choisissez **RSA (4096 bits)**
- Sélectionnez **Usage : E pour chiffrement, S pour signature, A pour authentification**
- Définissez la **durée de validité**
- Confirmez avec `save`
---
## **4⃣ Exporter votre clé publique pour la partager**
```bash
gpg --armor --export donald@duck.com > public-key.asc
```
📤 **Envoyez ce fichier** aux personnes qui doivent vérifier vos signatures.
---
## **5⃣ Exporter votre clé privée pour la sauvegarder (⚠️ Sécurisez-la !)**
```bash
gpg --export-secret-keys --armor donald@duck.com > private-key.asc
```
📌 **Ne partagez jamais cette clé !** Stockez-la en lieu sûr.
---
## **6⃣ Envoyer votre clé publique à un serveur de clés**
```bash
gpg --keyserver hkps://keys.openpgp.org --send-keys B8423648B0F61354C04C06CD45E9DF477F0EC7A5
```
Cela permet aux autres dobtenir votre clé pour vérifier vos signatures.
---
### 🎯 **Récapitulatif des commandes essentielles**
| **Action** | **Commande** |
|---------------------------------|-------------|
| Générer une clé GPG | `gpg --full-generate-key` |
| Voir les clés | `gpg --list-keys` |
| Voir les clés secrètes | `gpg --list-secret-keys` |
| Modifier une clé existante | `gpg --edit-key <ID_CLÉ>` |
| Ajouter une sous-clé | `addkey` (dans `gpg --edit-key`) |
| Exporter la clé publique | `gpg --armor --export <email> > public-key.asc` |
| Exporter la clé privée (backup) | `gpg --export-secret-keys --armor <email> > private-key.asc` |
| Publier la clé sur un serveur | `gpg --keyserver hkps://keys.openpgp.org --send-keys <ID_CLÉ>` |
---

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Fichier de sortie
OUTPUT_FILE=".directories.txt"

19
scripts/.generate_licence.sh Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
LICENSE="Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0"
# Recherche récursive de tous les fichiers contenant un shebang #!/bin/bash
find . -type f -exec grep -l "^#!/bin/bash" {} \; | while read -r file; do
echo "Traitement du fichier : $file"
# Vérifie si la deuxième et troisième ligne contiennent une mention de licence
sed -i.bak -e '2,3d' "$file"
# Insère la nouvelle licence après le shebang
sed -i "2i # $LICENSE" "$file"
echo "Licence mise à jour dans : $file"
done
echo "Mise à jour terminée."

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Nom du fichier de sortie
OUTPUT_FILE=".list_files.txt"

View File

@ -1,21 +0,0 @@
MIT License
Copyright (c) 2025 Cédric Abonnel / Cedrix
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

31
scripts/LICENCE.md Normal file
View File

@ -0,0 +1,31 @@
# License for Scripts and Notes
This work is licensed under the **Creative Commons Attribution - NonCommercial 4.0 International (CC BY-NC 4.0)**.
## Terms of Use
You are allowed to:
- **Use** this work for personal and non-commercial purposes.
- **Modify** and adapt this work for your own needs.
- **Share** this work under the same license, provided you give credit to the original author.
### Attribution
Any reuse, distribution, or modification of this work must include a clear mention of the original author.
Example: *"Based on work by Cédric Abonnel / Cédrix under CC BY-NC 4.0 license"*.
## Commercial Use
The use of this work in a **commercial or for-profit context** (including but not limited to businesses, paid services, and integration into commercial products) **is not allowed without specific agreement**.
If you wish to use this work for commercial purposes, please contact me to establish a suitable license.
## Disclaimer
This work is provided "as is," without any warranty. The author shall not be held liable for any damages resulting from its use.
## Compliance with NIS2 Directive
This license and the usage of the associated scripts and notes should be considered in the context of the **NIS2 Directive** (Network and Information Security Directive 2). Organizations using these materials within their cybersecurity frameworks should ensure compliance with NIS2, particularly regarding risk management, reporting obligations, and security measures. The author does not assume responsibility for compliance violations related to the integration or use of these materials.
Furthermore, while this license allows free non-commercial use, it does not exempt organizations from their legal obligations under **NIS2**. Users should assess whether modifications or adaptations of these materials impact their regulatory requirements and take necessary actions to remain compliant.
## Additional Information
For more details on the CC BY-NC 4.0 license, visit:
[https://creativecommons.org/licenses/by-nc/4.0/](https://creativecommons.org/licenses/by-nc/4.0/)

32
scripts/LICENCE_FR.md Normal file
View File

@ -0,0 +1,32 @@
# Licence d'Utilisation des Scripts et Notes
Ce travail est sous licence **Creative Commons Attribution - Pas d'Utilisation Commerciale 4.0 International (CC BY-NC 4.0)**.
## Conditions d'Utilisation
Vous êtes autorisé à :
- **Utiliser** ce travail à des fins personnelles et non commerciales.
- **Modifier** et adapter ce travail pour vos propres besoins.
- **Partager** ce travail sous la même licence, en mentionnant l'auteur original.
### Attribution
Toute réutilisation, distribution ou modification de ce travail doit inclure une mention claire de lauteur original.
Exemple : *"Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0"*.
## Usage Commercial
L'utilisation de ce travail dans un cadre **commercial ou lucratif** (incluant, mais sans s'y limiter, les entreprises, services payants, et intégration dans des produits commerciaux) **n'est pas autorisée sans accord spécifique**.
Si vous souhaitez utiliser ce travail à des fins commerciales, veuillez me contacter pour établir une licence adaptée.
## Exclusions de Garantie
Ce travail est fourni "tel quel", sans garantie d'aucune sorte. L'auteur ne pourra être tenu responsable d'éventuels dommages liés à son utilisation.
## Conformité avec la Directive NIS2
Cette licence et lutilisation des scripts et notes associés doivent être considérées dans le cadre de la **Directive NIS2** (Network and Information Security Directive 2). Les organisations utilisant ces matériaux dans leur cadre de cybersécurité doivent sassurer de leur conformité avec NIS2, en particulier en ce qui concerne la gestion des risques, les obligations de déclaration et les mesures de sécurité. Lauteur ne saurait être tenu responsable déventuelles violations de conformité résultant de lintégration ou de lutilisation de ces matériaux.
De plus, bien que cette licence autorise une utilisation libre à des fins non commerciales, elle nexempte pas les organisations de leurs obligations légales au titre de la **NIS2**. Les utilisateurs doivent évaluer si les modifications ou adaptations de ces matériaux ont un impact sur leurs exigences réglementaires et prendre les mesures nécessaires pour rester conformes.
## Informations Complémentaires
Pour plus dinformations sur la licence CC BY-NC 4.0, consultez :
[https://creativecommons.org/licenses/by-nc/4.0/](https://creativecommons.org/licenses/by-nc/4.0/)

View File

@ -11,61 +11,14 @@ Chaque sous-dossier contient une famille de scripts destinés à l'installation
## ⚙️ Utilisation
### 1⃣ Cloner le dépôt ou télécharger un dossier spécifique
Vous pouvez cloner tout le dépôt ou télécharger uniquement un dossier particulier :
```bash
git clone --depth 1 --filter=blob:none --sparse https://git.abonnel.fr/cedricAbonnel/notes-techniques.git
cd notes-techniques
git sparse-checkout add scripts/server-mail
```
Remplacez `server-mail` par le dossier correspondant au service que vous souhaitez installer, ou utilisez le script de déploiement ci-dessous.
### 2⃣ Exécuter le script principal du service choisi
Exemple pour un serveur mail :
```bash
cd scripts/server-mail
./setup_server.sh
```
---
## 🚀 Script de déploiement automatisé
Ce dépôt propose un script permettant de télécharger uniquement les fichiers nécessaires sans cloner l'intégralité du projet.
### 🔹 1. Télécharger le script `fetch_scripts.sh`
Utilisez la commande suivante :
```bash
wget -O fetch_scripts.sh "https://git.abonnel.fr/cedricAbonnel/notes-techniques/raw/branch/main/scripts/fetch_scripts.sh"
chmod +x fetch_scripts.sh
```
### 🔹 2. Exécuter le script
Lancez le script pour récupérer les fichiers nécessaires :
```bash
./fetch_scripts.sh
```
Le script vous proposera une liste de dossiers disponibles. Sélectionnez ceux que vous souhaitez télécharger en entrant leurs numéros.
### 🔹 3. Exemple d'utilisation
#### 📌 Interface de sélection
```
Sélectionnez les dossiers à télécharger :
[ ] server-mail
[ ] server-httpd
<Ok> <Annuler>
```
Seuls les dossiers cochés seront téléchargés.
---
Consulter le document d'[installation](INSTALL.md).
## 🤝 Contribution
Vous pouvez ajouter de nouveaux scripts en respectant la structure existante et en documentant leur fonctionnement.
Consulter le document de [contribution](CONTRIBUTING.md) pour plus d'informations.
## 📜 Licence
Ce projet est sous licence [MIT](LICENSE).
Ce projet est sous licence [MIT](LICENSE). Vous trouverez plus d'explications dans la [note d'informations concernant la Licence MIT en français](LICENCE_FR.md).

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Vérifier si le script est exécuté en root
check_root() {

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Importer les fonctions communes
source "$(dirname "$0")/../common/common_utils.sh"

View File

@ -1,5 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Définition de l'URL du script
SCRIPT_URL="https://git.abonnel.fr/cedricAbonnel/notes-techniques/raw/branch/main/scripts/fetch_scripts.sh"

View File

@ -1,4 +1,6 @@
add_dns_entry.sh
find_hostname.sh
get_first_free_ip.sh
remove_dns_entry.sh
search_entry.sh
setup_dhcp.sh

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Importer les fonctions communes
source "$(dirname "$0")/../common/common_utils.sh"
@ -25,16 +26,25 @@ IP="$1"
shift # Supprime le premier argument pour ne garder que les hostnames
HOSTNAMES=("$@")
# Fonction pour obtenir le nom de domaine de la machine
get_domain_name() {
local domain=$(dnsdomainname)
echo "$domain"
# Fonction pour obtenir le PTR record formaté
get_ptr_record() {
local ip="$1"
local reversed_ip=$(echo "$ip" | awk -F. '{print $4"."$3"."$2"."$1".in-addr.arpa"}')
echo "$reversed_ip"
}
# Fonction pour vérifier si un PTR existe
is_ptr_registered() {
local ip="$1"
local ptr=$(get_ptr_record "$ip")
grep -q "ptr-record=$ptr" "$DNSMASQ_CONF"
return $?
}
# Fonction pour obtenir le FQDN d'un hostname
get_fqdn() {
local hostname="$1"
local domain_name=$(get_domain_name)
local domain_name=$(dnsdomainname)
if [[ -n "$domain_name" ]]; then
echo "$hostname.$domain_name"
else
@ -42,6 +52,14 @@ get_fqdn() {
fi
}
# Fonction pour obtenir le FQDN réel avec `host`
get_actual_fqdn() {
local ip="$1"
local actual_fqdn=$(host "$ip" | awk '/domain name pointer/ {print $5}' | sed 's/\.$//')
echo "$actual_fqdn"
}
# Fonction pour vérifier si un hostname est déjà enregistré
is_hostname_registered() {
local hostname="$1"
@ -51,11 +69,12 @@ is_hostname_registered() {
# Variable pour suivre si un changement a été fait
MODIFIED=0
MODIFIED_BY_HOSTNAME=0
MODIFIED_BY_FQDN=0
# Vérifier si l'IP existe déjà dans le fichier
EXISTING_HOSTNAMES=($(grep -E "address=/[^ ]+/$IP$" "$DNSMASQ_CONF" | sed -E "s/address=\/([^\/]+)\/$IP/\1/"))
if [[ ${#EXISTING_HOSTNAMES[@]} -gt 0 ]]; then
echo "L'adresse IP $IP existe déjà avec les noms suivants : ${EXISTING_HOSTNAMES[*]}"
else
@ -70,19 +89,85 @@ for HOSTNAME in "${HOSTNAMES[@]}"; do
if is_hostname_registered "$FQDN"; then
echo "L'association $FQDN -> $IP existe déjà."
else
read -p "Le FQDN $FQDN n'est pas dans la liste. Voulez-vous l'ajouter ? (o/n) " REPLY
read -t 5 -p "Le FQDN $FQDN n'est pas dans la liste. Voulez-vous l'ajouter ? (o/N) 5s " REPLY
# Si aucune entrée n'est faite dans le délai imparti, on met "n" par défaut
if [[ -z "$REPLY" ]]; then
REPLY="n"
echo -e "\nTemps écoulé. Réponse par défaut : n"
fi
if [[ "$REPLY" =~ ^[Oo]$ ]]; then
echo "address=/$FQDN/$IP" >> "$DNSMASQ_CONF"
echo "Ajout de : $FQDN -> $IP"
MODIFIED=1
MODIFIED_BY_FQDN=1
fi
fi
if is_hostname_registered "$HOSTNAME"; then
echo "L'association $HOSTNAME -> $IP existe déjà."
else
echo "address=/$HOSTNAME/$IP" >> "$DNSMASQ_CONF"
echo "Ajout de : $HOSTNAME -> $IP"
MODIFIED=1
MODIFIED_BY_HOSTNAME=1
fi
# Vérification et ajout du PTR record
PTR_RECORD=$(get_ptr_record "$IP")
EXISTING_PTR=$(grep -E "ptr-record=$PTR_RECORD," "$DNSMASQ_CONF" | cut -d'=' -f2)
if [[ $MODIFIED -eq 1 ]]; then
# Déterminer $ACTUAL_FQDN
test $MODIFIED_BY_HOSTNAME -eq 1 && ACTUAL_FQDN=$HOSTNAME
if is_hostname_registered "$FQDN"; then
ACTUAL_FQDN=$FQDN
fi
test $MODIFIED_BY_FQDN -eq 1 && ACTUAL_FQDN=$FQDN
else
ACTUAL_FQDN=""
if is_hostname_registered "$HOSTNAME"; then
ACTUAL_FQDN=$HOSTNAME
fi
if is_hostname_registered "$FQDN"; then
ACTUAL_FQDN=$FQDN
fi
fi
# Si ACTUAL_FQDN n'est pas vide, alors
if [[ -n "$ACTUAL_FQDN" ]]; then
# Si l'enregistrement actuel ne correspond pas déjà à $ACTUAL_FQDN, procéder à la mise à jour
if [[ "$(get_actual_fqdn "$IP")" != "$ACTUAL_FQDN" ]]; then
if [[ -n "$EXISTING_PTR" ]]; then
if [[ "$EXISTING_PTR" != "ptr-record=$PTR_RECORD,$ACTUAL_FQDN" ]]; then
read -t 5 -p "Voulez-vous le remplacer ? (o/N) 5s " REPLY
if [[ -z "$REPLY" ]]; then
REPLY="n"
echo -e "\nTemps écoulé. Réponse par défaut : n"
fi
if [[ "$REPLY" =~ ^[Oo]$ ]]; then
sed -i "/ptr-record=$PTR_RECORD/d" "$DNSMASQ_CONF"
echo "ptr-record=$PTR_RECORD,${ACTUAL_FQDN}" >> "$DNSMASQ_CONF"
echo "PTR mis à jour : $PTR_RECORD -> ${ACTUAL_FQDN}"
MODIFIED=1
fi
fi
else
echo "ptr-record=$PTR_RECORD,${ACTUAL_FQDN}" >> "$DNSMASQ_CONF"
echo "Ajout du PTR : $PTR_RECORD -> ${ACTUAL_FQDN}"
MODIFIED=1
fi
fi
fi
done
# Redémarrer dnsmasq seulement si des changements ont été faits
if [[ $MODIFIED -eq 1 ]]; then
systemctl restart dnsmasq
echo "Redémarrage de dnsmasq effectué."
else
echo "Aucune modification nécessaire."
fi
fi

View File

@ -0,0 +1,103 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Importer les fonctions communes
source "$(dirname "$0")/../common/common_utils.sh"
# Vérifier si le script est exécuté en root
check_root
# Vérifie si une IP est fournie
if [ -z "$1" ]; then
echo "Usage: $0 <IP>"
exit 1
fi
IP="$1"
echo "🔍 Recherche du nom d'hôte pour l'IP : $IP"
# Fonction pour vérifier si une commande est disponible
command_exists() {
command -v "$1" &> /dev/null
}
# Détection du serveur DNS en prenant en compte dnsmasq et fallback sur resolv.conf
get_dns_server() {
local dns_server=""
if command_exists resolvectl; then
dns_server=$(resolvectl dns | awk '/^Global:/ {print $2; exit}')
fi
if [ -z "$dns_server" ] && command_exists dnsmasq; then
dns_server=$(ss -tulpn | grep dnsmasq | awk '{print $5}' | cut -d: -f1 | head -n1)
fi
if [ -z "$dns_server" ] && [ -f /etc/resolv.conf ]; then
dns_server=$(grep -m1 '^nameserver' /etc/resolv.conf | awk '{print $2}')
fi
echo "${dns_server:-9.9.9.9}" # Utilisation d'un fallback 9.9.9.9 si aucun DNS trouvé
}
DNS_SERVER=$(get_dns_server)
echo "🛜 Serveur DNS détecté : $DNS_SERVER"
# 1⃣ Test LLMNR (Link-Local Multicast Name Resolution)
if command_exists resolvectl; then
HOSTNAME_LLMNR=$(resolvectl query "$IP" 2>/dev/null | grep -oP '(?<=Name:\s).*' | head -n1)
if [ -n "$HOSTNAME_LLMNR" ]; then
echo "✅ LLMNR: $HOSTNAME_LLMNR"
exit 0
fi
else
echo "⚠ LLMNR non disponible (resolvectl absent)"
fi
# 2⃣ Test mDNS (Multicast DNS / Avahi)
if command_exists avahi-resolve; then
HOSTNAME_MDNS=$(avahi-resolve -a "$IP" 2>/dev/null | awk '{print $2}')
if [ -n "$HOSTNAME_MDNS" ]; then
echo "✅ mDNS (Avahi): $HOSTNAME_MDNS"
exit 0
fi
else
echo "⚠ mDNS non disponible (avahi-resolve absent)"
fi
# 3⃣ Vérification du cache ARP
if command_exists arp; then
HOSTNAME_ARP=$(arp -a | grep "$IP" | awk '{print $1}')
if [ -n "$HOSTNAME_ARP" ]; then
echo "✅ ARP: $HOSTNAME_ARP"
exit 0
fi
else
echo "⚠ ARP non disponible"
fi
# 4⃣ Vérification via NetBIOS (Windows/Samba)
if command_exists nmblookup; then
HOSTNAME_NETBIOS=$(nmblookup -A "$IP" 2>/dev/null | grep -m1 '<00>' | awk '{print $1}')
if [ -n "$HOSTNAME_NETBIOS" ]; then
echo "✅ NetBIOS: $HOSTNAME_NETBIOS"
exit 0
fi
else
echo "⚠ NetBIOS non disponible (nmblookup absent)"
fi
# 5⃣ Scan réseau avec Nmap pour identifier l'hôte
if command_exists nmap; then
HOSTNAME_NMAP=$(nmap --dns-servers "$DNS_SERVER" -sP "$IP" 2>/dev/null | grep "Nmap scan report" | awk '{print $5}')
if [ -n "$HOSTNAME_NMAP" ]; then
echo "✅ Nmap: $HOSTNAME_NMAP"
exit 0
fi
else
echo "⚠ Nmap non disponible"
fi
echo "❌ Aucune correspondance trouvée."
exit 1

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Déterminer l'interface réseau active (exclure loopback)
INTERFACE=$(ip route | awk '/default/ {print $5; exit}')

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Importer les fonctions communes
source "$(dirname "$0")/../common/common_utils.sh"

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Fichier contenant les enregistrements
FILE="/etc/dnsmasq.d/custom_hosts"

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Importer les fonctions communes
source "$(dirname "$0")/../common/common_utils.sh"
@ -10,6 +11,9 @@ check_root
if ! command -v dnsmasq &> /dev/null; then
echo "Installation de dnsmasq..."
apt update && apt install -y dnsmasq
echo "Installation d'outils réseau..."
apt install -y systemd-resolved avahi-utils net-tools smbclient nmap
systemctl disable --now avahi-daemon
else
echo "dnsmasq est déjà installé."
fi
@ -143,6 +147,16 @@ EOF
# Redémarrer dnsmasq pour appliquer les modifications
systemctl restart dnsmasq
# Modifier /etc/resolv.conf
echo 'nameserver 127.0.0.1' > /etc/resolv.conf
echo "Configuration DNS mise à jour sur 127.0.0.1"
# Redémarrer les services nécessaires
echo "Redémarrage des services..."
systemctl restart dnsmasq 2>/dev/null && echo "dnsmasq redémarré."
systemctl restart systemd-resolved 2>/dev/null && echo "systemd-resolved redémarré."
systemctl restart networking 2>/dev/null && echo "networking redémarré."
systemctl restart NetworkManager 2>/dev/null && echo "NetworkManager redémarré."
echo "Configuration terminée avec succès!"
echo "Serveur DHCP/DNS fonctionnel sur $IP_SERVEUR"
echo "Les clients recevront une IP entre $DHCP_START et $DHCP_END et seront associés au domaine $DOMAINE"

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
DOMAIN="$1"

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
DOMAIN="$1"

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Importer les fonctions communes
source "$(dirname "$0")/../common/common_utils.sh"

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
POSTFIX_ALIASES="/etc/postfix/virtual_aliases"

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Définition des variables
MAILDIR="/var/mail/vhosts"

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
POSTFIX_ALIASES="/etc/postfix/virtual_aliases"

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
DOVECOT_USERS="/etc/dovecot/users"
MAILDIR="/var/mail/vhosts"

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
POSTFIX_ALIASES="/etc/postfix/virtual_aliases"

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
MAILDIR="/var/mail/vhosts"
POSTFIX_CONFIG="/etc/postfix/virtual_domains"

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
DOVECOT_USERS="/etc/dovecot/users"
MAILDIR="/var/mail/vhosts"

View File

@ -1,3 +1,6 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Récupérer le nom dhôte complet (FQDN)
SERVER_NAME=$(hostname -f) # Privilégier hostname -f

View File

@ -1,3 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
echo "=== Liste des alias et redirections ==="
cat /etc/postfix/virtual_aliases

View File

@ -1,3 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
echo "=== Liste des domaines gérés ==="
cat /etc/postfix/virtual_domains

View File

@ -1,3 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
echo "=== Liste des utilisateurs ==="
cat /etc/dovecot/users | cut -d: -f1

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Basé sur un travail de Cédric Abonnel / Cédrix sous licence CC BY-NC 4.0
# Importer les fonctions communes
source "$(dirname "$0")/../common/common_utils.sh"