Openbsd

2019: OpenBSD 6.5

Во-первых, в OpenBSD 6.5 появилась переносимая версия bgpd, адаптированная для работы в других операционных системах. Во-вторых, Xenocara и tcpdump теперь лишены привилегий суперпользователя, а компоновщиком по умолчанию для amd64 и i386 стал LLD. Для архитектуры mips64 добавлена поддержка сборки с использованием транслятора Clang.

В свою очередь, Clang получил усовершенствованные механизмы блокировки атак с использованием возвратно-ориентированного программирования (ROP). Кроме того, в Clang была улучшена производительность и безопасность при включенном механизме безопасности RETGUARD. Этот механизм предназначен для усложнения процесса выполнения эксплоитов, созданных с помощью заимствованных частей кода и ROP. RETGUARD теперь также используется в качестве защиты стека на amd64 и arm64.

Среди других существенных изменений в OpenBSD 6.5 можно также отметить усовершенствование поддержки MPLS, усиление защиты от кибератак с использованием ROP, а также добавление рекурсивного DNS-сервера unwind и собственной реализации утилиты rsync. Ядро OpenBSD получило детектор неопределенного поведения.

Помимо прочего, новая версия ОС получила обновление для почтового сервера OpenSMTPD. В частности, в smtpd.conf теперь присутствует новый критерий сопоставлений «from rdns». С его помощью сеансы могут выбираться на основе резолвинга обратного DNS.

Resetting the Root Password

passwd(1)

  • Boot into single user mode.
    This part of the process varies depending on the
    platform in use.
    For amd64 and i386, the

    pauses for a few seconds to give you a chance to provide parameters
    to the kernel.
    Here you the flag can be passed to
    boot(8):

    probing: pc0 com0 com1 mem
    disk: hd0+ hd1+
    >> OpenBSD/amd64 BOOT 3.33
    boot> boot -s
    
  • Mount the partitions.
    Both and will need to be mounted
    read-write.

    # fsck -p / && mount -uw /
    # fsck -p /usr && mount /usr
    
  • Change the root password.
    You already have root privileges from being in single user mode,
    so you will not be prompted to provide the current password.

    # passwd
    
  • Boot into multiuser mode.
    This can be done by either pressing CTRL-D to resume the normal boot
    process or by entering .

Страницы руководства

Ниже приведен список наиболее полезных страниц для новых пользователей:

  • afterboot(8)
    — вещи, требующие внимания после первой полной загрузки
  • help(1)
    — помощь для новых пользователей и администраторов
  • hier(7)
    — раскладка файловых систем
  • man(1)
    — отображение страниц руководства
  • adduser(8) и
    rmuser(8)
    — добавление или удаление новых пользователей
  • reboot(8), halt(8) и
    shutdown(8)
    — остановка и перезагрузки системы
  • syspatch(8)
    — загрузка
  • sysupgrade(8)
    — обновление до следующего релиза OpenBSD или нового снапшота
  • dmesg(8)
    — повторный показ сообщений ядра в момент загрузки
  • doas(1)
    — запуск команд от другого пользователя
  • tmux(1)
    — терминальный мультиплексор
  • ifconfig(8)
    — конфигурирование параметров сетевых интерфейсов
  • ftp(1)
    — загрузка файлов из сети (поддерживается FTP/HTTP/HTTPS)
  • login.conf(5)
    — формат файла конфигурации класса входа в систему
  • sendbug(1)
    — отправка сообщения об ошибке

man.openbsd.org

В общем, если вы знаете имя команды или страницы руководства, вы можете
прочитать её, выполнив .
Если вы не знаете имя команды
или не находит страницу руководства,
вы можете выполнить поиск в базе данных страниц руководства, выполнив
или , где
— это вероятное слово, которое
может присутствовать в заголовке страницы, которую вы ищете.

$ apropos "time zone"
tzfile(5) - time zone information
zdump(8) - time zone dumper
zic(8) - time zone compiler
$ man -k cron
cron(8) - clock daemon
crontab(1) - maintain crontab files for individual users
crontab(5) - tables for driving cron
$ man 5 crontab

Security Updates

errataannounce

Getting these fixes can be done in a few different ways:

  • Apply binary patches (available on amd64, arm64, i386)

    The syspatch(8) utility
    can be used to upgrade any files in need of security or reliability fixes
    on a supported OpenBSD release.
    This is the quickest and easiest method to get the base system up to date.

  • Update the system to -stable

    Fetch (or update) your source tree with CVS,
    then recompile the kernel and userland.

  • Patch the affected files individually

    While applying fixes from the errata page typically requires less time
    than a CVS checkout/update and rebuild, there is no universal set of
    instructions to follow.
    Sometimes you must patch and recompile one application, sometimes more.

  • Upgrade the system to -current

    As all fixes are applied to the -current codebase, updating the system
    to the latest is a good way
    to get all the fixes at once.
    However, running -current is not for everyone.

