Installing Inferno Software / Установка ОС Inferno: Chapter 1

← →
Английский оригинал Перевод на русский

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

Вы должны увидеть как минимум следующие имена в выводе:

j1m 23.04.09 в 09:24

0

net/cs
/net/ndb
/net/tcp
/net/udp

j1m 23.04.09 в 09:24

0

Иначе наберите:

j1m 23.04.09 в 09:24

0

ndb/cs

j1m 23.04.09 в 09:25

0

чтобы запустить cs(8). Попробуйте запустить команду "ls /net" снова чтобы проверить, что появился файл cs.

Шаг 11б. Генерация набора ключей для сервера

j1m 02.05.09 в 09:19

0

На машине-сервере (или в окне "сервера") воспользуйтесь командой getauthinfo(8) для получения сертификата и сохранения его в файле названном default, путем запуска:

rapidfx 03.05.09 в 07:44

0

getauthinfo default

j1m 23.04.09 в 09:25

0

Getauthinfo запросит адрес вашего signer (зачастую вы можете использовать имя хоста или даже localhost) и имя удаленного пользователя и пароль. Getauthinfo соединяется с сервисом inflogin машины-signer'а и аутентифицирет, в базе данных /keydb/keys, вас этими именем и паролем которые вы указали выше. Ответив yes на запрос о том, желаете ли вы записать сертификат в файл. Getauthinfo сохранит сертификат в файле /usr/user/keyring/default где user является тем же именем что и в /dev/user.

rapidfx 03.05.09 в 07:51

0

12. Сетевые сервисы

j1m 23.04.09 в 09:25

0

Как отмечалось раньше, в полной сети Inferno аутентификационные сервисы обычно запускаются на надежно защищенной машине, где запущен только сервис signer. Если для всех функций используется одна машина, вы можете достичь правильного эффекта запустив другую копию emu, чтобы выступать в роли Inferno хоста, а не signer. Он заупустит сервисы первичного файл-сервера и службу registry(4).
Команды описанные в svc(8) запускают процессы для различных сетевых сервисов. (Эти команды в действительности скрипты оболочки.) Как мы видели выше, svc/auth стартует службы на signer.
Теперь мы запустим обычный набор сервисов.

Шаг 12a: Запуск сетевых прослушивающих сервисов.

rapidfx 03.05.09 в 08:06

0

Наберите

j1m 23.04.09 в 09:25

0

svc/net

j1m 23.04.09 в 09:25

0

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

rapidfx 01.05.09 в 19:49

0

ps

j1m 23.04.09 в 09:25

0

которая должна вывести что-то вроде нижеследующего:

rapidfx 01.05.09 в 19:50

0

; ps
1 1 inferno release 74K Sh[$Sys]
7 6 inferno alt 15K Cs
13 1 inferno recv 15K Registry
14 1 inferno release 44K Styx[$Sys]
15 1 inferno recv 15K Registry
17 1 inferno alt 8K Listen
19 1 inferno release 8K Listen[$Sys]
22 1 inferno alt 8K Listen
24 1 inferno release 8K Listen[$Sys]
25 1 inferno ready 74K Ps[$Sys]

j1m 23.04.09 в 09:25

0

Должны быть запущено несколько процессов Listen и возможно Registry.
Вы также можете попробовать

rapidfx 01.05.09 в 19:51

0

netstat

j1m 23.04.09 в 09:26

0

Команда netstat печатает информацию о сетевых подключениях. Вы должны увидеть несколько строк, каждая из которых описывает объявление (announced FIXME) TCP и UDP сервисов.
В зависимости от сеттевой конфигурации вы можете увидеть что-то вроде этого:

j1m 02.05.09 в 09:22

0

tcp/1 Announced inferno 200.1.1.89!6668 ::!0
tcp/2 Announced inferno 200.1.1.89!6666 ::!0
tcp/3 Announced inferno 200.1.1.89!6675 ::!0

j1m 23.04.09 в 09:26

