Problème identifié: Le script install_php_admin.sh utilisait un mot de passe MySQL hardcodé au lieu de charger les vrais credentials depuis /opt/sae501/secrets/db.env.
Impact:
Correction appliquée (Commit b08bdc8):
/opt/sae501/secrets/db.envdb.env avant générationAction requise:
# Si vous avez une installation existante avec PHP-Admin non fonctionnel:
cd /opt/SAE501
git pull origin main
# Ré-exécuter le script corrigé:
sudo bash scripts/install_php_admin.sh
# Vérifier que PHP-Admin fonctionne:
curl -I http://localhost/admin
# Attendu: HTTP/1.1 200 OK
Nouvelles installations: Utilisez directement la version corrigée (install_php_admin.sh v2.2.0).
Créer une infrastructure d’authentification RADIUS centralisée pour une chaîne de salles de sport permettant:
db.env# Pendant l'installation:
# - Pas de bureau graphique nécessaire
# - SSH activé
# - Utilisateur standard créé
ping google.com
# Se connecter en SSH ou terminal
sudo su # Passer en root
# Cloner le répository
git clone https://github.com/sfrayan/SAE501.git
cd SAE501
# Rendre les scripts exécutables
chmod +x scripts/*.sh tests/*.sh
# 1. Installer MySQL et créer la base de données
sudo bash scripts/install_mysql.sh
# 2. Installer FreeRADIUS (100% AUTONOME)
# ✨ Génère AUTOMATIQUEMENT:
# - Certificats SSL auto-signés
# - Configuration SQL (rlm_sql_mysql)
# - Configuration EAP (PEAP-MSCHAPv2)
# - Sites default + inner-tunnel
# - Module mschap
# - Test d'authentification
sudo bash scripts/install_radius.sh
# 3. Installer PHP-Admin (interface web) 🆕 ✅ VERSION CORRIGÉE v2.2.0
# ✨ GÉNÈRE AUTOMATIQUEMENT:
# - Toutes les pages PHP (login, dashboard, users, audit, system)
# - Configuration Apache complète
# - Permissions sécurisées
# - Design moderne responsive
# - ✅ CHARGE LES VRAIS CREDENTIALS DEPUIS db.env!
# - ZÉRO fichier externe requis!
sudo bash scripts/install_php_admin.sh
# 4. Installer Wazuh (monitoring) - OPTIONNEL
# 🆕 NOUVELLE VERSION 100% AUTONOME!
# ✨ Installe AUTOMATIQUEMENT:
# - Wazuh Manager 4.7
# - OpenSearch (moteur de recherche)
# - Filebeat (collecteur de logs)
# - Wazuh Dashboard (interface web)
# - Configuration complète ossec.conf
# - Règles personnalisées RADIUS
# - Aucun fichier externe requis!
sudo bash scripts/install_wazuh.sh
# 5. Appliquer le hardening sécurité - ⭐ FORTEMENT RECOMMANDÉ
# 🆕 VERSION 2.0 - HARDENING COMPLET AUTOMATISÉ!
# ✨ Configure AUTOMATIQUEMENT:
# 🔥 UFW Firewall (règles optimisées)
# 🔐 SSH durci (chiffrement moderne, restrictions)
# 🛡️ Paramètres kernel sécurisés (sysctl)
# 👤 Politiques utilisateurs (PAM, limites)
# 🚫 Fail2Ban (anti-bruteforce SSH/Apache)
# 📝 Auditd (surveillance fichiers critiques)
# 🌐 Apache sécurisé (headers, modules)
# 🗄️ MySQL sécurisé (logs, InnoDB)
# 📂 Permissions durcies (fichiers système)
sudo bash scripts/install_hardening.sh
Durée estimée:
✨ Nouveautés v2.2.0 (PHP-Admin):
/opt/sae501/secrets/db.env/var/log/sae501_php_admin_install.logAvantages de l’installation modulaire:
Les scripts automatisent l’installation, mais 3 configurations manuelles sont OBLIGATOIRES avant de passer aux tests:
radius/clients.conf avec vos équipements réseauPourquoi: FreeRADIUS refuse les connexions des équipements non déclarés (sécurité)
Fichier: /etc/freeradius/3.0/clients.conf
Configuration minimale:
# Éditer le fichier
sudo nano /etc/freeradius/3.0/clients.conf
# Ajouter vos équipements (exemples):
# Point d'accès WiFi
client access_point_1 {
ipaddr = 192.168.1.100
secret = VotreSecret@Securise123!
shortname = AP-Bureau
}
# Switch réseau
client switch_1 {
ipaddr = 192.168.1.50
secret = VotreSecret@Securise123!
shortname = Switch-Etage1
}
# Sous-réseau complet (alternative)
client reseau_wifi {
ipaddr = 192.168.1.0/24
secret = VotreSecret@Securise123!
shortname = WiFi-Network
}
🚨 SÉCURITÉ:
testing123 par un secret FORT (min 20 caractères, lettres+chiffres+symboles)Redémarrer RADIUS:
sudo systemctl restart freeradius
sudo systemctl status freeradius # Vérifier OK
Pourquoi: EAP-PEAP nécessite un certificat serveur pour chiffrer les échanges
Option A - Auto-généré (LAB/TEST uniquement):
# Exécuter le générateur de certificats auto-signés
sudo bash scripts/generate_certificates.sh
# Résultat:
# ✅ Certificat créé dans /etc/freeradius/3.0/certs/
# ✅ Validité: 365 jours
# ⚠️ Auto-signé = Avertissement sur clients (acceptable en lab)
Option B - Certificat signé PRODUCTION (Let’s Encrypt/DigiCert):
# Installer certbot
sudo apt install certbot -y
# Obtenir certificat (nécessite un domaine)
sudo certbot certonly --standalone -d radius.votredomaine.com
# Copier dans FreeRADIUS
sudo cp /etc/letsencrypt/live/radius.votredomaine.com/fullchain.pem \
/etc/freeradius/3.0/certs/server.pem
sudo cp /etc/letsencrypt/live/radius.votredomaine.com/privkey.pem \
/etc/freeradius/3.0/certs/server.key
# Permissions
sudo chown freerad:freerad /etc/freeradius/3.0/certs/server.*
sudo chmod 640 /etc/freeradius/3.0/certs/server.*
# Redémarrer
sudo systemctl restart freeradius
🔒 Renouvellement automatique (Let’s Encrypt):
sudo crontab -e
# Ajouter:
0 3 * * * certbot renew --quiet --post-hook "systemctl restart freeradius"
Pourquoi: Base de données vide après installation (sauf utilisateur test)
Option A - Via phpMyAdmin (✅ RECOMMANDÉ):
http://VOTRE_IP/adminadmin / Admin@Secure123!jean.dupontPasse@Complexe123Option B - Via SQL direct:
mysql -u root -p radius
# Enter password: MySQL@Root123!
-- Ajouter utilisateur
INSERT INTO radcheck (username, attribute, op, value)
VALUES ('jean.dupont', 'Cleartext-Password', ':=', 'Passe@Complexe123');
-- Vérifier
SELECT * FROM radcheck;
EXIT;
Tester l’authentification:
radtest jean.dupont Passe@Complexe123 localhost 0 testing123
# Attendu: Received Access-Accept
clients.conf créé avec au moins 1 client RADIUStesting123)testuser)radtest réussitSi tous ces points sont OK, passez à l’ÉTAPE 4 (tests)
# Lancer tous les tests automatiques
sudo bash tests/run_all_tests.sh
Ce script teste automatiquement:
Résultat attendu:
================================================================
RÉSUMÉ DES TESTS
================================================================
Total des tests : 65
Tests réussis : 60
Tests échoués : 0
Avertissements : 5
Taux de réussite : 92% 🎉
================================================================
✓ TOUS LES TESTS CRITIQUES RÉUSSIS!
🎆 Installation SAE501 opérationnelle
================================================================
# Affiche l'état de tous les services
bash scripts/diagnostics.sh
Vous devriez voir:
# Test avec l'utilisateur créé automatiquement
radtest testuser testpass localhost 0 testing123
# Vous devriez voir:
# Received Access-Accept
URL: http://VOTRE_IP/admin
Utilisateur: admin
Mot de passe: Admin@Secure123!
Fonctionnalités disponibles:
✅ Si PHP-Admin fonctionne = BUG CORRIGÉ avec succès!
# 1. Changer le mot de passe PHP-Admin:
# Connectez-vous à http://VOTRE_IP/admin
# Allez dans Paramètres > Changer mot de passe
# 2. Changer le secret RADIUS dans clients.conf:
sudo nano /etc/freeradius/3.0/clients.conf
# Remplacez: secret = testing123
# Par: secret = VotreSecret@TrèsSécurisé123!
sudo systemctl restart freeradius
# 3. Changer MySQL root:
mysql -u root -p
# Enter: MySQL@Root123!
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NouveauMot@Passe123!';
EXIT;
# 4. Changer Wazuh Dashboard (si installé):
# Accéder à http://VOTRE_IP:5601
# Utilisateur: admin
# Modifier le mot de passe dans Settings
# Installer Let's Encrypt pour certificat gratuit
sudo apt install certbot python3-certbot-apache -y
# Obtenir un certificat (nécessite un nom de domaine)
sudo certbot --apache -d votredomaine.com
# Renouvellement automatique
sudo systemctl enable certbot.timer
L’installation actuelle est opérationnelle pour lab/test. Pour un déploiement production critique, implémentez ces améliorations:
Problème actuel: Certificats auto-signés = avertissements clients
Solution production:
# Option A - Let's Encrypt (gratuit, renouvelable auto)
sudo certbot certonly --standalone -d radius.votredomaine.com
# Lier à FreeRADIUS (voir ÉTAPE 3.5 section 2)
# Option B - Certificat commercial (DigiCert, Sectigo)
# 1. Générer CSR
openssl req -new -newkey rsa:4096 -nodes \
-keyout /etc/freeradius/3.0/certs/server.key \
-out /etc/freeradius/3.0/certs/server.csr
# 2. Soumettre CSR à l'autorité de certification
# 3. Installer certificat signé reçu
# 4. Redémarrer FreeRADIUS
Bénéfices:
Problème actuel: Secrets en clair dans /opt/sae501/secrets/db.env
Solution production - HashiCorp Vault:
# Installer Vault
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vault -y
# Initialiser Vault
vault server -dev # DEV MODE - en prod utiliser config production
# Stocker secret MySQL
vault kv put secret/sae501/mysql \
user="radiususer" \
password="VotreMotDePasseTrèsComplexe@2026"
# Récupérer dans script (exemple)
DB_PASSWORD=$(vault kv get -field=password secret/sae501/mysql)
Solution production - AWS Secrets Manager:
# Installer AWS CLI
sudo apt install awscli -y
# Configurer credentials
aws configure
# Créer secret
aws secretsmanager create-secret \
--name sae501/mysql \
--secret-string '{"user":"radiususer","password":"Complexe@2026"}'
# Récupérer dans script
DB_PASSWORD=$(aws secretsmanager get-secret-value \
--secret-id sae501/mysql \
--query SecretString --output text | jq -r .password)
Bénéfices:
Problème actuel: Serveur unique = point de défaillance unique (SPOF)
Solution production - Serveur secondaire + Load Balancer:
Architecture cible:
Load Balancer (HAProxy)
|
+-----------+-----------+
| |
RADIUS-1 (Master) RADIUS-2 (Standby)
| |
+-----------+-----------+
|
MySQL Cluster
(Master-Slave Replication)
Étapes de mise en œuvre:
# Sur RADIUS-1 (existant):
# Configurer réplication MySQL
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# Ajouter:
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = radius
mysql -u root -p
CREATE USER 'replicator'@'%' IDENTIFIED BY 'Repl@Password2026';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
SHOW MASTER STATUS; # Noter File et Position
# Sur RADIUS-2 (nouveau serveur):
# Cloner SAE501 et installer (même procédure ÉTAPE 1-3)
# Configurer réplication MySQL
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# Ajouter:
[mysqld]
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = radius
relay_log = /var/log/mysql/mysql-relay-bin.log
mysql -u root -p
CHANGE MASTER TO
MASTER_HOST='IP_RADIUS_1',
MASTER_USER='replicator',
MASTER_PASSWORD='Repl@Password2026',
MASTER_LOG_FILE='mysql-bin.000001', # Depuis SHOW MASTER STATUS
MASTER_LOG_POS=123456; # Depuis SHOW MASTER STATUS
START SLAVE;
SHOW SLAVE STATUS\G # Vérifier Slave_IO_Running: Yes
# Installer HAProxy (load balancer)
sudo apt install haproxy -y
sudo nano /etc/haproxy/haproxy.cfg
# Ajouter:
listen radius
bind *:1812
mode tcp
balance roundrobin
server radius1 IP_RADIUS_1:1812 check
server radius2 IP_RADIUS_2:1812 check backup
sudo systemctl restart haproxy
Bénéfices:
Problème actuel: Logs locaux = perte en cas de compromission serveur
Solution production - Syslog centralisé (rsyslog + S3/ELK):
# Sur serveur RADIUS:
sudo nano /etc/rsyslog.d/50-sae501.conf
# Ajouter:
# Envoyer logs FreeRADIUS vers serveur centralisé
$ModLoad imfile
$InputFileName /var/log/freeradius/radius.log
$InputFileTag radius:
$InputFileStateFile stat-radius
$InputFileSeverity info
$InputFileFacility local7
$InputRunFileMonitor
*.* @@syslog-central.entreprise.com:514 # TCP sécurisé
sudo systemctl restart rsyslog
# Option alternative - Envoyer vers AWS S3:
sudo apt install awscli -y
# Script de backup quotidien
sudo nano /usr/local/bin/backup_radius_logs.sh
#!/bin/bash
DATE=$(date +%Y%m%d)
tar -czf /tmp/radius-logs-$DATE.tar.gz /var/log/freeradius/
aws s3 cp /tmp/radius-logs-$DATE.tar.gz s3://entreprise-radius-logs/
rm /tmp/radius-logs-$DATE.tar.gz
sudo chmod +x /usr/local/bin/backup_radius_logs.sh
# Cron quotidien (3h du matin)
sudo crontab -e
0 3 * * * /usr/local/bin/backup_radius_logs.sh
Solution avancée - Stack ELK (Elasticsearch + Logstash + Kibana):
# Installer Filebeat (déjà présent si Wazuh installé)
sudo apt install filebeat -y
sudo nano /etc/filebeat/filebeat.yml
# Configurer:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/freeradius/*.log
fields:
service: radius
environment: production
output.elasticsearch:
hosts: ["elk.entreprise.com:9200"]
username: "filebeat"
password: "VotrePassword"
sudo systemctl restart filebeat
Bénéfices:
Obligatoire avant mise en production:
Recommandations supplémentaires:
URL: http://192.168.1.1
Login: admin
Password: admin (par défaut TP-Link)
testing123 (ou votre secret modifié)Sur un ordinateur:
sudo tail -f /var/log/freeradius/radius.logVia PHP-Admin (✅ RECOMMANDÉ):
http://VOTRE_IP/adminjean.dupontMonPasse@123Avantages PHP-Admin:
Via PHP-Admin:
Via PHP-Admin:
Logs en temps réel:
sudo tail -f /var/log/freeradius/radius.log
URL: http://VOTRE_IP:5601
Utilisateur: admin
Mot de passe: Admin@Wazuh123! (CHANGEZ-LE!)
Sections importantes:
Le script Wazuh crée automatiquement 10 règles spécifiques:
| Rule ID | Description | Niveau |
|---|---|---|
| 100001 | Authentification RADIUS réussie | 3 (Info) |
| 100002 | Authentification RADIUS échouée | 5 (Notice) |
| 100003 | Multiple échecs depuis même IP (5 en 5min) | 10 (Critical) |
| 100004 | Service RADIUS démarré | 3 (Info) |
| 100005 | Erreur connexion MySQL | 8 (Important) |
| 100006 | Client RADIUS non autorisé | 7 (Warning) |
| 100007 | Certificat SSL expiré | 8 (Important) |
| 100008 | Utilisateur inconnu | 5 (Notice) |
| 100009 | Mot de passe incorrect | 5 (Notice) |
| 100010 | Serveur RADIUS surchargé | 9 (Alert) |
# Sauvegarde complète
mysqldump -u root -p radius > backup_radius_$(date +%Y%m%d).sql
# Sauvegarder Wazuh
tar -czf backup_wazuh_$(date +%Y%m%d).tar.gz /var/ossec/etc
# Sauvegarder configuration hardening
tar -czf backup_hardening_$(date +%Y%m%d).tar.gz \
/etc/ssh/sshd_config \
/etc/ufw \
/etc/fail2ban \
/etc/audit/rules.d \
/etc/sysctl.d/99-sae501-hardening.conf
# Si problème, restaurer
mysql -u root -p radius < backup_radius_20260131.sql
tar -xzf backup_wazuh_20260131.tar.gz -C /
tar -xzf backup_hardening_20260131.tar.gz -C /
# Vérifier logs Fail2Ban
sudo fail2ban-client status sshd
sudo fail2ban-client status apache-auth
# Vérifier logs audit
sudo ausearch -k exec -ts today | tail -20
sudo ausearch -k sudoers_changes -ts today
# Vérifier activité réseau suspecte
sudo netstat -tulpn | grep LISTEN
sudo ss -tulpn
# Vérifier tentatives d'accès
sudo grep "Failed password" /var/log/auth.log | tail -20
# Vérifier modifications fichiers critiques
sudo ausearch -k sshd_config_changes -ts today
sudo ausearch -k mysql_config_changes -ts today
# Chaque semaine:
# - Consulter les logs d'audit en PHP-Admin
# - Vérifier Wazuh Dashboard pour anomalies
# - Vérifier Fail2Ban (IPs bannies)
# - Faire une sauvegarde
# Chaque mois:
# - Mettre à jour le système
sudo apt update && sudo apt upgrade -y
# - Vérifier les logs
sudo journalctl -u freeradius --since "1 month ago" | grep -i error
sudo journalctl -u wazuh-manager --since "1 month ago" | grep -i error
# - Vérifier l'espace disque
df -h
du -sh /var/log/*
# - Nettoyer vieux logs (si nécessaire)
sudo journalctl --vacuum-time=30d
OBLIGATOIRE:
testing123 dans clients.confufw status verbose)fail2ban-client status)Après exécution de install_hardening.sh, le système bénéficie de:
| Composant | Protection appliquée |
|---|---|
| UFW | Firewall actif, deny incoming par défaut |
| SSH | Root désactivé, chiffrement moderne, max 3 tentatives |
| Kernel | ASLR max, core dumps désactivés, IP spoofing bloqué |
| Fail2Ban | Anti-bruteforce SSH + Apache, ban 3600s |
| Auditd | Surveillance fichiers critiques, logs immutables |
| Apache | Headers sécurité (CSP, XSS), modules vulnérables désactivés |
| MySQL | Users anonymes supprimés, remote root désactivé, logs activés |
| PAM | Politique mots de passe: 12 caract, 3 classes |
| Permissions | Fichiers système durcis (shadow 640, ssh keys 600) |
SAE501/
├── scripts/ # Scripts d'installation
│ ├── install_mysql.sh ⚙️ Base de données
│ ├── install_radius.sh ⚙️ Serveur RADIUS (100% AUTONOME)
│ ├── install_php_admin.sh ⚙️ Interface web (100% AUTONOME) ✅ v2.2.0
│ ├── install_wazuh.sh ⚙️ Monitoring (100% AUTONOME)
│ ├── install_hardening.sh ⚙️ Sécurité (100% AUTONOME) ⭐🆕
│ ├── generate_certificates.sh
│ └── diagnostics.sh
│
├── tests/ # Tests automatisés ✨ NOUVEAU
│ ├── run_all_tests.sh 🧪 Suite complète de tests
│ ├── test_isolement.sh Tests réseau spécialisés
│ ├── test_peap.sh Tests PEAP-MSCHAPv2
│ └── test_syslog_mr100.sh Tests monitoring MR100
│
├── radius/ # Configuration RADIUS
│ ├── clients.conf ✅ SEUL FICHIER REQUIS
│ └── sql/
│ ├── create_tables.sql
│ └── init_appuser.sql
│
├── docs/ # Documentation
│ ├── analyse-ebios.md
│ ├── dossier-architecture.md
│ ├── wazuh-supervision.md
│ └── journal-de-bord.md
│
└── README.md # CE FICHIER
NOTE: Aucun dossier php-admin/, wazuh/ ou hardening/ nécessaire!
Toutes les configurations sont générées automatiquement par les scripts.
| Problème | Solution |
|---|---|
| Tests échoués | Relancer: sudo bash tests/run_all_tests.sh |
| PHP-Admin inaccessible | sudo systemctl restart apache2 php-fpm |
| ❌ PHP-Admin erreur MySQL | ✅ CORRIGÉ en v2.2.0: git pull && sudo bash scripts/install_php_admin.sh |
| Pages PHP manquantes | Relancer: sudo bash scripts/install_php_admin.sh |
| Erreur connexion DB | Vérifier MySQL: sudo systemctl status mysql |
| RADIUS ne démarre pas | sudo freeradius -X pour debug |
| Wazuh Dashboard HTTP 502 | Vérifier RAM: free -h - OpenSearch requiert 4GB+ |
| UFW bloque connexions | sudo ufw status verbose puis ajuster règles |
| Fail2Ban bans légitimes | sudo fail2ban-client set sshd unbanip IP |
| SSH impossible après hardening | Vérifier que votre user n’est pas ‘root’ |
# Installation modulaire (DANS L'ORDRE)
sudo bash scripts/install_mysql.sh
sudo bash scripts/install_radius.sh # ✨ 100% AUTONOME
sudo bash scripts/install_php_admin.sh # ✨ 100% AUTONOME ✅ v2.2.0
sudo bash scripts/install_wazuh.sh # ✨ 100% AUTONOME (OPTIONNEL)
sudo bash scripts/install_hardening.sh # ✨ 100% AUTONOME ⭐🆕
# Voir l'état du système
bash scripts/diagnostics.sh
# Lancer tous les tests ✨ NOUVEAU
sudo bash tests/run_all_tests.sh
# Suite complète de tests automatiques
sudo bash tests/run_all_tests.sh
# Tester l'authentification RADIUS
radtest testuser testpass localhost 0 testing123
# Tester hardening SSH
ssh -vvv user@localhost
# Tester firewall
sudo ufw status verbose
nmap -p 22,80,443,1812,1813,3306,5601 localhost
# Tester PHP-Admin connexion MySQL (bug corrigé)
curl -I http://localhost/admin
# Attendu: HTTP/1.1 200 OK
# Logs RADIUS
sudo tail -f /var/log/freeradius/radius.log
# Logs Fail2Ban
sudo tail -f /var/log/fail2ban.log
sudo fail2ban-client status sshd
# Logs audit
sudo ausearch -k exec -ts today
sudo ausearch -k sshd_config_changes
# Logs Apache
sudo tail -f /var/log/apache2/error.log
# Logs PHP-Admin installation (debug si problème)
sudo tail -f /var/log/sae501_php_admin_install.log
# PHP-Admin
http://VOTRE_IP/admin
User: admin | Pass: Admin@Secure123!
# Wazuh Dashboard
http://VOTRE_IP:5601
User: admin | Pass: Admin@Wazuh123!
# Redémarrer services
sudo systemctl restart freeradius mysql apache2
sudo systemctl restart wazuh-manager opensearch
sudo systemctl restart fail2ban ssh ufw
# Voir statut
sudo systemctl status freeradius
sudo systemctl status fail2ban
sudo systemctl status auditd
# Sauvegarde complète
mysqldump -u root -p radius > backup.sql
tar -czf backup_wazuh.tar.gz /var/ossec/etc
tar -czf backup_hardening.tar.gz /etc/ssh /etc/ufw /etc/fail2ban
sudo bash tests/run_all_tests.sh) ✨testuser fonctionneclients.conf)# Installation complète recommandée:
sudo bash scripts/install_mysql.sh
sudo bash scripts/install_radius.sh # ✨ 100% AUTONOME
sudo bash scripts/install_php_admin.sh # ✨ 100% AUTONOME ✅ v2.2.0
sudo bash scripts/install_hardening.sh # ✨ 100% AUTONOME ⭐🆕
# Optionnel - Monitoring avancé:
sudo bash scripts/install_wazuh.sh # ✨ 100% AUTONOME
# OBLIGATOIRE - Prérequis manuels (ÉTAPE 3.5):
# 1. Configurer clients.conf
# 2. Générer certificats TLS
# 3. Créer utilisateurs RADIUS
# Vérifier l'installation avec tests automatisés:
sudo bash tests/run_all_tests.sh # ✨ NOUVEAU
# Diagnostics alternatifs:
bash scripts/diagnostics.sh
# Vérifier le hardening:
sudo ufw status verbose
sudo fail2ban-client status
sudo auditctl -l
# Accéder à PHP-Admin:
http://VOTRE_IP/admin
User: admin | Pass: Admin@Secure123!
# ✅ Connexion MySQL fonctionnelle depuis v2.2.0!
# Tester RADIUS:
radtest testuser testpass localhost 0 testing123
Le système est prêt pour la production après:
docs//var/log/freeradius/, /var/log/apache2/, /var/log/mysql/b08bdc8 pour bug fix v2.2.0SAE501 - Projet SAE - Sorbonne Paris Nord
Dernière mise à jour: 31 janvier 2026
Version: 4.3 - ✅ BUG FIX v2.2.0 + Tests automatisés + Prérequis production 🆕