Передний край FreeBSD

Проведя в сообществе FreeBSD некоторое время, вы услышите о самых разных вещах, которые можно было бы сделать, если бы знать – как. Кто-то производит встроенные устройства с FreeBSD и продает их по всему свету, при этом покупатели даже не подозревают, что внутри небольшой коробки, управляющей кондиционером или радиоретрансляционной станцией, находится UNIX-подобная операционная система. Кто-то запускает FreeBSD на машинах без жестких дисков, поддерживая сотни и даже тысячи бездисковых станций с одного единственного сервера. Вы без труда найдете USB-устройства и самозагружаемые компакт-диски с полноценной системой FreeBSD, включая установленное программное обеспечение, какое только можно пожелать. Все это вовсе не сложно, если знать некоторые секреты.

В этой главе мы исследуем передний край FreeBSD – настоящую передовую, где пользователи воплощают свои уникальные идеи, не всегда встречающие поддержку в основном Проекте FreeBSD. Иногда можно получить поддержку по этим вопросам по обычным каналам, но вы должны быть готовы устранять неисправности и отлаживать все, о чем будет рассказано в этой главе.

/etc/ttys

Файл /etc/ttys управляет тем, как и откуда пользователи могут входить в систему FreeBSD. При этом вы можете устанавливать ограничения для каждой отдельной учетной записи где-нибудь в другом месте, а в файле /etc/ttys перечислить устройства, с которых можно выполнять вход в систему, и указать, как эти устройства должны использоваться. Большинство пользователей могут входить только с консоли и по соединению SSH, но вы можете настроить и другие устройства, с которых можно будет выполнять вход.

Не забывайте: tty – это сокращение от teletype (телетайп). Когда-то телетайп был основным интерфейсом вывода информации для UNIX-no- добных систем. Любое устройство, с которого можно выполнить вход, считается телетайпом. Система FreeBSD поддерживает самые разные типы терминальных устройств, от старомодных последовательных терминалов до современных консолей с клавиатурой, мышью и устройством отображения, а также сессии SSH и telnet. Системы FreeBSD предлагают четыре стандартных устройства входа в систему, или терминалы: консоль, виртуальные терминалы, коммутируемые терминалы и псевдотерминалы.

Консоль – единственное устройство, доступное в однопользовательском режиме. В большинстве систем FreeBSD это либо видеоконсоль, которая состоит из монитора и клавиатуры, либо последовательная консоль, доступная из другой системы. Как только система попадает в многопользовательский режим, консоль обычно подключается к виртуальному терминалу. Устройство консоли – /dev/console.

Виртуальный терминал подключен к физическому монитору и клавиатуре. Если вы не используете систему X Window, то можете организовать несколько терминалов на одном физическом терминале. Переключение между ними осуществляется нажатием клавиши Alt и одной из функциональных клавиш. В следующий раз, когда вы окажетесь за консолью, нажмите комбинацию клавиш Alt-F2. Вы должны увидеть новый экран входа в систему со строкой ttyvl после имени хоста. Это второй виртуальный терминал. Нажатие комбинации Alt-Fl вернет вас обратно, в основной виртуальный терминал. По умолчанию в системе FreeBSD восемь виртуальных терминалов, а девятый зарезервирован для X Window. Вы можете использовать восемь виртуальных текстовых терминалов, даже работая в X, если некоторые окружения рабочего стола предоставляют несколько виртуальных терминалов. Виртуальным терминалам соответствуют устройства /dev/ttyv.

Коммутируемый терминал подключается к последовательной линии. Вы можете подключать модемы непосредственно к последовательным портам и позволять пользователям подключаться к своему серверу. В наши дни эта возможность используется редко, но аналогичная функциональность служит для поддержки входа в систему через последовательную консоль. Коммутируемым терминалам соответствуют устройства /dev/ttyd.

Наконец, псевдотерминалы – это полностью программная реализация. Для подключения к серверу через SSH вам не требуется специальное аппаратное обеспечение, а программному обеспечению по-прежне- му необходим файл устройства для обеспечения сеанса входа. Псевдотерминалам соответствуют устройства /dev/ttyp.

Настройки доступа к терминальным устройствам находятся в файле /etc/ttys. Большинство терминальных устройств не требуют настройки – в конце концов, вы получили в свое распоряжение псевдотерминал

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

Формат /etc/ttys

Типичная запись в файле /etc/ttys выглядит примерно так:

ttyvO "/usг/libexec/getty Рс"            cons25 on secure

Первое поле – это устройство консоли, в данном случае – это первый виртуальный терминал в системе, ttyvO.

Второе поле – это программа, которая запускается для обслуживания процедуры входа с этого терминала. В системе FreeBSD вход с любого устройства, за исключением псевдотерминала, обслуживает программа getty(8). При получении запроса на вход псевдотерминалом вход в систему обслуживается каким-либо демоном.

Третье поле – тип терминала. Возможно, вам приходилось слышать о терминале vtlOO или даже о терминале Sun. В системе FreeBSD для монитора используется тип cons25, которому соответствует экран размером 25×80 символов. Для псевдотерминалов используется тип network; их особенности определяются демоном и клиентским программным обеспечением.

Четвертое поле определяет, доступен терминал для входа в систему или нет. Допустимы значения on – вход разрешен и off – вход запрещен. Псевдотерминалы активируются по запросу.

В этом примере есть еще ключевое слово secure, которое сообщает программе getty(8), что через эту консоль в систему может входить пользователь root.

Предоставление терминалов – это низкоуровневая задача, которую решает непосредственно процесс init(8). Изменения в /etc/ttys не вступят в силу, пока процесс init(8) не будет перезапущен. Идентификатор этого процесса всегда равен 1.

# kill -1 1 Небезопасная консоль

При загрузке в однопользовательском режиме вы получаете доступ к командной строке с привилегиями root. Это годится для ноутбука или для сервера в корпоративном вычислительном центре, а как быть с машинами, расположенными в местах, не вызывающих доверия? Если сервер установлен в объединенном информационном центре, вы едва ли захотите, чтобы кто-то мог получить доступ к машине с привилегиями root. В таком случае можно сообщить системе FreeBSD, что физическая консоль небезопасна и при входе с нее в однопользовательский режим необходимо требовать ввод пароля root. Система будет вы- поднять загрузку от включения питания до многопользовательского режима, не требуя ввести пароль, но потребует его, когда будет произведена попытка загрузиться в однопользовательском режиме.

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

Найдите запись в файле /etc/ttys, соответствующую консоли:

console none             unknown off secure

Как видите, консоль – это не полноценный терминал, для нее не запускается программа getty(8) и используется универсальный тип терминала unknown. Консоль предназначена исключительно для работы в однопользовательском режиме или когда она подключена к другому терминалу, так что тут все в порядке.

Чтобы консоль запрашивала пароль root при загрузке в однопользовательском режиме, измените слово secu re на insecu re.

Источник: ЛукасМ. FreeBSD. Подробное руководство, 2-е издание. – Пер. с англ. – СПб.: Символ- Плюс, 2009. – 864 е., ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий