Introduction

Nextcloud est un outil collaboratif de partage et d'édition de documents en ligne.

 

Architecture de la solution Nextcloud et OnlyOffice

 

 schema nextcloud onlyoffice 1

 

 

Les fonctionnalités que nous allons utilisées :

- Synchronisation de fichiers entre différents ordinateurs, tablettes et smartphones

- Partage des fichiers ou des dossiers avec d’autres utilisateurs

- Chiffrement de dossier personnel et ou confidentiel

- Edition collaborative en ligne des documents partagés

- Notifications (envoi de mails) à chaque changement sur les fichiers

- Système de notifications lors d'évènements sur les fichiers (envois de mails)

 

Prérequis

Debian 9.8 fraichement installé

Configuration TCP/IP opérationnelle

 

Etape :

 1) Configuration TCP/IP

 2) Installation de serveur Apache

 3) Installation de php

 4) Installation mariadb

 5) Installation de Nextcloud

6) Configuration de Nextcloud en https

 7) Configuration de Nextcloud via l’interface Web

8) Modification de la langue par defaut pour les notifications mail

9) Configuration d'envoie de mail "SMTP"

10) Installation de serveur OnlyOffice sur un autre serveur suivre ce lien

11) Integration de OnlyOffice avec Nextcloud

12) Changement de logo de nextcloud

13) Correction des avertissements de sécurité sur Nextcloud

14) Correction des avertissements de sécurité sur Nextcloud

15) Configuration d’authentification Ldap de Nextcloud

16) Création des groupes dans Nextcloud

17) Création des dossiers partages pour chaque groupe dans Nextcloud

 

Informations sur les serveurs

Onlyoffice :

https://192.168.1.150:8443/

Nextcloud :

https://192.168.1.188/index.php/

 

Configuration TCP/IP.

Obtenir le nom de l’interface réseau sur debian 9.8

# ip a

2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether

inet 192.168.1.102/24 brd 192.168.1.255 scope global ens18

 

Configuration de l’adresse ip statique

# vi /etc/network/interfaces

auto lo

iface lo inet loopback

allow-hotplug ens18

iface ens18 inet static

address 192.168.1.188

netmask 255.255.255.0

network 192.168.1.0

broadcast 192.168.1.255

gateway 192.168.1.1

dns-nameservers 192.168.1.1

 

Configuration de la résolution du nom du serveur en local

# vi /etc/hosts

127.0.0.1 localhost

127.0.1.1 home-nextcloud.local.ptu home-nextcloud

192.168.1.188 home-nextcloud.local.ptu home-nextcloud

192.168.1.150 home-onlyoffice.local.ptu home-onlyoffice

 

Configuration du nom du serveur en local

# vi /etc/hostname

home-nextcloud

 

Mise à jour système

# apt-get update

# apt-get upgrade

# apt-get dist-update

 

Configuration de fuseau horaire

# dpkg-reconfigure tzdata

 

Configuration en locale UTF-8

# dpkg-reconfigure locales

 

Installation d’ agent QEMU

# apt-get install qemu-guest-agent

 

Installation des dépendances

# apt-get install build-essential

# apt-get install sudo

# apt-get install unzip

 

Installation de ntp client

# apt-get install ntp

# vi /etc/ntp.conf

server ntp.local.ptu iburst

 

Installation de Apache

# apt-get install apache2 -y

 

Démarrage du serveur Apache

# systemctl start apache2

# systemctl enable apache2

 

Test du serveur Apache

# http://192.168.1.188/ -> ok

 

Activation de https sur apache

# a2enmod ssl

a2ensite default-ssl

# service apache2 reload

 

Tester le serveur Apache en https

# https://192.168.1.188/ -> ok

 

Installation de PHP 7.3

# apt-get install apt-transport-https lsb-release ca-certificates

# wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg

# echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" >> /etc/apt/sources.list.d/php.list

# apt-get update

# apt-get install libapache2-mod-php7.3 -y