0

Каждая строка относится к сетевому соединению: имя соединения, имя пользователя запустившего сервер, адрес локального конца соединения, адрес удаленного конца соединения, и статус соеинения. Именем соединения в действительности является протоколом и соответствующий каталог в /net.
Адрес соединения представлен в виде host!port для этого сервиса основанного на IP, а удаленные адреса не заполнены потому что они все они представлены прослушивающими срвисами в состояниии Announced. В этом примере четыре строки показываютTCP сервис слушает на порту 6673. Просмотрев /lib/ndb/inferno при помощи grep (смотри grep(1)) увидим, что на порту 6675 прослушивает Inferno-сервис registry

rapidfx 03.05.09 в 09:09

0

grep 6675 /lib/ndb/inferno

j1m 23.04.09 в 09:26

0

выдает

rapidfx 01.05.09 в 19:51

0

tcp=registry port=6675 # default registry

j1m 23.04.09 в 09:26

0

Теперь сервер готов, но нам потребуется клиент. В любом случае нам потребуется третья машина или (скорее всего) просто запустим другую копию emu в новом окне. Запустим снова сервер соединений, набрав

rapidfx 01.05.09 в 19:53

0

ndb/cs

j1m 23.04.09 в 09:26

0

Сервер соединений основа сети Inferno. Когда сеть устанавливается, подпроцессы компонентов запускающие клиентов должен запустить cs перед стартом оконной системы. Заметьте, что если вы запускаете Inferno как сервер, или как комбинацию клиент и сервер, svc/net который стартует сетевые сервисы автоматически запустит cs, и вам не надо делать этого специально.

Шаг 12b: Генерация клиентского сертификата.

rapidfx 03.05.09 в 09:25

0

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

rapidfx 03.05.09 в 09:27

0

getauthinfo tcp!hostname

j1m 23.04.09 в 09:26

0

Используйте имя хоста текущей машины. Getauthinfo хранит сертификаты в файле /usr/user/keyring/keyname где имя пользователя соответствует имени в /dev/user и keyname это аргумент переданный getauthinfo. Еще раз, ответьте yes на вопрос в котором спрашивается хотите ли вы сохранить сертификат в файл.
Теперь когда ба и клиент и сервер имеют сертификаты полученные от одного signer, становится возможным установление соединения между ними. Обратите внимание, что получение ключей и сертификатов с помощью getauthinfo делается только один раз (или по одному разу на тот случай если не используется ключ по умолчанию.) Короче, вся работа завершена и не требуется ее повторять. После этого, предоставленные ключи записанные в файл keyring могут создать столько аутентифицированных соединений, сколько нужно пока сертификат не будет просрочен (это зависит от того когда была установлена дата истечения срока действия пароля). Так же обратите внимание на то, что разные машины могут иметь разные центры выдачи сертификатов, и каждый может использовать различные сертификаты для одной машины когда различаются имена удаленных пользователей (опция -f getauthinfo полезна в случае принудительного выбора соответствующего имени keyring).

Шаг 12c: Установление аутентифицированного соединения.

rapidfx 03.05.09 в 10:01

0

Скрипт svc/net запускает на сервере фундаментальный сервис имен и файловый сервис Styx. Он так же может быть запущен отдельно при помощи svc/styx. В любом случае пространство имен имен которое он будет обслуживать является тем же самым из которого был вызван скрипт. Теперь вы можете протестировать сервис.
Убедимся что каталог /n/remote пуст, набрав следующее

rapidfx 03.05.09 в 10:05

0

lc /n/remote

j1m 23.04.09 в 09:26

0

Вы можете примонтировать пространство имен сервера в каталог клиента /n/remote набрав

rapidfx 03.05.09 в 10:06

0

mount serveraddr /n/remote

j1m 23.04.09 в 09:26

0

Где serveraddr это IP адрес сервера или имя хоста которое может быть соотнесено с IP адресом сервера.
Теперь

rapidfx 03.05.09 в 10:07

