Введение в OpenBSD::Журнал СА 6.2003
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Контакты
   

  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
20.12.2019г.
Просмотров: 5080
Комментарии: 0
Dr.Web: всё под контролем

 Читать далее...

04.12.2019г.
Просмотров: 6322
Комментарии: 0
Особенности сертификаций по этичному хакингу

 Читать далее...

28.05.2019г.
Просмотров: 7577
Комментарии: 2
Анализ вредоносных программ

 Читать далее...

28.05.2019г.
Просмотров: 7901
Комментарии: 1
Микросервисы и контейнеры Docker

 Читать далее...

28.05.2019г.
Просмотров: 6954
Комментарии: 0
Django 2 в примерах

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Введение в OpenBSD

Архив номеров / 2003 / Выпуск №6 (7) / Введение в OpenBSD

Рубрика: Администрирование /  Продукты и решения

ДЕНИС НАЗАРОВ

Введение в OpenBSD

Проект берет свое начало из системы NetBSD, когда один из четырех главных разработчиков проекта Theo de Raadt (Тео де Радт) решил создать свою собственную реализацию UNIX-подобной системы, делая максимальный упор на безопасность. OpenBSD унаследовала из NetBSD в основном только мультиплатформенность. Остальное же было написано с нуля или кардинально переделано. Вся переписка, предшествующая появлению OpenBSD, находится тут: http://zeus.theos.com/deraadt/coremail.html. Код системы полностью открыт и каждый желающий может помочь с разработкой системы. В процессе работы над OpenBSD был проделан огромный труд. Разработчики затратили много времени, выявляя и устраняя слабые места в системе защиты OpenBSD.

Одна удаленная уязвимость в системе за 7 лет при инсталляции «по умолчанию».

  • В системе широко используется кодирование данных.
  • В состав системы входит KerberosIV, KerberosV.
  • Большинство идентификаторов (таких, например, как PID) генерируется по случайному закону.
  • Полностью контролируется использование каталога /tmp.
  • Полностью контролируется работа с буферами данных, в частности отслеживается момент их переполнения.
  • Устранены недостатки работы с протоколами при копировании файлов, маршрутизации, использовании зарезервированных портов и прочее.
  • Система активно противодействует незаконным попыткам сбора информации (OS fingerprinting).
  • Используется новый системный вызов mkstemp (и прочее), улучшающий обработку каталога /tmp.
  • IP-фильтры являются стандартными компонентами ядра.
  • В ядро включены средства кодирования IP Photuris.
  • Модифицированы средства обработки сигналов, затрагивающих ядро.
  • Устранены нарушения защиты в strcpy и других системных вызовах.
  • Присутствует контроль за переполнением переменных окружения.
  • В Kerberos устранены ошибки, связанные с переполнением буферов.
  • В libc включены средства кодирования.
  • В системе используются гибкие механизмы кодирования паролей (Blowfish и прочее).
  • В стандартные утилиты встроена поддержка S/Key.
  • Выбор портов для прикладных программ осуществляется по случайному закону.
  • В систему входит мощнейший пакетный фильтр PF (OpenBSD’s Packet Filter).
  • Контроль за всеми обращениями к ядру приложений при помощи systrace.
  • В компилятор (GCC), начиная с версии 3.3, встроена защита propolicy.
  • Большинство стандартных сервисов, предоставляемых системой, запускаются в изолированном пространстве (chroot).

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

  • RELEASE – релиз, система, которую вы получаете, устанавливая OpenBSD с официальных CD-ROM или других источников.
  • STABLE – система, на которую наложены все необходимые исправления и выполнены все рекомендации по настройке.
  • CURRENT – текущая, сырая система. В нее постоянно вносятся исправления, улучшения, добавляется новое ПО и прочее. Из этой версии в итоге вытекает новая система RELEASE.

