SFTP는 기본적으로 로그를 남지 않습니다, 때문에 파일의 변경/삭제가 어떻게 된 것인 찾기가 곤란할 수 있습니다.
이번에 소개해 드릴 openssh 및 syslog의 간단한 설정으로 SFTP 작업 로그 남기는 방법에 대해 소개 드립니다.
1. /etc/ssh/sshd_config 의 편집
아래의 라인을 수정이나 추가해 줍니다.
보통 ‘Subsystem’이 주석 처리되어 있을 것이니 주석을 해제하고 아래와 같이 수정/추가해 주시면 됩니다.
추가할 내용 : Subsystem sftp /usr/libexec/openssh/sftp-server -f local2 -l INFO
명령: # echo “Subsystem sftp /usr/libexec/openssh/sftp-server -f local2 -l INFO” >> /etc/ssh/sshd_config
# tail /etc/ssh/sshd_config
sftp-server에 대한 자세한 설정 사항은 “man sftp-server” 로 옵션 사항을 참고하세요.
2. syslog.conf 나 rsyslog.con 파일 수정
저는 경우 rsyslog를 사용하여 /etc/rsyslog.conf 에 내용을 추가 했습니다.
추가 내용 : local2.* /var/log/sftp.log
명령: # echo “local2.* /var/log/sftp.log” >> /etc/rsyslog.conf
# tail /etc/rsyslog.conf
3. 로그 파일 생성 : sftp.log
sftp.log 파일은 syslog나 rsyslog 서비스를 재시작 해주면 자동으로 생성이 된다, 만약 생성이 되지 않았을 경우 다음 명령으로 생성해 줍니다.
명령: # touch /var/log/sftp.log
4. rsyslog, sshd,서비스 재시작
명령 : # /etc/init.d/rsyslog restart 또는 /etc/init.d/syslog restart
# /etc/init.d/sshd restart
5. 로그 남김 확인
sftp 테스트 접속 후 로그를 보자
명령 : # tail -f /var/log/sftp.log
6. 로그로테이트 추가
로그가 기록되는 것이 확인되었다면, 마지막으로 로그로테이트에 sftp.log를 추가하여, 일정 용량 이상일 경우 로그를 백업하도록 하자.
/etc/logrotate.d/syslog 에 “/var/log/sftp.log” 를 추가하자.