LXF155:По рецептам доктора Брауна
|
|
|
Д-р Крис Браун
Доктор обучает, пишет и консультирует по Linux. Ученая степень по физике элементарных частиц ему в этом совсем не помогает.
Содержание |
Патентованно глупо
В 1855 году Генри Бессемер [Henry Bessemer] запатентовал метод изготовления стали. Так как сталь стало возможно выпускать в больших количествах, мы смогли отказаться от чугунных конструкций (склонных к хрупкости) и начать строить стальные (не имеющие этого свойства). Данный шаг действительно можно назвать революционным.
В 2004 году Microsoft запатентовала «метод расширения функциональности кнопок приложения на вычислительном устройстве с ограниченными ресурсами», который, оказывается, состоит в таких приемах, как двойной щелчок, и, на мой взгляд, раздвигает границы неочевидного, что и считается условием выдачи патента.
Ныне компании накапливают патенты. Быстрый поиск по базе данных американского Патентного бюро патентов Microsoft дает 19118 результатов. У Cisco – 6976 патентов, у Google – 956, а у Novell – 513 (можете поискать сами на patft.uspto.gov).
Согласно данным британского Бюро интеллектуальной собственности, только на прошлой неделе было опубликовано 385 новых патентов. Компании торгуют патентами как семечками и предлагают их в приданое потенциальным партнерам. Все больше и больше они применяются как оружие, особенно против движения open source.
Патенты пишут люди, убежденные, что нет нужды обходиться четырьмя простыми словами, если можно употребить 50 сложных. Наверное, это нужно для гарантии, что никто не поймет их неверно, а то и для защиты чести мундира и доходов людей, которые их пишут.
Кто мне не верит, почитайте какой-нибудь патент. Я значусь как изобретатель всего в одном патенте (учебная система презентаций – см. US Patent 7,134,079), и меня попросили перечесть этот документ. Я с огромным трудом поверил, что описанная в патенте система – мое же создание. Это у меня с головой плохо, или патенты поглупели?
Новый облик Anaconda
Познакомьтесь с моделью «центр и лучи».
Установщик Linux большинство пользователей запускает всего раз, и легко счесть, что сделать его по-настоящему удобным – задача, не стоящая трудов. Но первый опыт новичка способен решить его судьбу в Linux. Я знаю людей, готовых перейти в Linux, которых работа с установщиком запутала и отпугнула.
Более опытные пользователи, устанавливая Red Hat, CentOS или Fedora, наверное, недоумевали, почему разбиение диска на разделы в Anaconda так усложнено. Ну, отчасти потому, что разработчики пытаются удовлетворить широкий спектр пользователей – экспертов, новичков, тех, кому нужна двойная загрузка, тех, кто хочет сохранить /home с предыдущей установки, любителей логических томов или RAID и тех, кто их не любит... и т. д. Эти экраны не менялись с тех пор, когда Red Hat Linux назывался, э-э, Red Hat Linux еще в 2002 году. Но в Fedora 17 решено все изменить. В блоге Мэйрин Даффи [Ma´І´irin Duffy] на blog.linuxgrrl.com приведены эскизы, которые они хотят воплотить в жизнь. Мэйрин – дизайнер по взаимодействию в Red Hat и глава команды дизайнеров Fedora.
Планируется перейти от линейной последовательности из 30+ экранов к тому, что Мэйрин называет моделью «центр и лучи» с общим центром установки и центром персонализации. Каждый центр дает разумные настройки по умолчанию, а на лучи вы переходите, только если надо что-то изменить. Поэтому минимальная установка укладывается в три окна. Подробности можно узнать, зайдя на канал #anaconda на irc.freenode.net.
Webmin
Нужно ли на самом деле учить vi, чтобы быть системным администратором? Вот вам способ избежать ручного редактирования файлов в /etc.
Почти каждый месяц я отпускаю какой-нибудь глумливый комментарий по адресу файлов настройки. Хотя размещение конфигурации системы в текстовых файлах имеет несомненные преимущества, сложность некоторых из этих файлов и отсутствие единого синтаксиса может немного обескураживать.
Webmin – средство администрирования с web-интерфейсом, с помощью которого можно настраивать как локальные, так и удаленные системы, не набирая вручную ни одной строки текста в /etc. Оно прекрасно подходит для страдающих клавиатуробоязнью (qwerty-фобия) или аллергией на синтаксис (на двоеточие [colonitis], или, в менее тяжелой форме, на точку с запятой [semicolonitis]). Детище Джейми Кэмерона [Jamie Cameron], Webmin существует уже не первый день, но все еще находится в активной разработке. Его сайт – www.webmin.com.
Webmin состоит из простого web-сервера и ряда модулей расширения, под конкретные административные задачи. Все это написано на Perl 5 с использованием только стандартных библиотек. Perl, вероятно, установлен в вашем дистрибутиве по умолчанию, поэтому установка Webmin должна быть простой – скорее всего, для этого достаточно набрать
yum install webmin
Или, если он отсутствует в репозиториях вашего дистрибутива, можно загрузить RPM- и deb-пакеты с www.webmin.com/download.html.
Webmin можно использовать для настройки большого диапазона дистрибутивов, включая все популярные дистрибутивы Linux и несколько других платформ, таких как Mac OS-X, Solaris, HP/UX, AIX и BSD. Последние версии также работают с Windows. В этом руководстве я установил его в Fedora 15.
На диво разносторонний
После установки и запуска Webmin слушает порт 10000, поэтому все, что нужно сделать – открыть адрес http://localhost:10000 в своем браузере, зайти в систему от имени root, и перед вами должна появиться домашняя страница Webmin. Слева находится основная навигационная панель. На экранном снимке я открыл несколько групп, чтобы вы получили представление о широте возможностей Webmin. Он и правда удивительно разносторонний.
Сразу же проясним: хотя с Webmin вы можете отойти от низкоуровневого синтаксиса файлов настройки, он не освобождает вас от необходимости понимать сути происходящего. Например, в окне настройки PAM (показанном на рисунке) можно менять наборы правил PAM, не редактируя ничего вручную – но все равно следует знать, что делают отдельные модули PAM, как взаимодействуют модули стеков (в Webmin этот параметр называется «уровнем ошибки» [Failure Level]) и к чему приводит изменение порядка модулей. Так же сложен и модуль для построения наборов правил брандмауэра, демонстрирующий всю мощь и подробности фильтрации пакетов netfilter в окне со множеством выпадающих списков, радиокнопок и текстовых полей. В отличие от упрощенных утилит для создания правил брандмауэра, вроде system-config-firewall от Red Hat, Webmin не пытается все огрубить или предоставить более высокий уровень абстракции.
Проще сделать и глупые ошибки, что я узнал на собственном опыте, исследуя модуль настройки файловой системы. В окне изменения опций монтирования я легкомысленно нажал на одну из радиокнопок, что привело к запрещению выполнения файлов в корневой файловой системе. (В fstab незаметно для меня добавилась опция монтирования noexec.) Получилось плоховато. После этого мало что работало, и в итоге пришлось восстанавливать систему с помощью аварийной загрузки.
Ошибка, конечно, была моя – но редактируя соответствующий файл вручную, я ее не сделал бы. Признаюсь, что «сторонние» утилиты вроде Webmin немного меня нервируют. (Под сторонними я понимаю утилиты, написанные не теми, кто разрабатывает и собирает дистрибутив Linux). Думаю, это вопрос доверия. Синхронизируются ли разработчики Webmin с последними разработками в соответствующем дистрибутиве? Смогут ли они справиться с нетипичными конфигурациями, выполняемыми вручную?
Думаем позитивно
Отбросим все эти негативные мысли и перейдем к позитивным. Более всего в Webmin впечатляет спектр ее действия: можно делать почти все что угодно, от базовых действий с учетными записями пользователей до настройки ротации файлов журналов, просмотра информации о выполняющихся процессах и отправки им сигналов, создания программного RAID, включения дисковых квот, создания заданий cron, построения наборов правил брандмауэра и многого другого. В разделе Сеть [Networking] можно настроить почти любую службу, в том числе ssh, sendmail, apache и bind.
Модуль настройки Apache потрясающе всеобъемлющ. В нем есть даже файловый менеджер с web-интерфейсом. В Webmin (естественно) можно задавать настройки и для него самого – на рисунке вверху показан образчик очень чистого и современного искусства. Интерфейс пользователя целиком или частично переведен на несколько языков... например, немецкий перевод, как утверждается, выполнен на 74 %, греческий – только на 3 %. Еще одно преимущество в том, что Webmin ведет журнал всех изменений, произведенных с его помощью. В журнале указывается, что было сделано, когда, кем и с какого IP-адреса. Такие журналы незаменимы при документировании истории настройки вашей системы.
Конечно, журнал не полностью дуракоупорен, в том смысле, что любые изменения конфигурации, производимые вне Webmin, в нем отражены не будут. И последнее: ссылка «Помощь» (Help), отображаемая в верхней части страниц большинства модулей. Тексты справки открываются в новых окнах; они довольно кратки, но сжатость их толковая.
Разверните собственный
Кроме 113 модулей, входящих в основную поставку Webmin, существует немало модулей от сторонних разработчиков. В них входят Webminstat (который строит график использования системных ресурсов) и упрощенный брандмауэр (ответ на мои комментарии о довольно подробной настройке модуля брандмауэра в основном модуле).
Эти модули можно загрузить (обычно в виде файлов .wbm) и установить в окне Webmin > Webmin Configuration > Webmin Modules [Webmin > Настройка Webmin > Модули Webmin]. Не найдя ничего подходящего, можно, разумеется, написать свой модуль, если вы разбираетесь в HTML и скриптах Perl CGI. Пользовательские модули обычно размещаются в каталоге Webmin (вероятно, /usr/libexec/webmin). На сайте есть подробное руководство, как это сделать, и, конечно, поскольку Perl – интерпретируемый язык, весь исходный код всех модулей находится в каталоге /usr/libexec/webmin.
Так как Webmin способен изменить все параметры системы, обращайтесь с ним осторожно.
По умолчанию Webmin импортирует одну учетную запись (root), из которой вы сможете войти в систему. В Webmin можно добавить дополнительных пользователей или импортировать их из обычных учетных записей Linux. Для каждого пользователя можно указать доступные ему модули Webmin. При входе в систему пользователь увидит только их. Это действительно прекрасная возможность, позволяющая назначать административные права отдельным пользователям очень избирательно и во многом похожая на действие sudo.
По умолчанию Webmin использует нешифрованное соединение через порт 10 000. Если вы заботитесь о безопасности, то администрирование удаленного компьютера с помощью Webmin может немного тревожить вас, если вы не считаете сеть по-настоящему безопасной. Помните, что трафик по сети, включая, например, пароли для свежесозданных учетных записей, не говоря уже о пароле для входа в Webmin, будет передаваться без шифрования.
Однако, если у вас установлен модуль Perl SSLeay (а если нет, Webmin предложит установить его...), Webmin легко переключить на https с самоподписанным сертификатом, на который браузер, возможно, слегка пожалуется, но который по крайней мере предоставит вам защиту зашифрованного канала. Также можно ограничить вход в Webmin указанными сетями или доменами и блокировать хосты после нескольких неудачных попыток входа в систему для защиты от атак методом перебора.
Масштабируемость
В Webmin есть ограниченная возможность управления несколькими компьютерами с помощью механизма т. н. кластеризации. Идея состоит в том, чтобы выполнять действия типа создания учетной записи пользователя одновременно на нескольких серверах через один web-интерфейс. Прежде всего нужно выбрать систему, которая будет использоваться в качестве главной. Зайдите в Webmin в этой системе и добавьте серверы, которыми хотите управлять, на странице Webmin Servers Index [Серверы Webmin]. Понадобится ввести имя пользователя и пароль для каждого сервера, чтобы главная система смогла войти в Webmin в каждой из управляемых систем.
Webmin умеет автоматически искать в сети другие серверы Webmin, и можно даже заставить его делать это периодически. Зарегистрировав сервера здесь, можно добавлять их в другие модули кластера, что позволяет создавать и изменять пользователей и группы, копировать файлы, создавать задания cron, выполнять команды оболочки и устанавливать пакеты ПО на всех компьютерах кластера. Это серьезная возможность, которая понравится системным администраторам, не желающим, чтобы их загрузка линейно росла с числом обслуживаемых компьютеров. Конечно, существуют и другие административные утилиты с web-интерфейсом. Например, Landscape от Canonical предоставляет web-интерфейс для администрирования систем Ubuntu. И Webmin, и Landscape позволяют выполнять административные задачи на нескольких компьютерах. Однако архитектура и назначение Landscape совершенно иные. И, что более важно, предоставляемый Landscape web-интерфейс находится на стороннем сервере (принадлежащем Canonical).
На управляемые компьютеры устанавливается агент, который периодически связывается с сервером Landscape и проверяет, нет ли действий для выполнения. Так как соединение инициирует управляемый компьютер, можно управлять компьютерами, защищенными брандмауэром или находящимся за NAT (а это большинство компьютеров). В Webmin сделать такого нельзя.
Бесплатно
Для Webmin требуется, чтобы на каждом компьютере под вашим управлением был запущен web-сервер miniserv и чтобы вы могли подключиться к нему с главного компьютера. Сервер Landscape также знает об обновлениях пакетов в репозиториях Canonical и может автоматически устанавливать их на зарегистрированные компьютеры. Webmin этого не умеет. Объективности сравнения ради, отмечу, что Landscape – сервис с платной подпиской; Webmin бесплатен. Если вам нужно что-то именно для управления виртуальными серверам для поддержки коммерческого web-хостинга, можете также рассмотреть CPanel или Plesk – оба сервиса распространяются за абонентскую плату, и оба конкурируют с Virtualmin (см. врезку). Интересное (пусть и не вполне беспристрастное) сравнение можно найти на http://www.virtualmin.com/compare.html.
Существует две книги о Webmin, одна от его автора Джейми Кэмерона, другая – от Джо Купера [Joe Cooper] (Джейми и Джо создали Virtualmin). Обе книги вышли в 2003 году. На сайте Webmin есть подробная информация о каждом модуле и множество экранных снимков, и это, пожалуй, лучший выбор.
Что изменилось?
Если вы хотите узнать, что Webmin делает «за кулисами», вот совет. Для начала создайте файл с временной отметкой «прямо сейчас». В командной строке это сделать легко:
touch /tmp/now
Теперь сделайте что-нибудь в Webmin и сохраните изменения. Вернитесь в командную строку и введите
find /etc -newer /tmp/now
Лучше всего она работает от имени root – иначе вас завалят сообщениями «нет доступа [permission denied]». Эта команда найдет все файлы, изменившиеся со времени выполнения команды touch. Исследуйте результат внимательно: там наверняка попадется одна-две «ложных тревог», но общее направление будет верным.
Virtualmin
Основанный на том же каркасе, что и webmin, но выходящий за пределы исходной концепции webmin, Virtualmin представляет собой набор модулей, упрощающих управление виртуальными доменами. Он прекрасно подходит провайдерам, позволяя им настроить целый домен для хостинга, в том числе MySQL, web-сервер Apache, почтовые ящики и связанные с ними записи DNS всего парой щелчков мыши. На демо-сайте www.virtualmin.com/demo можно создать собственный виртуальный домен и сымитировать настоящую виртуальную среду. Virtualmin развился до коммерческого продукта (Virtualmin Pro) с поддержкой и платной подпиской.
Cloudmin
Cloudmin – из той же семейки, что и Webmin с Virtualmin – предоставляет web-интерфейс для создания и управления виртуализированными экземплярами серверов. Он поддерживает несколько технологий виртуализации, в том числе Xen, OpenVZ (на основе контейнеров Linux), KVM, vserver и Amazon EC2. С его помощью также можно управлять физическими серверами, на которых запущены Virtualmin и Webmin, или с помощью старого доброго ssh. Cloudmin предназначен для того, чтобы провайдеры легче смогли начать предоставлять своим клиентам облачные сервисы. Как и Virtualmin Pro, это лицензионный продукт, стоимость которого на данный момент составляет $ 149 в год за 10 компьютеров или $ 299 за 50. Есть и бесплатная версия (Cloudmin GPL), но с ее помощью можно управлять только одним хостом Xen или KVM.