Зарегистрируйте каждую команду, введенную в любой оболочке: вывод (от функции регистратора до syslog-ng/journald) содержит дублирующиеся записи для команд?

Попробуйте этим вместо этого:

ffmpeg -i "$x" -vol 100 -ab 160k -ar 44100 "`basename "$x" .avi`.mp3"

Прежде чем опции были перед входным файлом, но похоже, что Вы хотите установить их для выходного файла.

4
23.09.2017, 23:14
3 ответа

У Вас есть большое продолжение там..... Мой лучший ответ на это должен объяснить просто, как я видел, что сессия регистрируется сделанный в прошлом. Надо надеяться, это даст Вам некоторые опции исследовать.

  1. Поскольку Вы уже упомянули, вытянув bash history от учетных записей пользователей. Это только работает после того, как сессия закончилась. Едва ли наилучший вариант, но это легко и надежно.
  2. Используя a virtual terminal такой как screen команда в Linux. Это не очень устойчиво, поскольку это запускается на пользовательском входе в систему однако, если они знают, что это регистрируется, можно все еще уничтожить сервис. Это работает хорошо в сценарии конечного пользователя. Конечные пользователи обычно захватываются в указанной области так или иначе и не имеют знания для обхождения этого.
  3. Модуль Pam_tty_audit и aureport --tty Это - инструмент, который позволяет Вам указывать, какие пользователи зарегистрированы, и позвольте Вам указывать место хранения упомянутых журналов..., поскольку всегда избегают журналы хост-сервера. У меня есть журналы сеанса на нашем сервере SFTP, скопированном прочь в центральный сервер входа и локальный cronjob перемещение их к не общему ресурсу для архива.

Это встроено для Redhat и Fedora однако, можно установить его на Debian и Ubuntu. Это - часть auditd пакета, которому я верю. Вот некоторая документация относительно auditd и необходимые изменения конфигурации к pam (в/etc/pam.d/system-auth), указывая отдельного пользователя здесь (корень):

session required pam_tty_audit.so disable=* enable=root

Вывод в качестве примера aureport --tty:

TTY Report
===============================================
# date time event auid term sess comm data
===============================================
1. 1/29/2014 00:08:52 122249 0000 ? 4686960298 bash "ls -la",<ret> 
5
27.01.2020, 20:51
  • 1
    повреждения Здесь является некоторой дополнительной информацией:> doc.opensuse.org/products/draft/SLES/SLES-security_sd_draft / … <Это могло бы быть полезно. –  DaffyDuc 29.01.2014, 17:48
  • 2
    Вот некоторые более конкретные инструкции для настраивания основ. это для Redhat> jaredrobinson.com/blog/linux-tty-auditing –  DaffyDuc 29.01.2014, 19:15
  • 3
    Ваш не попытка использовать обе строки конфигурации я надеюсь. Я знаю, когда я первоначально настраивал это, я скопировал и вставил эти 2 строки в свою конфигурацию и быстро повредил наш тестовый сервер.... НЕ уверенный, как помочь, Вы без мучительной суммы детали и огромной строки комментария..., возможно, пытаетесь задать более узкий вопрос здесь. посмотрите, может ли кто-то помочь Вам с той определенной проблемой. –  DaffyDuc 29.01.2014, 20:10
  • 4
    pam tty и создание отчетов являются пятном на! Для использования его на хинду я должен был добавить некоторые локальные флаги использования к package.use (dev-util/perf аудит, sys-apps/systemd аудит и аудит sys-libs/pam). Отметьте в (1), bash_history базирующиеся решения не должен ожидать конца сессии потому что history -a сразу добавляет, что является новым начиная с запущенной сессии. На самом деле это - pam_tty_audit модуль (3), который ожидает конца сессии, т.е. Я должен был выйти из своего эмулятора терминала для нового материала для появления с aureport -tty. Действительно, каждая пронумерованная строка в отчете представляет действие для сессии удара. –   30.01.2014, 12:48
  • 5
    Как auditd интегрируется с журналируемым? Сделайте их функции перекрывают –  CMCDragonkai 15.08.2014, 14:04

Это - решение, которое заботится о первом вопросе, а также представляет использование auditd в интерактивном режиме, за пределами pam_tty решения для модуля, предоставленного в другом ответе.

удар

Во-первых, как объяснил участник, могли бы быть проблемы синтаксиса с исходной установкой и существует лучший способ сделать это использование переменной $BASH_COMMAND:

