# [HowTo] Restriction d'accès ssh pour certains users

## sireyessire

Imaginons la situation suivante:

2 utilisateurs d'un réseau privé connecté par routeur/NAT sur internet.

Il existe un serveur ssh Serveur_ssh dont le service ssh est autorisé sur l'extérieur. Alors, ce port 22 (ssh par défaut) est forwardé vers Serveur_ssh.

Vous avez 2 utilisateurs: linux (qui a un mot de passe conforme aux règles de sécurité usuelle) et win (dont le mot de passe est d'une affligeante simplicité).

Donc, vous savez que le mot de passe de votre utilisateur win est très médiocre, ne résisterait pas à une attaque brutale et que ce dernier n'a pas besoin de se connecter de l'extérieur, sauf de banquise.tuxmobil.ice . Evidement, vous pouvez imposé le changement de mot de passe vers quelque chose de plus sûr, faites le mais ce n'est pas toujours possible (et 2 solutions valent mieux qu'une).

Une solution consiste à paramétrer votre serveur ssh de manière à accepter votre utilisateur linux de n'importe où, et votre utilisateur win sera restreint au réseau local et à cette adresse.

pour cela direction le fichier de configuration /etc/ssh/sshd_config

et là on rajoute la ligne:

```
AllowUsers linux win@192.168.0.* win@banquise.tuxmobil.ice
```

les entrées sont séparées par des espaces

Il suffit d'ajouter le nom (attention le nom pas de UID) des utilisateurs qui auront accès au service ssh. Si ce nom prend la forme NOM@IP/DOMAIN alors le NOM et l'IP/DOMAIN seront vérifiés séparément. Tous les autres utilisateurs seront refoulés, ainsi que toute tentative de win depuis une autre adresse.

de même, vous pouvez utilisez des restrictions de groupe...

vous trouverez plus d'informations avec man 5 sshd_config.

Mais ce petit truc va me permettre de dormir tranquille maintenant  :Laughing: 

N'hésitez pas à faire des commentaires

Ce howto est distribué sous la license FDL. 

----------

## scout

Cool, je ne connaissait pas, merci !  :Mr. Green: 

[EDIT] *sireyessire wrote:*   

> Ce howto est distribué sous la license FDL. 

 

bon bah alors:

Cette réponse est distribué sous la license FDL. 

----------

## sireyessire

 *scout wrote:*   

> 
> 
> Cette réponse est distribué sous la license GDL. 

 

LOL  :Laughing:   :Laughing:   :Laughing:   :Laughing:   :Laughing:   :Mr. Green: 

----------

## GNUTortue

<HS>

GDL c'est quoi comme licence ? Connais FDL mais GDL jamais vu...

Tiens j'aimerai bien d'ailleur mettre:

 *Quote:*   

> Copyright (©) 2004 Andrea Blankenstijn
> 
> Vous pouvez copier, redistribuer et/ou modifier ce document selon les termes de la Licence de Documentation Libre GNU, Version 1.2 ou toute autre version ultérieure publiée par la Free Software Foundation ; avec aucune Section Invariante. Une copie de la licence GNU Free Documentation Licence est incluse.

 

En signature mais malheureusement c'est trop long...

<HS>

----------

## sireyessire

 *GNUTortue wrote:*   

> 
> 
> GDL c'est quoi comme licence ? Connais FDL mais GDL jamais vu...
> 
> 

 

GDL c'est un typo mais c'est corrigé now, il fallait lire FDL bien entendu

----------

## Beber

Sympa

mais il y a une facon plus simple et qui permet de moi faire rever les personnes non authorisé : Authentifacation par Clé RSA

Dans le /etc/ssh/sshd_config :

```
#PubkeyAuthentication yes

AuthorizedKeysFile      .ssh/authorized_keys

RSAAuthentication yes
```

ensuite sur le client génére une clé : 

```
ssh-keygen -t rsa
```

la passphrase n'est pas nécessaire

puis tu copie la clé publique ~/.ssh/id_rsa.pub sur le server en temps que ~/.ssh/authorized_key

donc je conseille vivement l'utilisation de cat >> ~/.ssh/authorized_key

et voila l'affaire est dans le sac

seul les users aillant la clé RSA peuvent se connecté sur le server et cela sans mot de passe

c'est pas beau ?

----------

## sireyessire

 *Beber wrote:*   

> Sympa
> 
> mais il y a une facon plus simple et qui permet de moi faire rever les personnes non authorisé : Authentifacation par Clé RSA
> 
> Dans le /etc/ssh/sshd_config :
> ...

 

si mais tu as pas toujours ta clé rsa avec toi   :Laughing: 

alors que là c'est juste avec un user+password. Mais c'est sur que c'est encore plus sécu mais c'est moins facile à mettre en place à grande échelle.

----------

## Antares

