Рабочее решение проверено на 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.
Как упоминалось в комментариях, обычный метод установки скорости 1600 МГц:
echo 1600000 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
Для проверки эффекта используйте:
$ cd /sys/devices/system/cpu/cpu0/cpufreq/
$ paste <(ls *) <(cat *) | column -s $'\t' -t
affected_cpus 0
cpuinfo_max_freq 3500000
cpuinfo_min_freq 800000
cpuinfo_transition_latency 4294967295
energy_performance_available_preferences default performance balance_performance balance_power power
energy_performance_preference balance_performance
related_cpus 0
scaling_available_governors performance powersave
scaling_cur_freq 807325
scaling_driver intel_pstate
scaling_governor powersave
scaling_max_freq 3500000
scaling_min_freq 800000
scaling_setspeed <unsupported>
На моей машине scaling_setspeed
установить нельзя, так как у меня i7 -6700HQ. То же самое и на моем старом i7 -3630QM 3-го поколения.
Таким образом, на этих платформах я установил бы scaling_min_freq
и scaling_max_freq
на одном уровне, и p_state
никогда не колебался бы. Тот же параметр, который я, вероятно, применил бы ко всем ЦП в .../cpu0/...
- .../cpu7/...