Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/02/2022, à 11:20

Nico89

Jirafeau emplacement des données et lien web root [RESOLU]

Bonjour,
J'arrive à la fin de mon installation de mon petite serveur de transfert de fichiers.
J'ai toutefois deux questions :

Dans la documentation officielle ici, l'auteur donne deux conseils en sécurité que je n'arrive pas à mettre en oeuvre :
1] Move var folder to a place on your server which can't be directly accessed
Il m'a été précédemment conseillé de mettre les données utilisateurs en dehors du dossier racine du serveur (DocumentRoot).
Mais où puis-je déplacer ce répertoire ?

2]An other obvious basic security is to let access users to the site by HTTPS (make sure web_root in you config.local.php is set with https).
Je viens tout juste d'arriver à mettre en place un certificat ssl (c'était pas gagné). Tout fonctionne.
Que dois-je mettre dans le paramètre "web_root" pour https ?
Ici le fichier explicatif des paramètres de configuration.

A l'avance merci

Dernière modification par Nico89 (Le 08/02/2022, à 12:08)

Hors ligne

#2 Le 05/02/2022, à 18:51

bruno

Re : Jirafeau emplacement des données et lien web root [RESOLU]

Bonjour,

Tu n'as pas besoin de déplacer le dossier «var» il faut juste le protéger des accès directs en mettant une directive pour Apache pour ce dossier :

Require all denied

dans un fichier .htacces à la racine du dossier en question ou directement dans la configuration de l'hôte virtuel (que tu ne nous a pas montré).

Le fichier de paramètres de configuration donné en lien est auto-documenté. Il explique en commentaire ce qu'il faut mettre pour web_root. En l'ocurrence l'URL complète pour accéder à Jirafeau

#3 Le 05/02/2022, à 23:02

Nico89

Re : Jirafeau emplacement des données et lien web root [RESOLU]

Bonsoir ,
Merci de ton retour.

Tu n'as pas besoin de déplacer le dossier «var» il faut juste le protéger des accès directs

Je ne comprends plus car c'est toi même qui m'avais conseillé cela dans ce post ( voir réponse 2 ) :
https://forum.ubuntu-fr.org/viewtopic.p … #p22521884

Le fichier de paramètres de configuration donné en lien est auto-documenté. Il explique en commentaire ce qu'il faut mettre pour web_root. En l'ocurrence l'URL complète pour accéder à Jirafeau

Voici mon fichier de configuration apache pour ce serveur :

 <VirtualHost _default_:443>

                ServerName xx.xx.xxx.xxx/Jirafeau
                DocumentRoot /var/www/html/Jirafeau

                SSLEngine on
                SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
                SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

                <Directory /var/www/html/Jirafeau>
                AllowOverride All
                </Directory>

                <Directory "/var/www/html/Jirafeau/var-xxxxxxxxxxx>
                Require all denied
                </Directory>

        </VirtualHost>

PS : les xxxxxx sont des caractères modifiés
Pour le moment je n'ai pas de nom de domaine. J'utilise l'adresse ip externe de ma box.

Voici le fichier de configuration du serveur "config.local.php" :