packages

  • Use binary packages (available on amd64, arm64, i386, sparc64)

    Updated binary packages for -release and -stable systems are provided
    to address security issues or for other major fixes.
    Simply call pkg_add(1) with
    the flag to get the new files.

  • Use the -stable ports tree

    Fetch (or update) your ports tree,
    run the script to
    list any packages in need of rebuilding, and issue
    in the affected port directory.
    In some cases, existing ports will need to be uninstalled before
    rebuilding.

  • Upgrade the system to -current

    Binary packages for -current are rebuilt on a regular basis, and these
    new packages will include any security fixes.

ports-changes

Multibooting

fdisk(8)

If you are adding OpenBSD to an existing system, you will probably need to
create some free space before installing OpenBSD.
In addition to your existing system’s native tools,
gparted
may be useful for deleting or resizing existing partitions.
Preferably use one of the four primary MBR partitions for booting OpenBSD.
Extended partitions may not work.

rEFInd is reported to usually
work.
GRUB is reported to usually
fail.
In either case, you are completely on your own.

Windows

this articleEasyBCD

You will need a copy of your OpenBSD install’s
.
You can copy it to a file using a process similar to:

# dd if=/dev/rsd0a of=openbsd.pbr bs=512 count=1

Once OpenBSD’s PBR is copied to the Windows system partition, you need a shell
with administrative privileges to run the following commands:

C:\Windows\system32> bcdedit /create /d "OpenBSD/i386" /application bootsector
The entry {0154a872-3d41-11de-bd67-a7060316bbb1} was successfully created.
C:\Windows\system32> bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} device boot
The operation completed successfully.
C:\Windows\system32> bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} path \openbsd.pbr
The operation completed successfully.
C:\Windows\system32> bcdedit /set {0154a872-3d41-11de-bd67-a7060316bbb1} device partition=c:
The operation completed successfully.
C:\Windows\system32> bcdedit /displayorder {0154a872-3d41-11de-bd67-7060316bbb1} /addlast
The operation completed successfully.

Системные демоны (System Daemons)

rc(8)rc.d(8)

Большинство демонов и сервисов, которые поставляются вместе с OpenBSD,
контролируются во время загрузки системы при помощи переменных, установленных в
/etc/rc.conf.
В этом файле присутствуют строки подобной этой:

httpd_flags=NO

httpd(8)rc(8)

Не редактируйте файл rc.conf(8).
Вместо этого используйте утилиту rcctl(8)
для внесение изменений в .
Это упрощает процесс обновления, так как все изменения находятся в одном файле,
который не затрагивается во время обновления.

Например, чтобы запустить демон apmd(8)
для CPU scaling, можно сделать:

# rcctl enable apmd
# rcctl set apmd flags -A
# rcctl start apmd

Я забыл свой пароль root

passwd(1)

  • Загрузка в однопользовательском режиме.
    Эта часть процесса различается для разных
    платформ.
    Для amd64 и i386, на

    есть пауза для введения параметров ядра.
    В примере ниже видно как мы передали флаг для
    boot(8):

    probing: pc0 com0 com1 mem
    disk: hd0+ hd1+
    >> OpenBSD/amd64 BOOT 3.33
    boot> boot -s
    
  • Монтирование разделов.
    Оба раздела и должны быть подмонтированны
    в режиме чтения и записи.

    # fsck -p / && mount -uw /
    # fsck -p /usr && mount /usr
    
  • Запустите passwd(1)
    для смены пароля root.

    Поскольку вы загрузились в однопользовательском режиме, у вас уже есть
    права root, поэтому пароль вводить не портебуется.

  • Загрузка в многопользовательском режиме.
    Это можно сделав нажав «CTRL-D» для перехода в нормальный режим загрузки,
    или выполнив команду
    reboot(8).

Использование NFS

В этом разделе приводятся шаги по простой установке NFS.
В этом примере описывается NFS-сервер в LAN с клиентами из LAN.
Здесь не обсуждаются вопросы безопасности NFS. Мы считаем, что вы уже установили
фильтрацию пакетов или другую защиту с помощью фаервола для предотвращения
доступа извне.

Настройка NFS сервера

portmap(8)mountd(8)nfsd(8)

# rcctl enable portmap mountd nfsd

В этом примере наш сервер имеет адреc .
Этот NFS-сервер обслуживает только клиентов из своей сети.
Первый шаг в установке NFS — настройка файла
exports(5):

