web-dev-qa-db-fra.com

Comment sécuriser SSH dans une machine à la maison via Internet

Je voyagerai bientôt et j'ai une machine qui exécute une série de tâches cron, etc. Je dois me connecter à distance pour vérifier les résultats des tâches exécutées et effectuer des travaux sur la machine.

Voici les faits saillants:

  1. La machine à connecter (ravitailleur) exécute Ubuntu 14.0.4 LTS
  2. Le vaisseau mère est connecté à Internet via un réseau local à la maison, il possède donc une adresse IP publique.
  3. L'adresse IP est attribuée dynamiquement.
  4. Je me connecterai au vaisseau mère à l'aide d'un ordinateur portable sous Ubuntu 15.10

Je préfère utiliser ssh plutôt que VNC, à cause de problèmes de bande passante. De plus, tout ce dont j'ai besoin, c'est de la ligne de commande.

Quel est le meilleur moyen de se connecter en toute sécurité à distance à ma machine?

8

Votre meilleur choix est probablement de faire fonctionner un serveur SSH sur un port autre que celui par défaut, tel que 2020. Cela empêche la plupart des tentatives d'attaques brutales depuis le Web, car ces bots ont tendance à ne rechercher que les ports par défaut.

Vous devrez également attribuer au serveur une adresse IP statique sur le réseau local, car il doit être accessible à tout moment. Vous pouvez définir ceci dans System Settings --> Network. Pour éviter les conflits d'adresses IP, il est également conseillé d'informer votre serveur DHCP (le routeur dans la plupart des cas) que cette adresse IP est utilisée. La méthode varie selon les modèles, mais la configuration du routeur doit comporter une zone permettant de réserver des adresses IP.

La raison de l'IP statique est que vous devez configurer le transfert de port dans la configuration de votre routeur. Cela permet aux connexions du port vers votre adresse IP externe d'être routées vers ce port sur votre serveur.

Si votre adresse IP publique est dynamique, ce qui est probablement le cas, vous souhaiterez configurer une sorte de service DNS dynamique. Ma recommandation pour ce service est No-IP . Il vous donne un sous-domaine gratuit qui pointe toujours vers votre adresse IP publique. Cette configuration nécessite l'installation d'un programme sur une machine toujours active sur votre réseau local (appelée la DUC, fournie par No-IP).

Une fois que vous avez configuré le serveur SSH comme vous le souhaitez, SSH en entrant

ssh user@remotehostip -p XXX

ou en utilisant le client SSH/SFTP que vous préférez.

Si l'une de ces sections nécessite des instructions plus détaillées, commentez et je les ajouterai.

Si quelqu'un d'autre ne parvient pas à suivre, voici un forum de discussion comportant des étapes supplémentaires/plus détaillées: http://chat.stackexchange.com/rooms/37251/discussion-between-homunculus-reticulli-and-zacharee1

14
TheWanderer

En plus de la réponse de Zacharee1, vous devez installer Fail2ban ou DenyHosts (obtenez le fichier .deb auprès du dépôt Precise). Vous ne devez pas vous authentifier avec des clés si vous voyagez. Utilisez également un mot de passe "sécurisé". Peut-être pouvez-vous configurer un compte utilisateur dédié avec un accès réduit pour les moments où vous n'avez pas besoin d'être administrateur.

Je ne toucherais pas les paramètres réseau sur le serveur, l'adresse IP statique peut être attribuée à partir du routeur. L'adresse IP du routeur doit être l'adresse "passerelle" attribuée dans DHCP. Dans les cas où ce n'est pas (!), L'adresse par défaut doit être écrite quelque part en dessous. Si vous avez changé cela, vous devriez avoir laissé la dernière valeur seule. Donc, si vous avez un réseau domestique de classe C, l’adresse sera a.b.c.x, où a.b.c correspond à toutes vos autres adresses IP et x est la valeur de fin de l’autocollant de votre routeur. Le FAI devrait avoir des pages d'aide pour cela dans tous les cas.

Lorsque vous utilisez un port non standard, évitez "22" comme dernier chiffre (8122, par exemple). Cela laisse des indices.

NB vous pouvez accéder aux applications basées sur X sur SSH sans VNC, un autre sujet entièrement.

1
mckenzm