web-dev-qa-db-fra.com

Comment configurer une sauvegarde rsync sur Ubuntu en toute sécurité?

J'ai suivi divers autres tutoriels et articles de blog sur la configuration d'une machine Ubuntu en tant que "serveur" de sauvegarde (je l'appellerai un serveur, mais il ne s'agit que du bureau Ubuntu) pour lequel je pousse de nouveaux fichiers avec rsync. Actuellement, je peux me connecter au serveur à partir de mon ordinateur portable en utilisant rsync et ssh avec une clé RSA que j'ai créée et sans mot de passe. Invite lorsque mon ordinateur portable est connecté à mon routeur domestique auquel le serveur est également connecté. J'aimerais pouvoir envoyer des fichiers à partir de mon ordinateur portable lorsque je ne suis pas à la maison. Certains des didacticiels que j'ai consultés contenaient de brèves suggestions concernant la sécurité, mais ils ne se sont pas concentrés sur elles.

Que dois-je faire pour permettre à mon ordinateur portable d’envoyer des fichiers au serveur sans que cela soit trop facile pour une autre personne?

Voici ce que j'ai fait jusqu'à présent:

  • A exécuté ssh-keygen et ssh-copy-id pour créer une paire de clés pour mon ordinateur portable et mon serveur.

  • Création d'un script sur le serveur pour écrire son adresse IP publique dans un fichier, le chiffrer et le télécharger sur un serveur FTP auquel j'ai accès (je sais que je pourrais m'inscrire pour un compte DNS dynamique gratuit pour cette partie, mais avoir le compte ftp et ne pas vraiment avoir besoin de rendre l'ip accessible au public, j'ai pensé que cela pourrait être mieux).

Voici ce que j'ai vu suggéré:

  • Transfert de port: Je sais que je dois attribuer au serveur une adresse IP fixe sur le routeur, puis lui demander de lui transférer un ou plusieurs ports. Devrais-je simplement utiliser le port 22 ou choisir un port aléatoire et l'utiliser?

  • Activez le pare-feu (ufw). Est-ce que cela fera quelque chose ou mon routeur bloquera-t-il déjà tout sauf le port que je veux?

  • Exécutez fail2ban.

Est-ce que toutes ces choses valent la peine d'être faites? Devrais-je faire autre chose? Pourrais-je configurer le serveur pour autoriser les connexions avec la clé RSA uniquement (et non avec un mot de passe), ou fail2ban fournira-t-il une protection suffisante contre les tentatives de connexion malveillantes? Est-il possible de limiter les types de connexions autorisées par le serveur (par exemple, uniquement ssh)?

J'espère que ce n'est pas trop de questions. Je suis assez nouveau pour Ubuntu (mais utilisez les scripts Shell et bash sous OSX). Je n'ai pas besoin d'avoir la configuration la plus sécurisée absolue. Je voudrais quelque chose qui est raisonnablement sécurisé sans être si compliqué qu'il pourrait facilement se briser d'une manière qu'il serait difficile pour moi de réparer.

7
ws_e_c421

Ok, je pense que vous essayez un peu d'architecte. SSH est l’un des protocoles de transfert de fichiers les plus sécurisés et si votre rsynchronisation est déjà effectuée sur ssh, alors votre 90% est là. Votre routeur agit comme un pare-feu de base; vous ne devriez donc pas avoir besoin d'activer iptables pour un serveur de sauvegarde personnel.

Tenez-vous au port 22. Cela facilitera beaucoup la vie.

fail2ban est un script Nice pour les serveurs publics, spécialement là où les connexions avec mot de passe sont activées. Sur votre serveur, cela créera plus de problèmes que de problèmes à résoudre. Je ne recommanderais pas de l'exécuter. Voici mes suggestions:

  • Allez-y et obtenez l’adresse IP dynamique, cela facilitera les choses et, au sujet du temps que vous voyagerez, votre script ftp échouera pour une raison très étrange. Fondamentalement, KISS.
  • Désactiver les connexions par mot de passe pour ssh. Dans/etc/sshd_config, remplacez PasswordAuthentication yes par PasswordAuthentication no et assurez-vous que challengeresponse est défini sur no. Cela empêchera toute personne sans votre clé privée de se connecter.

Sinon, vous êtes couvert par défaut. SSH chiffre le trafic et vérifie l'hôte/client. Il ne reste plus beaucoup de choses après ça.

6
coteyr