Debian Debian-France Debian-Facile Debian-fr.org Debian-fr.xyz Debian ? Communautés

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 13-05-2022 23:14:11

Maknho
Membre
Distrib. : Debian GNU/Linux 11
Noyau : Linux 5.10.0-10-amd64
(G)UI : Xfce
Inscription : 01-06-2020

[RESOLU] [WEBDAV] : interdire l'accès via internet

Bonjour à tous,

1) ma configuration est la suivante :
- un serveur sur une carte ARM (odroid N2+) fonctionnant sous un dérivé de Debian (Armbian) avec une couche de Yunohost
- les services sur le serveur :
a) du mail
b) des outils de base : RSS (FresRSS), un pastebin (Privatebin), Opensondage, Droppy, suite collaborative (Cryptpad)
c)  un petit peu de média et autres : instance Pleroma, calibre-web, Navidrome

2) Le contexte

Je tente de me séparer de one note (dernière attache que j'ai à Microsoft depuis ma lente migration vers les logiciels libres : grâce à ce forum et yunohost, débutée il y a deux ans maintenant).

J'ai jeté mon dévolu sur Joplin (https://joplinapp.org).
Cela ne s'installe que côté client ; c'est léger, en markdown...

Il me faut alors le synchroniser entre mon PC Debian et mon téléphone Android.
Joplin supporte différentes méthode de synchro :
- Nextcloud => je ne souhaite pas l'installer sur mon serveur qui a déjà sa mémoire bien utilisé ;
- Dropbox => je préfère l'autohébergement
- Onedrive => Ibidem
- The local filesystem => je ne souhaite pas mettre sur mon téléphone Android ma clef SSH et sur les forums il apparait que cette méthode n'est pas stable
- reste Webdav

3) Webdav

