# Sécurité

# Sécurité de Base

Afin de garantir une utilisation sécurisée de votre stack CRM, voici les bonnes pratiques et configurations à appliquer :

# 1. Mise à jour du système

  • Assurez-vous que votre serveur VPS est toujours à jour :
    sudo apt update && sudo apt upgrade -y
  • Automatisez les mises à jour de sécurité si possible :
    sudo apt install unattended-upgrades

# 2. Configuration d’un pare-feu

  • Installez et configurez un pare-feu (par exemple, UFW) pour limiter les ports ouverts :
    sudo ufw allow OpenSSH
    sudo ufw allow 80
    sudo ufw allow 443
    sudo ufw enable

# 3. Sécurisation de PostgreSQL

  • Désactivez l'accès PostgreSQL à partir d'adresses non autorisées en configurant les fichiers pg_hba.conf et postgresql.conf.
  • Utilisez un mot de passe fort pour l'utilisateur PostgreSQL.

# 4. Utilisation de Docker Proxy Manager avec SSL

  • Configurez systématiquement des certificats SSL avec Let's Encrypt pour sécuriser les connexions entre les utilisateurs et l'API.

# 5. Gestion des identifiants et des secrets

  • Ne stockez pas les secrets ou credentials directement dans le code source.
  • Utilisez un fichier .env et protégez-le en ajoutant une règle dans .gitignore :
    # Fichier .gitignore
    .env

# 6. Restrictions sur les conteneurs Docker

  • Limitez les permissions des conteneurs pour éviter des accès non nécessaires.
  • Utilisez les options read-only pour certains volumes si aucune écriture n'est nécessaire.

# 7. Surveillance et audit

  • Installez des outils de monitoring sur le VPS (ex : Prometheus, Grafana) pour surveiller les conteneurs et la base de données.
  • Consultez régulièrement les journaux des conteneurs :
    docker logs <nom_du_conteneur>

# 8. Sauvegarde et restauration sécurisées

  • Chiffrez les sauvegardes sensibles avant de les transférer ou de les stocker.
  • Testez régulièrement les processus de restauration pour vous assurer que vos sauvegardes sont fonctionnelles.

# 9. Accès SSH sécurisé

  • Désactivez l'accès SSH par mot de passe et utilisez uniquement des clés SSH :
    sudo nano /etc/ssh/sshd_config
    • Modifiez :
      PasswordAuthentication no
  • Changez le port par défaut pour SSH (22) pour limiter les attaques basées sur des scans de ports.

# 10. Protection contre les attaques DDoS

  • Installez des outils tels que Fail2ban pour bloquer les tentatives de connexion répétées et non autorisées :
    sudo apt install fail2ban

En suivant ces mesures, vous garantirez un environnement plus sécurisé pour votre CRM.