Пересборка базовой системы 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
.