Я пытаюсь собрать дополнительный журнал операций с моего sftp-сервера. Я добавил следующие строки в / etc / ssh / sshd_config, как указано во многих сообщениях в Интернете:
Subsystem sftp internal-sftp -l VERBOSE -f LOCAL6
Match Group sftponly
ChrootDirectory /data/%u
ForceCommand internal-sftp -l VERBOSE -f LOCAL6
X11Forwarding no
AllowTcpForwarding no
Затем я создал /etc/rsyslog.d/60-sftp.conf со следующими строками для сбора информации журнала:
# Parse the data logged at level INFO and facility LOCAL6 into /var/log/sftp
local6.* /var/log/sftp
# Report logins and logoffs
:syslogtag,startswith,"internal-sftp" /var/log/sftp
# Log internal-sftp in a separate file
:programname, isequal, "internal-sftp" -/var/log/sftp
На данный момент я не могу получить никаких журналов, чтобы попасть в / var / log / sftp, все продолжает идти в / var / log / messages и вообще не кажется подробным. Вот фрагмент всего, что я получаю:
Sep 28 16:46:11 ftp sshd[10060]: Accepted publickey for root from 172.25.50.117 port 54836 ssh2
Sep 28 16:46:11 ftp sshd[10060]: Received disconnect from 172.25.50.117: 11: disconnected by user
Sep 28 16:46:16 ftp sshd[10109]: Accepted keyboard-interactive/pam for account1000002664 from 172.25.50.86 port 34255 ssh2
Я убедился, что в системе работает rsyslogd, выполнив:
ftp:~ # ps ax | grep syslog
9205 ? Sl 0:00 /sbin/rsyslogd -c 5 -f /etc/rsyslog.conf
Итак, насколько я могу судить, я редактирую правильные файлы. Я полагаю, что следующий шаг - убедиться, что ожидаемые журналы отправляются на local6. Цель здесь - получить данные, необходимые для вывода журнала, похожего, если не совсем такого, как xferlog, созданный vsftpd.
У кого-нибудь есть мысли о том, как действовать дальше? Кстати, это работает на OpenSuse 12.1.
У вас должен быть сокет логирования (/dev/log
) в chroot
, если вы хотите войти через него, или вам нужно реализовать способ сохранения файлового дескриптора через internal-sftp
исполнение.
Он должен работать на текущем RHEL (по крайней мере, мы его протестировали, и он задокументированный), но я ничего не знаю о suse.
Возможно, эта функция там реализована не полностью, но если вы всегда можете создать сокет в chroot
и настроить rsyslog
принимать сообщения на этом сокете. Вы можете протестировать это с помощью регистратора, как это предлагается в комментариях.