web-dev-qa-db-fra.com

Précautions pendant le SSH

Duplicate possible:
Comment puis-je auditer les utilisateurs et accéder aux tentatives d'accès à SSH sur mon serveur?

J'ai récemment dû donner mon mot de passe root Ubuntu 12.10 à l'un de mes amis pour qu'il puisse SSH dans mon système et m'envoyer des fichiers. Maintenant, il est mon ami et je lui fais confiance, je n’ai donc pas hésité à partager mon mot de passe. Et je l'ai changé après.

Mais je me suis rendu compte que je pouvais voir toutes les commandes exécutées par un autre utilisateur qui se connectait à distance à mon système (évidemment pas mon ami. Je veux dire en général). Dans quelle mesure peuvent-ils accéder à mes données (en particulier mes mots de passe, p. Ex. I utiliser Last Pass pour qu’ils puissent également accéder aux mots de passe de mon compte ??) Et s’ils ouvrent un navigateur après s’être connecté à mon système, ont-ils accès à tous mes mots de passe à condition que je les ai sauvegardés à l’aide de l’option "mémoriser le mot de passe" donnée par chrome

De plus, quelles précautions dois-je prendre lorsque je permets à une personne de se connecter à distance à mon système et comment puis-je suivre les différentes commandes utilisées par eux ou les modifications apportées à mon système? Existe-t-il également un moyen simple de recevoir une notification chaque fois que quelqu'un se connecte à mon système en plus de vérifier le fichier /var/log/auth.log?

5
Shagun Sodhani

Il y avait un problème similaire qui m'a frappé après avoir lu this question ici sur AskUbuntu et vérifié mon VPS, seulement pour voir un bazillion de tentatives de force brute. C'est alors que j'ai décidé d'agir.

Maintenant, selon la question à laquelle je me suis référé, si vous souhaitez voir les tentatives de connexion infructueuses sur votre machine via ssh (essayez des tentatives de force brute ou autre), essayez de taper ceci:

grep sshd.\*Failed /var/log/auth.log | less

Si la sortie comporte plusieurs lignes, c’est-à-dire de nombreuses tentatives de force brute, en particulier si elles se sont produites entre de courts intervalles, vous souhaiterez peut-être effectuer les actions suivantes:

Changer le fichier de configuration ssh

Pour ce faire, ouvrez le fichier situé dans /etc/ssh/sshd_config avec votre éditeur favori, comme ceci vim /etc/ssh/sshd_config.

1. Essayez de déplacer ssh du port 22 : localisez maintenant la ligne qui se lit comme suit:

# What ports, IPs and protocols we listen for
Port 22

et commentez le port 22, et utilisez qui vous voulez. Exemple:

# What ports, IPs and protocols we listen for
# Port 22
Port 28934

Please remember that ports below 1024 need special (root) permission. Je ne sais pas comment cela pourrait interférer, mais je dis simplement.

2. Désactiver les connexions root via ssh : étant donné que le nom d'utilisateur root est prévisible et fournit un accès complet à votre système, il est déconseillé de fournir un accès sans entrave à ce compte via SSH. Recherchez la valeur de ligne PermitRootLogin et définissez-la sur no .

PermitRootLogin no

3. Désactiver l'authentification par mot de passe : Générez et utilisez des clés SSH pour vous connecter à votre système. Sans mot de passe activé, les attaquants devront deviner (ou voler) votre clé privée SSH pour pouvoir accéder à votre serveur. Quelque chose de très très difficile. Continuez pour trouver la ligne qui lit PasswordAuthentication et réglez-la sur no

PasswordAuthentication no

! AVERTISSEMENT! Avant de le faire, veuillez consulter ce guide ici pour savoir comment configurer l'authentification par certificat.

REMARQUE: Après avoir apporté les modifications, utilisez Sudo /etc/init.d/ssh restart. Pour vous connecter à un autre port via ssh, utilisez: ssh [email protected] -p <port_number>.

Installer un pare-feu

S'il vous plaît consulter ce guide sur la façon de configurer le pare-feu extrêmement puissant et efficace, qui est intégré dans Linux, IPTables .

Scripts d'installation pour vous aider avec la sécurité

Celui que j’utilise personnellement et qui me vient rapidement à l’esprit est Fail2Ban . Fail2ban surveillera vos fichiers journaux pour les tentatives de connexion infructueuses. Lorsqu'une adresse IP a dépassé le nombre maximal de tentatives d'authentification, elle est bloquée au niveau du réseau et l'événement est consigné dans /var/log/fail2ban.log. Pour l'installer: Sudo apt-get install fail2ban

Vérifier l'historique des commandes via ssh

Il existe une commande linux, nommée history, qui vous permet de voir quelles commandes ont été entrées jusque-là. Essayez de taper history dans un terminal pour voir toutes les commandes jusque-là. Cela pourrait aider si vous étiez root .

Pour rechercher une commande particulière essayez: history | grep command-name

Pour lister toutes les commandes après ssh : fc -l ssh

Vous pouvez également éditer les commandes à l'aide de vi (je ne l'ai pas essayé, bien que je suppose que cela fonctionne aussi): fc -e vi

Vous pouvez également supprimer l'historique : history -c

REMARQUE: Si vous n'êtes pas fan de la commande history, il existe également un fichier dans votre répertoire personnel (cd ~). , appelé . bash_history (si vous utilisez bash), vous pouvez cat voir tout ce qui a été saisi dans le shell bash.

1
NlightNFotis

SSH n'est pas entièrement sécurisé dans sa configuration par défaut.


Si vous fournissez un mot de passe pour permettre à un utilisateur distant de se connecter via SSH à votre ordinateur, ces droits doivent être révoqué pour arrêter l'accès en cours.

Changer votre mot de passe ne PAS révoque ces droits.

1
david6