Есть ли способ записать, кто загрузил или изменил конкретный файл? (centos) [duplicate]

Возможный дубликат:
Мой сервер был взломан. АВАРИЙНАЯ СИТУАЦИЯ

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

PS: Нет входа в систему по FTP. Мы используем только SSH и Plesk.

2
задан 13 April 2017 в 15:14
2 ответа

Да, есть. Подсистема аудита имеет несколько довольно удобных функций учета.

Выполнение следующей команды будет проверять изменения в файле:

auditctl -w /my/specificly/modified/file.txt -p w -k "suspect file change"

Это установит наблюдение за этим файлом, всякий раз, когда он изменяется посредством записи, изменение будет регистрироваться, и

Вы можете проверить журналы, выполнив:

ausearch -i -k "suspect file change"

Это вернет результат, такой как:

type=PATH msg=audit(05/08/2012 17:32:32.353:13118) : item=1 name=/tmp/test.txt inode=5767528 dev=fd:00 mode=file,644 ouid=root ogid=root rdev=00:00 obj=staff_u:object_r:user_tmp_t:s0 
type=PATH msg=audit(05/08/2012 17:32:32.353:13118) : item=0 name=/tmp/ inode=5767169 dev=fd:00 mode=dir,sticky,777 ouid=root ogid=root rdev=00:00 obj=system_u:object_r:tmp_t:s0 
type=CWD msg=audit(05/08/2012 17:32:32.353:13118) :  cwd=/home/matthew/Testbed/C/fanotify 
type=SYSCALL msg=audit(05/08/2012 17:32:32.353:13118) : arch=x86_64 syscall=unlinkat success=yes exit=0 a0=0xffffffffffffff9c a1=0xb540c0 a2=0x0 a3=0x7fff50cfba20 items=2 ppid=13699 pid=2773 auid=matthew uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=pts0 ses=2 comm=rm exe=/usr/bin/rm subj=staff_u:sysadm_r:sysadm_t:s0 key=some file 

Если вы хотите что-то более сильное, вы можете сделать что-то, что, скажем, отслеживает любые удаления пользователем, не обычно склонен к этому. Что касается производительности, чем конкретнее правило, тем лучше ..

auditctl -a exit,always -F arch=b64 -S unlink -S rmdir -F auid=78 -F dir=/var/www/vhost

-F определяет фильтры, а -S определяет системные вызовы, чем больше фильтров, тем менее интенсивно ядро ​​отслеживает их. Итак, в этом случае я фильтрую по пользователю (apache), каталогу vhosts и arch. Arch становится важным b64 как 64-битный b32 для 32-битного.

5
ответ дан 3 December 2019 в 09:06

Поскольку вы используете CentOS, вы можете использовать SELinux для этого. Вы можете пометить файл, о котором идет речь, как что-то вроде httpd_config_t вот так: chcon -v --type = httpd_config_t /the/html/file/in/question.html

Затем SELinux зарегистрирует ошибку в /var/log/audit/audit.log. Если ты' повторный запуск SELinux в «разрешающем» режиме позволит внести изменения; если вы работаете в "принудительном" режиме, изменение не допускается.

Взгляните на: http://wiki.centos.org/HowTos/SELinux , чтобы узнать больше. Примечание: по умолчанию SELinux работает и применяется в CentOS, поэтому вам просто нужно изменить метку для этого файла.

2
ответ дан 3 December 2019 в 09:06

Теги

Похожие вопросы