$ cat /etc/exports
/docs -alldirs -ro -network=10.0.0 -mask=255.255.255.0

Теперь можно запустить сервисы на сервере.

# rcctl start portmap mountd nfsd
# rcctl reload mountd

Подключение ФС через NFS

mount(8)mount_nfs(8)

Для монтирования ФС , которая находится на машине ,
к себе в , сделайте:

# mount -t nfs 10.0.0.1:/docs /mnt

fstab(5)

# echo '10.0.0.1:/docs /mnt nfs ro,nodev,nosuid 0 0' >> /etc/fstab

fsck(8)

При обращении к монтируемому каталогу от пользователя root, сервер
автоматически отображает root доступ к имени пользователя
и группе

Это важно знать при рассмотрении прав доступа
к файлам. Например, возьмем файл с таким набором прав:

-rw-------    1 root     wheel           0 Dec 31 03:00 _daily.B20143

Пользователи и группы, которые должны иметь root-доступ, настраиваются при помощи
файла exports(5) на стороне сервера.

Проверка состояния NFS

rpcinfo(8)

$ rpcinfo -p 10.0.0.1
   program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp    633  mountd
    100005    3   udp    633  mountd
    100005    1   tcp    916  mountd
    100005    3   tcp    916  mountd
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs

showmount(8)nfsstat(1)

Установка системы

Установка OpenBSD штатно возможна многими способами, в том числе: с компакт-диска, с USB-флешки, с дискеты, а также по сети посредством PXE. Из-за ограничений отдельных аппаратных платформ некоторые способы установки могут быть недоступны. OpenBSD — одна из немногих популярных современных операционных систем общего назначения, не обладающей встроенным графическим и/или локализованным инсталлятором. Штатный инсталлятор представляет собой большой sh-скрипт, с возможностью автоматической установки.
При загрузке системы с установочного носителя, перед пользователем появляется экран с тремя пунктами:

  • инсталляция (Install)
  • обновление (Upgrade)
  • выход в командную среду (Shell)

Таким образом установочный носитель можно использовать в качестве загрузочного носителя при возникновении неполадок в компьютере.
Процесс установки разделяется на три этапа:

  • разметка диска
  • выбор пакетов, их распаковка и запись на диск
  • минимальные пост-инсталляционные настройки

Полная установка OpenBSD разбита на некоторое количество компонентов. Не каждое приложение требует наличия всех компонентов. Вот краткое описание:

  • bsd — Это ядро. (Необходимо)
  • bsd.mp — Ядро для многопроцессорных (SMP) машин
  • bsd.rd — Ядро с виртуальным RAM-диском
  • base.tgz — Базовая система OpenBSD (Необходимо)
  • etc.tgz — Содержит все файлы в /etc (Необходимо)
  • comp.tgz — Содержит компиляторы и необходимые для разработки инструменты, заголовочные файлы и библиотеки. (Рекомендуется)
  • man.tgz — Руководства (маны) (Рекомендуется)
  • misc.tgz — Разная информация, документация по настройке
  • game.tgz — Игры
  • xbase.tgz — Базовая установка X11
  • xetc.tgz — Содержит конфигурационные файлы /etc/X11 и /etc/fonts
  • xfont.tgz — Содержит сервер шрифтов и шрифты X11
  • xserv.tgz — Серверы X11
  • xshare.tgz — Руководства, установки локали, заголовочные файлы и др. для X

Процесс загрузки в amd64

boot_amd64(8)

  1. Master Boot Record (MBR) и GUID Partition Table (GPT).
    Подробную информацию можно найти в
    fdisk(8).
  2. Partition Boot Record (PBR).
    Первые 512 байт OpenBSD раздела на загрузочном диске содержат first
    stage boot loader
    biosboot(8).
    Он устанавливается при помощи утилиты
    installboot(8).
  3. Second stage boot loader .
    PBR запускает программу boot(8),
    задача которой — поиск и загрука ядра.
Using drive 0, partition 3.                      <- MBR
Loading......                                    <- PBR
probing: pc0 com0 com1 mem    <- /boot
disk: hd0+ hd1+
>> OpenBSD/amd64 BOOT 3.33
boot>
booting hd0a:/bsd 4464500+838332 =0x56cfd0
entry point at 0x100120


Copyright (c) 1982, 1986, 1989, 1991, 1993       <- Kernel
        The Regents of the University of California.  All rights reserved.

Disk Partitioning

