Socketを使って出す とか色々あるみたいだけど、
タイトル通り、簡単に実現したい方向け。
環境
CentOS6.5
Filezilla3.28(最新版)
1.sshd_config設定ファイルの変更
vim /etc/ssh/sshd_config を以下に変更↓
#Subsystem sftp /usr/libexec/openssh/sftp-server -f LOCAL5 -l VERBOSE`
Subsystem sftp internal-sftp```
Match Group sftp_group
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp -f AUTH -l INFO
#PasswordAuthentication yes
# X11Forwarding no
# AllowTcpForwarding no
# ForceCommand cvs server
2.ssh_config再起動
service sshd restart
解説:
・chroot化 →/data/sftp/クライアント名 以下みられない
・SSHログイン不可 →SFTP送受信専用ユーザ完成。セキュリティ上SSHでTeraTermとかで入れないように。
3.rsyslog.conf設定ファイルの変更
vim /etc/rsyslog.conf
↓以下を追加↓
if $syslogfacility-text == 'authpriv' and $msg contains 'flags WRITE,CREATE,TRUNCATE mode 0666' then /var/log/sftp.log
4.rsyslog.conf再起動
service rsyslog restart
解説:
/var/log/secure より出力したいlogの一部を上記のように記載
例1)ファイルのダウンロードだけsftp/logに書き込みたい →上記を追加
例2)/var/log/secureの全てをsftp.logに書き込みたい →if $syslogfacility-text == 'authpriv' then /var/log/sftp.log
とりあえず上記1.~4.を実施することでタイトル通りのことはできます。
あとはお好みでローテーション設定も追加すればよいと思います。
5.logrotate.d/syslogファイルの編集
vim /etc/logrotate.d/syslog
↓以下を追加↓
/var/log/sftp.log
詳しくは以下のサイトで情報があるので参考にしてください。
http://fanblogs.jp/kumon/archive/18/0
以上