logo_sommaire

Mise à jour : 27/12/2020 à 14h45

PREREQUIS

VERSION & VALIDATION

Debian 10 Validé le 27/12/20 avec passage php7.4
Raspbian Non testé le xx/xx/2021 NextCloud : 20.0.4
PHP : 7.4

Status : Nextcloud 20 non compatible avec version phph > 7.4.
NIVEAU TUTORIEL :

Habitué de linux et des serveurs web

NIVEAU REQUIS :

Savoir lire
Connaître le concept de DNS (l'histoire avec les domaines)
Connaître le concept de virtualhost

SOURCES LISTES

Debian 10 (BUSTER)
RaspBian

DURÉE D'EXÉCUTION

Lammers : 2h/4h
Novices : 1h/2h
Habitués de Linux: 30/60 minutes
Habitués apache/mysql : 10/15 minutes

Présentation

Ce tutoriel est destiné aux utilisateurs Linux pour les sytèmes suivants : Debian 10/Raspbian. Il sera expliqué ici, comment configurer Apache2, créer et configurer une base de données afin de pouvoir installer et faire fonctionner NextCloud 20. Si vous êtes sur un système buster (Debian 10), veuillez vérifier que le chemin /usr/sbin est présent dans votre variable $PATH. Vous pourrez trouver plus d'informations sur cette ressource.


Introduction

/!\ Avant de poursuivre, il est nécessaire de prendre connaissance des indications ci-dessous/!\

Afin d'acquérir une méthode de travail correcte, il est recommandé d'effectuer tous les tutoriels proposés par BlackHat-Out sur des serveurs de tests. Il est évident que chaque système est différent, même si ces tutoriels sont mis en pratique sur plusieurs OS, nous avons rencontré différentes difficultés selon les systèmes. Toutes les manipulations proposées se feront en tant qu'administrateur et nous ne pourrons garantir ou être tenus responsables d'une quelconque manipulation rendant le système inopérant.

Première étape, la mise à jour :

						$su
						#apt update && apt upgrade -y
					

Explications des commandes

SU

La commande su permet de passer sur un compte administrateur. Partant du principe que vous avez des bases en informatique, toutes les manipulations seront effectuées en tant qu'administrateur système.


APT UDATE/UPGRADE

La commande apt update va permettre de rechercher toutes les mises à jours disponibles pour les paquets installés sur linux.
La commande apt upgrade va permettre d'installer toutes les mises à jours disponibles pour les paquets installés sur linux.
La commande apt update && upgrade -y permet de concaténer les commandes de recherches et d'installations des mises à jours. L'argument -y permet d'indiquer qu'on approuve bien l'installation.


APACHE

Préparation d'apache

Dernière maj du module : 27/12/2020 à 15h23

Les commandes citées ci-dessous vous permettront d'installer et configurer apache.
PS : Pour le tutoriel nextcloud ajouté la commande mkdir /var/www/data avant de faire le chown


						 #apt install apache2
						 #mkdir /var/www/nom_du_virtualhost_a_configurer
						 #chown -R www-data:www-data /var/www/nom_du_virtualhost_a_configurer
						 #ls -lath /var/www/
						 #mkdir /var/log/apache2/nom_du_virtualhost
						 #mkdir /etc/ssl/nom_du_virtualhost
						 #cd /etc/apache2/sites-available/
						 #a2dissite 000-default.conf
						 #nano nom_virtualhost.conf
						(on fait la combinaison de touche "ctrl+O" 
						on fait "entrer" puis "ctrl+x") 
						#a2enmod ssl
						#a2enmod headers
						#systemctl restart apache2
					

Explications des commandes

APT INSTALL

- La commande apt install [package] permet de lancer l'installation du paquet demandé sur debian.

MKDIR

- La commande mkdir permet la création d'un dossier. Ici le dossier du "nom_du_virtualhost_a_configurer" sera crée et accessible via le chemin indiqué "/var/www/"

CHOWN

- La commande chown permet de changer le propriétaire d'un dossier.
- L'argument chown -R permet d'indiquer la récursivité de la commande, de manière à ce que tous les sous-dossiers appartiennent au propriétaire du dossier parent.
- L'argument www-data:www-data est le nom du nouveau propriétaire du dossier. www-data est l'utilisateur par défaut utilisé par les serveurs web.

LS -LATH

- La commande ls -lath est la commande ls suivi des options l, a, t, h qui ont la signification suivante :

l = permet d'afficher une liste détaillée des caractéristiques de chaque fichier du répertoire (aide pour voir les droits du fichier).

a = permet d'afficher tous les fichiers et dossiers d'un répertoire, y compris ceux qui sont cachés (ceux qui commencent par un point « . »).

t = permet de trier le contenu des répertoires en fonction de la date et non par ordre alphabétique. Les fichiers les plus récents sont présentés en premier.

h = s'utilise de pair avec l comme suit : ls -lh afin d'obtenir les informations de poids d'occupation en plus lisible pour un humain plutôt qu'en octet (d'où -h pour human readable, c'est à dire lisible pour un humain). Avec cette option ls va adapter son affichage en utilisant l'unité la plus adaptée.

Dans notre contexte, la commande ls -lath sur le répertoire /var/www/ va nous permettre de bien confirmer la présence de "www-data:www-data" comme propriétaire du dossier "nom_du_virtualhost_a_configurer"

NANO

- La commande nano permet d'accéder à l'éditeur de texte nano présent sur débian. Cette même commande suivi du nom d'un fichier comme nano xxx.conf permet d'ouvrir en mode edition le fichier xxx.conf.
Dans le cas où le fichier xxx.conf n'existerait pas, il sera automatiquement créé.
- La combinaison de touche ctrl+O dans nano permet d'enregistrer sous le fichier nouvellement créé.
- La combinaison de touche ctrl+X dans nano permet de quitter l'éditeur de texte. Si aucun enregistrement n'a été effectué avant, il sera automatiquement demandé une confirmation de sauvegarde.

LES COMMANDES APACHES

- La commande apachectl permet d'appeler un suite de commande afin de démarrer, stopper, recharger le service apache ou vérifier la bonne syntaxe des fichiers de configuration du service.
- L'argument configtest permet de vérifier que tous les fichiers de configurations soient bien paramétrés.
- La commande a2ensite (= apache2 enable site) permet d'activer les fichiers de configurations des virtualhosts.
- La commande a2dissite (= apache2 disable site) permet de désactiver les fichiers de configurations des virtualhosts.
- La commande a2enmod (= apache2 enable module) permet d'activer les modules d'apache. Ici le module ssl et headers ont été activés.
- La commande a2dismod (= apache2 disable module) permet de désactiver les modules d'apache.

SYSTEMCTL

- La commande systemctl permet de gérer les états des services disponibles sur débian ou raspbian (aussi compatible sur la plupart des distributions linux). Pour l'utiliser il faut indiquer comme premier argument l'action voulu [start/restart/stop/reload] puis le service ciblé [apache2]. L'argument reload permet de recharger le fichier de configuration du serveur sur lequel le système se base pour gérer le service.

VirtualHost

Configuration du virtualhost

Les commandes ci-dessous vont vous permettre de configurer votre virtualhost. Le virtualhost correspond au comportement du serveur web lors de l'accès à votre site web.


						#nano /etc/apache2/sites-available/nom_virtualhost.conf
						
						(Il faut copier/coller les lignes ci-dessous 
						dans votre fichiers de configuration) 
						
						 <VirtualHost *:80>
							ServerName [votre nom de domaine ou nom DNS] 	
							ServerAlias [votre alias] 	
							ServerAdmin [mail de contact]		
							DocumentRoot /var/www/[nom_du_virtualhost_a_configurer]	
						#	RewriteEngine On
						#	RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
							
							#--GESTION DES DROITS--#
							<Directory /var/www/[nom_du_virtualhost_a_configurer]/>	
								Options -Indexes							
								Require all granted					
							</Directory>
							
							#--GESTION ERREURS--#
						#	ErrorDocument 404 /erreur.html	
						
							#--GESTION LOGS--#
							ErrorLog /var/log/apache2/[nom_du_virtualhost]/error.log
							LogLevel warn	
							CustomLog /var/log/apache2/[nom_du_virtualhost]/access.log combined
						</VirtualHost>
						
					

Explications des commandes

LA CONFIGURATION DU VH

On peut voir deux parties dans le virtualhost présentées ci-dessus.
La première partie est le comportement qu'aura le serveur lorsque qu'un client viendra le contacter par le port 80 (HTTP). Ainsi la deuxième partie (non présente à ce stade du tutoriel), sera le comportement qu'aura le serveur lorsque qu'un client le contactera par le port 443 (HTTPS).
Les virtualhosts sont encadrés par les balises suivantes <VirtualHost *:[N° PORT]> et </VirtualHost>.

Toutes les lignes précédées du caractère # constituent un commentaire au sein du fichier de configuration. Attention cependant, lorsqu'un commentaire est placé sur la même ligne qu'une instruction, des erreurs de syntaxe peuvent apparaîtres lors de l'éxecution de la commande apachectl configtest et ainsi empêcher le systemctl [restart/reload] apache2.

Dans la configuration actuelle, la partie du fichier gérant le comportement à avoir lorsqu'un client souhaite le contacter par le port 443 est actuellement inexistante. Dans le cas où nous n'avons pas encore généré de certificat auto signé ou "réel" (ici cad approuvé par une autorité de certification reconnue), il sera impossible de se connecter au site via le port 443 ; les navigateurs considéront la connexion comme dangereuse et empêcheront l'accès.

Pour adapter le fichier de configuration à vos besoins, il vous sera nécessaire de modifier toutes les valeurs entre crochets. exemple [votre alias], toutes les valeurs sont arbitraires, vous pouvez mettre ce que vous souhaitez dans la mesure du raisonnable. Les valeurs doivent correspondres à vos besoins et à ce que vous avez défini dans la partie "Préparation d'apache"


Par la suite nous allons vérifier la bonne syntaxe de notre virtualhost puis l'activer.

								#apachectl configtest
								#cd /etc/apache2/sites-available/
								#a2ensite nom_virtualhost.conf
								#apachectl restart
							

Plus d'informations sur le fichier de conf : Tuto Apache2

HTTPS

HTTPS (sans domaine internet)

Dernière maj du module : 27/12/2020 à 15h22

Les commandes citées ci-dessous vous permettront de créer et configurer manuellement l'HTTPS.


							 #openssl genrsa -out /etc/ssl/[nom_du_virtualhost]/[nom_de_la_clef].key 4096
							 #openssl req -new -x509 -key /etc/ssl/[nom_du_virtualhost]/[nom_de_la_clef].key -subj "/CN=[Nom afficher sur le certificat]" -out /etc/ssl/nextcloud/[nom_de_la_clef].pem
							 #nano /etc/apache2/sites-availables/nom_virtualhost.conf
							
							 On est dans le fichier du configuration du VirtualHost
							 Ajoutez/Modifiez les lignes manquantes
							
							 <VirtualHost *:80>
								ServerName [votre nom de domaine ou nom DNS] 	
								ServerAlias [votre alias] 	
								ServerAdmin [mail de contact]		
								DocumentRoot /var/www/[nom_du_virtualhost_a_configurer]	
								RewriteEngine On
								RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
								
								#--GESTION DES DROITS--#
							#	<Directory /var/www/[nom_du_virtualhost_a_configurer]/>	
							#		Options -Indexes							
							#		Require all granted					
							#	</Directory>
								
								#--GESTION ERREURS--#
							#	ErrorDocument 404 /erreur.html	
							
								#--GESTION LOGS--#
								ErrorLog /var/log/apache2/[nom_du_virtualhost]/error.log
								LogLevel warn	
								CustomLog /var/log/apache2/[nom_du_virtualhost]/access.log combined
							</VirtualHost>
							
							#<VirtualHost *:443>
								ServerName [votre nom de domaine ou nom DNS] 	
								ServerAlias [votre alias] 	
								ServerAdmin [mail de contact]		
								DocumentRoot /var/www/[nom_du_virtualhost_a_configurer]	
								
								#--GESTION DES DROITS--#
								<Directory /var/www/[nom_du_virtualhost_a_configurer]/>	
									Options -Indexes				
									Require all granted					
								</Directory>
								
								#--GESTION ERREURS--#
							#	ErrorDocument 404 /erreur.html
								
								#--GESTION LOGS--#
								ErrorLog /var/log/apache2/[nom_du_virtualhost]/error.log	
								LogLevel warn	
								CustomLog /var/log/apache2/[nom_du_virtualhost]/access.log combined
							
								
							
								#--GESTION HTTPS--#		
								SSLEngine on
								SSLCertificateFile /etc/ssl/[nom_du_virtualhost]/[nom_clef_choisit].pem
								SSLCertificateKeyFile /etc/ssl/[nom_du_virtualhost]/[nom_clef_choisit].key
							#</VirtualHost>

						

Explications des commandes

- Dans cette partie du tuto, il s'agit simplement de commenter les lignes du virtualhost 80 et de rajouter celles du virtualhost 443.

HTTPS (avec domaine)

Dernière maj du module : 23/12/2020 à 21h30

Les commandes citées ci-dessous vous permettront de créer et configurer automatiquement l'HTTPS. Il est possible que la façon dont est écrit le fichier de configuration du virtual host (pour rappel xxx.conf) puisse générer une erreur "Could not reverse map the HTTPS VirtualHost to the original" ; dans ce cas, retournez editer le virtualhost et supprimez toutes les lignes commentées. Vérifier aussi l'absence de tabulation/d'espace à la fin des lignes non-commentées. Vérifiez par la même occasion que vous n'ayez pas un mélange de tabulations et d'espaces sur la même ligne.

Si le problème persiste appuyez-vous sur cette ressource (en). N'ouliez pas de stoper/redemarrer le service apache2 et de désactiver/activer votre virtualhost après chaque manipulation sur le virtualhost lors du traitement de cette erreur.
Nous vous proposons 2 methodes pour installer certbot, en cas de problème n'hésitez pas à vous appuyez sur le site officiel.

METHODE A

							 #apt install snapd
							 #snap install core; sudo snap refresh core
							 #snap install --classic certbot
							 #ln -s /snap/bin/certbot /usr/bin/certbot
							 #certbot --apache
						

METHODE B

							 La ligne 2 est uniquement à effectuer sur un raspbian
							 #mv /etc/pip.conf /etc/pip.conf.backup
							 #mkdir /certbot
							 #cd /certbot
							 #wget https://dl.eff.org/certbot-auto
							 #chmod a+x certbot-auto
							 #./certbot-auto
							 #./certbot-auto --apache (ou --nginx)
							 ./Selectionnez le numéro du site
							./Selectionner le numéro 2
							./Saisissez les commandes suivantes
							#./certbot-auto renew -dry-run
							#nano crontab -e
							*/12 * * * * /CHEMIN/VERS/certbot-auto renew –quiet –no-self-upgrade
							ctrl+o ctrl+x
						

Explications des commandes

CD

- La commande cd permet de se déplacer au sein de l'arborescence Linux. Ici, on indique qu'on souhaite se déplacer dans le dossier certbot à la racine du système débian.

WGET

- La commande wget permet de télécharger un paquet directement via un lien web (URL).

CHMOD A+X

- La commande chmod a+x certbot-auto permet de rendre exécutable un script.

3 DERNIERES LIGNES

- Les 3 dernières lignes permettent le renouvellement automatique du certificat SSL.


HSTS

Dernière maj du module : 23/12/2020 à 21h53

HTTP Strict Transport Security (HSTS) est un mécanisme de politique de sécurité proposé pour HTTP, permettant à un serveur web de déclarer à un agent utilisateur (comme un navigateur web), compatible, qu'il doit interagir avec lui en utilisant une connexion sécurisée (comme HTTPS). La politique est donc communiquée à l'agent utilisateur par le serveur via la réponse HTTP, dans le champ d'en-tête nommé « Strict-Transport-Security ». La politique spécifie une période de temps durant laquelle l'agent utilisateur doit accéder au serveur uniquement de façon sécurisée. Source Wikipédia && Complément d'informations via Developper.Mozilla (en).


							 #nano /etc/apache2/sites-available/nom_du_virtualhost-ssl.conf
							 Ajoutez les lignes suivantes juste au dessus du </VirtualHost> 
							<IfModule mod_headers.c> 
							 Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
							</IfModule> 
				
						


PHP

Préparer PHP pour Apache

Dernière maj du module : 27/12/2020 à 14h47

Les commandes citées ci-dessous vous permettront d'installer et configurer PHP pour apache. Généralement, on peut choisir la version php en changeant "8.0" par la version voulu exemple : "7.4" (nécessaire pour le fonctionnement du tuto nextcloud).


							 #apt -y install lsb-release apt-transport-https 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" | tee /etc/apt/sources.list.d/php8.list
							 #apt update && apt upgrade -y
							 #apt install libapache2-mod-php8.0 php8.0 php8.0-xml php8.0-curl php8.0-gd php8.0 php8.0-cgi php8.0-cli php8.0-zip php8.0-bcmath php8.0-gmp php8.0-mysql php8.0-mbstring php8.0-intl php8.0-imagick php8.0-gd -y
							 #nano /etc/php/8.0/apache2/php.ini
							
							 Fichier de conf php.ini							
							 CTRL+W pour effectuer une recherche							
							Ajoutez/Modifiez les valeurs suivantes:							
							
							[...]
								memory_limit = 512M
								upload_max_filesize = 15G
								max_execution_time = 360
							 	post_max_size = 200M
							 	output_buffering = Off
								date.timezone = Europe/Paris
							[...]
							cltr+o ctrl+x
							
					

Explications des commandes

?? D: ??

- Ici on vient modifier des valeurs du fichier de configuration php si vous avez des infos à nous passer n'hésitez pas : contact@blackhat-out.fr.


SQL

Préparation de la base SQL

Ça va piquer les yeux.


						 #apt-get install mariadb-server apt-transport-https -y
						 #wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
						 #echo "deb https://packages.sury.org/php/ buster main" | tee /etc/apt/sources.list.d/ondrej.list
						 #apt update && apt upgrade -y
						 #mysql_secure_installation
						 Répondez aux questions comme bon vous semble	
						 Puis rendez-vous dans le fichier my.cnf	
						 #nano /etc/mysql/my.cnf
						
						Fichier de conf my.cnf	
						Ajoutez/Modifiez les lignes suivantes:	
						
						[...]
						[server]
						skip-name-resolve
						innodb_buffer_pool_size = 1G
						innodb_io_capacity=4000
						innodb_buffer_pool_instances = 1
						innodb_flush_log_at_trx_commit = 2
						innodb_log_buffer_size = 32M
						innodb_max_dirty_pages_pct = 90
						query_cache_type = 1
						query_cache_limit = 2M
						query_cache_min_res_unit = 2k
						query_cache_size = 64M
						tmp_table_size= 64M
						max_heap_table_size= 64M
						slow-query-log = 1
						slow-query-log-file = /var/log/mysql/slow.log
						long_query_time = 1
						
						[client-server]
						!includedir /etc/mysql/conf.d/
						!includedir /etc/mysql/mariadb.conf.d/
						
						[client]
						default-character-set = utf8mb4
						
						[mysqld]
						character-set-server = utf8mb4
						collation-server = utf8mb4_general_ci
						transaction_isolation = READ-COMMITTED
						binlog_format = ROW
						innodb_large_prefix=on
						innodb_file_format=barracuda
						innodb_file_per_table=1
						[...]
						ctrl+O ctrl+x
						systemctl restart mysql
						
					

Modification du format de la BDD

Éviter le message d'erreur suivant

MySQL est utilisée comme base de données mais ne supporte pas les caractères codés sur 4 octets. Pour pouvoir manipuler les caractères sur 4 octets (comme les émoticônes) sans problème dans les noms de fichiers ou les commentaires par exemple, il est recommandé d'activer le support 4 octets dans MySQL, les manipulations décrites ci-dessous seront nécessaires. (Source ici)

							 #mysql -u root -p
							 > show variables like 'innodb_file_format';
							 Si vous avez l'élement suivant tout est OK
							 +--------------------+-----------+
							 | Variable_name      | Value     |
							 +--------------------+-----------+
							 | innodb_file_format | Barracuda |
							 +--------------------+-----------+
							
							En revanche si vous avez l'élément suivant :
							+--------------------+-----------+
							| Variable_name      | Value     |
							+--------------------+-----------+
							| innodb_file_format | Antelope  |
							+--------------------+-----------+
							Effectuez la commande suivante :
							> SET GLOBAL innodb_file_format=Barracuda;
							
							(Maintenant on va créer de la base de données)
							(RAPPEL : Les valeurs entre "[xx]" sont à modifier en enlevant les crochets)
							
							>CREATE USER '[userdb]'@'localhost' IDENTIFIED BY '[PASSWORD]';
							>CREATE DATABASE IF NOT EXISTS [nextcloud] CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
							>GRANT ALL PRIVILEGES on [nextcloud.*] to '[userdb]'@'localhost';
							>FLUSH privileges;
							
					

Explications des commandes

Fichier MY.CNF

- Là c'est pareil, ce sont les fichiers de configuration de la base de données, si vous avez des infos à nous passer n'hésitez pas : contact@blackhat-out.fr.

LES COMMANDES SQL

Pour la partie création de la base on s'y connait un petit peu !
- La commande CREATE est ce qui permet, lorsqu'elle est suivi d'un argument du type USER/DATABASE, de créer un ou plusieurs élements - qui d'ailleurs se nomme "objet" en base de données (à vérifier).
- L'ensemble CREATE USER '[userdb]'@'localhost' IDENTIFIED BY '[PASSWORD]'; permet, dans l'ordre, de "créer l'utilisateur [nom_utilisateur_voulut] à l'emplacement [localhost]". Tous les élements entre crochets dans le terminal sont des élements arbitraires que vous pouvez définir à votre guise.
- L'ensemble CREATE DATABASE IF NOT EXISTS [nextcloud]; permet, dans l'ordre, de "créer la base, si elle n'existe pas, [nom_de_la_base_voulut]". Pour la partie CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;, on maîtrise moins mais normalement c'est pour autoriser les caractères UTF8mb4... voilà.
- La commande GRANT ALL PRIVILEGES on [nextcloud.*] to '[userdb]'@'localhost'; permet de donner tous les droits sur la base [nextcloud] à l'utilisateur [userdb].
- Pour finir, la commande FLUSH privileges; permet de re-charger les droits sur la base, c'est une sorte d'actualisation si je ne me trompe pas.


INSTALLATION NEXTCLOUD

Installation du package nextcloud

Les commandes citées ci-dessous vous permettront d'installer ENFIN Nextcloud.


							 #cd /var/www/nextcloud
							 #wget https://download.nextcloud.com/server/installer/setup-nextcloud.php
							 Plus qu'à suivre l'assistant d'installation via un client web
							 https://IP_OU_FQDN/setup-nextcloud.php
							
						

Afin d'éviter le message d'erreur suivant :

"Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou de le déplacer hors de la racine du serveur web."
Nous vous recommandons de ne pas mettre le dossier "data" dans le dossier racine de NextCloud


NOTA BENE

La fin de l'installation du package

Désormais on est sur de la lecture purement et simplement - vous pouvez accéder à l'installation en renseignant l'adresse de votre serveur suivi de "setup-nextcloud.php" ==> https://adresse_url.fr/setup-nextcloud.php ou https://127.0.0.1/setup-nextcloud.php. On aime pas les utilisateurs assistés qui ne savent pas quoi faire dès qu'un message d'erreur indique "erreur de syntaxe" ou "commande non reconnu", du coup on ne va pas vous mettre les captures d'écran de l'assistant d'installation en vous indiquant de cliquer sur "suivant".


SÉCURISER

Sécuriser un minimum son serveur web

Dernière maj du module : 27/11/2020 à 15h12

L'objectif est d'activer le pare-feu nativement présent et de ne laisser ouvert que les ports dont l'HTTP, l'HTTPS et SSH ont besoin.


						 #apt-get install ufw -y
						 #ufw allow 80
						 #ufw allow 443
						 #ufw allow 22
						 #ufw enable
						 #nano /etc/apache2/conf-available/security.conf
						 Fichier de conf security.conf
						 Ajoutez/Modifez les lignes suivantes
						 [...]
						ServerSignature Off 
						#ServerSignature On
						[...]
						(ctrl+o + ctrl+x)
						#systemctl restart apache2
						
						
					

Explications des commandes

UFW

- La commande ufw est la façon simplifier de gérer NetFilter. NetFilter est le pare-feu Linux généralement géré via son "interface graphique" nommée iptable.
- Ici, on autorise l'accès aux ports 80 , 443, 22 puis on active les règles avec l'argument enable.

VUE D'ENSEMBLE

Résolution des problèmes dans la vu d'ensemble

Les commandes citées ci-dessous vous permettront de résoudre les messages suivants présents dans la vue d'ensemble.

!Image Messages vue d'ensemble!


Aucun cache mémoire configuré

Source accessible ici

						 #apt install -y redis-server php-redis -y
						 #nano /var/www/[dossier nextcloud]/config/config.php
						 Fichier de configuration "config.php"
						 Ajoutez les lignes suivantes avant ");"
						
						 'memcache.local' => '\OC\Memcache\Redis', /* contient les scripts php précompilés */ 
						 'filelocking.enabled' => 'true', 
						 'memcache.distributed' => '\OC\Memcache\Redis', 
						 'memcache.locking' => '\OC\Memcache\Redis', 
						'redis' => 
						array ( 
						  'host' => 'localhost', 
						  'port' => 6379,
						  'timeout' => 0,
						  'dbindex' => 0, 
						),
						ctrl+o ctrl+x
						systemctl restart apache2
					

/.well-know/[cardav/caldav]

						 #nano /etc/apache2/conf-available/nom_du_virtualhost-ssl.conf
						 Fichier de configuration "xxx-ssl.conf"
						 Ajoutez les lignes suivantes avant </VirtualHost> 
						 [...]
						 Redirect 301 /.well-known/carddav https://[IP_OU_FQDN]/remote.php/dav
						 Redirect 301 /.well-known/caldav https://[IP_ou_FQDN]/remote.php/dav
						 [...]
						 ctrl+o ctrl+x
						systemctl restart apache2
					

Explications des commandes

xxxx-ssl.conf

- L'ajout des lignes Redirect 301 /.well-known/carddav https://[IP_OU_FQDN]/remote.php/dav et Redirect 301 /.well-known/caldav https://[IP_OU_FQDN]/remote.php/dav doivent être ajoutées dans la configuration du VirtualHost *443. Si vous avez utiliser certbot, cette configuration est présente dans le fichier xxx-ssl.conf.
Si vous avez utiliser l'auto-signature du certificat, la modification doit s'effectuer dans le fichier xxxx.conf.

FunFact OCC

						 #apt install sudo
						 #cd /var/www/repertoire_nextcloud
						 #sudo -u www-data php occ db:add-missing-indices
						 #systemctl restart apache2
					

Explications des commandes

occ

Il arrive que NextCloud, nous indique un message de type "warning" dans la vue d'ensemble concernant add-missing-indices ou autre message du même type. Dans ce cas, il est nécessaire de se situer dans le repertoire de nextcloud et d'exécuter la commande indiquée ci-dessous avec l'argument correspondant.

FIN DU TUTORIEL

Ce tutoriel se termine ici, pour toute question ou rectification, vous pouvez nous contacter par mail à contact@blackhat-out.fr.