Unlike some other operating systems, OpenBSD encourages users to split their
disk into a number of partitions, rather than just one or two large ones.
Some of the reasons for doing so are:

  • Security:
    Some of OpenBSD’s default security features rely on filesystem
    such as
    , , or
    .
  • Stability:
    A user or a misbehaved program can fill a filesystem with garbage if they
    have write permissions for it.
    Your critical programs, which hopefully run on a different filesystem,
    do not get interrupted.
  • fsck(8):
    You can mount partitions that you never or rarely need to write to as
    most of the time, which will eliminate the need for
    a filesystem check after a crash or power interruption.

hier(7)

  • Since some packages need to be started from a
    filesystem, it is recommended to have a separate
    partition.
  • Very small partitions can become troublesome when you need to upgrade.
  • A partition can be nice.
    New version of the OS?
    Leave your partition untouched, wipe and reload
    everything else.
  • You may also want to create an
    for backing up your
    root filesystem.
  • A system exposed to the internet should have a separate
    and maybe even a separate .
  • Compiling some ports from source can take
    huge amounts of space on your and
    partitions.

Разрабатываемые Snapshot’ы

Последний доступный snapshot это все, что обычно необходимо для запуска -current.
Если вы хотите собрать все из исходников, используйте только последний доступный
snapshot.
Этого можно добиться при помощи опции утилиты
sysupgrade(8).
Проверьте страницу о
последних -current и использования snapshots,
чтобы ознакомиться с последними изменениями конфигурации или дополнительными
шагами, необходимыми для сборки из исходников.

Не исключено, что вы обнаружите ошибки в snapshots.
Собственно это и является причиной, почему они собираются и доступны всем для
скачивания.
Если вы нашли баг, не стесняйтесь сообщить о нем,
если этого еще не сделал кто-то другой.

Network Configuration

installation process

Identifying and Setting Up Network Interfaces

dmesg(8)

fxp0 at pci0 dev 10 function 0 "Intel 82557" rev 0x0c: irq 5, address 00:02:b3:2b:10:f7
inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4

fxp(4)

The ifconfig(8) utility
will show what network interfaces have been identified on a system.

$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33200
        index 3 priority 0 llprio 3
        groups: lo
        inet 127.0.0.1 netmask 0xff000000
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:02:b3:2b:10:f7
        index 1 priority 0 llprio 3
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet 10.0.0.38 netmask 0xffffff00 broadcast 10.0.0.255
enc0: flags=0<>
        index 2 priority 0 llprio 3
        groups: enc
        status: active
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33200
        index 4 priority 0 llprio 3
        groups: pflog

The netstart(8) script configures
network interfaces at boot time using
hostname.if(5) files, where
«if» is replaced by the full name of each interface.
The example above would use the file , containing
the following options:

inet 10.0.0.38 255.255.255.0
# ifconfig fxp0 10.0.0.38 255.255.255.0
  • enc(4)
    — Encapsulating interface
  • lo(4)
    — Loopback interface
  • pflog(4)
    — Packet Filter logging interface

ifconfig(8)

DNS Resolution

resolv.conf(5)resolvd(8)

$ cat /etc/resolv.conf
search example.com
nameserver 125.2.3.4
nameserver 125.2.3.5
lookup file bind

hosts(5)

Activating the Changes

netstart(8)

# sh /etc/netstart

ifconfig(8)

Even though it’s possible to completely reconfigure networking on a running
OpenBSD system, a reboot is recommended after any significant changes.

Checking Routes

netstat(1)route(8)

$ netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags     Refs     Use    Mtu  Prio Iface
default            10.0.0.1           UGS         4       16      -    12 fxp0
224/4              127.0.0.1          URS         0        0  32768     8 lo0
127/8              127.0.0.1          UGRS        0        0  32768     8 lo0
127.0.0.1          127.0.0.1          UH          2       15  32768     1 lo0
10.0.0/24          link#1             UC          1        4      -     4 fxp0
10.0.0.1           aa:0:4:0:81:d      UHL         1       11      -     1 fxp0
10.0.0.38          127.0.0.1          UGHS        0        0      -     1 lo0

$ route show
Routing tables

Internet:
Destination        Gateway            Flags     Refs     Use    Mtu  Prio Iface
default            10.0.0.1           UGS         4       16      -    12 fxp0
base-address.mcast localhost          URS         0        0  32768     8 lo0
loopback           localhost          UGRS        0        0  32768     8 lo0
localhost          localhost          UH          2       15  32768     1 lo0
10.0.0/24          link#1             UC          1        4      -     4 fxp0
10.0.0.1           aa:0:4:0:81:d      UHL         1       11      -     1 fxp0
10.0.0.38          localhost          UGHS        0        0      -     1 lo0

Setting Up Aliases on an Interface

hostname.if(5)

In this example, two aliases are added to the interface ,
which was configured as with a netmask of
.

