7 votos

¿Cómo configuro el registro de acceso a archivos SFTP para OpenSSH?

Tengo una configuración SFTP usando el subsistema sftp incorporado de OpenSSH con usuarios chroot.

En los viejos tiempos, cuando usaba FTP, podía ver en los registros a qué archivos accedían los usuarios.

¿Cómo puedo conseguir lo mismo utilizando OpenSSH/SFTP?

Partes relevantes de mi /etc/ssh/sshd_config :

Subsystem sftp internal-sftp
Match group sftponly
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

7voto

mqchen Puntos 3621

Por defecto sshd a los registros del sistema, con el nivel de registro INFO y la facilidad syslog AUTH. Así que el lugar para buscar los datos de registro de sshd está en

/var/log/auth.log

Estos valores predeterminados se pueden anular mediante las directivas SyslogFacility y LogLevel. A continuación se muestra una entrada típica de inicio del servidor en el registro de autorización.

En la mayoría de los casos el nivel de registro por defecto está bien.

Lo siguiente debería darle sólo líneas de registro relacionadas con ssh

grep 'sshd' /var/log/auth.log

Para estar seguro, obtenga los últimos cientos de líneas y luego busque (porque si el archivo de registro es demasiado grande, grep en todo el archivo consumiría más recursos del sistema, sin mencionar que tardará más en ejecutarse)

tail -500 /var/log/auth.log | grep 'sshd'

EDITAR:

Desde man sshd_config

 LogLevel
         Gives the verbosity level that is used when logging messages from
         sshd(8).  The possible values are: QUIET, FATAL, ERROR, INFO,
         VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3.  The default is INFO.
         DEBUG and DEBUG1 are equivalent.  DEBUG2 and DEBUG3 each specify
         higher levels of debugging output.  Logging with a DEBUG level
         violates the privacy of users and is not recommended.

por lo que puede cambiar este parámetro en sshd_config . Pero parece que no rastrea los archivos.

Sin embargo, puedes investigar un poco:

1) Para encontrar todos los archivos que NO son propiedad de su usuario conectado en su carpeta de inicio, escriba:

find ~ -type f ! -user $USER

1.1) Para encontrar todos los archivos que no pertenecen a ningún usuario legítimo (no deberían existir), escriba

find ~ -type f -nouser

2) Como los archivos del sistema tienen tres marcas de tiempo llamadas mtime (tiempo de modificación del archivo), ctime (tiempo de cambio de inodo y permisos), y atime (tiempo de acceso a los archivos), estos pueden ser consultados para saber cómo se han modificado los archivos. A menudo se discute cuál de ellos es el mejor para usar, pero probablemente la mejor manera de averiguar cuándo se accedió a los archivos o se modificaron es usar el find comando para buscar atime y mtime con el que se especifica días atrás, y el adicional find opciones amin y mmin , con el que se especifica hace minutos.

Para cada uno de estos comandos, se utilizan los mismos interruptores de comando: por ejemplo, -atime 1 coincidirá con los archivos a los que se ha accedido exactamente Hace 1 día; para especificar más o menos de , añadir un + o un - respectivamente. Los ejemplos siguientes pueden aclarar todo esto (especifique -type d para los directorios):

find ~ -type f -atime 1 
find ~ -type f -amin -23
find ~ -type f -mtime 2    
find ~ -type f -mmin -45

Para combinar mis planteamientos hasta ahora, podrías introducir los siguientes comandos desde tu carpeta de inicio; el primero busca los archivos a los que ha accedido una persona que NO es tu usuario, y el segundo busca cualquier archivo modificado por personas que no sean tu usuario hace menos de dos días.

find ~ -type f -atime -2 ! -user $USER
find ~ -type f -mtime -2 ! -user $USER

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X