Команда, в настоящее время выполняемая или собирающаяся быть выполненным, если оболочка не выполняет команду как результат прерывания, в этом случае, это - команда, выполняющаяся во время прерывания.

Обновление исходной prompt_command ссылки и функции как так работает:

PROMPT_COMMAND=$(history -a)
typeset -r PROMPT_COMMAND

function log2syslog
{
   declare command
   command=$BASH_COMMAND
   logger -p local1.notice -t bash -i -- $USER : $command

}
trap log2syslog DEBUG

Таким образом, новые строки истории записаны в bash_history зарегистрируйте каждый раз из-за PROMPT_COMMAND, и так как $BASH_COMMAND находится в прерывании, команда, введенная на cli, является выполняемой командой. Если я удаляю историю-a, я вижу, что мой PS1 отражен. Работы отлично и удаляют все дублирующиеся строки. Вывод включает также расширение псевдонима по некоторым причинам.

Также возможно сделать это без прерывания с помощью PROMPT_COMMAND только, как так:

PROMPT_COMMAND='history -w; history -a; history -r; command=$(fc -ln 0); logger -p local1.notice -t bash -i -- $USER : $command'

Это не показывает расширение псевдонима, но это имеет маленький дефект, который я не могу исправить: если Вы просто нажимаете Enter ни с чем иным на строке, он производит последнюю команду к журналам. Вы не можете объединить arwn опции истории. Мы пишем историю, которую мы должны зарегистрировать, затем записать добавленную историю с начала сессии, затем мы читаем ее назад, и затем мы ищем последнюю строку.

zsh

С zsh мы можем использовать precmd встроенную функцию, подобную P_C, как так, с одной оболочкой определенная опция оболочки, все в .zshrc:

 setopt incappendhistory

 precmd () {
    command="$(fc -n -e - -l -1)"
    logger -p local1.notice -t zsh -i "$USER : $command"
}

И вот именно!


Аудит

Аудит является пакетом аудита, содержащим демона с плагинами и средствами отчетности. Это использует основанный на правилах подход (см. безопасность, ориентированную на audit.rules пример здесь) захватывать и регистрировать события. Установите пакет, затем удостоверяются, что у Вас есть это в /etc/conf.d/auditd:

AUDITD_LANG=en_US
AUDITD_DISABLE_CONTEXTS="no"

Можно также рассмотреть много других опций в /etc/audit/auditd.conf, включая путь журнала (/var/log/audit/audit.log по умолчанию).

Платформа также включает диспетчера с плагинами, включая тот, который имеет способность записать непосредственно в syslog раз так желаемый, для удобства. Необходимо сначала включить его в/etc/audisp/plugins.d/sysconf путем включения active:

active = yes
direction = out
path = builtin_syslog
type = builtin 
args = LOG_INFO
format = string

Вы также найдете средства (audisp-удаленными) в диспетчере для удаленного входа, но это не должно быть установлено включить диспетчеризацию системному журналу здесь. Если Вы включите плагин системного журнала, и журналируемый используется вместо системного журнала, то журналируемый покажет вывод, а также /var/log/audit/audit.log (установка по умолчанию). После того как установка завершена, можно запустить демона она с auditd -s enable. От журналов:

Started dispatcher: /sbin/audispd pid: 3869
audispd[3869]: priority_boost_parser called with: 4
audispd[3869]: max_restarts_parser called with: 10
audispd[3869]: syslog plugin initialized
audispd[3869]: audispd initialized with q_depth=120 and 1 active plugins
audispd[3869]: node=gentoouser3x86_64 type=DAEMON_START msg=audit(1391089266.449:1498): auditd start, ver=2.1.3 format=raw kernel=3.10.2...res=success
auditd[3867]: Init complete, auditd 2.1.3 listening for events (startup state enable)

you can easily check the status too with auditctl -s:
AUDIT_STATUS: enabled=1 flag=1 pid=3867 rate_limit=0 backlog_limit=64 lost=21 backlog=0

Интерактивное использование не требует его, но если у Вас нет допустимой auditd.service единицы для управления с systemctl для запуска при начальной загрузке можно попробовать вместо этого просто включая audit=1 как параметр начальной загрузки ядра, поскольку часто это было реализовано на уровне ядра.

Платформа теперь в порядке, и можно выборочно захватить события в интерактивном режиме на использовании cli auditctl. Тонны опций доступны. В особенности мы можем контролировать системные вызовы EXECVE и видеть команды, используемые в оболочке в качестве аргументов здесь:

# auditctl -a exit,always -F arch=b64 -S execve
(audit.log output)
type=EXECVE msg=audit(1391090877.859:98): argc=3 a0="ls" a1="--color=auto" a2="-la"
type=CWD msg=audit(1391090877.859:98):  cwd="/root"
type=PATH msg=audit(1391090877.859:98): item=0 name="/bin/ls" inode=4194395 dev=08:34 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL
type=PATH msg=audit(1391090877.859:98): item=1 name=(null) inode=1613135 dev=08:34 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL
type=SYSCALL msg=audit(1391090887.955:99): arch=c000003e syscall=59 success=yes exit=0 a0=1de21f0 a1=1de10c0 a2=1db7960 a3=7fff3691a390 items=2 ppid=3994 pid=4006 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 ses=1 tty=pts2 comm="clear" exe="/usr/bin/clear" key=(null)
type=EXECVE msg=audit(1391090887.955:99): argc=1 a0="clear"
type=CWD msg=audit(1391090887.955:99):  cwd="/root"
type=PATH msg=audit(1391090887.955:99): item=0 name="/usr/bin/clear" inode=1966198 dev=08:34 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL

Here's a sample showing both outputs from our trap function and
auditd appearing in our log using journald (which also shows our logger command in the 'trap'):

bash[4410]: myuser : ls --color=auto
audispd[3869]: node=gentoomyuser3x86_64 type=SYSCALL msg=audit(1391096772.067:120): arch=c000003e syscall=59 success=yes exit=0 a0=8e5a10 a1=8e4a60 a...
audispd[3869]: node=gentoomyuser3x86_64 type=EXECVE msg=audit(1391096772.067:120): argc=2 a0="ls" a1="--color=auto"
audispd[3869]: node=gentoomyuser3x86_64 type=CWD msg=audit(1391096772.067:120):  cwd="/home/myuser"
audispd[3869]: node=gentoomyuser3x86_64 type=PATH msg=audit(1391096772.067:120): item=0 name="/bin/ls" inode=4194395 dev=08:34 mode=010075...type=NORMAL
audispd[3869]: node=gentoomyuser3x86_64 type=PATH msg=audit(1391096772.067:120): item=1 name=(null) inode=1613135 dev=08:34 mode=0100755 o...type=NORMAL
audispd[3869]: node=gentoomyuser3x86_64 type=EOE msg=audit(1391096772.067:120):
audispd[3869]: node=gentoomyuser3x86_64 type=SYSCALL msg=audit(1391096807.548:121): arch=c000003e syscall=59 success=yes exit=0 a0=8e5c50 a1=8e6430 a...
audispd[3869]: node=gentoomyuser3x86_64 type=EXECVE msg=audit(1391096807.548:121): argc=10 a0="logger" a1="-p" a2="local1.notice" a3="-t" ..." a9="date"
audispd[3869]: node=gentoomyuser3x86_64 type=CWD msg=audit(1391096807.548:121):  cwd="/home/myuser"
audispd[3869]: node=gentoomyuser3x86_64 type=PATH msg=audit(1391096807.548:121): item=0 name="/usr/bin/logger" inode=1966477 dev=08:34 mod...type=NORMAL
audispd[3869]: node=gentoomyuser3x86_64 type=PATH msg=audit(1391096807.548:121): item=1 name=(null) inode=1613135 dev=08:34 mode=0100755 o...type=NORMAL
audispd[3869]: node=gentoomyuser3x86_64 type=EOE msg=audit(1391096807.548:121):
bash[4415]: myuser : date
audispd[3869]: node=gentoomyuser3x86_64 type=SYSCALL msg=audit(1391096807.549:122): arch=c000003e syscall=59 success=yes exit=0 a0=8e5f40 a1=8e5cd0 a...
audispd[3869]: node=gentoomyuser3x86_64 type=EXECVE msg=audit(1391096807.549:122): argc=1 a0="date"
audispd[3869]: node=gentoomyuser3x86_64 type=CWD msg=audit(1391096807.549:122):  cwd="/home/myuser"
audispd[3869]: node=gentoomyuser3x86_64 type=PATH msg=audit(1391096807.549:122): item=0 name="/bin/date" inode=4194318 dev=08:34 mode=0100...type=NORMAL
audispd[3869]: node=gentoomyuser3x86_64 type=PATH msg=audit(1391096807.549:122): item=1 name=(null) inode=1613135 dev=08:34 mode=0100755 o...type=NORMAL
audispd[3869]: node=gentoomyuser3x86_64 type=EOE msg=audit(1391096807.549:122):
audispd[3869]: node=gentoomyuser3x86_64 type=SYSCALL msg=audit(1391096838.004:123): arch=c000003e syscall=59 success=yes exit=0 a0=8e6c60 a1=8e6d00 a...
audispd[3869]: node=gentoomyuser3x86_64 type=EXECVE msg=audit(1391096838.004:123): argc=21 a0="logger" a1="-p" a2="local1.notice" a3="-t" a4="bash" a...
audispd[3869]: node=gentoomyuser3x86_64 type=CWD msg=audit(1391096838.004:123):  cwd="/home/myuser"
audispd[3869]: node=gentoomyuser3x86_64 type=PATH msg=audit(1391096838.004:123): item=0 name="/usr/bin/logger" inode=1966477 dev=08:34 mod...type=NORMAL
audispd[3869]: node=gentoomyuser3x86_64 type=PATH msg=audit(1391096838.004:123): item=1 name=(null) inode=1613135 dev=08:34 mode=0100755 o...type=NORMAL
audispd[3869]: node=gentoomyuser3x86_64 type=EOE msg=audit(1391096838.004:123):
bash[4417]: myuser : aafire -width 82 -height 25 -gamma 1 -floyd_steinberg -font mda14 -driver curses
audispd[3869]: node=gentoomyuser3x86_64 type=SYSCALL msg=audit(1391096838.006:124): arch=c000003e syscall=59 success=yes exit=0 a0=8e6c60 a1=8c3880 a...
audispd[3869]: node=gentoomyuser3x86_64 type=EXECVE msg=audit(1391096838.006:124): argc=12 a0="aafire" a1="-width" a2="82" a3="-height" a4...11="curses"
audispd[3869]: node=gentoomyuser3x86_64 type=CWD msg=audit(1391096838.006:124):  cwd="/home/myuser"
audispd[3869]: node=gentoomyuser3x86_64 type=PATH msg=audit(1391096838.006:124): item=0 name="/usr/bin/aafire" inode=1594727 dev=08:34 mod...type=NORMAL
audispd[3869]: node=gentoomyuser3x86_64 type=PATH msg=audit(1391096838.006:124): item=1 name=(null) inode=1613135 dev=08:34 mode=0100755 o...type=NORMAL
audispd[3869]: node=gentoomyuser3x86_64 type=EOE msg=audit(1391096838.006:124):
audispd[3869]: node=gentoomyuser3x86_64 type=SYSCALL msg=audit(1391096852.816:125): arch=c000003e syscall=59 success=yes exit=0 a0=8e5870 a1=8e5b20 a...
audispd[3869]: node=gentoomyuser3x86_64 type=EXECVE msg=audit(1391096852.816:125): argc=11 a0="logger" a1="-p" a2="local1.notice" a3="-t" ...su" a10="-"
audispd[3869]: node=gentoomyuser3x86_64 type=CWD msg=audit(1391096852.816:125):  cwd="/home/myuser"
audispd[3869]: node=gentoomyuser3x86_64 type=PATH msg=audit(1391096852.816:125): item=0 name="/usr/bin/logger" inode=1966477 dev=08:34 mod...type=NORMAL
audispd[3869]: node=gentoomyuser3x86_64 type=PATH msg=audit(1391096852.816:125): item=1 name=(null) inode=1613135 dev=08:34 mode=0100755 o...type=NORMAL
audispd[3869]: node=gentoomyuser3x86_64 type=EOE msg=audit(139109

... оконечный вывод путем простого удаления активных правил с auditctl -D или остановите весь аудит с auditd -s disable или auditctl -e 0. Мы не добираемся для наблюдения всех последовательностей символов, введенных к терминалу с помощью этого правила, но мы регистрируем все команды.

2
27.01.2020, 20:51

Добавьте следующую строку в / etc / profiles или ~ / .bashrc

 PROMPT_COMMAND='history -a >(tee -a ~/.bash_history | logger -t "$USER[$$] $SSH_CONNECTION")'

, это отправит команду вместе с пользователем ssh / ip в / var / log / messages или / var / log / системный журнал

0
27.01.2020, 20:51

Теги

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