# apt-get install php7.3 php7.3-cli php7.3-intl php7.3-mysql php7.3-curl php7.3-gd php7.3-soap php7.3-xml php7.3-zip php7.3-readline php7.3-opcache php7.3-json php7.3-gd -y

# apt-get install php7.3-mbstring

 

Configuration php.ini

vi /etc/php/7.3/apache2/php.ini

memory_limit = 256M

upload_max_filesize = 32M

post_max_size = 32M

; http://php.net/date.timezone

;date.timezone =

 

Démarrage du serveur Apache

# /etc/init.d/apache2 restart

 

Installation de Mariadb

# apt -y install mariadb-server

 

Noter le mot de passe root de Mariadb

# Enter current password for root (enter for none): alcd

 

Démarrer le serveur Mariadb

# systemctl enable mariadb

# systemctl start mariadb

 

Sécuriser mariadb

# mysql_secure_installation

Change the root password? [Y/n] n

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y

 

Créer un utilisateur ausmane dans mariadb avec le droit root

# mysql -u root -p

MariaDB [(none)]> grant all privileges on *.* to ausmane@"%"; identified by 'alcd' with grant option;

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> exit

 

Créer la base de données nextcloud et l’utilisateur nextcloud_user

mysql -u root -p

MariaDB [(none)]> CREATE DATABASE nextcloud CHARACTER SET utf8;

MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud_user'@'localhost' IDENTIFIED BY 'alcd';

MariaDB [(none)]> FLUSH PRIVILEGES;

MariaDB [(none)]> exit;

 

Installation de Nextcloud 15.0.2

Télécharger Nextcloud : https://download.nextcloud.com/server/releases/

# cd /usr/local/src/

# unzip nextcloud-15.0.2.zip -d /var/www/html/

# chown -R www-data:www-data /var/www/html/nextcloud/

# find /var/www/html/nextcloud -type d -exec chmod 775 {} \;

# find /var/www/html/nextcloud -type f -exec chmod 664 {} \;

 

Configuration de Nexcloud

# vi /etc/apache2/sites-available/nextcloud.conf

<VirtualHost 192.168.1.188:80>

ServerName home-nextcloud1

DocumentRoot /var/www/html/nextcloud

<Directory /var/www/html/nextcloud>

options Indexes FollowSymLinks MultiViews

AllowOverride All

Require all granted

</Directory>

ServerSignature off

ErrorLog ${APACHE_LOG_DIR}error.log

CustomLog ${APACHE_LOG_DIR}access.log combined

</VirtualHost>

 

Activer et démarrer le service Nextcloud

# a2ensite nextcloud.conf

# apachectl configtest

# systemctl reload apache2

 

Vérifier que le serveur Apache est lancé

# ps -ef

 

Activer les modules zip gd curl

# phpenmod zip gd curl

 

Redémarrer le service Apache

# service apache2 restart

 

Installation et configuration de Nextcloud via l’interface Web

1) http://192.168.1.188/ -> OK

Login : admin

passwd : alcd

Utilisateur : nextcloud_user

passwordd :alcd

Répertoire des données : /var/www/html/nextcloud/data

Base de données : nextcloud

Serveur : localhost

 

Activer https pour Nextcloud

Les 4 fichiers a modifier :

/etc/apache2/sites-enabled/000-default.conf

/etc/apache2/sites-enabled/default-ssl.conf

/etc/apache2/sites-available/nextcloud.conf

/var/www/html/nextcloud/config/config.php

 

1) Modifier le fichier : /etc/apache2/sites-enabled/000-default.conf

RM : Ajouter ou modifier les lignes suivantes dans ce fichier

# vi /etc/apache2/sites-enabled/000-default.conf

DocumentRoot /var/www/html/nextcloud

Redirect permanent / https://192.168.1.188/

<IfModule mod_headers.c>

Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"

</IfModule>

 

2) Modifier le fichier : /etc/apache2/sites-enabled/default-ssl.conf

RM : Ajouter ou modifier les lignes suivantes dans ce fichier

