Suite installation pelican ssh et wireguard

Bonsoir,
Suite à mon message précédent Installation cms pelican et aux conseils @stilobique j’ai installé l’application pelican sur mon serveur yunohost.
Je souhaiterais maintenant faire des mises à jour régulières de mon site. J’imagine qu’elles se font avec un client FTP de type filezilla pour ma part, je prendrais plutôt winscp.
Mon souci est le suivant depuis mon lieu de travail, je n’ai pas accès au port ssh. Par contre, je peux naviguer sur le net en https. Il semblerait qu’il soit possible en installant le serveur wireguard sur mon serveur yunohost de réaliser ces mises à jour. Je suis donc à la recherche d’un tutoriel détaillé et le plus simple possible expliquant cette démarche.
En vous remerciant pour vos retours.

Je n’ai pas de tutoriel précis, mais moi, j’aurais simplement fait un script de déploiement en python pour push les données en FTP et avec un simple fichier .env pour stocker les données sensible -que tu peux facilement supprimer.

Par contre, tu signales que le port est bloqué au niveau de ta boite ? Il est possible de bloquer un port interne vers l’externe ? (j’ai peu de connaissance réseau).

Bonsoir,
Merci pour la réponse rapide. En fait, j’aimerais faire quelque chose comme cela.

Visiblement, il s’agit de faire du “tunneling ssh

Ta boîte bloque le port 22, mais te laisserait installer un client VPN sur ton ordinateur, et qui utilise un port exotique ?

Je te propose plutôt de passer par Nextcloud, puisque tu es sûr que le trafic HTTPS fonctionne. Cela demande un peu de bidouille, mais j’ai pu prototyper ça. (je suis quasiment sûr d’avoir déjà évoqué cette idée sur le forum)

  1. Installe Nextcloud
  2. Changeons les droits d’accès des dossiers:
sudo su
cd /var/www/pelican
# Faire en sorte que tout les dossiers et fichiers appartiennent au groupe pelican
chown pelican:pelican -R .
# Ajouter nextcloud et www-data au groupe pelican
usermod -a -G pelican nextcloud
usermod -a -G pelican www-data
# Forcer à ce que les fichiers créés par nextcloud appartiennent toujours au groupe pelican
chmod g+s content
# Autoriser nextcloud (et incidemment www-data) à écrire dans content
chmod 770 content
chmod 660 content/* -R
# On redémarre PHP et NGINX
systemctl restart nginx
# futurs lecteurs, la version de PHP-FPM aura peut-être changé
systemctl restart php8.1-fpm

A noter que les fichiers créés par Nextcloud n’auront pas tout à fait les mêmes permissions qu’attendues, mais rien de bien grave. Ces permissions risquent de sauter à la prochaine mise à jour de l’app. A voir si tu ajoutes ça dans un hook pour automatiser tout ça.

J’ajouterais aussi un service pour régénérer automatiquement le site dès qu’un fichier est modifié.

sudo nano /etc/systemd/system/pelican_perso.service

Et colles-y ceci:

[Unit]
Description=Surveillance du dossier content de Pelican

[Service]
Type=simple
User=pelican
Group=pelican
WorkingDirectory=/var/www/pelican/
ExecStart=/var/www/pelican/venv/bin/pelican --autoreload
StandardOutput=journal
StandardError=inherit

# Sandboxing options to harden security
# Depending on specificities of your service/app, you may need to tweak these
# .. but this should be a good baseline
# Details for these options: https://www.freedesktop.org/software/systemd/man/systemd.exec.html
NoNewPrivileges=yes
PrivateTmp=yes
PrivateDevices=yes
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
RestrictNamespaces=yes
RestrictRealtime=yes
DevicePolicy=closed
ProtectSystem=full
ProtectControlGroups=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
LockPersonality=yes
SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap

# Denying access to capabilities that should not be relevant for webapps
# Doc: https://man7.org/linux/man-pages/man7/capabilities.7.html
CapabilityBoundingSet=~CAP_RAWIO CAP_MKNOD
CapabilityBoundingSet=~CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE
CapabilityBoundingSet=~CAP_SYS_BOOT CAP_SYS_TIME CAP_SYS_MODULE CAP_SYS_PACCT
CapabilityBoundingSet=~CAP_LEASE CAP_LINUX_IMMUTABLE CAP_IPC_LOCK
CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_WAKE_ALARM
CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG
CapabilityBoundingSet=~CAP_MAC_ADMIN CAP_MAC_OVERRIDE
CapabilityBoundingSet=~CAP_NET_ADMIN CAP_NET_BROADCAST CAP_NET_RAW
CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_SYSLOG

[Install]
WantedBy=multi-user.target

Lance le service:

systemctl daemon-reload
systemctl start pelican_perso
# et vérifie son bon fonctionnement
systemctl status pelican_perso

Dans Nextcloud, ajoute un nouveau Stockage Externe en tant qu’admin: stockage Local, chemin /var/www/pelican/content, et choisis quels utilisateurs peuvent y accéder. Une coche verte devrait confirmer que Nextcloud a bien accès au dossier.

Bonus, si tu peux installer l’app Nexcloud Desktop, tu peux synchroniser tes fichiers directement sur ton PC.

3 Likes

Mais c’est génial ! Merci beaucoup. Je mets cela en place.

Si tu es satisfait, je suis certain que tu ne seras pas le seul avec ce cas d’utilisation. On pourra voir pour l’intégrer directement dans l’app. :wink:

1 Like

Bonjour,

Pas de problème pour se déplacer dans le dossier, par contre pour changer les droits :

root@w:/home/mw# cd /var/www/pelican
root@w:/var/www/pelican# chown pelican:pelican -R
chown: missing operand after ‘pelican:pelican’
Try 'chown --help' for more information.
root@w:/var/www/pelican#

Le dossier pelican contient :

root@w:/var/www/pelican# ls
content   output          publishconf.py  tasks.py
Makefile  pelicanconf.py  __pycache__     venv
root@w:/var/www/pelican#

Il ne faudrait pas plutôt écrire cela ?

root@w:/var/www/pelican# chown -R pelican:pelican 

Qu’en pensez-vous ? En vous remerciant.

Je pense que tu as mal lu ma commande. Il y a un point à la fin.

Oui merci beaucoup.

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.