Главная > Операционные системы > UNIX > Linux
Linux Tripwire 2.2.1Инсталляция типичного Red Hat Linux сервера включает в среднем около 30400 файлов. Администратор не в состоянии проконтролировать целостность всех системных файлов, и если хакер получит доступ к серверу и сможет модифицировать какие-либо файлы, то вы можете об этом не узнать. Для решения этих проблем было создано несколько программ.Согласно информации опубликованной на официальном сайте Tripwire:
Как только такая базовая база данных создана, администратор может запускать Tripwire для проверки целостности системы в любое время. Она сканирует текущую систему и сравнивает результаты со своей базой. Tripwire определяет и рапортует о любых дополнения, удаления и изменениях произошедших среди контролируемых ею файлов. Если изменения правильные, то администратор может обновить базу данных новой информацией. Если были найдены злонамеренный изменения, то администратор будет знать на какую часть системы было оказано воздействие. Эта версия Tripwire имеет значительные изменения по сравнению с предыдущей. Некоторые расширения включают:
Unix-совместимые команды. Путь к исходным кодам "/var/tmp" (возможны другие варианты). Инсталляция была проверена на Red Hat Linux 6.1 и 6.2. Все шаги инсталляции осуществляются суперпользователем "root". Tripwire версии 2.2.1 Пакеты.
Раскройте тарбол:
ЗАМЕЧАНИЕ. После раскрытия архива Tripwire в каталоге "/var/tmp" вы увидите файлы, связанные с Tripwire: License.txt, README, Release_Notes, install.cfg, install.sh, созданный каталог и Tripwire_version_for_Linux_x86_tar.gz. Конфигурирование файла "/var/tmp/install.cfg".Помните, что Tripwire не является программой с открытыми исходными кодами, поэтому процесс компиляции не выглядит как обычно; вместо этого, вы должны модифицировать файл "install.cfg" (который будет автоматически инсталлировать Tripwire), чтобы определить в нем все необходимые пути. Мы должны это сделать так, чтобы он был совместим со структурой файловой системы Red Hat и исполняемые файлы Tripwire попали под переменную PATH.Шаг 1 Редактируйте файл install.cfg (vi install.cfg) и измените этот файл следующим образом: # # install.cfg # # default install.cfg for: # Tripwire(R) 2.2.1 for Unix # # NOTE: Это Bourne shell скрипт, который ваши запоминает инсталляционные # параметры. Инсталлятор будет выполнять этот файл, чтобы создать # ваш конфигурационный файл, а также определит место любой # специальной конфигурации нужной для инсталляции. # Защитите этот файл, потому что в нем могут разместить вредоносный # код. # # Определите ваш корневой каталог для инсталляции, установив TWROOT= во # что-нибудь иное, чем /usr/TSS. # #======================================================= # Если CLOBBER истина, то существующие файлы будут переписываться. # Если CLOBBER ложь, то существующие файлы не переписываются. CLOBBER=false # Корень дерева каталогов TSS. TWROOT="/usr" # Исполняемые файлы Tripwire хранятся в TWBIN. TWBIN="${TWROOT}/bin" # Файлы политик Tripwire хранятся в TWPOLICY. TWPOLICY="${TWROOT}/TSS/policy" # Руководства пользователя (manual pages) Tripwire хранятся в TWMAN. TWMAN="${TWROOT}/man" # Файлы базы данных Tripwire хранятся в TWDB. TWDB="${TWROOT}/TSS/db" # Файлы ключей сайта Tripwire хранятся в TWSITEKEYDIR. TWSITEKEYDIR="${TWROOT}/TSS/key" # Файлы локальных ключей Tripwire хранятся в TWLOCALKEYDIR. TWLOCALKEYDIR="${TWROOT}/TSS/key" # Файлы отчетов Tripwire хранятся TWREPORT. TWREPORT="${TWROOT}/TSS/report" # Определяется текстовый редактор по умолчанию для Tripwire. TWEDITOR="/bin/vi" # TWLATEPROMTING контролирует место когда tripwire спрашивает пароль. TWLATEPROMPTING=false # TWLOOSEDIRCHK определяет должен ли проверяться каталог на # свойства которые могут изменяться, когда файлы в нем проверена. TWLOOSEDIRCHK=false # TWMAILNOVIOLATIONS определяет должен ли Tripwire посылать отчет # когда при проверки целостности с опцией --email-report нарушений найдено # не было. Это позволяет администратору узнать, что проверка была # произведена. TWMAILNOVIOLATIONS=true # TWEMAILREPORTLEVEL определяет словесное наполнение e-mail отчетов. TWEMAILREPORTLEVEL=3 # TWREPORTLEVEL определяет словесное наполнение печатаемых отчетов. TWREPORTLEVEL=3 # TWSYSLOG определяет должен ли Tripwire регистрировать события в # системные файлы регистраций TWSYSLOG=false ##################################### # Почтовые опции - Выберите подходящий # метод и комментируйте другие секции ##################################### ##################################### # Опции SENDMAIL - по умолчанию # # SENDMAIL или SMTP может быть использованы для отправки отчетов # через TWMAILMETHOD. # Определяет какая программа sendmail используется. ##################################### TWMAILMETHOD=SENDMAIL TWMAILPROGRAM="/usr/lib/sendmail -oi -t" ##################################### # Опции SMTP # # TWSMTPHOST выбирает SMTP сервер, используемый для отправки отчетов. # SMTPPORT выбирает SMTP порт, используемой почтовой программой SMTP. ##################################### # TWMAILMETHOD=SMTP # TWSMTPHOST="mail.domain.com" # TWSMTPPORT=25 ##################################################################### ########### # Copyright (C) 1998-2000 Tripwire (R) Security Systems, Inc. Tripwire (R) is a # registered trademark of the Purdue Research Foundation and is licensed # exclusively to Tripwire (R) Security Systems, Inc. ##################################################################### ###########ЗАМЕЧАНИЕ. Файл "install.cfg" используются Bourne shell скриптом при инсталляции для определения конфигурационных переменных. Они определяют места куда устанавливаются файлы и предпринимаемые действия, если подобные файлы существуют. Шаг 2 Сейчас мы должны запустить инсталляционный скрипт для установки исполняемых и сопутствующих файлов Tripwire. Для запуска инсталляционного скрипта и установки Tripwire, используйте
следующую команду:
Замечание. Файл "install.sh" - это инсталляционный скрипт, который запускается для начала установки Tripwire. Во время инсталляции вы будете:
Когда Tripwire установится на вашу систему, она скопирует файлы "License.txt",
"README" и "Release_Notes" в каталог "/usr". Конечно, после прочтения,
вы можете спокойно удалить их следующей командой:
Очистка после работы.[root@deep
/]# cd /var/tmp
Команда "rm", использованная выше, будет удалять все исходные коды, которые мы использовали при компиляции и инсталляции Tripwire. Она также удалит .tgz архив. Конфигурации.Все программное обеспечение, описанное в книге, имеет определенный каталог и подкаталог в архиве "floppy.tgz", включающей все конфигурационные файлы для всех программ. Если вы скачаете этот файл, то вам не нужно будет вручную воспроизводить файлы из книги, чтобы создать свои файлы конфигурации. Скопируйте файл из архива и измените его под свои требования. Затем поместите его в соответствующее место на сервере, так как это показано ниже. Файл с конфигурациями вы можете скачать с адреса:http://www.openna.com/books/floppy.tgz Для запуска Tripwire под Linux следующий файл должен быть создан или скопирован в требуемый каталог: Копируйте файл twpol.txt в каталог "/usr/TSS/policy". Настройка файла "/usr/TSS/policy/twpol.txt"."/usr/TSS/policy/twpol.txt" - это текстовый файл политик Tripwire, где вы можете определить файлы и каталог для проверки. Обратите внимание, что при редактировании этого файла необходимы обширные испытания и опыты, прежде чем удастся получить работающие файлы отчетов. Следующий работающий пример вы можете использовать, как стартовую площадку для ваших настроек.Шаг 1. Вы должны редактировать файл политик, заданный по умолчанию, для получения вашей версии. Файл "policyguide.txt" в каталоге "/usr/TSS/policy" может вам помочь. Откройте файл "twpol.txt" в текстовом редакторе (vi /usr/TSS/policy/twpol.txt) и измените все, что нужно: @@section GLOBAL TWROOT="/usr"; TWBIN="/usr/bin"; TWPOL="/usr/TSS/policy"; TWDB="/usr/TSS/db"; TWSKEY="/usr/TSS/key"; TWLKEY="/usr/TSS/key"; TWREPORT="/usr/TSS/report"; HOSTNAME=deep.openna.com; @@section FS SEC_CRIT = $(IgnoreNone)-SHa; # Критические файлы - мы не можем пропустить любые изменения. SEC_SUID = $(IgnoreNone)-SHa; # Исполняемые с установленными флагами SUID или SGID. SEC_TCB = $(ReadOnly); # Члены базы доверенных компьютеров (Trusted Computing Base). SEC_BIN = $(ReadOnly); # Исполняемые, которые не должны изменяться SEC_CONFIG = $(Dynamic); # Конфигурационные файлы, которые изменяются редко, но часто читаются. SEC_LOG = $(Growing); # Файлы, которые растут, но которые никогда не должны изменять монопольное использование. SEC_INVARIANT = +pug; # Каталоги, которые никогда не изменяют права доступа и владельца. SIG_LOW = 33; # Не критичные файлы, которые имеют минимальный риск при проведении атаки SIG_MED = 66; # Не критичные файлы, которые важны при ударе по безопасности SIG_HI = 100; # Критические файлы, которые являются важным местом уязвимости # Исполняемы файлы Tripwire (emailto = admin@openna.com, rulename = "Tripwire Binaries", severity = $(SIG_HI)) { $(TWBIN)/siggen -> $(ReadOnly); $(TWBIN)/tripwire -> $(ReadOnly); $(TWBIN)/twadmin -> $(ReadOnly); $(TWBIN)/twprint -> $(ReadOnly); } # Файлы данных Tripwire - конфигурационные файлы, файлы политик, ключи, отчеты, базы данных (emailto = admin@openna.com, rulename = "Tripwire Data Files", severity = $(SIG_HI)) { # Замечание: Удаляем атрибут inode, потому что когда Tripwire создает # резервные копии он переименовывает старый файл и создает новый # (который будет иметь новый номер inode). Оставляем inode включенным # для ключей, которые никогда не должны изменяться. # ЗАМЕЧАНИЕ. это правило будет срабатывать при первой проверки целостности # после инициализации базы данных и каждый раз при проверке целостности # позже, пока не будет выполнена модификация базы данных, так как база # данных не будет существовать до этого момента $(TWDB) -> $(Dynamic) -i; $(TWPOL)/tw.pol -> $(SEC_BIN) -i; $(TWBIN)/tw.cfg -> $(SEC_BIN) -i; $(TWLKEY)/$(HOSTNAME)-local.key -> $(SEC_BIN) ; $(TWSKEY)/site.key -> $(SEC_BIN) ; # не сканировать персональные отчеты $(TWREPORT) -> $(Dynamic) (recurse=0); } # Эти файлы критичны для корректной загрузки системы. (emailto = admin@openna.com, rulename = "Critical system boot files", severity = 100) { /boot -> $(SEC_CRIT) ; !/boot/System.map ; !/boot/module-info ; } # Эти файлы изменяют поведение бюджета root (emailto = admin@openna.com, rulename = "Root config files", severity = 100) { /root -> $(SEC_CRIT) ; /root/.bash_history -> $(SEC_LOG) ; } # Общедоступные каталоги, которые должны оставаться статическими # относительно владельца и группы (emailto = admin@openna.com, rulename = "Invariant Directories", severity = $(SIG_MED)) { / -> $(SEC_INVARIANT) (recurse = 0); /home -> $(SEC_INVARIANT) (recurse = 0); /etc -> $(SEC_INVARIANT) (recurse = 0); /chroot -> $(SEC_INVARIANT) (recurse = 0); /cache -> $(SEC_INVARIANT) (recurse = 0); } (emailto = admin@openna.com, rulename = "Shell Binaries") { /bin/bsh -> $(SEC_BIN); /bin/csh -> $(SEC_BIN); /bin/sh -> $(SEC_BIN); } # Месторасположение критичных исполняемых файлов (emailto = admin@openna.com, rulename = "OS executables and libraries", severity = $(SIG_HI)) { /bin -> $(ReadOnly) ; /lib -> $(ReadOnly) ; } # Локальные файлы (emailto = admin@openna.com, rulename = "User binaries", severity = $(SIG_MED)) { /sbin -> $(SEC_BIN) (recurse = 1); /usr/sbin -> $(SEC_BIN) (recurse = 1); /usr/bin -> $(SEC_BIN) (recurse = 1); } # Каталоги с временными файлами (emailto = admin@openna.com, rulename = "Temporary directories", recurse = false, severity = $(SIG_LOW)) { /usr/tmp -> $(SEC_INVARIANT); /var/tmp -> $(SEC_INVARIANT); /tmp -> $(SEC_INVARIANT); } # Библиотеки (emailto = admin@openna.com, rulename = "Libraries", severity = $(SIG_MED)) { /usr/lib -> $(SEC_BIN); } # Включаемы файлы (Include) (emailto = admin@openna.com, rulename = "OS Development Files", severity = $(SIG_MED)) { /usr/include -> $(SEC_BIN); } # Разделяемые (Shared) (emailto = admin@openna.com, rulename = "OS Shared Files", severity = $(SIG_MED)) { /usr/share -> $(SEC_BIN); } # Заголовочные файлы ядра (emailto = admin@openna.com, rulename = "Kernel Headers Files", severity = $( SIG_HI)) { /usr/src/linux-2.2.14 -> $(SEC_BIN); } # setuid/setgid root программы (emailto = admin@openna.com, rulename = "setuid/setgid", severity = $(SIG_HI)) { /bin/su -> $(SEC_SUID); /sbin/pwdb_chkpwd -> $(SEC_SUID); /sbin/dump -> $(SEC_SUID); /sbin/restore -> $(SEC_SUID); /usr/bin/at -> $(SEC_SUID); /usr/bin/passwd -> $(SEC_SUID); /usr/bin/suidperl -> $(SEC_SUID); /usr/bin/crontab -> $(SEC_SUID); /usr/sbin/sendmail -> $(SEC_SUID); /usr/bin/man -> $(SEC_SUID); /usr/bin/sperl5.00503 -> $(SEC_SUID); /usr/bin/slocate -> $(SEC_SUID); /usr/sbin/utempter -> $(SEC_SUID); /sbin/netreport -> $(SEC_SUID); } (emailto = admin@openna.com, rulename = "Configuration Files") { /etc/hosts -> $(SEC_CONFIG); /etc/inetd.conf -> $(SEC_CONFIG); /etc/initlog.conf -> $(SEC_CONFIG); /etc/inittab -> $(SEC_CONFIG); /etc/resolv.conf -> $(SEC_CONFIG); /etc/syslog.conf -> $(SEC_CONFIG); } (emailto = admin@openna.com, rulename = "Security Control") { /etc/group -> $(SEC_CRIT); /etc/security/ -> $(SEC_CRIT); /lib/security/ -> $(SEC_CRIT); /var/spool/cron -> $(SEC_CRIT); } (emailto = admin@openna.com, rulename = "Login Scripts") { /etc/csh.login -> $(SEC_CONFIG); /etc/profile -> $(SEC_CONFIG); } # Эти файлы изменяются при каждой загрузке системы (emailto = admin@openna.com, rulename = "System boot changes", severity = $(SIG_HI)) { /dev/log -> $(Dynamic) ; /dev/cua0 -> $(Dynamic) ; /dev/console -> $(Dynamic) ; /dev/tty2 -> $(Dynamic) ; # tty devices /dev/tty3 -> $(Dynamic) ; # are extremely /dev/tty4 -> $(Dynamic) ; # variable /dev/tty5 -> $(Dynamic) ; /dev/tty6 -> $(Dynamic) ; /dev/urandom -> $(Dynamic) ; /dev/initctl -> $(Dynamic) ; /var/lock/subsys -> $(Dynamic) ; /var/run -> $(Dynamic) ; # daemon PIDs /var/log -> $(Dynamic) ; /etc/ioctl.save -> $(Dynamic) ; /etc/.pwd.lock -> $(Dynamic) ; /etc/mtab -> $(Dynamic) ; /lib/modules -> $(Dynamic) ; } # Критические конфигурационные файлы (emailto = admin@openna.com, rulename = "Critical configuration files", severity = $(SIG_HI)) { /etc/conf.modules -> $(ReadOnly) ; /etc/crontab -> $(ReadOnly) ; /etc/cron.hourly -> $(ReadOnly) ; /etc/cron.daily -> $(ReadOnly) ; /etc/cron.weekly -> $(ReadOnly) ; /etc/cron.monthly -> $(ReadOnly) ; /etc/default -> $(ReadOnly) ; /etc/fstab -> $(ReadOnly) ; /etc/group- -> $(ReadOnly) ; # изменения должны быть не частыми /etc/host.conf -> $(ReadOnly) ; /etc/hosts.allow -> $(ReadOnly) ; /etc/hosts.deny -> $(ReadOnly) ; /etc/lilo.conf -> $(ReadOnly) ; /etc/logrotate.conf -> $(ReadOnly) ; /etc/pwdb.conf -> $(ReadOnly) ; /etc/securetty -> $(ReadOnly) ; /etc/sendmail.cf -> $(ReadOnly) ; /etc/protocols -> $(ReadOnly) ; /etc/services -> $(ReadOnly) ; /etc/rc.d/init.d -> $(ReadOnly) ; /etc/rc.d -> $(ReadOnly) ; /etc/motd -> $(ReadOnly) ; /etc/passwd -> $(ReadOnly) ; /etc/passwd- -> $(ReadOnly) ; /etc/profile.d -> $(ReadOnly) ; /etc/rpc -> $(ReadOnly) ; /etc/sysconfig -> $(ReadOnly) ; /etc/shells -> $(ReadOnly) ; /etc/nsswitch.conf -> $(ReadOnly) ; } # Критичные устройства (emailto = admin@openna.com, rulename = "Critical devices", severity = $(SIG_HI), recurse = false) { /dev/kmem -> $(Device) ; /dev/mem -> $(Device) ; /dev/null -> $(Device) ; /dev/zero -> $(Device) ; /proc/devices -> $(Device) ; /proc/net -> $(Device) ; /proc/tty -> $(Device) ; /proc/sys -> $(Device) ; /proc/cpuinfo -> $(Device) ; /proc/modules -> $(Device) ; /proc/mounts -> $(Device) ; /proc/dma -> $(Device) ; /proc/filesystems -> $(Device) ; /proc/ide -> $(Device) ; /proc/interrupts -> $(Device) ; /proc/ioports -> $(Device) ; /proc/scsi -> $(Device) ; /proc/kcore -> $(Device) ; /proc/self -> $(Device) ; /proc/kmsg -> $(Device) ; /proc/stat -> $(Device) ; /proc/ksyms -> $(Device) ; /proc/loadavg -> $(Device) ; /proc/uptime -> $(Device) ; /proc/locks -> $(Device) ; /proc/version -> $(Device) ; /proc/meminfo -> $(Device) ; /proc/cmdline -> $(Device) ; /proc/misc -> $(Device) ; }ЗАМЕЧАНИЕ. Это пример файла политик, который мы вам предоставляем, конечно, вы должны модифицировать его под вашу систему. Шаг 2 Так как мы уже готовы использовать наш файл политик в первый раз, инсталлируйте
его следующей командой:
Организация защиты Tripwire для LinuxВажно удостовериться, что целостность системы уже не была нарушена. Для максимальной безопасности вашей основной базы данных, вы должны инсталлировать систему с оригинальных носителей. Также рекомендуется удалить текстовую копию конфигурационного файла Tripwire "twcfg.txt", расположенного в каталоге "/usr/bin", для сокрытия месторасположения файлов Tripwire и предотвращения создания альтернативного конфигурационного файла.[root@deep /]# rm -f /usr/bin/twcfg.txt Дополнительная документация.Здесь перечислены некоторые страницы руководства (man), которые могут дать вам дополнительную информацию.$ siggen (8) - сбор сигнатур кодов для Tripwire
Команды.Ниже приведены команды из тех, что мы часто используем в регулярной работе, но из существует много больше. Читайте страницы руководства (man) для получения большей информации.Создание базы данных в первый раз. Так как ваш файл с политиками инсталлирован, то наступило время создать базу данных объектов файловой системы, базирующуюся на файле с политиками. Эта база данных будет выступать как основание для дальнейших проверок целостности. Синтаксис для перехода в режим инициализации базы данных:
Инициализируем вашу базу данных:
ЗАМЕЧАНИЕ. Когда команда выполнена, база данных готова и вы можете
выполнить проверку целостности файловой системы и просматривать отчеты.
Tripwire имеет возможность называемую "Режим проверки целостности". Сейчас, когда наша база данных инициализована, мы можем использовать этот режим для сравнения текущих объектов файловой системы с их свойствами, записанными в базу данных Tripwire. Все файлы с нарушениями будут выводится в stdout; файл генератор отчетов будет создан и может быть использован в дальнейшем с помощью утилиты twprint. Синтаксис для режима проверки целостности:
Для запуска проверки целостности используйте команду:
Tripwire может быть также запущен в режиме "Интерактивный режим проверки". В этом режиме вы можете автоматически обновлять ваши изменения с терминала. Для запуска интерактивного режима проверки используйте команду:
В Tripwire есть опция email, которая позволяет отправлять письма. Эта опция определяет, что отчет должен быть отправлен по электронной почте адресату, определенному в файле политик. Для запуска режима проверки целостности и отправки отчета по электронной
почте, используйте команду:
Если вы решили использовать "Режим проверки целостности " вместо "Интерактивного режима проверки ", вы должны обновить базу данных Tripwire, используя возможность "Режим обновления базы данных". Этот процесс позволяет вам сэкономить время, обновляя базу данных без ее полного пересоздания, и также допускается выборочное обновление, которое не может быть осуществлена через восстановление. Синтаксис режима обновления базы данных:
Для обновления базы данных дайте команду:
где "-r" читает определенный файл отчет (deep.openna.com-200001-021854.twr). Эта опция требуется, так как переменная REPORTFILE в текущем файле конфигурации использует $(DATE). ЗАМЕЧАНИЕ: В режиме обновления базы данных или режиме интерактивной
проверки, Tripwire выводит отчет на вашем терминале с местом для отметки
напротив каждого нарушения политики. Вы можете принять изменения в файловой
системе установив знак "x" или не обновлять базу данных убрав "x". После
того, как вы вышли из редактора и ввели локальную парольную фразу, Tripwire
будет обновлять и записывать изменения.
Иногда вы можете захотеть изменить правила в вашей политике, чтобы отразить изменения правил и отразить расположение новых файлов и политик. Существуют специальные команды, чтобы выполнить работу по обновлению базы данных без полного обновления базы. Это поможет сохранить много времени и безопасность, сохраняя файлы политик синхронизированными с базой данных Синтаксис для режима обновления политик:
Для обновления файла с политиками используйте команду:
Режим обновления политик по умолчанию запускается с опцией "--secure-mode high". Вы можете столкнуться с ошибкой когда запускаете Tripwire с этой опцией, если файловая система изменилась по сравнению с последним обновлением базы данных, и если эти изменения будут причиной нарушений по новым правилам политики. После уточнения, что все отчеты о нарушениях в high security режиме санкционированы, вы можете обновить файл с политиками в low security режиме для решения этой проблемы: Для обновления файла политик в low security режиме используйте команду:
Проинсталлированные файлы. > /usr/TSS > /usr/bin > /usr/bin/siggen > /usr/bin/twprint > /usr/bin/twadmin > /usr/bin/tripwire > /usr/bin/twcfg.txt > /usr/bin/tw.cfg > /usr/TSS/policy > /usr/TSS/policy/policyguide.txt > /usr/TSS/policy/twpol.txt > /usr/TSS/policy/tw.pol > /usr/TSS/policy/twpol.txt.bak > /usr/TSS/report > /usr/TSS/db > /usr/TSS/key > /usr/TSS/key/site.key > /usr/TSS/key/deep.openna.com-local.key > /usr/man > /usr/man/man4 > /usr/man/man4/twconfig.4 > /usr/man/man4/twpolicy.4 > /usr/man/man5 > /usr/man/man5/twfiles.5 > /usr/man/man8 > /usr/man/man8/siggen.8 > /usr/man/man8/tripwire.8 > /usr/man/man8/twadmin.8 > /usr/man/man8/twintro.8 > /usr/man/man8/twprint.8 > /usr/README > /usr/Release_Notes > /usr/License.txt
Главная > Операционные системы > UNIX > Linux |