$cfg = array (
  'web_root' => '',
  'var_root' => '/var/www/html/Jirafeau/var-xxxxxxxxxxx/',

Je ne sais pas si tout est correct, mais pour le moment ça fonctionne en https.

Dernière modification par Nico89 (Le 05/02/2022, à 23:03)

Hors ligne

#4 Le 06/02/2022, à 09:51

bruno

Re : Jirafeau emplacement des données et lien web root [RESOLU]

Dans ce cas précis, le déplacement du répertoire var-xxxx n'est pas obligatoire. Il est correctement protégé des accès extérieur dans ta configuration.

Je te donne une version corrigée de ton fichier de configuration :

<VirtualHost _default_:443>

  ServerName xxx.xxx.xxx.xxx
  DocumentRoot /var/www/html/Jirafeau

  SSLEngine on
  SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
  SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

  <Directory /var/www/html/Jirafeau>
    Options -Indexes +FollowSymLinks +MultiViews
    AllowOverride all
    Require all granted
  </Directory>

  <Directory "/var/www/html/Jirafeau/var-xxxxxxxxxxx>
    Require all denied
  </Directory>

  LogLevel warn
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

La directive ServerName doit correspondre au nom de domaine ou à l'adresse IP.
Dans ton cas le site doit être accessible vie https://xxx.xxx.xxx.xxx

La directives Options doit au minimum spécifier -Indexes pour empêcher de liste le contenu des répertoires.

Il ne faut pas oublier les logs. Tu peux éventuellement les séparer des autres logs Apache en choisissant des nom de fichiers spécifiques : access-xxx.log et error-xxx.log

Quand tu auras un nom de domaine, il faudra reconfigurer cela avec un certificat obtenu avec Let'sEncrypt, voir : https://doc.ubuntu-fr.org/tutoriel/secu … 2_avec_ssl
et renseigner le fichier de configuration avec :

'web-root' => 'https://nom_de_domaine'

#5 Le 06/02/2022, à 11:58

Nico89

Re : Jirafeau emplacement des données et lien web root [RESOLU]

Bonjour,

Tout d'abord merci pour les compléments que tu as fait sur le fichier.

Je suis embrouillé avec le paramètre "serverName"
Dans le fichier que tu m'as modifié tu as mis

ServerName xxx.xxx.xxx.xxx

et  dans tes explications plus bas tu indiques

Dans ton cas le site doit être accessible via https://xxx.xxx.xxx.xxx

Par ailleurs, dans la documentation que tu as mis en lien il est écrit :

Syntaxe:    ServerName [protocole://]nom-de-domaine|adresse-ip[:port]
[...]
La directive ServerName permet de définir les protocole, nom d'hôte et port d'une requête que le serveur utilise pour s'authentifier lui-même.

Du coup dans "ServerName", il faut que je mette :

ServerName 123.456.789.012

ou

ServerName 123.456.789.012:1234

ou

ServerName https://123.456.789.012

ou

ServerName https://123.456.789.012:1234

?
ps : lorsque j'ai ouvert un port sur ma box, je ne savais pas si je pouvais utiliser le port 443, du coup, j'ai fait une redirection d'un port xxxx vers ip_locale_serveur:443


En ce qui concerne 'web_root', du coup, pour le moment il faut que je mette

'web-root' => 'https://123.456.789:1234'

Il y avait une raison de pourquoi j'avais mis "web_root" vide. Je n'ai pas compris pourquoi, mais quand j'ai fais mes tests en local, le paramètre "web_root" était défini comme ceci :

'web_root'=>'192.168.x.xx/Jirafeau'

Puis quand j'ai commencé mes essais depuis l'extérieur (en http), je rentrais http://ip_box:port/ dans mon navigateur, une fois la page Jirafeau visible, je chargeais un fichier et validais l'envoi. Et là, le lien affiché qui m'était proposé par l'application était justement

192.168.x.xx/Jirafeau/f.php?h=3dcxwtdr

. (une ip locale)
Mieux, lorsque je cliquais sur le petit bouton sur "copier le lien" à côté du lien affiché et que je le collais dans la barre du navigateur, l'adresse était bien la bonne :

 https://123.456.789.012:1234/f.php?h=3dcxwtdr

Je pense que le lien affiché ne vient pas du même endroit que le lien fourni via le bouton "copier le lien".
Après avoir cherché un peu, je me suis aperçu que c'était ce qu'il y avait de défini dans "web_root" qui s'affichait. J'ai supprimé 192.168.x.xx/Jirafeau du paramètre "web_root". Lorsque j'ai testé de nouveau les liens affichés ne ressemblait plus qu'à

 f.php?h=3dcxwtdr

Quand je cliquais sur le bouton copier le lien, j'avais bien l'ensemble du lien qui était copié.

Je pense avoir compris pour "web_root", il faut s'arranger pour que l'adresse affichée soit l'adresse réelle afin que la personne qui copie l'adresse affichée en la sélectionnant puisse la coller dans sa totalité dans son navigateur. Sinon il ne collera qu'une partie de l'adresse et ça ne fonctionnera pas.

Dernière modification par Nico89 (Le 06/02/2022, à 12:07)

Hors ligne

#6 Le 06/02/2022, à 14:44

Nico89

Re : Jirafeau emplacement des données et lien web root [RESOLU]

Question annexe : il faut mettre des guillemets ou pas sur les chemins de répertoire.
Sur les forums, certains en mettent, d'autres non

<Directory /var/www/html/Jirafeau>

ou

<Directory "/var/www/html/Jirafeau">

Cordialement

Hors ligne

#7 Le 06/02/2022, à 15:06

bruno

Re : Jirafeau emplacement des données et lien web root [RESOLU]

La directive ServerName devrait idéalement être un vrai nom de domaine, sinon essaie avec ton IP publique. Sur ta box il vaut mieux faire une redirection du port 443 vers le port 443 du serveur.

Avec ou sans "", c'est sans importance.

#8 Le 06/02/2022, à 23:07

Nico89

Re : Jirafeau emplacement des données et lien web root [RESOLU]

C'est avec l'ip publique que ça marche depuis le début.
Merci pour les infos.

Question de curiosité : j'accède à mon application jirafeau en rentrant l'adresse https://ip_publique dans mon navigateur.
Imaginons que j'ai une seconde appli qui tourne en parallèle.
Si je rentre l'adresse https://ip_publique, il va m'afficher qu'une des deux applis. Pas forcément celle que je veux. Comment on fait pour accéder à la bonne appli ?

Hors ligne

#9 Le 08/02/2022, à 12:08

Nico89

Re : Jirafeau emplacement des données et lien web root [RESOLU]

Merci à tous en tout cas.
J'apprends beaucoup de chose.

Hors ligne