« Documentation » : différence entre les versions

De wikisio
Ligne 10 : Ligne 10 :
=== Nom de domaine ===
=== Nom de domaine ===


1. Aller sur [[https://ovhcloud.com](https://ovhcloud.com) ovhcloud.com]
1. Aller sur https://ovhcloud.com
2. Acheter un nom de domaine
2. Acheter un nom de domaine
3. Associer le domaine à l’adresse IP du VPS via la gestion DNS
3. Associer le domaine à l’adresse IP du VPS via la gestion DNS


== 1 - Sécurité ==
== 1 - Sécurité ==

Version du 2 mars 2026 à 10:28

Déploiement d’une Infrastructure Web Sécurisée avec LXC

0 - Mise en place de l’infrastructure

VPS

1. Aller sur [[1]] 2. Acheter le VPS EDU-2 dans l’offre Education Cloud

Nom de domaine

1. Aller sur https://ovhcloud.com 2. Acheter un nom de domaine 3. Associer le domaine à l’adresse IP du VPS via la gestion DNS

1 - Sécurité

Bonnes pratiques SSH

Modifier le fichier :

/etc/ssh/sshd_config

Recommandations :

PermitRootLogin no
Port 2222

Puis redémarrer le service :

systemctl restart ssh


Fail2Ban

Installer Fail2Ban :

apt install fail2ban -y

Modifier ou créer le fichier :

/etc/fail2ban/jail.local

Configuration :

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600

Redémarrer :

systemctl restart fail2ban


IPSet + Firewall

Créer une liste noire :

ipset create blacklist hash:ip

Ajouter la règle iptables :

iptables -I INPUT -m set --match-set blacklist src -j DROP

Sauvegarder :

netfilter-persistent save


2 - Containerisation avec LXC

Installation de LXC

apt-get install lxc lxc-templates -y

Créer les conteneurs :

lxc-create -n nginx -t debian
lxc-create -n monsite -t debian

Configurer les IP :

  • nginx → 10.0.3.10
  • monsite → 10.0.3.101

Installer :

  • Apache dans monsite
  • Nginx dans nginx


Configuration NAT

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.3.10:80
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.0.3.10:443
iptables -t nat -A POSTROUTING -j MASQUERADE


Configuration Reverse Proxy (Nginx)

server {
    listen 80;
    server_name mondomaine.tld;

    access_log off;

    # Autoriser uniquement GET, HEAD, POST
    if ($request_method !~ ^(GET|HEAD|POST)$) {
        return 444;
    }

    location / {
        proxy_pass http://10.0.3.101:80/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}


3 - Documentation interne

Installation de MediaWiki

Préparer la base de données (MySQL/MariaDB).

Téléchargement :

cd /tmp
wget https://releases.wikimedia.org/mediawiki/1.41/mediawiki-1.41.0.tar.gz
tar -xzf mediawiki-1.41.0.tar.gz

Déploiement :

rm -rf /var/www/html/*
mv mediawiki-1.41.0/* /var/www/html/
chown -R www-data:www-data /var/www/html/
chmod -R 755 /var/www/html/

Finaliser l’installation via navigateur :

http://mondomaine.tld


Sécurisation

  • Installer un certificat SSL (Let’s Encrypt recommandé)
  • Activer l’authentification Apache (apache-auth)
  • Ajouter une règle Fail2Ban pour protéger l’authentification
  • Restreindre l’accès par IP si nécessaire


Mise en place des sauvegardes

Sauvegarde locale simple :

tar -czf /backup/wiki_$(date +%F).tar.gz /var/www/html
mysqldump -u root -p wikidb > /backup/wikidb_$(date +%F).sql

Automatiser avec cron :

crontab -e

Exemple :

0 3 * * * /script/backup.sh


Résultat

Infrastructure comprenant :

  • VPS sécurisé
  • Protection SSH + Fail2Ban + IPSet
  • Architecture LXC segmentée
  • Reverse proxy Nginx
  • Base de connaissance interne sous MediaWiki
  • Sauvegardes automatisées