# vi /etc/apache2/sites-enabled/000-default.conf

ServerAdmin Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.

DocumentRoot /var/www/html/nextcloud

<IfModule mod_headers.c>

Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"

</IfModule>

 

3) Modifier le fichier : /etc/apache2/sites-available/nextcloud.conf

RM : Ajouter ou modifier les lignes suivantes dans ce fichier

# vi /etc/apache2/sites-available/nextcloud.conf

ServerName home-nextcloud.local.ptu

Redirect permanent / https://192.168.1.188/

DocumentRoot /var/www/html/nextcloud

 

4) Modifier le fichier : /var/www/html/nextcloud/config/config.php

RM : Ajouter ou modifier les lignes suivantes dans ce fichier

# vi /var/www/html/nextcloud/config/config.php

'trusted_domains' =>

array (

0 => '192.168.1.188',

1 => 'home-nextcloud.local.ptu',

2 => 'https://192.168.1.150',

),

 

Redémarrer le serveur Apache

# systemctl start apache2

 

Ajouter votre clé ssl dans apache

# Demander a votre organiste vous fournir votre clé ssl signée par une autorité de certification officielle

nextcloud.crt

nextcloud.key

votre-server-ca.crt

 

Copier votre cle et le certificat dans le depot

# cp nextcloud.crt /etc/ssl/certs/nextcloud.crt

# cp nextcloud.key /etc/ssl/private/nextcloud.key

# cp votre-server-ca.crt /etc/ssl/certs/votre-server-ca.crt

 

Modifier la configuration de votre serveur Apache :

# vi /etc/apache2/sites-enabled/default-ssl.conf

RM : Modifier les lignes suivantes

# SSLCertificateFile directive is needed.

SSLCertificateFile /etc/ssl/certs/nextcloud.crt

SSLCertificateKeyFile /etc/ssl/private/nextcloud.key

#SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt

SSLCertificateChainFile /etc/ssl/certs/votre-server-ca.crt

 

Redémarrer le serveur Apache

# systemctl start apache2

 

Tester la redirection https pour le serveur Nextcloud

# http://192.168.1.150 → Redirige vers https://192.168.1.150/ (OK)

 

Intégration de OnlyOffice dans Nextcloud

Configuration de Nextcloud 15.0.2 et OnlyOffice(2.1.2) avec git

 

# cd /var/www/html/nextcloud/apps/

git clone https://github.com/ONLYOFFICE/onlyoffice-nextcloud.git onlyoffice

# chown -R www-data:www-data /var/www/html/nextcloud/apps/onlyoffice

 

Activer OnlyOffice dans Nextcloud

Ajouter les lignes suivantes dans le fichier de config

# vi /var/www/html/nextcloud/config/config.php

'onlyoffice' =>

array (

'verify_peer_off' => true,

),

 

Reste à configurer les étapes suivantes :

12) Changement de logo de nextcloud

13) Correction des avertissements de sécurité sur Nextcloud

14) Correction des avertissements de sécurité sur Nextcloud

15) Configuration d’authentification Ldap de Nextcloud

16) Création des groupes dans Nextcloud

17) Création des dossiers partages pour chaque groupe dans Nextcloud

 

Logiciels utilisés : standards et open source

Open source Proxmox (Hyperviseur): https://pve.proxmox.com/wiki/Main_Page

Open source Debian  (système d'exploitation ): https://www.debian.org/

Open source Nextcloud (outil collaboratif de partage et d'édition de documents en ligne) :https://nextcloud.org/

Open source OnlyOffice (Suite bureautique en ligne) :https://www.onlyoffice.com/fr/

Open source Nginx(Serveur Web) :https://nginx.org/

Open source Apache(Serveur Web) :https://httpd.apache.org/

Open source Redis ( Redis est un système de gestion de base de données clef-valeur scalable ): https://redis.io/

Open source RabbitMQ (Un logiciel tiers permettant de créer un réseau d'échange d'informations entre des applications ): https://www.rabbitmq.com/