Безопасность и оптимизация Linux.Редакция для Red Hat

       

Настройка файла “/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

Так как мы уже готовы использовать наш файл политик в первый раз, инсталлируйте его следующей командой:
[root@deep /]# twadmin --create-polfile /usr/TSS/policy/twpol.txt


Please enter your site passphrase:


Wrote policy file: /usr/TSS/policy/tw.pol



Содержание раздела