На одном из серверов, которые я контролирую, была установлена OpenBSD CURRENT версии 3.0 и она успешно обновляется и по сей день. Использование ветки STABLE предпочтительней на production-серверах, где важна стабильность и надежность. Однако по собственному опыту могу сказать, что CURRENT ничуть не хуже STABLE, а порой даже лучше, удерживает лишь мысль «вдруг на CURRENT что-то перестанет работать?»

После установки системы можно сразу заметить «чистоту» системы. Большинство сервисов отключено (но установлено!), конфигурационные файлы дают понять, что система уже довольно жестко настроена. Отличный ход OpenBSD team – это страница мануала afterboot (man afterboot), на которой очень хорошо описано, что нужно сделать сразу после установки системы, чтобы привести ее в идеальное состояние.

Система очень компактна, после установки она заняла у меня всего 210 Mб без системы X Windows. При этом вы получаете полноценную систему с компилятором, которая готова служить вам верой и правдой с этой же минуты.

Очевидные для меня минусы системы:

  • Отсутствие поддержки SMP (symmetric multiprocessor), но в данный момент уже есть проект, который разрабатывает поддержку SMP для i386 и Sparc.
  • Отсутствие поддержки некоторых RAID-массивов.
  • Отсутствие поддержки некоторых сетевых карт (хотя эта проблема решилась портированием драйвера из FreeBSD).

OpenBSD часто используется на границах сети как межсетевой экран (firewall) и/или роутер (router). Система обладает мощнейшим пакетным фильтром и интегрированным контролем полосы пропускания. Использование OpenBSD также обусловлено низким приростом удаленных уязвимостей, делая ее надежным, дешевым и гибким решением.

Инсталляция системы

Хорошо, приступим к инсталляции данной прелести на наш подопытный сервер. Сразу оговорюсь про железо. P4 1,75 Ггц / 1 Гб RAM / 80 Гб HDD / Intel-Ethernet Express Pro 100 Мб/с. Да, железо неслабое, но ставлю на то, что есть. По поводу работы OpenBSD на более «плохом» железе можно смело ответить «Да!». У меня в руках 3 диска:

  • Базовый инсталляционный диск.
  • Набор заранее скомпилированного ПО для системы (Packages).
  • Дополнительное ПО для других платформ (Sparc, Alpha…).

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

  • Имя будущей машины (hostname).
  • Совместимость всего hardware с системой.
  • Метод установки (CD-ROM, FTP…).
  • Разметку диска.
  • Сетевые настройки, если вы не собираетесь использовать DHCP. Имя домена (domain name), сервера имен (DNS servers), IP-адрес, сетевую маску для ваших сетевых карт и шлюз (gateway).
  • Собираетесь ли вы использовать систему X-Windows.

Отлично, включаем в BIOS загрузку с CD-ROM, вставляем первый диск и перегружаемся. Дальше вы видите нечто вроде:

rootdev=0x1100 rrootdev=0x2f00 rawdev=0x2f02

erase ^?, werase ^W, kill ^U, intr ^C, status ^T

(I)nstall, (U)pgrade or (S)hell? I

Что это значит:

  • Install – полная установка системы с записью всех файлов и каталогов, созданием новой разметки диска (хотя если диск размечен уже был, можно оставить как есть) и выполнению всех процедур установки.
  • Upgrade – установка только «install files», без внесения каких-либо изменений в конфигурацию системы, данных или же разметки диска.
  • Shell – иногда требуется внести изменения в текущую систему с использованием другого ядра, данная опция как раз позволяет делать это.

Смело выбираем «I» и идем дальше. Видим следующее:

Welcome to the OpenBSD/i386 3.3 install program.

This program will help you install OpenBSD in a simple and rational way. At any prompt except password prompts

you can run a shell command by typing "!foo", or escape to a shell by typing "!". Default answers are shown in []"s

and are selected by pressing RETURN. At any time you can exit this program by pressing Control-C and then RETURN,

but quitting during an install can leave your system in an inconsistent state.

Specify terminal type: [vt220]

Do you wish to select a keyboard encoding table? [n] y

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

Идем дальше. Предупреждение о возможной потери всех данных.

