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

Дополнительные материалы