Mises en place de dolibarr

Intro


Dolibarr est un outil de gestion d'entreprise. Client, offre commerciale, facture, gestion de paye, comptabilité, etc..
Il est complet, open source et adaptable à chaque entreprise grâce à ses modules activables à souhait
Ainsi une très grosse entreprise n'aura pas les mêmes besoins qu'une microentreprise, et c'est là toute sa force

Je vais donc vous expliquer comment mettre en place dolibarr. pour ce qui est de l'utilisation, le mieux serait d'acquérir le livre Dolibarr

Récapitulatif identifiant utilisé:

BDD
Identifiant BDD : dolibarr
Mot de passe : mot_de_passe

APACHE2 et CERTBOT
domaine : dolibarr.mondomaine.net
mail : webmaster@localhost

ces valeurs sont à modifier avec les vôtres, faites attention lorsque vous copiez, collés les lignes

Installation de dolibarr sur debian 10


Vous avez installé une Debian 10 et toutes ses mises à jour

Il faut être admin pour lancer certaines commandes, utilisées sudo ou passer admin avant de lancer les commandes comportant un dièze (#)
sudo commande
su - pour passer admin provisoirement
su -l root -c "votre commande" l'alternative pour ne pas rester connecté en root

Installation des prérequis

Nous allons installer les paquet prérequis au fonctionnement de Dolibarr

apt install apache2 mariadb-server php php-gd php-curl php-intl php-zip php-mysql

Configuration de MariaDb

Nous allons sécuriser la base

mysql_secure_installation
  1. Il vous demande le mot de passe actuel, cliquez sur entrée
  2. Il souhaite savoir si vous souhaitez mettre un mot de passe au compte root
    entrez y puis appuyez sur entrée
    Entrez votre mot de passe à deux reprises
  3. Il indique que par défaut MariaDB contient un utilisateur anonyme permettant à tout le monde de se connecter et demande si vous souhaitez le supprimer
    entrez y puis appuyez sur la touche entrée
  4. Il demande si vous souhaitez désactiver l'accès à distance au compte root
    entrez y puis appuyez sur la touche entrée
  5. Il souhaite savoir si vous souhaitez supprimer l'environnement de test créer par défaut
    entrez y puis appuyez sur la touche entrée
  6. Souhaitez vous appliquer ces changements
    entrez y puis appuyez sur la touche entrée

Entrez dans la base

mysql -u root

La création de l'utilisateur et de la base servira lors du paramétrage de Dolibarr via l'interface web

CREATE DATABASE dolibarr DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'dolibarr'@'localhost' IDENTIFIED BY 'mot_de_passe';
GRANT ALL PRIVILEGES ON dolibarr.* TO 'dolibarr'@'localhost';
FLUSH PRIVILEGES;

Attention à bien respecter l'encodage de la base, sinon lors de la configuration, au moment du remplissage de la base vous pourrez tomber sur l'erreur suivante
Erreur SQL DB_ERROR_1071 Specified key was too long; max key length is 767 bytes

Mise en place de dolibarr et configuration d'apache2

Allez à cette adresse Dolibarr puis dans le dossier de la dernière version et copier le lien du fichier .tgz.
Voici le lien de la version actuelle lors de la rédaction de l'article : dolibarr-13.0.2.tgz
Entrez la commande suivante sur le serveur

curl -SL "https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/13.0.2/dolibarr-13.0.2.tgz/download" --output dolibarr-13.0.2.tgz

Voici l'explication des options CURL

  • S affichent les erreurs
  • L suit les redirections pour télécharger le fichier final

Nous allons créer le répertoire dolibarr dans /var/www

mkdir /var/www/dolibarr

Vous allez extraire dolibarr dedans, --strip-components=1 sert à supprimer le répertoire parent de l'archive qui regroupe tous les fichiers

tar xzf dolibarr-13.0.2.tgz -C /var/www/dolibarr --strip-components=1

Vous allez modifier le propriétaire du dossier dolibarr, on attribue le dossier à l'utilisateur et au groupe www-data qui sont utilisé pour le fonctionnement d'apache

chown -R www-data: /var/www/dolibarr/

Pour la création des Virtualhost sur apache vous avez deux possibilités

- Accès depuis l'extérieur
Entrez la ligne suivante dans le terminal pour créer un virtualhost dolibarr.conf

echo -e "<VirtualHost *:80>\nServerName dolibarr.mondomaine.net\nServerAdmin webmaster@localhost\nDocumentRoot /var/www/dolibarr/htdocs\nDirectoryIndex index.php\nErrorLog \${APACHE_LOG_DIR}/dolibarr-error.log\nCustomLog \${APACHE_LOG_DIR}/dolibarr-access.log combined\n</VirtualHost>\n">/etc/apache2/sites-available/dolibarr.conf

Modifier dans /etc/apache2/site-available/dolibarr.conf dolibarr.mondomaine.net par votre domaine puis webmaster@localhost par votre mail de contact.

Entrez la commande suivante pour activer la configuration du site dolibarr et réactualisé apache

a2ensite dolibarr && systemctl reload apache2

- Accès depuis le réseau interne

  • Entrez la ligne suivante dans le terminal pour modifier le virtualhost par défaut
sed -i 's+DocumentRoot /var/www/html+DocumentRoot /var/www/dolibarr/htdocs\n DirectoryIndex index.php+'  /etc/apache2/sites-available/000-default.conf

Entrez la commande pour prendre en compte les modifications

systemctl reload apache2

Réseau externe et SSL

Le ssl est un prérequis pour passer en HTTPS, le rewrite permet de faire la redirection des utilisateurs du HTTP vers le HTTPS (option --redirect de certbot plus bas)

a2enmod ssl rewrite

on installe certbot pour la génération du certificat Lets Encrypt, le module python sert pour la liaison apache certbot

apt install certbot python3-certbot-apache

Cette commande va générer le certificat et dupliqué le virtualhost dolibarr.conf (crée plus haut) en dolibarr-le-ssl.conf et le modifier pour qu'il devienne un virtualhost SSL pour l'accès en HTTPS. Il va ajouter une redirection dans le virtualhost HTTP (dolibarr.conf) pour renvoyer toutes les requêtes vers le HTTPS (dolibarr-le-ssl.conf)

certbot run --apache --agree-tos --redirect -m webmaster@localhost --no-eff-email -d dolibarr.mondomaine.net --rsa-key-size 4096

Si vous ne souhaitez pas indiquer de mail remplacer -m webmaster@localhost --no-eff-email par --register-unsafely-without-email
Attention le mail vous permet de recevoir les informations liées à une révocation de votre certificat et permettra surement d'être reconnu lorsque vous les contacterez en cas de souci

Explication des options :

  • run lance cerbot par défaut, car plusieurs options sont disponibles
  • --apache indique que la configuration se fera avec apache
  • --agree-tos indique que l'on accepte les conditions d'utilisation
  • --redirect indique que l'on veut faire une redirection du HTTP vers le HTTPS, le site ne sera accessible que depuis le HTTPS (utilisation du module rewrite d'apache vu plus haut)
  • -m webmaster@localhost --no-eff-email indique notre mail, mais refuse que l'on enregistre cet email au prêt de l'EFF (l'Electronic Frontier Foundation)
  • -d dolibarr.mondomaine.net on souhaite avoir un certificat pour le sous domaine dolibarr
  • --rsa-key-size 4096 indique la taille de la clé souhaitée

Afin de respecter les normes, il est possible d'ajouter l'enregistrement DNS suivant chez votre hébergeur. Cela permet d'indiquer que Lets encrypt est le seul autorisé à délivrer un certificat au sous-domaine dolibarr

Voici l'article CAA

Voici à quoi ressemble la ligne chez bookmyname
dolibarr 28800 CAA 0 issue "letsencrypt.org"

Le renouvellement des certificat est automatique, il se fait via un cron qui est dans /etc/cron.d/certbot qui s'execute tout les 12h

Configuration de dolibarr

Allez sur le site https://dolibarr.mondomaine.net, vous allez tomber sur l'interface d'installation de dolibarr

  • Laissez la langue par défaut si elle vous convient, sinon choisissez la langue souhaitée dans la liste déroulante. Cliquez sur Étape suivante

    La langue par défaut est la langue utilisée sur la page, si vous remarquez que c'est de l'anglais (ou autre) et que vous souhaitez avoir dolibarr en français, alors choisissez la langue française dans la liste déroulante.

  • Tout devrait être validé avec un petit V à côté de chaque pré-requis. Cliquez sur Démarrer
  • Normalement, tout est rempli, à l'exception de l'identifiant et du mot de passe de la base mysql tout en bas (ce que l'on a créé plus haut), il vous suffit de les indiquer. Si vous avez choisi un nom de base de données différent (dolibarr) alors il faudra changer la ligne : Nom de la base de données. Cliquez sur Étape suivante
  • Dans Fichier de configuration, tout devrait être validé avec un petit V à côté de chaque prérequis. Cliquez sur Étape suivante.
  • Il va vous faire patienter le temps de remplir la base. Une fois terminé. Cliquez sur Étape suivante.
  • Sur cette nouvelle page indiquer l'identifiant et deux fois le mot de passe. Éviter les identifiants connus du style admin, administrateur ou root, cet identifiant servira à vous connecter en administrateur sur dolibarr. une fois les champs remplis cliquez sur Étape suivante
  • Sur la dernière page, vous devriez avoir Création du compte administrateur Dolibarr 'dolibarr' réussie.Votre système est maintenant installé. cliquer sur accéder à dolibarr

Sécurité et résumé


Ce Document sert pour une installation basique. Libre à vous d'héberger votre base de données sur un autre serveur, mais dans ce cas mon Document n'est que partiellement utile

Pour augmenter la sécurité concernant la partie accessible depuis l'extérieur, plusieurs possibilités s'offrent à vous

  • La meilleure serait de mettre en place la restriction par IP sur le virtualhost. Ainsi, seules les IP indiquées seront autorisées à se connecter à dolibarr (attention à ce que les IP soient statique)
    • si les IP sont dynamiques, alors le mieux serait d'acquérir un domaine bidon et des accès restreints pour l'utilisateur qui aura les droits de modification technique sur le domaine et faire du DNS dynamique. Le principe est simple, un script en interne (les routeurs peuvent le gérer aussi) va vérifier régulièrement votre IP publique, dès qu'elle change, il modifie le sous-domaine avec la nouvelle IP chez l'hébergeur de votre domaine. Il suffira juste d'indiquer le nom DNS en question dans les restrictions de votre virtualhost Mettre en place restriction IP ou FQDN

      L'intérêt de prendre un domaine bidon est lié à votre script ou routeur. S'ils sont compromis, alors la personne qui aura les identifiants de votre compte ne pourra rien faire, sauf des modifications sur le domaine en question. Mais pour cela, pensez à créer un compte secondaire et lui donner les bons droits, ou acheter le domaine sur un compte séparé. La seconde chose importante est de vérifier que l'hébergeur que vous choisissez a bien une API qui permet de faire les modifications.

  • Dans le cas où vous n'utiliserez pas la restriction IP, Fail2Ban et Geoip peuvent vous aider à renforcer la sécurité de votre serveur. Geoip va permettre de bloquer des IP spécifiques (pays, région, ville) vous n'avez surement pas besoin que la terre entière accède à votre serveur. Fail2ban servira à bannir tous les malins qui essaient de se connecter en effectuant un brute force, vérifier que cela fonctionne correctement une fois les modules activés en faisant des essais avec votre téléphone par exemple.

Sources


https://wiki.dolibarr.org/
https://www.dolibarr.org
https://www.dolibarr.fr/forum/t/pb-foreign-key-too-long/26494
https://certbot.eff.org/docs/man/certbot.html