$ cat /etc/hostname.dc0
inet 192.168.0.2 255.255.255.0
inet alias 192.168.0.3 255.255.255.255
inet alias 192.168.0.4 255.255.255.255

Сборка релиза

Инструкции по сборке релиза находятся в
release(8).
Этот процесс использует бинарники в , процесс создания
которых описывался выше.

Замечание: если вы захотите использовать эти файлы для установки или обновлении
через/используя HTTP(S), создайте файл , который будет
содержать список всех файлов, вошедьших в новый релиз.

# ls -nT > index.txt

signify(1)

Настройка вашей системы

Создайте ФС на с установленной
mount(8) опцией.

Соответствующая fstab(5)
строка должна быть похожа на эту:

c73d2198f83ef845.m /dest ffs rw,nosuid,noperm 1 2
# chown build /dest
# chmod 700   /dest
# mkdir /dest/{,x}base

Использование noperm mfs раздела

mfs

swap /dest mfs rw,nosuid,noperm,-P/var/dest,-s1.5G,noauto 0 0
# mkdir -p /var/dest/{,x}base
# chown -R build /var/dest
# chmod -R 700   /var/dest
# mount /dest

Использование S/Key

md5sha1rmd160

Настройка S/Key

# skeyinit -E

skeyinit(1)

$ skeyinit
Password:

Enter new secret passphrase:
Again secret passphrase:

ID ericj skey is otp-md5 100 oshi45820
Next login password: HAUL BUS JAKE DING HOT HOG

otp-md5(1)

Генерация S/Key паролей

skeyinfo(1)

$ skeyinfo -v
otp-md5 95 oshi45820
$ otp-md5 95 oshi45820
Enter secret passphrase:
NOOK CHUB HOYT SAC DOLE FUME
$ 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

Использование S/Key для входа в систему

$ 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
$

История и распространение

Использование дистрибутивов BSD, в процентах от общего количества пользователей

В декабре 1994 года, Тео де Раадта, сооснователя NetBSD, попросили уйти в отставку и освободить занимаемую им должность старшего разработчика и члена основной команды NetBSD. Причины этого не вполне ясны, хотя есть основания полагать, что это связано с личными столкновениями внутри команды и с его почтовой перепиской.
В октябре 1995 года Тео де Раадт основал OpenBSD, новый проект, форкнутый от NetBSD 1.0. Первый выпуск OpenBSD 1.2 был сделан в июле 1996 года, а затем в октябре того же года вышла OpenBSD 2.0. С тех пор проект придерживался графика и выпускал релизы каждые шесть месяцев, каждый из которых поддерживается в течение одного года. Последний выпуск, OpenBSD 5.9, появился 29 марта 2016.
25 июля 2007, Боб Бек разработчик OpenBSD объявил о создании OpenBSD Foundation, некоммерческой корпорации которая будет действовать в качестве единой точки контакта для лиц и организаций, которым требуется юридическое лицо, с кем можно иметь дело, когда они хотят поддержать OpenBSD.
Трудно сказать, насколько широко используется OpenBSD, её разработчики не собирают и не публикуют статистику её использования, однако в сентябре 2005 года опрос, проведённый среди пользователей BSD, показал, что 32.8% пользователей так же использовали и OpenBSD. Таким образом, OpenBSD является второй по популярности ОС, среди систем, основанных на BSD, после FreeBSD.

Установка пакетов

pkg_add(1)

# pkg_add rsync
Ambiguous: choose package for rsync
a       0: <None>
        1: rsync-3.1.2p0
        2: rsync-3.1.2p0-iconv
Your choice:

12

Можно сразу указать в одной строке список имен пакетов, которые затем будут
по очереди установленны вместе с зависимостями.
Можно так же указать путь к пакету, который надо установить, будь это локальный
файл или адрес URL. Поддерживаемыми URL являются http, https, ftp и scp.

Для некоторых пакетов в процессе установки предоставляется дополнительная
информация, касательно его конфигурации или специфики запуска.

# pkg_add jove
jove-4.16.0.73p0: ok
--- +jove-4.16.0.73p0 -------------------
See /usr/local/share/jove/README about changes to /etc/rc or
/etc/rc.local so that the system recovers jove files
on reboot after a system crash

Для надежности, если вы устанавливаете пакет, который уже устанавливали ранее
и удалили, конфигурационные файлы, которые были изменены, не будут перезаписаны.
Это относится и к обновлению пакетов.

Иногда вы можете столкнуться с ошибкой как в этом примере:

# pkg_add xv
xv-3.10ap4:jpeg-6bp3: ok
xv-3.10ap4:png-1.2.14p0: ok
xv-3.10ap4:tiff-3.8.2p0: ok
Can't install xv-3.10ap15 because of libraries
|library X11.16.1 not found
| not found anywhere
Direct dependencies for xv-3.10ap15 resolve to png-1.6.31 jasper-1.900.1p5 tiff-4.0.8p1 jpeg-1.5.1p0v0
Full dependency tree is png-1.6.31 tiff-4.0.8p1 jasper-1.900.1p5 jpeg-1.5.1p0v0

Что можно проверить:

  • Система установленна не полностью: вы не установили файл, содержащий
    данную библиотеку. Просто
    , содержащий необходимую
    библиотеку.
  • Ваша система (или пакет) устарели: у вас слишком старая версия необходимой
    библиотеки. Удостовертесь, что и система и устанавливаемый в ней пакет,
    последней версии.
  • Если вы используете -current, снапшот базовой части системы и пакет могут
    быть не синхронизованы. Подождите, пока зеркала не синхронизируются, и
    попробуйте снова.

Миграция на OpenBSD

хорошей книге

Вот некоторые из часто встречающихся различий между OpenBSD и другими
вариантами Unix.

  • OpenBSD — это Unix в стиле BSD, следующий дизайну 4.4BSD. Linux и Solaris
    являются системами в стиле System V. Некоторые Unix-подобные операционные
    системы смешивают характеристики System V и BSD. Распространенным местом,
    где это вызывает путаницу, являются .
    OpenBSD использует систему rc(8).
  • OpenBSD — это законченная система. Это не ядро плюс утилиты, которые
    можно обновлять отдельно друг от друга.
  • OpenBSD поддерживает дерево портов для
    предоставления стороннего программного обеспечения.
    Предварительно скомпилированные пакеты создаются
    и распространяются командой портов OpenBSD.
  • OpenBSD использует CVS для отслеживания изменений исходного кода. OpenBSD
    был первым проектом, в котором появился анонимный
    CVS, который позволяет каждому в любое время извлечь полное дерево исходных
    текстов для любой версии OpenBSD.
    Также есть веб-интерфейс.
  • OpenBSD проходит тщательный и непрерывный аудит безопасности для
    обеспечения качества и безопасности кода.
  • OpenBSD не поддерживает файловых систем с журналированием.
    Вместо этого мы используем функциональность
    (soft updates)
    Fast File System (FFS).
  • OpenBSD поставляется с фильтром сетевых пакетов
    (Packet Filter (PF)). Это означает, что трансляция сетевых адресов
    (Network Address Translation), очереди и фильтрация обрабатываются с помощью
    pfctl(8),
    pf(4) и
    pf.conf(5).
  • Командной оболочкой OpenBSD по умолчанию является
    ksh, основанная на общедоступной
    оболочке Корна (Korn Shell). Оболочки, такие как bash и многие другие, могут
    быть добавлены из пакетов.
  • Устройства именуются по имени драйвера, а не по типу.
    Другими словами, нет устройств и .
    Это будет для карты Intel PRO/1000 Ethernet,
    для устройства Broadcom BCM57xx или BCM590x Ethernet,
    для беспроводного устройства RaLink и т. Д.
  • OpenBSD/i386, amd64 и несколько других платформ используют
    двухслойную систему разбиения диска, где первый уровень —
    это раздел видимый в BIOS c помощью ,
    а второй — .
  • Некоторые другие операционные системы рекомендуют вам настраивать ядро
    для вашей машины. Пользователям OpenBSD рекомендуется просто использовать
    стандартное ядро GENERIC, предоставляемое и протестированное разработчиками.

Использование fdisk

fdisk(8)

Увидеть таблицу разделов на диске можно так:

# fdisk sd0
Disk: sd0       geometry: 553/255/63 
Offset: 0       Signature: 0xAA55
         Starting       Ending       LBA Info:
 #: id    C   H  S -    C   H  S 
------------------------------------------------------------------------
 0: 12    0   1  1 -    2 254 63  Compaq Diag.
 1: 00    0   0  0 -    0   0  0  unused
 2: 00    0   0  0 -    0   0  0  unused
*3: A6    3   0  1 -  552 254 63  OpenBSD

На полностью чистом диске должен быть boot code в MBR (master boot record), прежде
чем его можно будет использовать для загрузки.
Обычно все, что вам нужно сделать для его создания, это:

# fdisk -iy sd0

При помощи можно активировать интерактивный режим редактирования:

# fdisk -e sd0
Enter 'help' for information
fdisk: 1>

Если в вашей системе вы специально создали раздел для maintenance или диагностики,
рекомендуется его не трогать или создать его перед установкой OpenBSD.