IS YOUR DATA BACKED UP? As with anything that modifies disk contents, this program can cause SIGNIFICANT data loss.

It is often helpful to have the installation notes handy. For complex disk configurations, relevant disk hardware manuals

and a calculator are useful.

Proceed with install? [n] y

Вот тут уже и начинается самое интересное – разбиение диска:

Cool!Let"s get to it...

You will now initialize the disk(s) that OpenBSD will use. To enable all available security features you should

configure the disk(s) to allow the creation of separate filesystems for /, /tmp, /var, /usr, and /home.

Available disks are: wd0.

Which one is the root disk? (or done) [wd0] Enter

Однако хочу предупредить, понятие partition тут двояко. Partition может рассматриваться как общий кусок диска для OpenBSD, если на компьютере установлено больше одной ОС, иначе же partition будет рассматриваться как filesystem. Не морочьте себе голову, после первого общения с fdisk OpenBSD вы разберетесь в этом раз и навсегда.

Do you want to use *all* of wd0 for OpenBSD? [no] Enter

Система спрашивает, будем ли мы использовать весь диск для нее или же выделим ей отдельный partition.

You will now create a single MBR partition to contain your OpenBSD data. This partition must have an id of "A6"; must *NOT*

overlap other partitions; and must be marked as the only active partition.

The "manual" command describes all the fdisk commands in detail.

Disk: wd0 geometry: 2586/240/63 [39100320 Sectors]

Offset: 0 Signature: 0xAA55

 Starting Ending LBA Info:

#: idC HS -C HS [ start:size ]

------------------------------------------------------------------------

*0: 060 11 -202 239 63 [63: 3069297 ] DOS > 32MB

1: 000 00 -0 00 [ 0: 0 ] unused

2: 000 00 -0 00 [ 0: 0 ] unused

3: 000 00 -0 00 [ 0: 0 ] unused

Enter "help" for information

 fdisk: 1> help

helpCommand help list

manualShow entire OpenBSD man page for fdisk

reinitRe-initialize loaded MBR (to defaults)

setpidSet the identifier of a given table entry

diskEdit current drive stats

editEdit given table entry

flagFlag given table entry as bootable

updateUpdate machine code in loaded MBR

selectSelect extended partition table entry MBR

print Print loaded MBR partition table

write Write loaded MBR to disk

exitExit edit of current MBR, without saving changes

quitQuit edit of current MBR, saving current changes

abort Abort program without saving current changes

 fdisk: 1>Abort program without saving current changes

Вот он! Тот самый fdisk, который кажется всем страшным и пугает. Но на самом деле это довольно безобидная и очень гибкая (в умелых руках) утилита. Расскажу о ней подробнее. Команды можно сокращать, например, так:

  • r или reinit: очищает весь диск и создает одну большую partition для OpenBSD. Равносильно ответу «yes» в вопросе «use *all* of ...».
  • p или print: выводит информацию о текущем разделе в секторах. «p m» покажет информацию в мегабайтах, «p g», соответственно, в гигабайтах.
  • e или edit: редактировать запись в таблице.
  • f или flag: помечает раздел как загрузочный и разрешает грузиться с него.
  • exit и quit: внимание, команды «exit» and «quit» имеют разные значения. Команда exit заставляет fdisk завершиться «фатально», т.е изменения не будут внесены, в то время как комадна quit подразумевает успешное завершение программы, запись всех изменений на диск, однако перед quit все-таки еще стоит использовать команду write для большей надежности.

Прежде чем начинать работать с fdisk, сохраните все важные данные. Хорошо, начинаем:

> p m

device: /dev/rwd0c

type: ESDI

disk: ESDI/IDE disk

label: ST320011A

bytes/sector: 512

sectors/track: 63

tracks/cylinder: 16

sectors/cylinder: 1008

cylinders: 16383

total sectors: 39102336

free sectors: 36030960

rpm: 3600

16 partitions:

#size offsetfstype [fsize bsize cpg]

a: 17593.2M1498.7Munused0 0

c: 19092.9M 0.0Munused0 0

i:1498.7M 0.0M MSDOS 

> d a

> a a 

offset: [3069360] Enter

size: [36030960] 150M

Rounding to nearest cylinder: 307440

FS type: [4.2BSD] Enter

mount point: [none] /

> a b

offset: [3376800] Enter

size: [35723520] 300M

Rounding to nearest cylinder: 614880

FS type: [swap] Enter 

> a d

offset: [3991680] Enter

size: [35108640] 120m

Rounding to nearest cylinder: 245952

FS type: [4.2BSD] Enter

mount point: [none] /tmp

 > a e

offset: [4237632] Enter

size: [34862688] 80m

Rounding to nearest cylinder: 164304

FS type: [4.2BSD] Enter

mount point: [none] /var

 > a g 

offset: [4401936] Enter

size: [34698384] 2g

Rounding to nearest cylinder: 4194288

FS type: [4.2BSD] Enter

mount point: [none] /usr

 > a h

offset: [8596224] Enter

size: [30504096] 4g

Rounding to nearest cylinder: 8388576

FS type: [4.2BSD] Enter

mount point: [none] /home

 > p m 

device: /dev/rwd0c

type: ESDI

disk: ESDI/IDE disk

label: ST320011A

bytes/sector: 512

sectors/track: 63

tracks/cylinder: 16

sectors/cylinder: 1008

cylinders: 16383

total sectors: 39102336

free sectors: 22115520

rpm: 3600

16 partitions:

#size offsetfstype [fsize bsize cpg]

a: 150.1M1498.7M4.2BSD 1024819216# /

b: 300.2M1648.8Mswap

c: 19092.9M 0.0Munused0 0

d: 120.1M1949.1M4.2BSD 1024819216# /tmp

e:80.2M2069.2M4.2BSD 1024819216# /var

g:2048.0M2149.4M4.2BSD 1024819216# /usr

h:4096.0M4197.4M4.2BSD 1024819216# /home

i:1498.7M 0.0M MSDOS 

> q

Write new label?: [y] Enter

Типичная сессия работы с fdisk. Теперь по строчкам:

  • p m – просматриваем информацию о разделах в мегабайтах;
  • d a – удаляем раздел «a», т.к. он пустой и ничем не занят;
  • a a – теперь вновь добавляем его, но уже со своими параметрами для него:
  • offset: [3069360] Enter – offset-смещение относительно секторов;
  • size: [36030960] 150M – размер раздела в мегабайтах Rounding to nearest cylinder: 307440 – ближайший цилиндр оставляем как есть;
  • FS type: [4.2BSD] Enter – тип файловой системы;
  • mount point: [none] / – точка монтирования.

Следующий раздел (a b) по умолчанию принимается системой как SWAP, поэтому нужно сделать необходимые изменения в размере раздела. Продолжая процесс, добавляем все необходимые нам разделы и записываем информацию командами w и q (write, quit).

Дальше начинается процесс непосредственного форматирования разделов:

The root filesystem will be mounted on wd0a.

wd0b will be used for swap space.

Mount point for wd0d (size=122976k), none or done? [/tmp] Enter

Mount point for wd0e (size=82152k), none or done? [/var] Enter

Mount point for wd0g (size=2097144k), none or done? [/usr] Enter

Mount point for wd0h (size=4194288k), none or done? [/home] Enter

Mount point for wd0d (size=122976k), none or done? [/tmp] done

Done - no available disks found.

You have configured the following partitions and mount points: 

wd0a /

wd0d /tmp

wd0e /var

wd0g /usr

wd0h /home

The next step creates a filesystem on each partition, ERASING existing data.

Are you really sure that you"re ready to proceed? [n] y

/dev/rwd0a: 307440 sectors in 305 cylinders of 16 tracks, 63 sectors 150.1MB in 20 cyl groups (16 c/g, 7.88MB/g, 1920 i/g)

/dev/rwd0d: 245952 sectors in 244 cylinders of 16 tracks, 63 sectors 120.1MB in 16 cyl groups (16 c/g, 7.88MB/g, 1920 i/g)

