Les best practices OpenSSH

Contenu

Utilisez le protocole SSH 2

La version 1 du protocole 1 est obsolète et doit être évitée à tout prix. Ouvrir le fichier sshd_config et vérifiez que la ligne suivante existe:

# Controlez les utilisateurs qui peuvent se connecter en SSH

Par défaut, tous les utilisateurs des systèmes peuvent se connecter via SSH en utilisant leur mot de passe ou une clé publique. Parfois, vous créez UNIX / Linux pour compte d'utilisateur FTP ou le but de messagerie. Toutefois, les utilisateurs peuvent se connecter au système en utilisant ssh. Ils auront un accès complet aux outils système, y compris les compilateurs et les langages de script tels que Perl, Python qui peuvent ouvrir des ports réseau et de nombreux autres choses fantaisistes.

Autoriser seulement les administrateurs, par exemple pascal. pour cela dans le fichier de configuration sshd_config:

```AllowUsers pascal```

Alternativement, vous pouvez permettre à tous les utilisateurs de se connecter via SSH, mais nie que quelques utilisateurs, avec la ligne suivante:

```DenyUsers root postfix www-data```

# Configurer la déconnection des session inactive

Utilisateur peut se connecter au serveur via ssh et vous pouvez définir un délai d'inactivité après lequel ils seront déconnectez. Dans le fichier sshd_config assurez-vous les valeurs suivantes sont configurées:

ClientAliveInterval 300 ClientAliveCountMax 0

Vous définissez un intervalle de délai d'inactivité en secondes (300 secondes = 5 minutes). Passé ce délai est passé, l'utilisateur sera automatiquement déconnectés.

# Désactiver. Rhosts

Ne pas lire utilisateur ~/.Rhosts et ~/.Shosts fichiers. Modifiez dans sshd_config les paramètres suivants:

```IgnoreRhosts yes```

SSH peut émuler le comportement de rsh, il suffit de désactiver l'accès via rsh.

# Désactiver l'authentification basé sur l'hôte

Pour l'authentification basée sur l'hôte désactiver, mettez à jour sshd_config avec l'option suivante:

```HostbasedAuthentication no```

# Désactiver la connexion root via SSH

Il n'est pas nécessaire de se connecter en tant que root. Les utilisateurs normaux peuvent utiliser su ou sudo pour avoir accès root. Cela permet aussi de tracer/log ce qui est fait avec les droit root. Pour désactiver la connexion de root via SSH, éditez sshd_config et vérifier le paramètre suivant :

```PermitRootLogin no```

# Utilisez une authentification par clef

Il est preferable de se connecter via une authentification par clef plutôt qu'avec un mot de passe.

Votre clef privée doit être protégé par mot de passe.

# Interdire les connection via mot de passe vide

Vous devez explicitement interdire la connexion à distance à partir de comptes avec des mots de passe vide, dans sshd_config :

```PermitEmptyPasswords no```

# Protection contre le brute-force

Voici la liste des outils permetant de bloquer les tentative de brute-force :

* [DenyHosts](http://www.cyberciti.biz/faq/block-ssh-attacks-with-denyhosts/)
* [Fail2ban](http://www.fail2ban.org/wiki/index.php/Main_Page)
* [sshguard-pf](http://www.sshguard.net/)
* [security/sshguard-ipfw](http://www.sshguard.net/)
* [security/sshguard-ipfilter](http://www.sshguard.net/)
* security/sshblock
* security/sshit
* BlockHosts
* Blacklist
* [Brute Force detection](http://www.rfxn.com/projects/brute-force-detection/)
* [IPQ BDB filtre](https://savannah.nongnu.org/projects/ipqbdb/)

# Derniers paramètres a vérifier

UsePrivilegeSeparation yes StrictModes yes

Verifier le reverse DNS

VerifyReverseMapping yes

Spécifie si l’authentification par mot de passe est autorisée.

PasswordAuthentication no ```


comments powered by Disqus