Sur le serveur de destination, vous pourriez restreindre l'accès SSH par nom d'utilisateur dans le fichier /etc/ssh/sshd_config, mais je ne pense pas que ce soit ce que vous recherchez ici.
Sur la machine source, vous pouvez essayer d'utiliser le module "owner" d'iptables. Cela peut nécessiter un peu de travail de maintenance, mais cela devrait faire l'affaire. Il vérifie l'UID de l'utilisateur et autorise (ou rejette) la connexion.
Supposons que les UID de vos utilisateurs soient 1, 2 et 3. L'utilisateur A est autorisé à accéder par SSH à 1.1.1.1, l'utilisateur B à 2.2.2.2 et l'utilisateur C à 3.3.3.3.
iptables -A OUTPUT -m owner --owner-uid 1 -d 1.1.1.1/32 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -m owner --owner-uid 1 -p tcp --dport 22 -j DROP
iptables -A OUTPUT -m owner --owner-uid 2 -d 2.2.2.2/32 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -m owner --owner-uid 2 -p tcp --dport 22 -j DROP
iptables -A OUTPUT -m owner --owner-uid 3 -d 3.3.3.3/32 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -m owner --owner-uid 3 -p tcp --dport 22 -j DROP
pour que ce soit un peu plus "gérable", vous pourriez créer une "chaîne" par utilisateur et y définir tous les accès autorisés.
Créer les chaînes :
iptables -N USER1
iptables -N USER2
iptables -N USER2
Transférer le trafic sortant des utilisateurs vers la chaîne :
iptables -A output -m owner --owner-uid 1 -J USER1
iptables -A output -m owner --owner-uid 2 -J USER2
iptables -A output -m owner --owner-uid 3 -J USER3
Ajouter des règles à chaque utilisateur de sa chaîne :
iptables -A USER1 -d 1.1.1.1/32 -p tcp --dport 22 -m comment --comment "allow ssh to 1.1.1.1" -j ACCEPT
iptables -A USER1 -p tcp --dport 22 -j DROP
iptables -A USER1 -j ACCEPT
iptables -A USER2 -d 2.2.2.2/32 -p tcp --dport 22 -j ACCEPT
iptables -A USER2 -p tcp --dport 22 -j DROP
iptables -A USER3 -d 3.3.3.3/32 -p tcp --dport 22 -j ACCEPT
iptables -A USER3 -p tcp --dport 22 -j DROP
vérifier l'accès d'un utilisateur (chaîne d'affichage)
iptables -L USER1
Le module propriétaire fonctionne également avec les gid :
iptables -A USER3 -m owner --owner-gid 3 -p tcp --dport 22 -j DROP