Documentation

De wikisio
(Redirigé depuis Accueil)

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

0 - Mise en place de l’infrastructure

VPS

1. Aller sur https://pulseheberg.com

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

Installer :

  • Apache dans monsite
  • Nginx dans nginx


Configuration NAT

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination *adresse ip*
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination *adresse ip*
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://*adresse ip*/;
        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