sudo_user
документирован в Man Sudo
(не sudoers
):
sudo_user Установите на имя пользователя, который вызывал sudo.
То есть, если вы запустите sudo sh -c 'echo $ sudo_user'
Это круглый способ получить эффект WHOAMI
.
sudo
logs, когда пользователь работает (или пытается запустить) команду через нее. Вы можете перечислить их с помощью LeanctCtl / usr / bin / sudo
или что-то, эквивалентное для вашей системы. Он перечисляет имя пользователя и команду каждого вызова.
Если Sudo
работает 1) в качестве корня и 2) с помощью Sudo_user
SUDO_USER , запись ввода будет помечена с помощью имени пользователя sudo_user
, а не как "корень". Это позволяет (сотрудничать) пользователю записывать команды, которые они управляли для потомки, даже если они были в неограниченной среде. Sudo
Всегда добивается успеха при запуске с корневыми привилегиями (если не отключено с настройкой root_sudo
), поскольку вы можете просто запустить команду без него.
Есть два основных способа, которые это придут. Первый - это очевидный Sudo Bash
или эквивалент и желание записывать вещи. Другой корпус использования предназначен для скриптов, которые могут регистрировать фактические действия, которые они взяли от имени пользователей. Это информативное поведение, а не проблема безопасности.
Sudo -e
используется для редактирования файлов и использует другой набор политик безопасности, также документированных в Man Sudo
и несколько безопаснее поведения редактирования. Люди иногда используют его при вошении в качестве корня для этих функций, и он имеет то же взаимодействие с Sudo_user
, как указано выше.
Рабочее решение проверено на Ubuntu 14.04.3, но, вероятно, применимо к другим версиям Linux на базе Debian и, конечно, к Red Hat.
Если вы успешно примените это решение на еще не протестированной платформе, добавьте к нему короткий комментарий.
"Возможно" выше означает, что отчеты в сети показывают эквивалентные шаги на RH Linux и, я думаю, на Lubuntu тоже.
Шаги начинаются после завершения установки обычного tripwire
пакета из вашего любимого репозитория.
Ссылки:
Man pages at TRIPWIRE(8) and TWADMIN(8), Official Red Hat Linux Reference Guide, Linux Security Cookbook.
$ uname -sivr
Linux 3.16.0-50-generic #67~14.04.1-Ubuntu SMP [...] x86_64
$ tripwire --version | head -1
Open Source Tripwire(R) 2.4.2.2.2 built for x86_64-unknown-linux-gnu
После установки пакета в системе создается каталог /etc/tripwire/
. Он содержит как минимум 2 файла по умолчанию: twcfg.txt
и twpol.txt
. Кроме того, он может содержать локальный ключ, ${HOSTNAME}-local.key
или просто local.key
, и ключ сайта, site.key
, если вы решили создать их, выбрав соответствующие парольные фразы во время установки.
Сначала выберите новое место для локальных ключей и ключей сайта, файлов конфигурации и политик, а также отчетов и файлов базы данных.
Допустим, вы решили изменить стандартное место установки /etc/tripwire/
на монтируемое устройство в точке монтирования /mnt/TW-mount/
:
$ sudo mkdir -p /mnt/TW-mount
$ sudo mount /dev/sdZZ /mnt/TW-mount && sudo mkdir -p /mnt/TW-mount/report
$ sudo mv /etc/tripwire/*.{txt,key} /mnt/TW-mount/
Замените sdZZ
в инструкции по монтированию выше правильной информацией об устройстве.
Выбирая новое место, имейте в виду, что база данных TW для типичного Linux-компьютера на базе Debian занимает от 1,5 до 4 МБ. Кроме того, отчеты TW создаются при каждом запуске и накапливаются. Не ждите, что они сами по себе начнут вращаться ради вас. Несмотря на то, что их размер не превышает 10 кБ за штуку (после изменения файла политики в соответствии с конфигурацией вашей системы), эти накапливающиеся отчеты в конечном итоге потребуют вмешательства в виде ротации или очистки после нескольких месяцев ежедневных проверок TW.
Во-вторых, измените /etc/tripwire/twcfg.txt
следующим образом:
(Настройки по умолчанию закомментированы. Новые настройки размещаются непосредственно под ними. Соответствующие строки простираются от POLFILE до LOCALKEYFILE. Другие значения флагов и глобальных переменных могут отличаться для вас.)
# /etc/tripwire/twcfg.txt --> moved to: /mnt/TW-mount/twcfg.txt
ROOT =/usr/sbin
# POLFILE =/etc/tripwire/tw.pol
POLFILE =/mnt/TW-mount/tw.pol
# DBFILE =/var/lib/tripwire/$(HOSTNAME).twd
DBFILE =/mnt/TW-mount/$(HOSTNAME).twd
# REPORTFILE =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr
REPORTFILE =/mnt/TW-mount/report/$(HOSTNAME)-$(DATE).twr
# SITEKEYFILE =/etc/tripwire/site.key
SITEKEYFILE =/mnt/TW-mount/site.key
# LOCALKEYFILE =/etc/tripwire/$(HOSTNAME)-local.key
LOCALKEYFILE =/mnt/TW-mount/$(HOSTNAME)-local.key
# /usr/bin/editor points to vim.gnome -- check yr own symlink
EDITOR =/usr/bin/editor
# LATEPROMPTING =false
LATEPROMPTING =true
# LOOSEDIRECTORYCHECKING =false
LOOSEDIRECTORYCHECKING =true
# MAILNOVIOLATIONS =true
MAILNOVIOLATIONS =false
EMAILREPORTLEVEL =3
REPORTLEVEL =3
SYSLOGREPORTING =false
MAILMETHOD =SMTP
# SMTPHOST =localhost
SMTPHOST =smtp.gmail.com
# SMTPPORT =25
SMTPPORT =587
TEMPDIRECTORY =/tmp
Третье, /mnt/TW-mount/twpol.txt
фактически переопределяет некоторые пути, установленные выше; вам также необходимо изменить его: (показаны только соответствующие строки. )
# Standard Debian Tripwire configuration - twpol.txt
# ....
# Global Variable Definitions
#
@@section GLOBAL
TWBIN = /usr/sbin;
# TWETC = /etc/tripwire;
TWETC = /mnt/TW-mount;
# TWVAR = /var/lib/tripwire;
TWVAR = /mnt/TW-mount;
Четвертое, если вы уже создали свои ключевые файлы, перейдите к пятому разделу; если нет, сделайте это сейчас:
$ sudo twadmin -m G -S /mnt/TW-mount/site.key # to create yr site key
$ sudo twadmin -m G -L /mnt/TW-mount/${HOSTNAME}-local.key # to create yr local key
Пятое, создайте и подпишите свой файл конфигурации и политики: tw.cfg
, tw.pol
в /mnt/TW-mount/
:
$ cd /mnt/TW-mount
$ sudo twadmin -m F -c /mnt/TW-mount/tw.cfg -S site.key twcfg.txt
$ sudo twadmin -m P -c /mnt/TW-mount/tw.cfg -p tw.pol -S site.key twpol.txt
Примечание: На файл конфигурации tw.cfg
ссылается абсолютный путь. В противном случае twadmin
фактически создаст его в месте по умолчанию, /etc/tripwire/
, и также будет ссылаться на него как на место по умолчанию. Вероятно, это жестко закодированная ошибка, которая не затрагивает другие соответствующие файлы, такие как tw.pol
, *.key
и *.tw{d,r}
. Исправление исходного кода, вероятно, включает sed
in-place манипуляции со строками перед компиляцией. Я предпочел работать с уже упакованным ресурсом и не дошел до этого.
Шестой, создайте или "инициализируйте вашу базу данных:
$ sudo tripwire -m i -c /mnt/TW-mount/tw.cfg -p tw.pol -S site.key -L ${HOSTNAME}-local.key
и запустите вашу первую (интерактивную) проверку:
$ sudo tripwire -m c -c /mnt/TW-mount/tw.cfg -I
Обратите внимание, что обычно (интерактивная) проверка запускается так: sudo tripwire -m c -I
, где флаг -I
обеспечивает интерактивность. Если вы измените местоположение по умолчанию для ресурсов tripwire, и из-за предполагаемой ошибки, упомянутой выше, вам всегда нужно будет объявлять, где находится подписанный файл конфигурации, который будет использоваться. Для этого используется короткая опция -c /mnt/TW-mount/tw.cfg
. Если он опущен, вы получите поведение расположения по умолчанию:
$ sudo tripwire -m c -I
### Error: File could not be opened.
### Filename: /etc/tripwire/tw.cfg
### No such file or directory
### Configuration file could not be read.
### Exiting...
$
Last, перед открытием для работы:
$ sudo rm -i /mnt/TW-mount/*txt
$ sudo chmod 600 /mnt/TW-mount/*.key
$ sudo umount /mnt/TW-mount && sudo mount /dev/sdZZ /mnt/TW-mount -o ro,nouser,...
HTH.