1 votes

Comment restreindre le trafic sortant ssh uniquement à certaines hôtes sans iptables

Un de nos serveurs ssh agit en tant que jumphost. Les utilisateurs ne sont censés accéder qu'à certains hôtes cibles. Cela pourrait être fait avec iptables, mais pour le moment ce n'est pas la solution souhaitée.

J'ai vérifié man ssh_config pour voir si ce scénario pouvait être configuré dans ssh_config système, mais je n'ai trouvé aucun indice.

Des idées autres que iptables pour réaliser cela?

1voto

Hallgrim Points 7198

Ajoutez une route valide vers vos cibles et une route plus générique vers null. Ensuite, seules les routes définies vers vos cibles seront disponibles pour les utilisateurs. Le problème est que c'est disponible pour tous les utilisateurs

1voto

TomTomTom Points 611

Vous pourriez utiliser quelque chose comme ceci

#! /bin/sh

MSG='********************************
1 = hôte1
2 = unautrehôte
3 = hôte3

0 = sortie
********************************'

hôte=aucun

while test aucun = "$hôte"
do
  echo "$MSG"
  echo -n 'votre choix: '
  read choix
  case "$choix" in
  1) hôte=hôte1.domain.com;;
  2) hôte=unautrehôte.xy.de;;
  3) hôte=juste.ici;;
  0) sortie;;
  esac
done

ssh $hôte

en tant que shell de connexion de vos utilisateurs ssh sur le saut de serveur. Si vous l'enregistrez sous /usr/bin/ssh-choice, n'oubliez pas d'ajouter /usr/bin/ssh-choice à /etc/shells.

TomTomTom

1voto

fuzzy dice Points 31

Je ne suis pas sûr de la configuration, mais peut-être désactiver la connexion shell sur l'hôte de saut et autoriser le transfert de port uniquement vers des hôtes spécifiques pour des utilisateurs spécifiques, puis utiliser l'option -J (ProxyJump) d'openssh pourrait être une solution ici? La directive Match du sshd_config pourrait être utile ici.

1voto

fuzzy dice Points 31

En réponse à un commentaire précédent :

Si vous avez besoin d'un accès shell, alors vous avez probablement besoin d'un fichier .ssh/config immuable et vide dans les répertoires home des utilisateurs, tous les hôtes autorisés répertoriés dans /etc/ssh/ssh_config et une directive Host de type catch all qui redirige vers une commande ProxyCommand toujours en échec (qui peut également afficher un message de coaching sur stderr, afin que l'utilisateur puisse le voir).

Quelque chose du genre :

Host host1 host1.example.com

Host host2 host2.example.net

Host *
    ProxyCommand /bin/false

0voto

ptman Points 26336

Supprimez tout sauf le jumphost de la table de routage de l'hôte ou placez le pare-feu qui empêche les connexions ailleurs que sur l'hôte lui-même.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X