Je trouve 3 méthodes pour créer un serveur Webdav :
- via nginx (https://docs.jelastic.com/nginx-webdav-module/) => compliqué...pour moi
- via apache (https://www.filestash.app/2022/03/04/apache-webdav/) => mon serveur tourne avec nginx et ... compliqué...
- via WsgiDAV (https://github.com/mar10/wsgidav) => très facile ...deux minutes !

La commande pour activer webdav sur le serveur est la suivante :

wsgidav --host=mon_IP_locale --port=un_port_que_j'ai_choisi --root=/le/dossier/de/synchro/de/joplin --auth=pam-login




4) Deux problèmes néanmoins

- je n'arrive pas à activer le SSL (httpS)
- je peux accéder, dans le navigateur, au dossier en tapant l'URL
* mon_ip_locale:le_port_redirige_depuis_le_routeur_et_ouvert_dans_le_parfeu_yunohost
*mon_ip_PUBLIQUE:le_port_redirige_depuis_le_routeur_et_ouvert_dans_le_parfeu_yunohost

L'accès avec l'IP publique donc depuis l'internet est trop peu sécure selon moi.

5) Questions
- comment activer le SSL avec wsgidav ?
- Je ne comprends pas que le dossier webdav soit accessible en rentrant mon IP publique alors que la commande que je rentre dans mon terminal pour activer webdav sur le serveur (cf supra) ne mentionne que l'IP locale ? La redirection des ports joue sans doute mais je pensais que la commande me permettait d'exclure l'accès via internet et que pour permettre l'accès via internet j'aurai du mettre l'IP publique dans la commande ?
- comment faire pour interdire l'accès via internet à webdav en n'autorisant que l'accès via le réseau local ? Ne pas mettre de ports dans la commande ne fait que remplacer mes ports par les ports par défaut (8080).
- Y-a-t-il d'autres problèmes de sécurité avec webdav (et dans ma configuration, en particulier) qui doivent amener à prendre des mesures renforcées, particulières, de sécurisation ? Par exemple est-ce que le dossier indiqué dans la commande wsgidav est bien le seul accessible ?

J'ai vu un sujet similaire sur le forum https://debian-facile.org/viewtopic.php?id=26553
Mais la discussion ne m'a pas paru conclusive.
J'espère que mon post est suffisamment précis (du moins selon les termes de @raleur qui avait déjà répondu au post précité).

Merci beaucoup d'avance pour vos conseils

Dernière modification par Maknho (16-05-2022 21:30:53)

Hors ligne

#2 14-05-2022 14:31:54

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : [RESOLU] [WEBDAV] : interdire l'accès via internet

Salut smile

A priori, le fil que tu cites réponds en creux à une partie de tes questions wink

Si je pige bien, tu cherches juste à pouvoir te connecter en webdav dans ton LAN, et tu peux choisir le port de ton serveur Webdav. De ce fait, en IPv4, tu n'es pas obligé de faire une redirection de ce port spécifique vers ton serveur, différent de 80 ou 443. Il faudra juste indiquer le port en question dans l'URL de partage dans Joplin.

Par ailleurs, pour l'IPv6, tu peux faire une règle Iptables pour n'autoriser les connexions depuis le LAN (idem pour IPv4 d’ailleurs, si j'ai bien pigé ce que m'a déjà dit @raleur, la sécurité apportée par le fait de ne pas rediriger les ports de ta box vers ton serveur n'est qu'un effet de bord et n'est pas absolue). Il existe un mécanisme dans Yunohost pour appliquer des règles spécifiques : https://forum.yunohost.org/t/iptables-saving-help/15818

Pour le SSL, il semble y avoir moyen d'indiquer le certificat SSL à utiliser via le fichier de configuration déclaré dans l'option -c de la commande de lancement du serveur Webdav.

https://wsgidav.readthedocs.io/en/lates … e_cli.html

Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

Hors ligne

#3 15-05-2022 23:25:30

Maknho
Membre
Distrib. : Debian GNU/Linux 11
Noyau : Linux 5.10.0-10-amd64
(G)UI : Xfce
Inscription : 01-06-2020

Re : [RESOLU] [WEBDAV] : interdire l'accès via internet

Hello @bendia,

merci de ta réponse.

Si je pige bien, tu cherches juste à pouvoir te connecter en webdav dans ton LAN



Oui c'est ça : me connecter en webdav dans mon LAN tout en gardant impossible de me connecter en webdav depuis internet (l'extérieur de mon LAN).

tu peux choisir le port de ton serveur Webdav



Oui je peux dans la commande pour activer webdav :

wsgidav --host=mon_IP_locale --port=un_port_que_j'ai_choisi --root=/le/dossier/de/synchro/de/joplin --auth=pam-login
 



De ce fait, en IPv4, tu n'es pas obligé de faire une redirection de ce port spécifique vers ton serveur, différent de 80 ou 443. Il faudra juste indiquer le port en question dans l'URL de partage dans Joplin.



J'ai fait les commandes :

wsgidav --host=mon_IP_locale --port=80 --root=/le/dossier/de/synchro/de/joplin --auth=pam-login



et

wsgidav --host=mon_IP_locale --port=443 --root=/le/dossier/de/synchro/de/joplin --auth=pam-login



L'output est identique pour les deux commandes :

OSError: No socket could be created -- (('192.168.1.172', 443): [Errno 98] Address already in use)



Ces ports sont utilisés par les mails yuno

=> mais @bendia peut-être qu'un truc évident m'échappe ?

Pour le SSL, il semble y avoir moyen d'indiquer le certificat SSL à utiliser via le fichier de configuration déclaré dans l'option -c de la commande de lancement du serveur Webdav.

https://wsgidav.readthedocs.io/en/lates … e_cli.html



OK cool je regarderai ça une fois la question de l'accès uniquement en LAN maitrisé...

Dernière modification par Maknho (16-05-2022 21:12:03)

Hors ligne

#4 16-05-2022 07:39:32

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : [RESOLU] [WEBDAV] : interdire l'accès via internet

Maknho a écrit :

=> mais @bendia peut-être qu'un truc évident m'échappe ?

Oui,  tu peux choisir arbitrairement un port wink  La seule contrainte est que tu es ensuite obligé de spécifier ce port dans l'URL coté client, genre

http://ton_ip:ton_port

Mais ça doit être faisable dans Joplin.

Les port 80 et 443 sont les ports par défaut des protocoles http et https, ce qui explique qu'ils soient déjà utilisé par le serveur Nginx de Yunohost. Ces ports sont bien connus, et ils sont utilisés par les navigateurs lorsque rien n'est spécifié dans l'URL, sauf les protocoles au début (http:// ou https://).

Rien ne t'interdit donc de définir le port 8080 dans le lancement de ton serveur Webdav, et il n'y a plus aucun soucis smile

Ça reste complètement décorrélé de l'utilisation de SSL qu'il faut configurer de son coté (peut-être ré-utiliser les certificats SSL de Yunohost si tu veux un certificat reconnu par les clients).


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

Hors ligne

#5 16-05-2022 21:30:21

Maknho
Membre
Distrib. : Debian GNU/Linux 11
Noyau : Linux 5.10.0-10-amd64
(G)UI : Xfce
Inscription : 01-06-2020

Re : [RESOLU] [WEBDAV] : interdire l'accès via internet

@bendia merci bcp..; ça marche

j'ai mieux compris ce que tu disais :

De ce fait, en IPv4, tu n'es pas obligé de faire une redirection de ce port spécifique vers ton serveur, différent de 80 ou 443. Il faudra juste indiquer le port en question dans l'URL de partage dans Joplin.



J'ai donc :
- ouvert un port arbitraire (différent de 80 et 443 utilisé pour http et https par yuno) ;
- ouvert ces ports dans le pare-feu de yuno ;
- MAIS sans indiqué à mon routeur une redirection de ce port arbitraire vers mon serveur.

Après quelques tests il parait impossible d'accéder au webdav en WAN mais bien possible en LAN.

Merci bcp @bendia et bonne soirée

Hors ligne

Pied de page des forums