3 votes

Est-il possible de forcer SFTP plutôt que d'autoriser le repli SCP ?

J'ai un serveur Red Hat 5.4 avec openssh OpenSSH_4.3p2 et j'ai essayé de configurer les journaux scp/sftp dans mon serveur, mais je rencontre quelques problèmes.

J'ai suivi les instructions dans ce autre poste . Cela fonctionne très bien si les utilisateurs choisissent de transférer des fichiers en utilisant pscp ou un client SFTP tel que cyberduck, filezilla, winscp, etc. Dans ce cas, je suis en mesure de connaître l'arborescence des répertoires qui a été parcourue.

Cependant, si les utilisateurs choisissent de faire rsync (avec scp comme protocole) ou s'ils appellent la commande scp explicitement, la seule chose qui est enregistrée est l'événement de connexion/déconnexion. L'arbre réellement parcouru pour transférer les fichiers n'apparaît pas dans le journal.

Existe-t-il un moyen de désactiver scp tout en autorisant sftp ? Ou existe-t-il un moyen de forcer les commandes scp à se comporter comme sftp ?

Peut-être que ce problème n'existe pas dans les ports openssh plus récents. Cependant, étant donné que Red Hat ne publiera pas de nouvelles mises à jour pour ma version 5.4 du système d'exploitation (et que nous ne voulons pas mettre le serveur à niveau), je suis coincé avec ce que j'ai.

Des suggestions ?

6voto

JeffSahol Points 541

Je ne suis pas sûr de l'enregistrement de SCP. . J'ai jeté un coup d'œil à ce sujet. Tous scp est d'appeler scp à l'autre bout dans un mode légèrement différent. sshd devrait être capable d'enregistrer ce qu'il exécute. De le code on dirait que sshd besoins LogLevel=DEBUG pour écrire l'exec mais cela ne me donne pas de résultat en DEBUG ou à un niveau supérieur (6.1p1). Malheureusement, une fois que sshd a exécuté quelque chose, le binaire en cours d'exécution peut faire ce qu'il veut en dessous, donc il serait utile que le binaire implémente également la journalisation. Il n'y a pas de véritable journalisation sur scp donc cela nécessiterait une sorte de patch.

Cela m'amène immédiatement à penser à écrire un wrapper pour scp pour obtenir au moins quelques informations.

mv /usr/bin/scp /usr/bin/scp.ori; touch /usr/bin/scp; chmod 755 /usr/bin/scp;

Ensuite, mettez ce qui suit /usr/bin/scp

#!/bin/sh

logger -i -p auth.info "scp ran with [$*]"
/usr/bin/scp.ori "$@"

Le script serait effacé par les versions et c'est un peu douteux. Vous ne voyez vraiment qu'un côté de la commande scp qui peut être un peu brève (par exemple scp -r user@host:/home/user/ ./ es -r -f /home/matt/ sur l'hôte)

Il faut aussi noter que si les gens ont un accès Shell, ils peuvent copier ce qu'ils veulent sans utiliser scp ou sftp.

< end edit >

Il est possible de forcer un Subsytem sur un login. Ce qui suit est destiné aux membres du groupe sftponly que je veux seulement être en mesure de sftp à un emplacement chroot spécifique de sorte que leurs utilisateurs ont un Shell de /usr/sbin/nologin . Je ne pense pas que vous aurez besoin du plus que ForceCommand dans la configuration de sshd.

Subsystem       sftp    internal-sftp
Match group sftponly
         ChrootDirectory /pub/user/%u
         X11Forwarding no
         AllowTcpForwarding no
         ForceCommand internal-sftp
         PasswordAuthentication yes

Avec un peu de chance, vous pouvez ajouter votre logging et vous êtes parti.

0 votes

Cela signifie que les utilisateurs du groupe sftponly ne seront pas autorisés à se connecter au système, n'est-ce pas ? Dans mon cas, ils doivent le faire, donc cela ne résout pas le problème pour moi. Je veux juste m'assurer que je peux auditer les fichiers qu'ils ramènent chez eux.

0 votes

@mmgm Il est peut-être possible d'utiliser deux identifiants par utilisateur ou deux instances de sshd afin que les utilisateurs changent d'identifiant ou de port selon qu'ils veulent se connecter ou transférer des fichiers. Avec des utilisateurs non coopératifs, cela nécessiterait la possibilité d'empêcher le transfert de fichiers pour les connexions normales.

0 votes

@mmgm Une fois que vous autorisez un accès terminal (ssh) au serveur, l'utilisateur peut prendre ce qu'il veut.

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