Installation de Cloudron
Pré-requis : être à l'aise pour administrer un serveur.
Cloudron c'est quoi ?
C’est une plateforme permettant de déployer en quelques minutes de nombreuses applications tel que NextCloud, RocketChat, GitLab, Etherpad, Wallabag avec un service clé en main incluant l’hébergement et le backup. L’équipe de Cloudron propose un abonnement payant géré par leurs soins ou bien, ils vous proposent de l’héberger vous même sur le serveur de votre choix.
Site officiel : https://cloudron.io/
Ayant un serveur dédié chez OVH, je détaille les étapes pour sécuriser le serveur et installer Cloudron.
Préparation du serveur
Création de la clé SSH
Sur un PC Linux ou Mac, créer la paire de clés (plus robuste contre les attaques) comme suit :
ssh-keygen -t ed25519 -f id_ed25519 -o -a 500 # ou bien ssh-keygen -t rsa -b 4096 -o -a 500
Copier la clé publique dans le panel OVH. Puis se connecter au serveur fraichement installé avec Ubuntu 16.04 "Xenial Xerus" LTS.
ssh root@<IP> -i ~/.ssh/id_ed25519.pub
Changement du mot de passe root par défaut
passwd
Résoudre l’erreur perl: warning: Setting locale failed
locale-gen fr_FR.UTF-8 dpkg-reconfigure locales
https://memo-linux.com/resoudre-lerreur-perl-warning-setting-locale-failed/
Création d'un nouvel utilisateur pour ne pas utiliser root
adduser <user> usermod -aG sudo <user>
Se connecter en user pour lui ajouter la clé privée SSH
su - user mkdir ~/.ssh chmod 0700 ~/.ssh sudo cp /root/.ssh/authorized_keys2 /home/user/.ssh/authorized_keys2 sudo chown user:<user /home/user/.ssh/authorized_keys2 chmod 0600 /home/user/.ssh/authorized_keys2 exit rm /root/.ssh/authorized_keys2
Sécuriser l'accès au serveur SSH.
Lire la page sécurité de Cloudron.
vi /etc/ssh/sshd_config Port 202 # Changement du port par défaut pour éviter les attaques brute force. Uniquement ce port n'est pas bloqué par le firewall Cloudron ServerKeyBits 4096 PermitRootLogin no UsePAM no PasswordAuthentication no
On enregistre et on quitte avec ":x"
Redémarrage du serveur SSH pour prendre en compte les modifications :
systemctl restart sshd
Connexion SSH avec user
ssh user@<IP> -p202 -i ~/.ssh/id_ed25519.pub su -
Installation de Cloudron
wget https://cloudron.io/cloudron-setup chmod +x ./cloudron-setup ./cloudron-setup --provider ovh apt install fail2ban
Pour plus d'informations, lire la doc d'installation.
Installation de Cloudron CLI
J'avais besoin d'envoyer une grande quantité de données, mais plutôt que de le faire par l'interface web ou le programme nextcloud, je l'ai fais en SSH. Le transfert terminé, il faut indiquer à nextcloud de scanner les nouveaux fichiers. Cela se fait en ligne de commande depuis son poste.
sudo npm install -g cloudron cloudron login my.<site> cloudron list cloudron exec --app <appid> sudo -u www-data php -f occ files:scan --all