Пересборка базовой системы NetBSD
Для уменьшения места, занимаемого системой на диске, и для увеличения безопасности системы можно отключить сборку неиспользуемых компонентов и включить опции для усложнения эксплуатации имеющихся в системе уязвимостей.
Для этого отредактируем файл /etc/mk.conf, прописав в него следующие опции:
MKATF=no- отключение фреймворка ATF для тестирования кода,MKCOMPAT=no- отключение совместимости с двоичными файлами архитектур процессоров, отличных от основной, см. NetBSD Binary Emulation,MKCTF=no- отключение поддержки отладочных секций исполняемых ELF-файлов в формате CTF, содержащих описание используемых в программе типов и структур данных,MKDTRACE=no- отключение средства трассировки программ dtrace,MKHESIOD=no- отключение системы Hesiod - каталога учётных данных, подобного LDAP, но основанного на DNS,USE_HESIOD=no- отключение сборки пакетов из pkgsrc с поддержкой Hesiod,MKHTML=no- отключение сборки документации в формате HTML,#MKINET6=no- отключение поддержки протокола адресации сети интернет шестой версии IPv6,#USE_INET6=no- отключение сборки пакетов из pkgsrc с поддержкой IPv6,MKIPFILTER=no- отключение поддержки межсетевого экрана IPFilter,MKISCSI=no- отключение поддержки протокола iSCSI для работы с блочными устройствами по сети,MKKERBEROS=no- отключение поддержки протокола Kerberos для централизованной аутентификации пользователей,USE_KERBEROS=no- отключение сборки пакетов из pkgsrc с поддержкой Kerberos,MKKYUA=no- отключение фреймворка KYUA для тестирования кода, пришедшего на смену аналогичному фреймворку ATF,MKLDAP=no- отключение поддержки протокола LDAP - каталога учётных данных,USE_LDAP=no- отключение сборки пакетов из pkgsrc с поддержкой LDAP,MKMDNS=no- отключение поддержки протокола mDNS, позволяющего выполнять DNS-запросы к серверам по мультикаст-адресу,MKNSD=no- отключение сборки авторитетного сервера DNS NSD,MKPF=no- отключение поддержки межсетевого экрана PF,MKPIE=yes- включение сборки ядра NetBSD как позиционно-независимого кода (такое ядро можно загружать по новому адресу при каждой загрузке системы, что затрудняет эксплуатацию уязвимостей),MKPOSTFIX=no- отключение сборки почтового сервера Postfix (вместо него я использую dma и Exim),MKRUMP=no- отключение сборки RUMP-ядер, позволяющих запускать драйверы устройств и файловых систем в пространстве пользователя,MKSKEY=no- отключение поддержки S/Key для аутентификации при помощи одноразовых паролей,USE_SKEY=no- отключение сборки пакетов из pkgsrc с поддержкой S/Key,MKUNBOUND=no- отключение сборки кэширующего рекурсивного сервера DNS Unbound,#MKYP=no- отключение поддержки протокола NIS - каталога учётных данных,#USE_YP=no- отключение сборки пакетов из pkgsrc с поддержкой NIS,MKZFS=no- отключение поддержки файловой системы ZFS,USE_FORT=yes- включение замены функций, работающих с областями памяти, на их более безопасные аналоги, если на этапе компиляции размер области памяти известен заранее,USE_SSP=yes- включение защиты от срыва стека.
Сразу после установки собранной системы нужно отключить использование следующих PAM-модулей в файлах в каталоге /etc/pam.d:
pam_krb5- поддержка протокола Kerberos,pam_afslog- поддержка интеграции распределённой файловой системы AFS и Kerberos,pam_ksu- поддержка аутентификации пользователя root в Kerberos.
В противном случае можно лишиться возможности попасть в систему даже под пользователем root с консоли или повысить привилегии до root с помощью утититы su.