Назад | Перейти на главную страницу

Аудит изменений файлов по ssh в Linux

Я хотел отслеживать все изменения, внесенные в файл на сервере Linux (Redhat). Я провел небольшое исследование и нашел этот инструмент аудита, который я уже установил и настроил, используя следующие команды:

yum install audit # installation

/etc/init.d/auditd start # started service

auditctl -w /root/file-name -p war -k password-file # configured rule to audit file 

ausearch -f /root/file-name    # Command to search modifications

Он записал все изменения, внесенные в конкретный файл. Все было хорошо, пока я не наткнулся на следующие сценарии:

Случай 1 :

Я удалил файл, который отслеживаю с помощью вышеупомянутого инструмента аудита, с сервера, используя следующую команду:

rm -rf /root/file-name

Он зафиксировал следующие результаты:

type=SYSCALL msg=audit(1540222267.321:1057): arch=c000003e syscall=2 success=yes exit=3 a0=7ffe22abf91a a1=941 a2=1b6 a3=7ffe22abed70 items=2 ppid=21053 pid=42458 auid=14628 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty = pts0 ses=5 comm="touch" exe="/bin/rm" key="password-file"

Случай 2: Я удалил файл с удаленного сервера, используя следующую команду:

ssh host "echo 'rm -rf /root/file-name'|sudo su - root"

Он зафиксировал следующие результаты:

type=SYSCALL msg=audit(1540222588.196:1118): arch=c000003e syscall=263 success=yes exit=0 a0=ffffffffffffff9c a1=ce70c0 a2=0 a3=7fff52a6af40 items=2 ppid=42520 pid=42533 auid=14628 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty = (нет) ses=9 comm="rm" exe="/bin/rm" key="password-file"

Теперь меня смущает то, почему tty записывается как none, когда я выполнял команду удаленно. Я искал в Интернете по этому поводу, но, к сожалению, мне не удалось найти ничего, что могло бы прояснить мою путаницу.

Может ли кто-нибудь объяснить, почему это было записано как tty=(none) в случае 2?

Заранее спасибо, дайте мне знать, если мой вопрос неясен или чего-то не хватает, я исправлю.

Когда вы даете ssh удаленную команду для выполнения, он не выделяет интерактивный tty, потому что он не требуется. Если вы хотите принудительно выделить tty, используйте -t.