Загрузить эти исправления можно разными способами:
-u
, чтобы загрузить новые (бинарные) файлы.
/usr/ports/infrastructure/bin/pkg_outdated
,
чтобы получить список всех пакетов, нуждающихся в пересборке, и выполните
команду make update
в каталоге соответствующего порта.
В некоторых случаях перед пересборкой необходимо удалить существующие порты.
Большинство демонов и сервисов, которые поставляются вместе с OpenBSD, контролируются во время загрузки системы при помощи переменных, установленных в /etc/rc.conf. В этом файле присутствуют строки подобной этой:
httpd_flags=NOМы видим, что httpd(8) не должен запускаться во время загрузки системы при помощи rc(8). В каждой строке есть комментарий, показывающий вам параметры/флаги общего использования этого демона или сервиса.
Не редактируйте файл rc.conf(8).
Вместо этого используйте утилиту rcctl(8)
для внесение изменений в /etc/rc.conf.local
.
Это упрощает процесс обновления, так как все изменения находятся в одном файле,
который не затрагивается во время обновления.
Например, чтобы запустить демон apmd(8) для CPU scaling, можно сделать:
# rcctl enable apmd # rcctl set apmd flags -A # rcctl start apmd
Например, при соответствующей настройке следующая команда покажет содержимое файла crontab(5), принадлежащего пользователю root.
$ doas -u root crontab -lКоманды, запускаемые при помощи doas(1), по умолчанию протоколируются в
/var/log/secure
. Примеры конфигурации
можно найти в руководстве
doas.conf(5).
/etc/master.passwd
.
Он доступен для чтения только пользователю root.
Утилита pwd_mkdb(8) генерирует
читабельные файлы /etc/passwd
и базы паролей
(/etc/pwd.db
и /etc/spwd.db
) из основного файла.
Формат описан в passwd(5).
Всегда используйте vipw(8) для
редактирования файла паролей.
После того, как вы закончите редактирование, он сначала проверит изменения,
затем создаст /etc/passwd
и базы паролей и, наконец,
установит копию вместо исходного файла /etc/master.passwd
.
/
и
/usr
, выполнение команды
passwd(1) для смены
пароля root:
-s
флаг для
boot(8):
probing: pc0 com0 com1 mem[638K 1918M a20=on] disk: hd0+ hd1+ >> OpenBSD/amd64 BOOT 3.33 boot> boot -s
/
и /usr
должны быть подмонтированны
в режиме чтения и записи.
# fsck -p / && mount -uw / # fsck -p /usr && mount /usr
ntpd
постарается установить дату и время,
используемое в системе, в зависимости от данных, которые он получит от
NTP-узлов, найденных при помощи
constraints
по https.
Как только часы будут точно настроенны, ntpd
будет следить
за тем, чтобы они не убежали, используя сервера, указанные в
ntpd.conf(5).
Во время загрузки, ntpd
корректирует настройки часов только
в том случае, если они отстали (подгоняет их вперед). Если же ваши часы
спешат, т.е. время на них нужно переместить назад, установите часы вручную,
используя date(1)..
Для использования OpenNTPD в качестве сервера, добавьте строку
listen on *
в ваш
ntpd.conf(5) файл и
перезапустите демон.
Можно настроить его и так, чтобы он работал только со специально указанным
адресом или интерфейсом.
После того как вы запустите ntpd(8)
в качестве сервера, другие машины, возможно, не смогут синхронизировать
настройки времени сразу же. Это связано с тем, что информация о времени не
будет предоставляться сервером до тех пор, пока не будет достигнут достаточный
уровень стабильности. Как только этот уровень будет досигнут, в
/var/log/daemon
появится сообщение "clock is now synced".
Если использование UTC является причиной проблем, вы всегда можете изменить
настройки, в
sysctl.conf(5).
Например, добавьте следующие строки в /etc/sysctl.conf
чтобы
сконфигурировать OpenBSD для использования аппаратные часов
установленных на US/Eastern (5 часов или 300 минут от UTC):
kern.utc_offset=-300Ознакомьтесь с параметром "kern.utc_offset" в руководстве sysctl(2).
Обратите внимание, что аппаратные часы (hardware clock) должны работать с вышеуказанной конфигурацией и требуемым смещением перед загрузкой OpenBSD, иначе при загрузке будет неправильно настроено системное время.
Обычно часовой пояс настраивается во время установки.
Если вам нужно изменить часовой пояс, вы можете создать новый symbolic link
на подходящий файл часового пояса в /usr/share/zoneinfo
.
Например, чтобы настроить машину для использования EST5EDT в качестве
нового локального часового пояса:
# ln -fs /usr/share/zoneinfo/EST5EDT /etc/localtimeСмотрите также руководство по date(1).
Чтобы использовать UTF-8 везде, где это поддерживается, установите значение
en_US.UTF-8
для переменной среды LC_CTYPE
:
export LC_CTYPE="en_US.UTF-8"
в ~/.xsession
до запуска оконного менеджера.
Обратите внимание на главу настройка X,
если вы ищете более подробную информацию по этой теме.
export LC_CTYPE="en_US.UTF-8"
в ваш ~/.profile
.
Поддержка UTF-8 в консоли находится в стадии разработки, и некоторые символы,
не входящие в ASCII, могут отображаться некорректно.
LC_CTYPE
не будет переданно, поэтому перед подключением убедитесь,
что на локальном терминале установлена кодировка символов, используемая на удаленном
сервере.
Если эта кодировка неизвестна или не поддерживается OpenBSD, убедитесь, что вы
используете дефолтную конфигурацию
xterm(1), а после подключения
настройте консоль (remote shell) при помощи LC_CTYPE=en_US.UTF-8
.
Базовая система OpenBSD полностью игнорирует все переменные окружения,
связанные с локалью, кроме LC_CTYPE
. Даже LC_ALL
и LANG
влияют только на кодировку символов. Некоторые порты могут
учитывать другие LC_*
переменные, но использовать их или
устанавливать для LC_CTYPE
любое другое значение, отличное от
C
, POSIX
или en_US.UTF-8
, не рекомендуется.
Эта функция может повысить производительность для некоторых рабочих нагрузок, но снизить её для других.
Технология SMT была использована и задействована в нескольких уязвимостях процессоров, в частности, связанных со спекулятивным выполнением. Это приводило к тому, что процессы могут видеть и изучать информацию о из адресного пространства других процессов, к которым у них не должно быть доступа. Чтобы избежать этой проблемы, OpenBSD по умолчанию отключает выполнение кода на обнаруженных «виртуальных» ядрах SMT.
Это можно изменить, т.е. снова включить, установив для sysctl
hw.smd
значение 1
.
Однако обычно делать это не рекомендуется.
ВНИМАНИЕ: Системы с одноразовыми паролями защищают только информацию процесса аутентификации. Они не мешают сетевым хулиганам получать доступ к личной информации. Кроме того, если вы обращаетесь к защищенной системе A, рекомендуется сделать это из другой доверенной системы B, чтобы никто не получал доступ к системе A путем регистрации нажатий клавиш или захвата и/или подделки ввода и вывода на вашем терминале.
/etc/skey
должен существовать.
Если этот каталог не существует, попросите суперпользователя создать его:
# skeyinit -EЗатем используйте skeyinit(1) для инициализации вашего S/Key. Сначала вам будет предложено ввести пароль, затем вы должны будете ввести passphrase (секретную парольную фразу) S/Key длиной не менее 10 символов:
$ skeyinit Password: [Adding ericj with md5] Enter new secret passphrase: Again secret passphrase: ID ericj skey is otp-md5 100 oshi45820 Next login password: HAUL BUS JAKE DING HOT HOGОбратите внимание на информацию в последних двух строках. Программа, использованная для создания вашего S/Key пароля, - otp-md5(1), порядковый номер (sequence number) -
100
,
а секретный ключ - oshi45820
.
Шесть коротких слов HAUL BUS JAKE DING HOT HOG
составляют
S/Key пароль с порядковым номером 100
.
$ skeyinfo -v otp-md5 95 oshi45820 $ otp-md5 95 oshi45820 Enter secret passphrase: NOOK CHUB HOYT SAC DOLE FUMEЕсли же надо сгенерировать несколько S/Key паролей:
$ otp-md5 -n 5 95 oshi45820 Enter secret passphrase: 91: SHIM SET LEST HANS SMUG BOOT 92: SUE ARTY YAW SEED KURD BAND 93: JOEY SOOT PHI KYLE CURT REEK 94: WIRE BOGY MESS JUDE RUNT ADD 95: NOOK CHUB HOYT SAC DOLE FUME
localhost
, где используется
S/Key. Для входа в систему при помощи S/Key вы должны добавить
:skey
к вашему имени:
$ ftp localhost Connected to localhost. 220 oshibana.shin.ms FTP server (Version 6.5/OpenBSD) ready. Name (localhost:ericj): ericj:skey 331- otp-md5 93 oshi45820 331 S/Key Password: JOEY SOOT PHI KYLE CURT REEK [...] 230 User ericj logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> quit 221 Goodbye.Это же относится и к ssh(1):
$ ssh -l ericj:skey localhost otp-md5 91 oshi45821 S/Key Password: SHIM SET LEST HANS SMUG BOOT Last login: Thu Apr 7 12:21:48 on ttyp1 from 156.63.248.77 $
Конечно, вы можете использовать различные службы каталогов в OpenBSD. Но YP - единственный, к которому можно напрямую обратиться, используя стандартные функции C-библиотеки, такие как getpwent(3), getgrent(3), gethostbyname(3) и так далее. Таким образом, если вы храните свои данные в базе данных YP, вам не нужно копировать их в локальные файлы конфигурации, такие как master.passwd(5), прежде чем вы сможете использовать их, например, для аутентификации пользователей в системе.
YP - это служба каталогов, совместимая с Sun Microsystems NIS (Network Information System). Загляните в yp(8) для обзора доступных справочных страниц. Будьте осторожны, некоторые операционные системы содержат службы каталогов, имеющие одинаковые имена, но, тем не менее, несовместимые, например NIS+.
Чтобы использовать службы каталогов, отличные от YP, вам нужно либо
заполнить локальные файлы конфигурации из данными из каталога,
либо использовать внешний интерфейс YP для каталога.
Например, вы можете использовать порт sysutils/login_ldap
при выборе первого, тогда как демон
ypldap(8) в свою очередь
предоставит второе.
Для некоторых приложений простую синхронизацию небольшого числа файлов
конфигурации между группой машин можно реализовать при помощи таких
инструментов, как
rdist(1),
cron(8),
scp(1) или
rsync
(доступен из портов). Этот список представляет
собой простую и надежную альтернативу directory services.
Таким образом, перед настройкой любого YP-сервера вы должны подумать, приемлемы ли эти недостатки безопасности в вашем конкретном случае. В частности, YP не подходит, если потенциальные злоумышленники имеют физический доступ к вашей сети. Любой, кто получает root-доступ к любому компьютеру, подключенному к сегментам вашей сети, по которым передается трафик YP, может подключиться к вашему домену YP и получить его данные. В некоторых случаях можно использовать SSL- и IPsec-туннели для трафика YP.
Используйте утилиту domainname(1), чтобы установить имя домена, и поместите его в файл defaultdomain(5), чтобы он автоматически использовался во время запуска системы.
# echo "puffynet" > /etc/defaultdomain # domainname `cat /etc/defaultdomain`Вот так можно инициализировать YP сервер в интерактивном режиме:
# ypinit -mНа этом этапе нет необходимости указывать slave-серверы. Чтобы добавить slave-серверы, вы можете перезапустить ypinit(8) позже, используя опцию
-u
.
Настройка хотя бы одного slave-сервера для каждого домена имеет смысл,
чтобы избежать прерываний обслуживания. Например, если главный сервер
когда-нибудь выйдет из строя или потеряет сетевое соединение, клиентские
процессы, пытающиеся получить доступ к YP maps, блокируются, пока они не
получат запрашиваемую информацию.
Таким образом, прерывания службы YP обычно делают клиентские хосты
полностью непригодными, пока проблемы с YP не будут устранены.
Решите, где хранить файлы для создания ваших YP maps.
Хранение конфигурации сервера отдельно от обслуживаемой конфигурации
(served configuration) помогает контролировать, какая информация будет
обслуживаться, а какая нет, поэтому использование по умолчанию
/etc
часто является не лучшим выбором.
Единственное неудобство, вызванное изменением исходного каталога, заключается в том, что вы не сможете добавлять, удалять и изменять пользователей и группы в домене YP с помощью таких утилит, как user(8) и group(8). Вместо этого вам придется редактировать файлы конфигурации с помощью текстового редактора.
Чтобы определить исходный каталог, отредактируйте файл
/var/yp/`domainname`/Makefile
и измените переменную
DIR
, например:
DIR=/etc/yp/src/puffynetОписание других параметров для файла
/var/yp/`domainname`/Makefile
можно найти в
Makefile.yp(8).
Например, даже если вы используете дефолтный каталог /etc
,
вам, как правило, не нужны все учетные записи и группы, существующие на
сервере для всех ваших клиентских машин.
В частности, отсутствие защиты учетной записи root и, следовательно,
сохранение конфиденциальности хэша пароля root, рекомендуется с целью
безопасности. Просмотрите значения MINUID
, MAXUID
,
MINGID
и MAXGID
и настройте их в соответствии
с вашими потребностями/планами.
Если все ваши YP-клиенты используют OpenBSD или FreeBSD, исключите (exclude)
зашифрованные пароли из passwd
maps, установив
UNSECURE=""
в /var/yp/`domainname`/Makefile
.
Прежняя практика редактирования файла шаблона /var/yp/Makefile.yp
больше не рекомендуется. Изменения в этом файле влияют на все домены,
инициализированные после изменения, но не влияют на домены,
инициализированные до изменения, так что в любом случае это черевато ошибками:
во-первых, предполагаемые изменения не вступают в силу,
а во-вторых, вы рискуете забыть о них и их влиянии на другие домены, для
которых они никогда и не предназначались.
Создайте source directory и заполните его необходимыми файлами конфигурации.
См. Makefile.yp(8), чтобы
узнать, какие YP maps требуют какие файлы. Для формата отдельных файлов
конфигурации, ознакомьтесь с
passwd(5),
group(5),
hosts(5)
и так далее, а также ознакомьтесь с примерами в /etc
.
Создайте initial version своих YP maps при помощи команд
# cd /var/yp # makeНе переживайте сейчас по поводу сообщений об ошибках от yppush(8). YP-cервер еще не запущен.
Для связи с клиентами YP использует rpc(3) (remote procedure calls, удаленные вызовы процедур), поэтому необходимо включить portmap(8). Используйте для этого rcctl(8).
# rcctl enable portmap # rcctl start portmapНе забывайте об использовании таких функций безопасности YP сервера как securenet(5) или ypserv.acl(5) Но имейте в виду, что оба они обеспечивают только контроль доступа на основе IP. Таким образом, они помогают только до тех пор, пока потенциальные злоумышленники не имеют ни физического доступа к оборудованию сегментов сети, передающих ваш YP-трафик, ни доступа к любому из хостов, подключенных к этим сегментам сети.
Наконец, запустите YP-сервер:
# rcctl enable ypserv # rcctl start ypservЧтобы протестировать ваш только что запущенный сервер, подумайте о том, чтобы сделать его собственным клиентом, следуя инструкциям в первой части следующего раздела. Если вы не хотите, чтобы сервер использовал свои собственные maps, вы можете отключить клиентскую часть после теста при помощи следующих команд:
# rcctl stop ypbind # rcctl disable ypbindПомните, что каждый раз, когда вы изменяете файл, созданный YP map, вы должны заново сгеренировать свои YP maps.
# cd /var/yp # makeЭто обновит все файлы базы данных в
/var/yp/`domainname`
.
Исключением тут является файл ypservers.db
, в котором
перечислены все ведущие и подчиненные сервера YP, связанные с доменом.
Он создается непосредственно при помощи ypinit -m
, а изменяется
при помощи ypinit -u
. Если вы случайно удалили его, при помощи
ypinit -u
вы можете сгенерировать его снова (воссоздать с нуля).
Как и на сервере, вы должны установить доменное имя и включить portmapper:
# echo "puffynet" > /etc/defaultdomain # domainname `cat /etc/defaultdomain` # rcctl enable portmap # rcctl start portmapРекомендуется добавить список YP-серверов в конфиг
/etc/yp/`domainname`
. В противном случае, демон YP-клиента
будет использовать широковещательные рассылки для поиска YP-серверов своего
домена.
Явное указание серверов более надежно и менее уязвимо для атак.
Если вы не настроили никаких slave-серверов, просто поместите имя хоста
главного сервера в /etc/yp/`domainname`
.
Добавьте в автозагрузку (enable) и запустите демон YP-клиента, ypbind(8).
# rcctl enable ypbind # rcctl start ypbindЕсли всё прошло без ошибок, вы сможете отправлять запросы YP-серверу при помощи ypcat(1) и получать назад passwd map.
# ypcat passwd bob:*:5001:5000:Bob Nuggets:/home/bob:/usr/local/bin/zsh ...Еще один полезный инструмент для отладки настройки вашего YP - ypmatch(1).
Вторая часть настройки YP-клиента подразумевает редактирование локальных файлов конфигурации таким образом, чтобы определенные YP maps использовались различными системными средствами. Не все серверы обслуживают все стандартные maps, поддерживаемые операционной системой, некоторые серверы обслуживают дополнительные нестандартные maps, и вы ни в коем случае не обязаны использовать из все. Какая из доступных maps должна или не должна использоваться, и для каких целей, полностью на усмотрение системного администратора хоста-клиента.
Список стандартных YP maps и их стандартное назначение смотрите в Makefile.yp(8).
Если вы хотите включить все учетные записи пользователей из YP-домена, добавьте YP-маркер по умолчанию в master password file и пересоберите базу паролей:
# echo '+:*::::::::' >> /etc/master.passwd # pwd_mkdb -p /etc/master.passwdПодробную информацию о выборочном включении и исключении учетных записей пользователей можно найти в passwd(5). Чтобы проверить, действительно ли работает включение, используйте утилиту id(1).
Если вы хотите включить все группы из YP-домена, добавьте дефолтный YP-маркер в group файл:
# echo '+:*::' >> /etc/groupПодробнее о добавлении пользователей в ту или иную группу сказано в group(5).