Pour accéder à mon Amazon Cloud Drive depuis le PC j’ai le choix entre la console, rClone-Browser ou mon gestionnaire de fichiers (Polo en ce moment). En revanche il n’y a rien sous forme de WebUI pour serveur. Je me suis donc lancé en quête d’un gestionnaire de fichiers pour serveur (PHP ou autre) que je pourrais installer sur une machine faisant tourner rClone et permettant ainsi d’accéder à mes fichiers chiffrés ACD.
J’ai pas trouvé grand chose de récent/libre/gratuit/complet. D’ailleurs FileRun n’est que partiellement gratuit, parfaitement utilisable mais avec quelques limitations dans sa version de base, notamment une limitation à 3 comptes utilisateur. Ce qui me suffit.
- Installation
- Configuration Apache2 + SSL
- Mise en place de favicon
- Configuration
- Ajout de dossiers « externes »
- Application Android & WebDAV (iOS sous peu)
FileRun est donc : beau, moderne, relativement complet, bien documenté et simple à mettre en place (Docker). Et vu que c’est Dockerisé ça tourne évidemment sur Linux, Mac et Windows. On trouve même des outils de déploiement pour pas mal de VPS et autres solutions d’hébergements via Cloudron.
Si vous ne voulez/pouvez utiliser ni Docker ni les instances, il vous reste le tutoriel d’installation « à la main » :) C’est ce que j’ai fait. C’est du simple, voire très simple, il suffit de lire et/ou faire du copier/coller.
Ayant manipulé Apache avant de connaître Nginx je me porte toujours sur ce premier quand je commence un projet hébergé. Voici un exemple de configuration HTTPS (IPv4 only), un peu de sécu et un certificat Lets Encrypt.
Exemple de fichier de configuration Apache2, de type explossl.conf
ServerName domaine.com <VirtualHost *:80> Redirect / https://domaine.com </VirtualHost> <VirtualHost *:443> Protocols http/1.1 SSLEngine on ServerAdmin [email protected] DocumentRoot /var/www/explo SSLCertificateFile /etc/letsencrypt/live/domaine.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/domaine.com/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" Header set X-XSS-Protection "1; mode=block" Header set X-Content-Type-Options nosniff Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure Header always set Referrer-Policy "no-referrer" Header set Connection keep-alive </VirtualHost> <Directory /var/www/explo> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
Exemple de fichier de configuration SSL : /etc/letsencrypt/options-ssl-apache.conf
SSLProtocol TLSv1.1 TLSv1.2 SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256 SSLHonorCipherOrder on SSLCompression off SSLSessionTickets off SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem" SSLUseStapling Off LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" vhost_combined LogFormat "%v %h %l %u %t \"%r\" %>s %b" vhost_common Header edit Set-Cookie (?i)^(.*)(;\s*secure)??((\s*;)?(.*)) "$1; Secure$3$4"
Pour générer un certificat SLL Lets Encrypt, utilisez une commande de ce genre. Je vous laisse consulter la doc très complète (et tout aussi claire) de Certbot pour les différents paramètres.
certbot certonly --hsts --rsa-key-size 4096 --uir --webroot -w /var/www/explo -d domaine.com
Et pour le renouvellement automatique placez ça en cron @daily avec un –renew-by-default
J’ai pas vraiment cherché mais je suppose que c’est livré sans favicon pour que chacun puisse en mettre un personnalisé (ou non). Je vais très originalement vous proposer d’ajouter celui de FileRun ^__^
Les voici (divers formats). Il faut les extraire directement dans /dossier/de/votre/filerun/, donc à la racine de /var/www ou /var/www/filerun ou ce que vous voulez. Pour ça vous vous placez dans le dossier racine et faites
wget https://wp.upandclear.org/wp-content/uploads/2017/06/FavicoFileRun.zip sudo apt install unzip unzip FavicoFileRun.zip rm FavicoFileRun.zip
Maintenant que nous avons les favicons il faut aller éditer les fichiers pour qu’il les affichent. Ce qui veut dire qu’en cas de MàJ de FileRun, il faudra refaire cette étape, heureusement y’a pas de MàJ toutes les semaines ! Comme toujours avant d’éditer un fichier faites-en une copie. Rendez-vous dans /dossier/de/votre/filerun/system//modules/fileman/sections/default/html/pages
et éditez chaque page concernée : login.html pour que le favicon soit sur cette page, index.html pour qu’il y apparaisse aussi etc. Ce sont les 2 seules pages qu’il m’a semblé utile de modifier (pour un usage perso).
Exemple avec login.html
cp login.html login.html.backup nano login/html Ensuite supprimez la ligne <link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" /> Et remplacez-la par celles-ci <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png"> <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png"> <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png"> <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png"> <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png"> <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png"> <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png"> <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png"> <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png"> <link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> <link rel="manifest" href="/manifest.json"> <meta name="msapplication-TileColor" content="#ffffff"> <meta name="msapplication-TileImage" content="/ms-icon-144x144.png"> <meta name="theme-color" content="#ffffff">
Un petit F5 dans votre navigateur et vous aurez vos favicons
Je vais me contenter de vous mettre quelques screens, la configuration étant aisée à comprendre (et personnelle). Comme vous allez le voir les permissions pour chaque utilisateur sont poussées pour un tel outil (gratuit), tout comme celles de personnalisation de l’interface ou encore les plugins (qu’on peut désactiver/modifier).
Par défaut les utilisateurs ont des dossiers dans /dossier/de/votre/filerun/system/data/default_home_folder (cf tuto /step 4). Si je veux pouvoir accéder à un dossier dans le /home/USER du serveur il faut alors l’ajouter comme ceci
ln -s /home/USER/dossier /dossier/de/votre/filerun/system/data/default_home_folder
Voilà, je peux maintenant profiter de FileRun pour accéder/manipuler mes fichiers stockés sur Amazon Cloud Drive.
Outre un accès « direct » depuis Windows, Mac et Linux rendu possible par WebDAV, FileRun possède aussi une application mobile pour (seulement) Android. Pour l’utiliser vous devrez auparavant activer l’API dans votre FileRun.
Et pour ceux sous Windows/iOS il y a un sujet dans les forums.