openssh sftp на Windows журнал sftp в файл

Вопрос или проблема

Я активировал сервер openssh на Windows Server 2019. SFTP работает хорошо, но я не могу заставить его записывать логи в файл, я активировал ведение файлового журнала в sshd_config вот так:

# Ведение журналов
SyslogFacility LOCAL0
LogLevel INFO

и также для подсистемы sftp:

Subsystem   sftp    sftp-server.exe -l INFO

Я получаю записи в файл

3876 2020-09-23 14:26:50.392 Сервер слушает на :: порт 22.
3876 2020-09-23 14:26:50.393 Сервер слушает на 0.0.0.0 порт 22.
6528 2020-09-23 14:28:04.841 Принят пароль для xxxxxxxxx от xxxxxxxxxx порт 62200 ssh2
12152 2020-09-23 14:31:23.815 Принят пароль для xxxxxxxxxxxx от xxxxxxxxxxx порт 58256 ssh2
9392 2020-09-23 14:31:24.195 Получено отключение от xxxxxxxxxxx порт 58256:11: отключено пользователем
9392 2020-09-23 14:31:24.195 Отключено от xxxxxxxx порт 58256

но все остальное (какие файлы передаются и т.д.) уходит в журнал событий Windows, что неудобно. Есть ли способ полностью вести журнал в файл? Также было бы здорово, если бы местоположение этого файла можно было изменить (в данный момент он находится в каталоге ssh в %ProgramData%)

Опции ведения журналов предназначены “только” для службы sshd. Мой sshd_config выглядит примерно так:

 PubkeyAuthentication yes 
 AuthorizedKeysFile .ssh/authorized_keys
 
 Subsystem     sftp     internal-sftp -f LOCAL0 -l VERBOSE
 
 AllowUsers user1 user2 user3
 
 Match User *
      ChrootDirectory "D:\FTPROOT\LocalUser\%u"
      X11Forwarding no
      AllowTcpForwarding no
      AllowAgentFordwarding no
      ForceCommand internal-sftp -f LOCAL0 -l VERBOSE

Я не установил параметры для общего ведения журналов, поэтому sshd по умолчанию записывает в журнал событий Windows с уровнем INFO. Если вы используете ForceCommand (только SFTP), вам нужно указать ведение журнала там, поскольку, похоже, оно перезаписывает параметры из подсистемы sftp…

В моем случае, sftp-server по умолчанию ведет журнал по адресу C:\ProgramData\ssh\logs\sftp-server.log

Внимание: Только SYSTEM и Администраторы могут иметь доступ на запись к каталогу журналов, иначе служба больше не запустится. Доступ на чтение, похоже, также приемлем для других пользователей.

Надеюсь, это поможет, я “разобрался с этим” совсем недавно.

Ответ или решение

Конфигурация логирования SFTP с использованием OpenSSH на Windows Server 2019

Настройка OpenSSH сервера для работы с SFTP на Windows Server 2019 предоставляет удобный вариант для безопасной передачи файлов. Однако, как вы заметили, вопрос логирования действий SFTP может вызывать определенные сложности. В данном ответе я объясню, как правильно настроить логирование SFTP в файл, а также изменение пути к логам. Это обеспечит вам более удобный доступ к данным о сеансах SFTP.

1. Настройка конфигурации для логирования SFTP

Для начала, необходимо убедиться, что ваши параметры в файле sshd_config настроены должным образом. Вы уже частично настроили их, но некоторые моменты стоит уточнить:

# Общая настройка для аутентификации
PubkeyAuthentication yes 
AuthorizedKeysFile .ssh/authorized_keys

# Настройка подсистемы SFTP
Subsystem     sftp     internal-sftp -f LOCAL0 -l VERBOSE

# Ограничение пользователей
AllowUsers user1 user2 user3

# Секция Match для пользователей
Match User *
    ChrootDirectory "D:\FTPROOT\LocalUser\%u"
    X11Forwarding no
    AllowTcpForwarding no
    AllowAgentForwarding no
    ForceCommand internal-sftp -f LOCAL0 -l VERBOSE

2. Логирование в файл

Чтобы полностью контролировать логирование SFTP, убедитесь, что вы используете следующий параметр:

Subsystem     sftp     internal-sftp -f LOCAL0 -l VERBOSE

Этот параметр гарантирует, что все логи будут отправляться в локальную подсистему (LOCAL0) с уровнем деталей, равным VERBOSE. Данный уровень предоставляет больше информации о том, какие файлы передаются.

3. Изменение пути к логам

Логи SFTP по умолчанию сохраняются в C:\ProgramData\ssh\logs\sftp-server.log. Если вы хотите изменить этот путь, вы можете использовать следующий совет:

  1. Создайте новую директорию, где вы хотите хранить логи.
  2. Далее, в конфигурационном файле sshd_config необходимо указать полное имя файла с новым путем в команде запуска службы:

Для этого следует модифицировать код логирования на уровне Windows:

# Example of modifying logging
LogLevel VERBOSE
SyslogFacility LOCAL0

Затем вы можете переместить содержимое из старого файла в новый, чтобы сохранить старые логи, если это необходимо.

4. Права доступа

Обратите внимание, что только пользователи с правами администратора (или SYSTEM) могут записывать в директорию логов. Убедитесь, что согласно требованиям безопасности, вы предоставили права на запись в эту директорию только необходимым пользователям.

Заключение

Следуя этим рекомендациям, вы сможете настроить OpenSSH SFTP для более удобного логирования действий пользователей и файлов, что будет способствовать улучшению мониторинга и анализа вашего сервера. Если возникнут дополнительные вопросы, не стесняйтесь обращаться за поддержкой.

Оцените материал
Добавить комментарий

Капча загружается...