Ce Howto a été retranscris sur fr.gentoo-wiki.org   :Very Happy: 

----------

## Starch

 *Beber wrote:*   

> mais il y a une facon plus simple et qui permet de moi faire rever les personnes non authorisé : Authentifacation par Clé RSA

 

Et comme toujours la faille d'un truc comme ça c'est la flemme.

- Soit tu fais toutes les clés publiques et privées de tes users, ce qui est un rien terroriste, un peu abusif, et qui fout une flemme pas possible (genre comment tu leur envoies leur clé privée, faut qu'ils commencent par t'envoyer une clé publique pour crypter le mail dans lequel il y'a la clé, le mail suivant dans lequell il y aura le mot de passe).

- Soit tu les laisses les faire et ces cons là pourraient ne pas mettre de passphrase. « la passphrase n'est pas nécessaire » c'est peut-être la pire chose de tout. C'est un peu comme laisser sa voiture ouverte, les clés sur le contact, le moteur allumé dans un quartier mal famé toute une nuit et espérer la retrouver le lendemain intacte.¹

J'ai fini par ne plus accepter que moi sur ma machine, ça reste encore la meilleure solution.

[1] Imagine que tu veux te connecter du boulot. L'administrateur de ta machine peut amplement te pomper ta clé privée. Si elle n'a pas de passphrase c'est fini, pof. Si elle en a une, t'as peut-être une journée pour la virer des authorized keys...

----------

## voltairien

 *Starch wrote:*   

> 
> 
> - Soit tu les laisses les faire et ces cons là pourraient ne pas mettre de passphrase. 

 

On travaille ensemble ? ...  :Very Happy: 

----------

## LostControl

 *Starch wrote:*   

> - Soit tu les laisses les faire et ces cons là pourraient ne pas mettre de passphrase. « la passphrase n'est pas nécessaire » c'est peut-être la pire chose de tout. C'est un peu comme laisser sa voiture ouverte, les clés sur le contact, le moteur allumé dans un quartier mal famé toute une nuit et espérer la retrouver le lendemain intacte.¹
> 
> J'ai fini par ne plus accepter que moi sur ma machine, ça reste encore la meilleure solution.
> 
> [1] Imagine que tu veux te connecter du boulot. L'administrateur de ta machine peut amplement te pomper ta clé privée. Si elle n'a pas de passphrase c'est fini, pof. Si elle en a une, t'as peut-être une journée pour la virer des authorized keys...

 

Entièrement d'accord avec toi  :Very Happy:  Cependant, le fait de ne pas mettre de passphrase est justement ce qui rend la chose intéressante. Le mieux est, à mon avis, d'avoir ses clés sur un support externe, une clé USB par exemple. Ca permet de plus ou moins toujours se trainer avec et aussi de limiter le risque de se faire pomper ses clés privées.

A noter qu'il existe aussi des théories sur la longueur de la passphrase (bien entendu la longueur ne fait pas tout). Inutile de crypter sa clé privée 1024 bits avec une passphrase de 4 caractères. Une passpharse pour une clé de 2048 bits devrait être plus longue que pour 1024 bits. Cf théorie sur l'entropie si mes souvenirs sont bons  :Confused:  Je vais essayé de retrouver des sources  :Wink: 

----------

## Starch

 *LostControl wrote:*   

> 
> 
> Entièrement d'accord avec toi  Cependant, le fait de ne pas mettre de passphrase est justement ce qui rend la chose intéressante. Le mieux est, à mon avis, d'avoir ses clés sur un support externe, une clé USB par exemple. Ca permet de plus ou moins toujours se trainer avec et aussi de limiter le risque de se faire pomper ses clés privées.
> 
> 

 

moueps... Un clé usb formatée en ext2/3 et cryptée alors  :Smile: 

Disons que l'avantage du password (la tip de sireyessire est aussi valable avec une authentification par clé si je ne m'abuse), est que tu peux forcer ton user à le changer régulièrement. Un couple de clés c'est plus dur.

EDIT: perso, je ne travaille qu'avec une auth par clé, mais je vois le problème du point de vue d'un mec qui voudrait autoriser l'accès à plusieurs utilisateurs, pour rester un peu dans le cadre du post de base :p

Le désavantage de penser aux problèmes de sécurité, c'est que tu n'en finis jamais :/

 *LostControl wrote:*   

> 
> 
> A noter qu'il existe aussi des théories sur la longueur de la passphrase (bien entendu la longueur ne fait pas tout). Inutile de crypter sa clé privée 1024 bits avec une passphrase de 4 caractères. Une passpharse pour une clé de 2048 bits devrait être plus longue que pour 1024 bits. Cf théorie sur l'entropie si mes souvenirs sont bons  Je vais essayé de retrouver des sources 

 

Intéressant... Je ne savais pas ça.

----------

