Config SSH par utilisateur

Bonjour,

J’ai un serveur Debian sur lequel je veux autoriser des users à se connecter en SSH uniquement pour permettre un routage d’IP:PORT. Concrètement, c’est par exemple pour consulter un intranet de l’extérieur avec un routage de type PLINK.EXE (ou SSH) -L 80:adresse_interne_intranet:80 user@IP_publique_entreprise

Je voudrais restreindre le routage à cette adresse unique, que personne ne puisse bidouiller et router d’autres adresses que celle-ci… MAIS tout en gardant la possibilité pour moi de le faire en me connectant avec mon compte (et/ou avec root).

Ce qui en vient donc à ma question : est-il possible de faire des profils SSH par utilisateur pour restreindre ces routages. Il y a bien quelques options dans le sshd_config mais elles semblent générales ce qui ne m’arrange pas.
Je ne voudrais pas non plus d’authentification par clef publique, et mes users n’ont pas d’IP fixes entrantes identifiables.

Des idées ?

Merci d’avance…

si j’ai bien compris c’est hyper simple n’importe quel routeur propose cela

tu veut que quand un utilisateur “attaque” ton adresse_ip_publique:port il soit redirigé vers un pc_en_interne_particulier_en_interne:port ?

sans qu’il puisse allez voir un autre pc en interne ?

bonjour,

pas beaucoup d’informations sur ta configuration réseau… un serveur debian mais derrière quoi ?!?
un firewall entre le routeur et serv debian ?

Je ne comprends pas tout en fait tu veux monter une connexion SSH te permettant de faire du HTTP ensuite ? (SSH = port 22 / HTTP : port 80)

Hum… bon j’essaye de détailler alors

Un site d’entreprise, une connexion adsl classique avec ip fixe + routeur Zywall : un seul port ouvert, une seule entrée possible en SSH/22 redirigée vers un serveur Debian Lenny (192.168.1.1). Jusque là c’est simple, je n’ouvre pas de http, vnc, rdp ou quoi que ce soit d’autre, c’est pas le but (et c’est pas sécure).

J’ai un serveur Intranet en 192.168.1.30 et je voudrais que quelques personnes puisse y accéder de l’extérieur… pour cela c’est relativement simple :

  • je leur crée un compte Linux
  • ils se connecte en SSH sur le serveur Linux avec un paramétrage de routage de port qui renvoie sur mon serveur intranet… SSH -L 80:192.168.1.30:80 user@ip_publique
  • il leur suffit alors chez eux de taper localhost dans leur navigateur préféré pour accéder à l’intranet.

Rien de sorcier la-dedans quand on connait un peu… sauf que je ne voudrais pas qu’ils puissent router d’autres IP:port avec leur accès et leur compte. Genre SSH -L 5900:192.168.1.x:5900 pour attaquer du VNC en interne ou autres trucs…

D’où ma question sur une gestion de profil ou de restrictions SSH par utilisateur.

Un truc qui dirait au serveur SSH : “si l’utilisateur toto se connecte, il ne peut router QUE le port 80 SUR l’ip 192.168.1.30” par exemple.

a ok
c’est beaucoup plus clair

je chercherais du coté de iptables a ta place

C’est sympa de me répondre mais iptable là c’est complètement hors-sujet…
Je rappelle que :

  • tout le monde entre avec SSH => port 22… y’a pas de distinguo possible d’utilisateurs avec iptable
  • les users ont des ip dynamique
  • iptable ne changera rien au routage une fois qu’on est connecté en SSH

le iptables peut te permettre de fermer toutes les sorties comme ça t’es sur que les gens vons pas voir ailleur

Bahh, heu, non…
1 - tu peux pas firewaller, pas à travers un tunnel SSH
2 - ou sinon tu fermes tout et c’est pas le but puisque moi (par exemple) je veux pouvoir router ce que je veux.

Mon problème n’est pas bien compris j’ai l’impression…
Entre-temps j’ai trouvé un fil similaire à ce que je cherche sur Linuxfr => linuxfr.org/forums/10/27231.html
Visiblement y’a pas d’autre moyen que d’utiliser les clefs pour limiter les routages par utilisateur dans les fichier authorized_key.

Merci qd même…

Résultat des courses, je me débrouille donc avec les clefs privées/publiques. Pas d’autre moyen apparemment, c’est un peu contraignant mais c’est ce qu’il faut faire.

  • Je ne modifie pas la config SSHD pour pouvoir, moi, me loguer quand je veux par mot de passe
  • Je ne donne pas de mot de passe à chaque utilisateur créé pour qu’il ne puissent pas se loguer par connexion “mot de passe”
  • Je leur fourni leur clef privée à mettre dans leur putty, les obligeant à se connecter par système de clef + passphrase
  • Je modifie leur clef publique sur le serveur en ajoutant les options : permitopen=“192.168.1.30:80” (un unique routage vers l’intranet) et no-pty (= aucun shell)

Et ça répond donc à tout ce que je veux faire et ça me parait sécure.

Voilà pour le retour…