/dev/rwd0e: 164304 sectors in 163 cylinders of 16 tracks, 63 sectors 80.2MB in 11 cyl groups (16 c/g, 7.88MB/g, 1920 i/g)

/dev/rwd0g: 4194288 sectors in 4161 cylinders of 16 tracks, 63 sectors 2048.0MB in 261 cyl groups (16 c/g, 7.88MB/g, 1920 i/g)

/dev/rwd0h: 8388576 sectors in 8322 cylinders of 16 tracks, 63 sectors 4096.0MB in 521 cyl groups (16 c/g, 7.88MB/g, 1920 i/g)

/dev/wd0a on /mnt type ffs (rw, asynchronous, local, ctime=Thu Oct 10 21:50:36 2 002)

/dev/wd0h on /mnt/home type ffs (rw, asynchronous, local, nodev, nosuid, ctime=Thu Oct 10 21:50:36 2002)

/dev/wd0d on /mnt/tmp type ffs (rw, asynchronous, local, nodev, nosuid, ctime=Thu Oct 10 21:50:36 2002)

/dev/wd0g on /mnt/usr type ffs (rw, asynchronous, local, nodev, ctime=Thu Oct 10 21:50:36 2002)

/dev/wd0e on /mnt/var type ffs (rw, asynchronous, local, nodev, nosuid, ctime=Th u Oct 121:50:36 2002)

После создания разделов начинается этап переконфигурирования системы.

Нас спрашивают, как будет называться машина:

Enter system hostname (short form, e.g. "foo"): mybox

Эта информация будет сохранена в файле /etc/myname и в дальнейшем может быть легко изменена.

Вот мы уже и на пороге кофигурации сети.

Configure the network? [y] Enter

Available interfaces are: fxp0.

Which one do you wish to initialize? (or "done") [fxp0] Enter

Symbolic (host) name for fxp0? [puffy] Enter

The default media for fxp0 is media: Ethernet autoselect (100baseTX full-duplex)

Do you want to change the default media? [n] Enter

IP address for fxp0? (or "dhcp") 199.185.137.55

Netmask? [255.255.255.0] Enter

Done - no available interfaces found.

DNS domain name? (e.g. "bar.com") [my.domain] example.com

DNS nameserver? (IP address or "none") [none] 199.185.137.1

Use the nameserver now? [y] Enter

Default route? (IP address, "dhcp" or "none") 199.185.137.128

add net default: gateway 199.185.137.128

Edit hosts with ed? [n] Enter

Do you want to do any manual network configuration? [n] Enter

Система сама определяет сетевой интерфейс (если таковой имеется) и предлагает настроить его путем введения IP-адреса, маски сети, DNS-серверов и шлюза.

Отлично, мы добрались до установки пароля суперпользователя.

Password for root account? (will not echo) mYpAszW0rd

Password for root account? (again) mYpAszW0rd

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

Выбор метода инсталляции:

You will now specify the location and names of the install sets you want to load. You will be able to repeat this step

until all of your Sets have been successfully loaded. If you are not sure what sets to install, refer to the installation

notes for details on the contents of each.

Sets can be located on a (m)ounted filesystem; a (c)drom, (d)isk or (t)ape device; or a (f)tp, (n)fs or (h)ttp server.

Where are the install sets? c

Available CD-ROMs are: cd0.

Выбираем установку с CD-ROM путем ввода «c». Дальше система спрашивает, где находятся необходимые файлы.

Which one contains the install media? (or "done") [cd0] Enter

Pathname to the sets?(or "done") [3.3/i386] Enter

Переходим к выбору компонентов системы:

The following sets are available. Enter a filename, "all" to select all the sets, or "done".

You may de-select a set by prepending a "-" to its name.

    [X] bsd

    [ ] bsd.rd

    [X] base33.tgz

    [X] etc33.tgz

    [X] misc33.tgz

    [X] comp33.tgz

    [X] man33.tgz

    [X] game33.tgz

    [ ] xbase33.tgz

    [ ] xshare33.tgz

    [ ] xfont33.tgz

    [ ] xserv33.tgz

