■概要
Amazon Linux2にて行った設定です。
ご参考になれば!
■手順
1.syslogに出力された内容をファイルへ出力するようにsyslogのコンフィグに追記する
# vi /etc/rsyslog.conf
# This rule to save the log output of sftp
local5.* /var/log/sftp.log
2.出力先ファイルを予め作成しておく
touch /var/log/sftp.log
3.rsyslog.confを反映させるためrsyslogのデーモンを再起動する
systemctl restart rsyslog
4.opensshの設定ファイルを変更してsftpの操作ログをsyslogに出力するように編集する
# vi /etc/ssh/sshd_config
↓
Subsystem sftp /usr/libexec/openssh/sftp-server
という行があるので、 -f LOCAL5 -l VERBOSE、を後ろに追記して、
Subsystem sftp /usr/libexec/openssh/sftp-server -f LOCAL5 -l VERBOSE
となるようにする。
5.設定反映のためsshのデーモンを再起動する
ミスるとSSH出来なくなるので、下記の手順で構文チェックもしましょう。
まずsshdのフルパスをチェックする
# which sshd
/usr/sbin/sshd
以下実行して何も出なければOK
sshd_configファイルの構文チェックです。
# /usr/sbin/sshd -t
デーモン再起動
# systemctl restart sshd
6.WinSCPでテスト接続、ログが出るか確認
接続しただけで以下のようなログが出ます。
[root@ip-172-31-3-xx log]# tail sftp.log
Jul 26 12:07:13 ip-172-31-3-xx sftp-server[32335]: session opened for local user ec2-user from [116.58.xxx.xxx]
Jul 26 12:07:13 ip-172-31-3-xx sftp-server[32335]: received client version 6
Jul 26 12:07:13 ip-172-31-3-xx sftp-server[32335]: realpath "."
Jul 26 12:07:13 ip-172-31-3-xx sftp-server[32335]: opendir "/home/ec2-user"
Jul 26 12:07:15 ip-172-31-3-xx sftp-server[32335]: closedir "/home/ec2-user"
7.任意でログファイルのローテート設定を行う
かなり膨大になるので何かしら設定した方がよいでしょう。
# vi /etc/logrotate.d/syslog
/var/log/sftp.log
以上です!