Диски и разделы

платформы

Определение дисков

  • wd(4):
    IDE диски: IDE, SATA, MFM или ESDI диски, или флешки, подключенные
    к wdc(4) или
    pciide(4) интерфейсу.
  • sd(4):
    SCSI диски: устройства, использующие SCSI комманды, USB диски, SATA диски
    подключенные к ahci(4) интерфейсу,
    и группы дисков (disk arrays), подключенные к RAID контроллеру.

Разделы и файловые системы (ФС)

  • disklabel(8) раздел,
    который также называют разделом со своей ФС(filesystem partitions).
  • fdisk(8) раздел, иногда
    называемый Master Boot Record (MBR) разделом.
  • :
    Раздел загрузочного диска является вашим root разделом.
  • :
    Раздел загрузочного диска является вашим swap разделом.
  • :
    Раздел всегда весь диск (entire disk).

newfs(8)

# newfs sd2a

opendev(3)

Уникальные disklabel идентификаторы (DUID)

fstab(5)diskmap(4)

$ sysctl hw.disknames
hw.disknames=wd0:bfb4775bb8397569,cd0:,wd1:56845c8da732ee7b,wd2:f18e359c8fa2522b

Pre-Installation Checklist

  • Machine name
  • Hardware installed and available:
    • Verify compatibility with your hardware.
      You may want to consult the platform-specific installation notes,
      especially if you’re using one of the non-x86 CPU architectures.
      They contain detailed instructions and any possible caveats:
    • If wireless internet is your only option, does your card require
      additional firmware?
      If so, you’ll need to manually download it to a USB drive or similar
      device, then use
      fw_update(1)
      to enable it after OpenBSD is installed.
  • Install method to be used
  • Desired disk layout:
    • Does existing data need to be saved elsewhere?
    • Will OpenBSD coexist on this system with another OS?
      If so, how will each system be booted?
      Will you need to install a boot manager?
    • Will the entire disk be used for OpenBSD, or do you want to
      keep an existing partition/OS? (or space for a future one)
    • How do you wish to sub-partition the OpenBSD part of your disk?
    • Do you want ?
  • Network settings, if not using DHCP:
    • Domain name and DNS address
    • IP address and subnet masks for each NIC
    • Gateway address

Об OpenBSD

OpenBSDцелями

Какие причины использовать OpenBSD?

  • OpenBSD запускается на множестве различных аппаратных платформ.
  • Многие профессионалы в области безопасности считают,
    что OpenBSD самая безопасная
    UNIX-подобная операционная система; это является результатом
    непрекрающегося тщательного аудита исходных кодов на предмет уязвимостей.
  • OpenBSD это полнофункциональная UNIX-подобная операционная система,
    доступная в исходном и двоичном виде бесплатно.
  • OpenBSD интегрирует передовые технологии безопасности, подходящие для
    построения сетевых экранов и
    частных сетевых сервисов в распределённом окружении.
  • OpenBSD извлекает выгоду из сильного постоянного развития во многих
    областях, предлагая возможности работать с появляющимися технологиями и
    международным сообществом разработчиков и конечных пользователей.
    OpenBSD benefits from strong ongoing development in many areas, offering
    opportunities to work with emerging technologies and an international
    community of developers and end users.
  • OpenBSD пытается свести к минимуму необходимость настройки.
    Для подавляющего большинства пользователей OpenBSD просто работает на их
    аппаратном обеспечении для их нужд.

Насколько OpenBSD свободна?

здесь

Разработчики OpenBSD поддерживают проект в основном из собственных средств.
Это включает в себя время, потраченное на непосредственно разработку проекта,
оборудование, используемое для поддержки множества портов, сетевые ресурсы,
используемые для распространения OpenBSD, и время на ответы на
вопросы и изучение сообщений об ошибках пользователей.
Разработчики OpenBSD не являются независимо богатыми, и даже небольшой
вклад времени, оборудования и ресурсов имеет большое значение.

  • X.org
  • LLVM/Clang
  • GCC
  • Perl
  • NSD and
    Unbound
  • ncurses
  • binutils
  • gdb
  • libfido2

инновацийпакетов

2017: Функция рандомизации ядра

В июле 2017 года появилась информация о том, что разработчики OpenBSD тестируют новую функцию операционной системы, которая позволит радикально повысить ее защищенность от кибератак — систему рандомизации ядра.

Технология, получившая название KARL (Kernel Address Randomized Link — Рандомизированные связи адресов ядра), подразумевает, что при каждой перезагрузке или каждом обновлении в случайном порядке формируется новый двоичный файл ядра на основе подключения объектных модулей и runtime-компонентов. В результате указатели между функциями и данными ядра каждый раз оказываются новыми, а значит, новым оказывается и само ядро.

