안녕하세요, stackexchange 여러분,
특정 로그 파일의 위치를 찾는 데 약간의 어려움이 있는데 여기 누군가가 나를 도와줄 수 있기를 바랍니다.
내가 하고 싶은 일은 SFTP 서버에 있는 특정 사용자의 로그인 날짜/시간을 나열하는 것입니다. 지금까지 온라인 조사를 통해 알아낸
cat /var/log/auth.log | grep "username"
일부 로그인이 나열되어 있지만 내가 찾고 있는 것과는 다릅니다.
나도 시도했다
last -n 1000 | grep "username"
그러나 불행하게도 이것은 sftp가 아닌 서버에 대한 ssh 액세스에서만 작동하는 것 같습니다(내가 아는 한)
SFTP 사용자에 대한 특정 사용자의 로그인을 나열하는 다른 방법을 생각할 수 있는 사람이 있습니까?
미리 감사드립니다, 다크님. 도움이 된다면 사용자는 자신의 홈 디렉토리로 루트가 지정될 것입니다.
편집하다:
처음에는 눈치 채지 못한 아카이브 파일이 몇 개 있었는데, 이로 인해 로그인 시간이 최대 한 달 정도 주어져서 더 좋습니다. 새로운 질문: CentO는 기본적으로 보관된 인증 로그를 얼마나 오래 보관합니까? 한 달이 넘은 경우 오래된 아카이브는 어디로 이동되나요? logrotate.conf를 확인했는데 이에 대한 언급이 없으므로 /var/log/auth.log
기본값을 사용한다고 가정합니다.
편집하다: 편집하다 내가 찾고 있는 답을 찾았을 수도 있지만, 다른 사람에게 도움이 될 수 있도록 이 글을 게시합니다.
logrotate 스크립트는 /etc/logrotate.d/rsyslog
기본적으로 이러한 로그는 매주 교체되며 최대 4주간의 로그를 저장합니다.
아직 답변을 드릴 만큼 평판은 없지만, 관리자가 이 글을 본다면 편하게 닫아주세요.
잘 부탁드려요~다크니스
답변1
CentOS 6에는 /var/log/secure
sftp 하위 서버를 시작하는 sshd의 출력이 포함되어 있습니다. 기본적으로 다음과 유사한 메시지가 표시되지만 그 이상은 표시되지 않습니다.
Feb 25 12:34:56 server sshd[1234]: Accepted password for user from 1.2.3.4 port 12345 ssh2
Feb 25 12:34:56 server sshd[1234]: pam_unix(sshd:session): session opened for user user by (uid=0)
Feb 25 12:34:57 server sshd[1234]: subsystem request for sftp
SFTP 작업(예: 전송된 파일)을 더 명확하게 하려면 다음 줄을 수정하세요 /etc/ssh/sshd_config
.
Subsystem sftp /usr/libexec/openssh/sftp-server
~이 되다
Subsystem sftp /usr/libexec/openssh/sftp-server -f AUTHPRIV -l INFO
그런 다음 SSH를 다시 시작하십시오.
# service sshd restart
그러면 기본 로그와 다음과 같은 로그가 생성됩니다.
Feb 25 12:34:56 server sftp-server[1234]: session opened for local user user from 1.2.3.4
Feb 25 12:34:56 server sftp-server[1234]: opendir "/home/user/"
Feb 25 12:34:56 server sftp-server[1234]: closedir "/home/user/"
Feb 25 12:34:56 server sftp-server[1234]: open "/home/user/test" flags READ mode 0666
Feb 25 12:34:56 server sftp-server[1234]: close "/home/user/test" bytes read 1234 written 0
Feb 25 12:34:56 server sftp-server[1234]: session closed for local user user from 1.2.3.4