0

lc /n/remote

j1m 23.04.09 в 09:27

0

должно выдать файлы и каталоги в пространстве имен облуживаемом сервером. Все эти файлы теперь также видны в пространестве имен вашего командного интерпретатора.
Мы должны отметить, что эти изменения оказывают влияние только на тот интерпретатор в котором вы выполнили команду mount, все остальные окна остаются без изменений. Вы можете создавать, удалять или изменять файлы и каталоги ниже /n/remote так, как вы могли бы поступить со своими файлами. Фактически, процессу не надо знать где в действительности расположен файл локально или уаленно. Вы можете размонтировать смонтированную директорию при помощи команды unmount. Выполните

rapidfx 03.05.09 в 10:09

0

unmount /n/remote

j1m 23.04.09 в 09:27

0

Вы можете убедиться что содержимое пропало запустив

rapidfx 03.05.09 в 10:10

0

ls /n/remote

j1m 23.04.09 в 09:27

0

Все соединения устанавливаемые Inferno аутентифицированы. По умолчанию соединения устанавлевыемые mount аутентифицированы, но не используют ни шифрование, ни подписывание сообщений. Вы можете передать аргументы mount для указания безопасного соединения: опция -C включает хэширование и применяет алгоритм шифрования к соединению.

Шаг 12d: Создание безопасного аутентифицированного соединения

rapidfx 03.05.09 в 12:37

0

Например,

rapidfx 03.05.09 в 12:37

0

mount -C sha1/rc4_256 serveraddr /n/remote

j1m 23.04.09 в 09:27

0

устанавливает аутентифицированное соединение с машиной заданной serveraddr, и запускает хэширование SHA1 с подписыванием сообщений (дайджестом), и 256-битное шифрование RC4. Эта команда монтирует пространство имен обслуживаемое на указанной машине serveraddr сервисом Styx, в локальный каталог Inferno /n/remote.

rapidfx 03.05.09 в 12:41

0

13. Добавление новых пользователей

j1m 23.04.09 в 09:27

0

Каждый процесс Inferno ассоциирован с именем определенного пользователя. Во время загрузки имя пользователя устанавливается в ваше login-имя основной ОС. Имя пользователя импользуется wm/logon для выбора домашнего каталога, и другими программами типа mount когда он ищет сертификаты. (Они так же имеют установленные права доступа основной ОС или нативно запущенной ОС Inferno.) Когда вы присоединяетесь к серверу другой системы, имя пользователя в аутентификационном сертификате берется удаленным файловым сервисом для установления соответствующего пользовательского имени.
Для создания нового пользователя, скопируйте каталог /usr/inferno в /usr/username. Если пользователь имеет доступ к сервисам сети, создайте запись на сервере аутентификации при помощи changelogin(8). Пользователь может изменить хранящийся секрет при помощи passwd(1), если пожелает. Когда пользователь залогинивается в первый раз, он должен сгенерировать пару публичный/приватный ключ при помощи getauthinfo(8). (При этом аутентификационный сервис должен быть уже где-то запущен.)
Программа оконного менеджера wm, wm/logon позволяет пользователю авторизоваться на локальной системе Inferno, как другой Inferno-пользователь (имя которого отличается от имени пользователя основной ОС). Ее использование показано дальше.

rapidfx 03.05.09 в 12:57

0

Шаг 13а: Перезапуск Inferno.

j1m 23.04.09 в 09:28

0

Теперь вы должны завершить выполнение всех запущенных копий emu которые у вас были. Самый быстрый способ - это нажать control-c в окне emu в котором вы запускали wm/wm. Запустите новый emu как и прежде

rapidfx 01.05.09 в 19:57

0

emu

j1m 23.04.09 в 09:28

0

или выбрав соответствующий пункт из меню запуска Windows-машины. Самое время запустить сетевые сервисы

rapidfx 01.05.09 в 19:58

0
Минутку...

← Предыдущая страница

Следующая страница →