Как на Mikrotik* выделить время подключения определенных клиентов и сохранить его в файл?

Как можно эффективно вести формальный учёт времени работы офисных сотрудников в небольшом офисе при отсутствии кадровика и при помощи оборудования, такого как маршрутизатор и парочка NAS? Как мне можно корректно реализовать это с использованием Mikrotik? Может быть, существует альтернативный метод для решения данной задачи без использования DHCP логов?
  • 9 января 2024 г. 16:10
Ответы на вопрос 2
Для организации учета времени работы сотрудников можно использовать функционал MikroTik, такой как User Manager или настройку простого сценария с использованием firewall и скриптов. Ниже приведены два способа, как это можно сделать:

### Использование MikroTik User Manager
MikroTik User Manager - это RADIUS-сервер, который можно использовать для аутентификации и учета интернет-трафика пользователей. С его помощью можно настроить учетную запись для каждого сотрудника и отслеживать их времени подключения.

1. Настройте User Manager на MikroTik.
2. Создайте пользователей для каждого сотрудника.
3. Настройте RADIUS-клиента на вашем MikroTik, чтобы он обращался к User Manager для аутентификации пользователей.
4. Когда сотрудники подключаются к сети через VPN или Wi-Fi, их активность будет регистрироваться в User Manager.
5. Вы можете просматривать и экспортировать журналы активности в виде файлов.

### Использование скриптов и firewall правил
Можно создать скрипт, который будет отслеживать активность пользователей на MikroTik и сохранять эти данные в файл. Для этого вам потребуется:

1. Настройте правила firewall, которые будут отслеживать активность подключения сотрудников по их IP-адресам или MAC-адресам.
2. Используйте скриптинг MikroTik для создания логов этих событий.
3. Сохраняйте логи на NAS или другом устройстве хранения, доступном в сети.

Вот пример скрипта, который можно запустить для отслеживания активности:

```routeros
:local currentTime [/system clock get time]
:foreach i in=[/ip firewall connection find where src-address=<IP-адрес сотрудника>] do={
    /tool fetch mode=ftp address=<NAS_IP_ADDRESS> src-path=<путь к файлу на Mikrotik> dst-path=<путь на NAS> user=<FTP_USER> password=<FTP_PASSWORD> upload=yes
}
/system scheduler add name=save-connection-log-schedule on-event=save-connection-log interval=1d start-time=startup
```

*Обратите внимание, что этот пример является лишь базовым каркасом. Вам потребуется настроить скрипт под вашу сетевую структуру, указав правильные IP-адреса, пути для сохранения файлов и пр.*

### Альтернативные методы
Если вы предпочитаете не использовать MikroTik для учета времени работы, можно рассмотреть различные сторонние программы и сервисы, например:

- Системы учета рабочего времени через веб-интерфейсы (они могут предлагать автоматическое ведение рабочего времени, учет отпусков и больничных).
- Использование отметок NFC или биометрических систем для фиксации прихода/ухода сотрудников.

Важно отметить, что при любом методе учета времени необходимо соблюдать местные законы и стандарты в отношении конфиденциальности и хранения персональных данных.
ИМХО решение не очень надёжное - нерадивый сотрудник может попросить коллегу "включи мой компьютер", тому достаточно ткнуть кнопку питания и всё. Опять же, при работе на удалёнке с этими всеми ковидлами никакой нормальной статистики не получится. 
Если народ при включении компа на работе еще логинится, например через AD, тогда достаточно легко:
https://winitpro.ru/index.php/2020/04/23/user-doma...
А если есть что-нибудь типа "корпоративного чата", клиент которого запускается при логине, ну или какой-то другой подобный софт, обязательный у всех - то можно брать логи с него. Я одно время так смотрел через логи с OpenFire (корп.чат на Jabber), правда, ему нужен был для этого плагин и пришлось отправить его на MYSQL, зато удобно потом смотреть было.
https://discourse.igniterealtime.org/t/user-status...
Похожие вопросы