Comment sécuriser ssh dans une machine à la maison sur Internet

8

Je voyagerai sous peu, et j'ai une machine qui exécute un tas de tâches cron, etc.

Voici les faits saillants:

  1. La machine à connecter (vaisseau mère) exécute Ubuntu 14.0.4 LTS
  2. Le vaisseau-mère est connecté à Internet via un réseau local à la maison, donc a une adresse IP publique.
  3. L'adresse IP est attribuée dynamiquement.
  4. Je me connecterai au vaisseau mère en utilisant un ordinateur portable exécutant Ubuntu 15.10

Je préfère utiliser ssh plutôt que VNC, en raison de problèmes de bande passante - de plus, tout ce dont j'ai besoin est la ligne de commande de toute façon.

Quelle est la meilleure façon de se connecter en toute sécurité à distance à ma machine?

Homunculus Reticulli
la source
SSH est sécurisé. Quel est votre problème avec ça?
Mostafa Ahangarha
VNC est une télécommande graphique. Voulez-vous dire VPN?
TheWanderer
@techraf ah, je comprends. J'ai envoyé un vote d'approbation
TheWanderer
Il suffit de lire un bon guide, il y a une meilleure section crypto dédiée à ssh. Et désactivez la connexion par mot de passe!
Braiam
De la discussion, je vois que vous avez pensé à l'authentification avec des mots de passe au lieu de mots de passe. Vous pourriez envisager d'autoriser uniquement l'authentification par clé privée / publique.
Oliphaunt - réintègre Monica

Réponses:

14

Votre meilleur pari est probablement d'exécuter un serveur SSH sur un port autre que celui par défaut, comme 2020. Cela empêche la plupart des tentatives d'attaques par force brute sur le Web, car ces robots ont tendance à ne regarder que les ports par défaut.

Vous devrez également attribuer au serveur une adresse IP statique sur le LAN, car elle doit être accessible à tout moment. Vous pouvez définir cela dans System Settings --> Network. Pour éviter les conflits d'adresses IP, il est également conseillé d'indiquer à votre serveur DHCP (le routeur dans la plupart des cas) que cette adresse IP est prise. La méthode varie selon le modèle, mais il devrait y avoir une zone quelque part dans la configuration du routeur qui vous permet de réserver des adresses IP.

La raison de l'IP statique est que vous devez configurer la redirection de port dans la configuration de votre routeur. Cela permet d'acheminer les connexions du port vers votre IP externe 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 LAN (appelée DUC, fournie par No-IP).

Une fois que le serveur SSH est configuré comme vous le souhaitez, connectez-le à 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 a du mal à suivre, voici une salle de discussion qui contient des étapes supplémentaires / plus détaillées: http://chat.stackexchange.com/rooms/37251/discussion-between-homunculus-reticulli-and-zacharee1

Le vagabond
la source
+1 Merci @ Zacharee1 pour la réponse rapide. J'ai enregistré un domaine à mes fins, en utilisant no-ip. J'ai suivi toutes les étapes. La dernière étape est où je suis à perte: configurer le routeur pour la redirection de port. Je pourrais faire avec de l'aide dans ce domaine si possible. Merci
Homunculus Reticulli
@HomunculusReticulli Quel est votre modèle de routeur?
TheWanderer
De plus, je ne vois pas où / comment attribuer l'adresse IP statique. J'utilise Ubuntu Trusty Tahir
Homunculus Reticulli
1
Pas d'adresse IP car vous avez une adresse externe dynamique
TheWanderer
1
@BharadwajRaju ce n'est pas quelque chose que je peux expliquer dans un commentaire. Cherchez comment configurer un ordinateur Ubuntu comme routeur, et vous trouverez quelque chose
TheWanderer
1

En plus de la réponse de Zacharee1, vous devez installer Fail2ban ou DenyHosts (obtenir le .deb à partir des dépôts Precise). Vous ne devez pas vous authentifier avec des clés si vous voyagez. Utilisez également un mot de passe "sécurisé". Peut-être créez-vous 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 aux paramètres réseau du serveur, l'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 le cas (!), 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 abcx où abc correspond à toutes vos autres adresses IP et x est la valeur finale 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 chiffres finaux (8122, par exemple). Cela laisse des indices.

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

mckenzm
la source
pourriez-vous s'il vous plaît expliquer votre commentaire: "Vous ne devez pas vous authentifier avec des clés si vous voyagez.", cela va à l'encontre de tout ce que j'ai lu jusqu'à présent. Quelle est la raison derrière laquelle vous dites cela?
Homunculus Reticulli
Pourquoi ne devrait-on pas s'authentifier avec des clés en voyage ? L'authentification ne se soucie pas si vous voyagez ou non.
UniversallyUniqueID
Vous n'avez pas franchi de frontière ces derniers temps? Vous n'avez jamais perdu de téléphone? Vos clés seront partagées. Il en va de même pour les certificats. Installez-en un sur une machine de café Internet à vos risques et périls. Les clés fournissent un accès instantané sans mot de passe, le client doit être sécurisé, pas dans votre poche arrière.
mckenzm