Sécuriser un serveur Odoo sur Ubuntu

1. Mise à jour et maintenance du système

        sudo apt update && sudo apt upgrade -y
      
  • Mettez à jour régulièrement votre système d'exploitation, Odoo et PostgreSQL :
  • Configurez une tâche cron pour vérifier automatiquement les mises à jour.

2. Accès sécurisé au serveur

  • Accès SSH sécurisé :
                sudo nano /etc/ssh/sshd_config
              
    • Désactivez l'accès root direct via SSH.
    • Configurez une authentification par clé SSH.
    • Changez le port par défaut de SSH :
  • Pare-feu : Utilisez UFW pour limiter les connexions :
    sudo ufw allow 22
    sudo ufw allow 8069
    sudo ufw enable
  • Limiter l'accès IP : Autorisez uniquement des IP spécifiques.

3. Sécurisation des ports et services Odoo

  • Changez le port par défaut d'Odoo (8069) dans le fichier de configuration :
    nano /etc/odoo/odoo.conf
    Ajoutez ou modifiez la ligne :
    xmlrpc_port = 8070
  • Désactivez les services inutiles si non nécessaires (ex. longpolling).

4. SSL pour sécuriser les connexions

  • Installez un certificat SSL avec Certbot pour activer HTTPS :
    sudo apt install certbot python3-certbot-nginx
    certbot --nginx
  • Configurez un proxy inversé (NGINX) pour gérer SSL.

5. Protection de la base de données (PostgreSQL)

  • Changez le mot de passe de l'utilisateur PostgreSQL par défaut :
    sudo -u postgres psql
    \password odoo
  • Restreignez l'accès réseau dans le fichier pg_hba.conf.
  • Configurez des sauvegardes automatiques avec pg_dump.

6. Surveillance et alertes

  • Installez Fail2Ban pour bloquer les tentatives suspectes :
    sudo apt install fail2ban
  • Configurez des alertes système pour surveiller les activités inhabituelles.

7. Paramètres d'Odoo

  • Limitez les accès administratifs et utilisez des mots de passe forts.
  • Activez le mode proxy en ajoutant cette ligne dans odoo.conf :
    proxy_mode = True
  • Empêchez l'affichage des bases de données disponibles :
    dbfilter = ^nom_base_donnees$

8. Sauvegardes et reprise après sinistre

  • Configurez des sauvegardes automatiques avec des outils comme rsync ou cron.
  • Testez régulièrement vos sauvegardes.

9. Logs et audits

  • Activez les journaux d'accès d'Odoo pour surveiller les activités :
    log_level = info
    logfile = /var/log/odoo/odoo.log
  • Analysez régulièrement les journaux pour détecter les anomalies.