Рандомизация OpenBSD: при каждой загрузке ОС ядро будет «новым»

Технологию KARL разрабатывает сам Тео де Раадт, основатель проекта OpenBSD. KARL существенным образом отличается от технологии ASLR (рандомизации адресного пространства), применяемого во многих современных операционных системах в качестве одного из средств защиты от вредоносного ПО. При использовании ASLR меняются адресные пространства памяти, так что, например, эксплойты, нацеленные на определенные адреса в оперативной памяти машины, не могут их найти и, соответственно, оказываются бессильны.

В случае с KARL каждый раз меняется структура всего ядра, а не только памяти. Эта функция разрабатывается в течение последних двух месяцев, и уже доступна в тестовых релизах OpenBSD 6.1, говорится в сообщении от 4 июля 2017 года.

В Linux 4.12 с прошлой недели активна по умолчанию система рандомизации адресного пространства ядра (Kernel Address Space Layout Randomization — KASLR). Аналогичная система давно уже применяется в Windows.

Ключевая разница между KARL и KASLR заключается в том, что в первом случае в одну и ту же область памяти загружаются разные версии двоичного файла ядра, а во-втором — одно и то же ядро загружается в случайную область памяти.

KARL выглядит более эффективным средством защиты ядра, чем даже KASRL, — считает Георгий Лагода, генеральный директор компании SEC Consult Services. — В этом случае все ключевые функции ОС рандомизируются и киберзлоумышленникам и вредоносному ПО окажется намного сложнее определить адрес интересующей их «мишени» — он будет каждый раз разным.

Будет ли методика KARL реализована в будущих версиях Linux или Windows, пока неизвестно. На данный момент она не применяется нигде, кроме OpenBSD.

Идеология OpenBSD

Проект OpenBSD известен высшим качеством пользовательской документации, которая по праву занимает первое место среди всех систем, основанных на BSD, хотя каждая из них имеет отличную документацию. При создании OpenBSD, основатель проекта решил, что исходные коды системы должны быть легко доступны для всех и что любой должен иметь возможность получить к ним доступ в любое время, поэтому он совместно с помощником создал первый публичный анонимный CVS сервер. В то время, традиционно, доступ к исходному коду больший программ и программных систем имелся лишь у небольшой команды разработчиков. Основатели проекта пришли к выводу, что такая политика идёт вразрез с философией открытого исходного кода и неудобна для соучастников. Поэтому такой шаг стал по настоящему революционным и позволил пользователям играть более активную роль в разработке системы, дал понять веру проекта в открытый и публичный доступ к текстам исходного кода операционной системы.
OpenBSD не включает в себя закрытые бинарные драйвера в дереве исходных кодов и не допускает соглашения о неразглашении.
Так как OpenBSD базируется в Канаде, никакие экспортные ограничения США в области криптографии не применяются, позволяя разработчикам в полной мере использовать современные алгоритмы для шифрования. Например, пространство подкачки делится на небольшие секции, и каждая секция шифруется своим собственным ключом, гарантируя, что конфиденциальные данные не просачиваться в незащищенной части системы.
OpenBSD активно использует случайные данные и поведение приложений, что делает их менее предсказуемыми и более защищёнными, более трудными для атаки. Например PID’ы создаются и назначаются процессам случайно, системный вызов bind() использует случайные номера портов, файлы создаются со случайным параметром inode и IP-датаграммы имеют случайные идентификаторы. Этот подход также позволяет обнаруживать ошибки в работе ядра и пользовательского пространства.

Политика команды OpenBSD по открытости и качеству исходных кодов распространяется также и на документацию аппаратной части.
Целью проекта OpenBSD является создание максимально открытой системы, поэтому все новые программы, которые включаются в операционную систему обязательно должны распространяться по лицензии MIT или BSD. Широко используется GNU General Public License имеет слишком ограничительный характер по сравнению с ними.

С этим фактом связаны проверки исходного кода утилиты IPFilter, в ходе которой обнаружилось, что код в более чем сотне файлов оказался нелицензирован или лицензирован с условиями, неустраивающими команду разработчиков OpenBSD. В итоге некоторые фрагменты кода были удалены, остальные были заменены. Также во время этой проверки было удалено всё программное обеспечение, разрабатываемое Дэниэлом Бернштейном.
После этого команде разработчиков пришлось написать программное обеспечение с нуля или использовать ПО с подходящей лицензией. Разработчики OpenBSD также заменили инструменты лицензированные GPL (такие как diff, grep и pkg-config) их BSD эквивалентами.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: