답변:
OpenSSH 버전 4.4p1 이상 (CentOS 5가 포함 된 최신 버전 포함)에는 SFTP 로깅 기능이 내장되어 있으므로 구성하기 만하면됩니다.
이것을 sshd_config (centos, / etc / ssh / sshd_config 파일)에서 찾으십시오 .
Subsystem sftp /usr/libexec/openssh/sftp-server
그것을 다음과 같이 변경하십시오 :
Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO
INFO는 기본적으로보고있는 것보다 세부적인 수준에 불과합니다. 파일 전송, 권한 변경 등에 대한 자세한 정보를 제공합니다. 추가 정보가 필요한 경우 그에 따라 로그 수준을 조정할 수 있습니다. 다양한 레벨 (세부 순서)은 다음과 같습니다.
QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3
VERBOSE 이상의 것은 아마도 당신이 찾고있는 것보다 더 많은 정보 일 것입니다. 그러나 그것은 유용 할 것입니다.
마지막으로 SSH 서비스를 다시 시작하여 변경 사항 (centos)을 업데이트하십시오.
systemctl restart sshd
/var/log/auth.log
. -f USER
해당 Subsystem
구성 줄에 추가 하여 로 보내십시오 /var/log/syslog
.
sftp-server에 대한 로깅과 동일한 스위치도 internal-sftp에서도 작동합니다. 다음은 / etc / ssh / sshd_config의 예입니다.
Subsystem sftp internal-sftp -f AUTH -l INFO
INFO 레벨 로깅이 활성화되면 / var / log / messages (적어도 Red Hat 기반 Distros) 아래에 메시지가 표시됩니다.
May 27 05:58:16 test-server sshd[20044]: User child is on pid 20049
May 27 05:58:16 test-server sshd[20049]: subsystem request for sftp by user test-user
May 27 05:58:16 test-server internal-sftp[20050]: session opened for local user test-user from [192.168.1.1]
May 27 05:58:16 test-server internal-sftp[20050]: received client version 3
May 27 05:58:16 test-server internal-sftp[20050]: realpath "."
May 27 05:58:21 test-server internal-sftp[20050]: opendir "/home/test-user/"
May 27 05:58:21 test-server internal-sftp[20050]: closedir "/home/test-user/"
May 27 05:58:21 test-server internal-sftp[20050]: lstat name "/home/test-user/upload"
May 27 05:58:21 test-server internal-sftp[20050]: realpath "/home/test-user/upload/"
May 27 05:58:21 test-server internal-sftp[20050]: stat name "/home/test-user/upload"
May 27 05:58:24 test-server internal-sftp[20050]: open "/home/test-user/upload/test-file.pdf" flags WRITE,CREATE,TRUNCATE mode 0664
May 27 05:58:25 test-server internal-sftp[20050]: close "/home/test-user/upload/test-file.pdf" bytes read 0 written 1282941
/dev/log
chroot 영역에 필요한 것 같습니다 . 비슷해 sudo mkdir /chrooted/area/dev
, sudo touch /chrooted/area/dev/log
, sudo chmod 511 /chrooted/area/dev
, sudo chattr +i /chrooted/area/dev
, sudo mount --bind /dev/log /chrooted/area/dev/log
. 사용자는 여전히 / dev / log에 대한 쓰기 액세스 권한을 갖지만 소켓이므로 액세스 권한이 모두있는 경우 많은 피해를 줄 수 없습니다 sftp
.
위의 주석을 지우려면 :
jail (chroot 환경)을 사용하여 sftp를 구성한 경우 추가 구성없이 로그 할 수 없습니다. chroot 환경에서 로그를 쓸 수 없으므로 마운트 바인드 또는 소켓을 작성해야합니다. 소켓은 syslog-ng 및 rsyslog (그리고 더 많은 것)가 제공하는 기능이므로 소켓을 사용하는 것이 좋습니다.
syslog-ng를 사용하는 사람들은 https://wiki.archlinux.org/index.php/SFTP_chroot#Logging을 살펴보십시오 . rsyslog를 사용하는 사람들에게는 https://wiki.kairaven.de/open/os/linux/sftpssh 가 당신의 친구입니다.
희망이 도움이됩니다.