File Name? (or "done")

Добавить компонент можно так^ +xbase33*, а убрать –misc33*. Выбрав все необходимое, переходим к процедурее переноса и установки компонентов:

File Name? (or "done") [done] Enter

Ready to install sets? [y] Enter

Getting bsd ...

100% |**************************************************|4472 KB00:03

Getting base33.tgz ...

100% |**************************************************| 30255 KB00:21

Getting etc33.tgz ...

100% |**************************************************|1469 KB00:01

Getting misc33.tgz ...

100% |**************************************************|1828 KB00:01

Getting comp33.tgz ...

100% |**************************************************| 16207 KB00:13

Getting man33.tgz ...

100% |**************************************************|5921 KB00:04

Getting game33.tgz ...

100% |**************************************************|2545 KB00:01

Sets can be located on a (m)ounted filesystem; a (c)drom, (d)isk or (t)ape device; or a (f)tp, (n)fs or (h)ttp server.

Where are the install sets? (or "done")

Отлично, мои поздравления, вы поставили OpenBSD! Осталось совсем чуть-чуть для того, чтобы увидеть ее в полной красе. Выставляем время и сообщаем системе, что не будем использовать X Windows.

Extract more sets? [n] Enter

Do you expect to run the X Window System? [y] n

Saving configuration files......done.

Generating initial host.random file ......done.

What timezone are you in? ("?" for list) [US/Pacific] ?

Africa/      Chile/       GB-Eire      Israel       NZ-CHAT      Turkey

America/     Cuba         GMT          Jamaica      Navajo       UCT

Antarctica/  EET          GMT+0        Japan        PRC          US/

Arctic/      EST          GMT-0        Kwajalein    PST8PDT      UTC

Asia/        EST5EDT      GMT0         Libya        Pacific/     Universal

Atlantic/    Egypt        Greenwich    MET          Poland       W-SU

Australia/   Eire         HST          MST          Portugal     WET

Brazil/      Etc/         Hongkong     MST7MDT      ROC          Zulu

CET          Europe/      Iceland      Mexico/      ROK          posix/

CST6CDT      Factory      Indian/      Mideast/     Singapore    posixrules

Canada/      GB           Iran         NZ           SystemV/     right/

What timezone are you in? ("?" for list) [US/Pacific] US

What sub-timezone of "US" are you in? ("?" for list) ?

Alaska          Central         Hawaii          Mountain        Samoa

Aleutian        East-Indiana    Indiana-Starke  Pacific

Arizona         Eastern         Michigan        Pacific-New

Select a sub-timezone of "US" ("?" for list): Eastern

Setting local timezone to "US/Eastern"...done.

Последний взмах волшебной палочкой:

Making all device nodes...done.

Installing boot block...

boot: /mnt/boot

proto: /usr/mdec/biosboot

device: /dev/rwd0c

/usr/mdec/biosboot: entry point 0

proto bootblock size 512

room for 12 filesystem blocks at 0x16f

Will load 7 blocks of size 8192 each.

Using disk geometry of 63 sectors and 240 heads.

 0:  9 @(203 150 55) (3078864-3078872)

 1: 63 @(203 151 1) (3078873-3078935)

 2: 24 @(203 152 1) (3078936-3078959)

 3: 16 @(203 8 47) (3069910-3069925)

/mnt/boot: 4 entries total

using MBR partition 1: type 166 (0xa6) offset 3069360 (0x2ed5b0)

...done.

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

Ссылки по теме:

  1. Домашняя страница проекта OpenBSD: http://www.openbsd.org
  2. Журнал, посвященный OpenBSD: http://www.deadly.org
  3. Страница проекта OpenBSD.ru: http://www.openbsd.ru
  4. Информация о OpenBSD Packet filter: http://www.benzedrine.cx/pf.html
  5. Огромная коллекция ссылок для OpenBSD: http://www.infobsd.org

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru