GNU/Linux >> Tutoriels Linux >  >> Linux

Empêcher SSH d'annoncer son numéro de version

Solution 1 :

Bien qu'il soit extrêmement difficile de masquer le numéro de version de votre démon SSH, vous pouvez facilement masquer la version Linux (Debian-3ubuntu4)

Ajoutez la ligne suivante à /etc/ssh/sshd_config

DebianBanner no

Et redémarrez votre démon SSH :/etc/init.d/ssh restart ou service ssh restart

Solution 2 :

Les cacher ne sécurisera pas votre serveur. Il existe de nombreuses autres façons d'identifier ce que votre système exécute. Pour SSH en particulier, l'annonce de la version fait partie du protocole et est obligatoire.

http://www.snailbook.com/faq/version-string.auto.html

Solution 3 :

Presque universellement, les bannières d'identification font partie du code compilé et n'ont pas d'options de configuration pour les modifier ou les supprimer. Vous devrez recompiler ces logiciels.

Solution 4 :

Je suis presque sûr que vous ne pouvez pas modifier l'annonce de la version.

Les meilleures façons de sécuriser sshd sont :

  1. Modifiez le numéro de port par défaut.
  2. Interdire les connexions root.
  3. Forcer le protocole 2 (en supposant que ce n'est pas fait par défaut).
  4. Mettez en liste blanche les serveurs autorisés à entrer en SSH.

Les trois premiers peuvent être effectués en modifiant /etc/sshd_config

Le quatrième dépend du logiciel pare-feu que vous utilisez.

Solution 5 :

Comme dit plus haut, changer un numéro de version est

  1. Difficile à faire
  2. La sécurité dans l'obscurité
  3. Pas flexible

Ce que je suggère, c'est d'implémenter Port Knocking. C'est une technique assez simple pour cacher tout ce qui tourne sur votre serveur.

Voici une bonne implémentation :http://www.zeroflux.org/projects/knock

Voici comment je l'ai implémenté sur mes serveurs (autres numéros) pour n'ouvrir SSH qu'aux personnes qui connaissent 'le coup secret' :

[openSSH]
    sequence = 300,4000,32
    seq_timeout = 5
    command = /opencloseport.sh %IP% 2305
    tcpflags = syn

Cela donnera une fenêtre de 5 secondes dans laquelle les 3 paquets SYN doivent être reçus dans le bon ordre. Choisissez des ports éloignés les uns des autres et non séquentiels. De cette façon, un scanner de ports ne peut pas ouvrir le port par accident. Ces ports n'ont pas besoin d'être ouverts par iptables.

Le script que j'appelle est celui-ci. Il ouvre un port particulier pendant 5 secondes pour l'IP envoyant les paquets SYN.

#!/bin/bash
/sbin/iptables -I INPUT -s $1 -p tcp --dport $2  -j ACCEPT
sleep 5
/sbin/iptables -D INPUT -s $1 -p tcp --dport $2  -j ACCEPT

Il peut être très pénible d'envoyer les paquets SYN, j'utilise donc le script pour me connecter au SSH de mes serveurs :

#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh [email protected]$1 -p $6

(C'est assez évident ce qui se passe ici...)

Une fois la connexion établie, le port peut être fermé. Conseil :utilisez l'authentification par clé. Sinon, vous devez être très rapide pour taper votre mot de passe.


Linux
  1. comment empêcher les nouvelles fenêtres de voler le focus dans gnome

  2. Comment empêcher un processus d'écrire des fichiers

  3. SSH - Comment inclure la commande -t dans le fichier ~/.ssh/config

  4. Quelle version de RHEL est-ce que j'utilise ?

  5. Comment empêcher un utilisateur de se connecter, mais autoriser l'utilisateur su sous Linux ?

Comment empêcher SSH d'expirer

Ubuntu - Comment empêcher Firefox de se mettre à jour vers la version 57 sur Ubuntu 16.04 ?

Comment empêcher les connexions SSH de se déconnecter en raison de l'inactivité lors de l'utilisation de MobaXterm

Comment empêcher SSH de se déconnecter s'il est inactif depuis un certain temps

Comment configurer D-Bus et SSH X-Forwarding pour empêcher SSH de se bloquer à la sortie ?

Comment installer 2 versions différentes de java sur la même machine depuis EPEL