Рубрика:
Администрирование /
Продукты и решения
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
СЕРГЕЙ ЯРЕМЧУК, фрилансер. Автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС
Упрощаем себе жизнь с Webmin
У UNIX-подобных операционных систем много положительных сторон: безопасность, стабильность и, что особенно привлекает внимание многих, – бесплатность. Но для начинающих системных администраторов настройка системы может превратиться в настоящий ад. Копание в конфигурационных файлах, постоянное чтение документации, к тому же на не для всех понятном английском языке, может отпугнуть любого, привычного к удобному интерфейсу Windows-систем. Да что там отпугнуть, ошибки в конфигурационных файлах могут привести к серьезным проблемам с безопасностью. Мне часто в письмах приходят просьбы от новичков помочь подобрать дистрибутив для использования в качестве шлюза, но с обязательным наличием веб-интерфейса, сегодня попробуем раз и навсегда решить эту проблему.
Webmin (http://www.webmin.com) представляет собой веб-интерфейс для системного администрирования UNIX, использование которого существенно упрощает процесс управления системой. Кроме того, он будет полезен для удаленного управления системой тем администраторам, у которых нет в данный момент доступа к компьютеру с установленной UNIX-подобной системой, а стандартные сетевые средства Windows не блещут особым выбором необходимых утилит. В этом случае, используя любой веб-браузер, поддерживающий таблицы и формы (и JAVA для некоторых модулей), можно без затруднений в наглядной форме с локального или удаленного компьютера настроить пользовательские аккаунты, установить/удалить программы, настроить Web, mail, DNS-сервер, сервер печати, управлять базами данных, организовать совместное использование файлов, применяя Samba или NFS, настроить firewall, синхронизировать время, организовать совместный доступ в Интернет, мониторинг состояния сервисов, осуществить резервное копирование, записать CD-диск, получить доступ к файлам на удаленном компьютере, в том числе документации и прочие бесчисленные задачи администрирования, коих не счесть, но требующих определенных умений. При этом Webmin избавит вас от синтаксических ошибок и неточностей, как сможет предупредит о потенциально опасных действиях. Но это, правда, не значит, что совсем не обязательно все знать, и умная утилита сделает все сама. Иметь некоторые представления о строении UNIX, значениях тех или иных утилит, особенностях работы протоколов и сервисов все-таки необходимо. Опытным администраторам также не стоит игнорировать наличие такой удобной утилиты, ведь помнить все параметры в конфигурационных файлах и тонкости настройки сервисов на различных системах, согласитесь, довольно тяжело.
Написанный Джейми Камероном (Jamie Cameron) на языке Perl, Webmin имеет модульную структуру, позволяющую свободно наращивать требуемую функциональность или, наоборот, убрать все ненужное. В настоящее время доступно около 200 модулей как входящих в стандартную поставку, так и доступных для загрузки отдельно. Дополнительно ко всему интерфейс переведен на 32 языка, среди которых имеется и русский. На странице http://www.webmin.com/support.html найдете список из 35 UNIX-подобных операционных систем (в том числе и Cygwin, Mac OS X), на которых Webmin без проблем будет работать. Если вашего дистрибутива в нем нет, то отчаиваться не стоит, скорее всего, Webmin удастся заставить работать без трудностей. При этом одним из основных преимуществ Webmin является то, что он фактически подстраивается, в том числе изменяя свой интерфейс и поведение в соответствии с используемой ОС, т.е. фактически скрывает от конечного пользователя различия между всеми вариантами UNIX. Еще одним преимуществом Webmin является возможность делегировать часть полномочий по настройке определенных сервисов другим пользователям. Установить Webmin проще простого: скачиваем архив размером чуть меньше 7 Мб (доступны и прекомпилированные пакеты), распаковываем его, заходим внутрь и даем команду ./setup с указанием каталога, в котором вы хотите видеть установленный Webmin. По умолчанию установка будет произведена в текущий каталог. После чего необходимо будет ответить на ряд вопросов о будущем размещении конфигурационных файлов, нахождении интерпретатора Perl, номере порта, на котором Webmin будет ожидать соединения (по умолчанию 10000), логин и пароль для доступа, автоматический запуск при старте системы.
Config file directory [/etc/webmin]: Log file directory [/var/webmin]: ... Full path to perl (default /usr/bin/perl): Testing Perl ... Perl seems to be installed ok ... Web server port (default 10000): Login name (default admin): Login password: Password again: Use SSL (y/n): y ... Start Webmin at boot time (y/n):y |
В большинстве случаев можно со всем соглашаться и нажимать Enter. Если программа установки что-либо сама не найдет, то тогда в другой консоли при помощи whereis самостоятельно находим и прописываем путь вручную. После чего запустится свой мини-веб-сервер и будет выдана подсказка, по которой можно найти в сети webmin.
Webmin has been installed and started successfully. Use your web browser to go to https://grinder:10000/ and login with the name and password you entered previously. Because Webmin uses SSL for encryption only, the certificate it uses is not signed by one of the recognized CAs such as Verisign. When you first connect to the Webmin server, your browser will ask you if you want to accept the certificate presented, as it does not recognize the CA. Say yes. |
Еще один момент. Для возможности работы по защищенному каналу (а из внешней сети работать нужно только так, да и во внутренней не будет лишней подстраховка) требуется наличие модуля Net::SSLeay и OpenSSL (http://www.openssl.org). Поэтому при появлении сообщения
The Perl SSLeay library is not installed. SSL not available. |
загрузите модуль с CPAN и повторите установку, за дополнительной информацией обращайтесь по адресу: http://www.webmin.com/ssl.html. Иначе в строке веб-браузера набирайте http вместо https. Кстати, удалить Webmin также просто. Запускаем скрипт /etc/webmin/uninstall.sh, и его как не бывало. Дальнейшую настройку можно производить уже через Webmin. Но, например, если вы забыли пароль, то локально его изменить можно при помощи скрипта changepass.pl.
#/usr/local/webmin-1.140/changepass.pl /etc/webmin пользователь новый_пароль
Также изменить некоторые настройки можно, напрямую редактируя конфигурационные файлы miniserv.conf и config, которые лежат в каталоге с Webmin. В них возможно изменить значение сетевого порта, включить/выключить SSL (опция ssl=0/1), изменить месторасположение рабочих файлов, установить другой язык интерфейса (для русского значение lang должно быть ru_RU (для кодировки СР-1251) или ru_SU (koi8-r)). Если планируете часто заходить с компьютеров, где установлена ОС Windows, выберите лучше вариант с СР-1251, тогда будете реже перенастраивать кодировку в браузере. После изменений перезапустите webmin.
# /etc/webmin/stop && /etc/webmin/start
Но все настройки, повторяю, теперь доступны через веб-браузер. Набираем в строке браузера https://hostname:10000, авторизируемся (рис. 1):
Рисунок 1
После чего попадаем в главное окно программы (рис. 2).
Рисунок 2
Как видите, вполне привычная большинству пользователей рабочая обстановка.
Небольшое примечание: если Webmin уже был установлен в системе, то для входа вместо admin придется воспользоватья root (нужного пользователя можно посмотреть в файле webmin.acl, он идет первым, например, admin), но затем заведите лучше отдельного пользователя для работы с Webmin. Также в некоторых дистрибутивах может быть выставлен другой порт, используемый Webmin, иногда при выборе его значения следует учитывать, что некоторые провайдеры не любят пропускать пакеты на порты с адресами выше 1024, и, например, если не используется защищенный веб-доступ, то вполне подойдет порт 443, также и проследите, чтобы нужный порт был открыт firewall.
А так, зная особенности работы тех или иных сервисов, настроить их с Webmin особого труда не составит, просто выбираете нужную категорию (рис. 3) и заполняете или выбираете параметры, к тому же по адресу http://www.swelltech.com/support/webminguide-1.0/index.html доступна неплохая книга по использованию, которая будет особенно полезна начинающим «The book of Webmin».
Рисунок 3
Остановлюсь лишь на мерах безопасности и удобстве. Вполне возможно, что после регистрации перед вами предстанет английский интерфейс. Хоть английский и является родным языком админа, но, согласитесь, общаться на родном все же приятней. Заходим «Webmin Configuration –> Language» и выбираем из выпадающего списка нужный язык, после чего подтверждаем свой выбор нажатием на «Change Language». И возвращаемся теперь уже к пункту «Настройка Webmin». По умолчанию Webmin будет принимать подключения со всех адресов, что не всегда нужно и безопасно, используя пункт «Управление доступом по IP» (IP Access Control), можно ограничить доступ, оставив его только для тех адресов, которым вы доверяете (например, внутренняя сеть), полный доступ можно разрешить, только если вы, например, уезжаете в отпуск и хотите иметь возможность попасть на свой сервер. Здесь возможно задать в качестве параметра сразу сеть или подсеть, отдельные узлы по IP-адресу или доменному имени. В последнем случае для подстраховки установите галочку в пункте «Определять IP-адрес по имени при каждом запросе». Для быстроты эту операцию можно проделать и вручную, использовав в файле /etc/webmin/miniserv.conf параметры allow= или deny=. Первый содержит список узлов и компьютеров, перечисленных через пробел, которым позволено соединяться, второй, наоборот, попытки доступа с которых будут игнорироваться.
После установки при положительном ответе на вопрос «Start Webmin at boot time» Webmin будет загружаться при старте системы, другим вариантом запуска будет использование для этих целей xinetd. Для этого в файл miniserv.conf добавляем строчку inetd=1 и убираем session=1. После этого пишем в файл /etc/xinetd.conf (в некоторых дистрибутивах вроде Slaskware его сначала создаем командой touch /etc/xinetd.conf):
service webmin
{
user = root
env = LANG=
port = 10000
socket_type = stream
protocol = tcp
wait = no
disable = no
type = UNLISTED
server = /usr/local/webmin-1.140/miniserv.pl
server_args = /etc/webmin/miniserv.conf
}
После чего перезапускаем xinetd.
Теперь самое время заняться пользователями. Для начала используем модуль «Аутентификация», который позволяет включить увеличение задержки между неудачными попытками ввода пароля для одного и того же пользователя и блокирование доступа после нескольких неудачных попыток на определенное время, что затруднит попытки подбора пароля в лоб, все подобные действия можно также заносить в журнал. Для забывчивых и ленивых пользователей можно активировать опцию, позволяющую автоматически отключать доступ после определенного интервала времени, и здесь же отключить возможность запоминания введенного пароля. Для улучшения защиты от перебора стоит также установить утилиту logwatch (http://www.logwatch.org), с которой отлично ладит Webmin.
Следующий полезный модуль «Пользователи Webmin» (Webmin Users) позволит создать пользователя или группу, наделенную определенными правами по работе с теми или иными сервисами.
Здесь же можно преобразовать пользователей UNIX в пользователей Webmin с определенными правами, настроить синхронизацию пользователей, при которой вновь созданные пользователи автоматически попадают в одну из групп Webmin, настроить аутентификацию пользователей, просмотреть журналы работы и прервать сеанс пользователя.
Webmin может вести журнал событий в стандартном формате журнальных файлов CLF (combined log format), при этом имеет довольно гибкие возможности по регистрации. Так, зайдя в меню «Настройка Webmin –> Журнал» можно указать, какие IP-адреса и имена узлов будут заноситься в журнал, действия каких пользователей будут регистрироваться, а также как часто журнал будет очищаться. Записи журнала будут заноситься в файл /var/webmin/miniserv.log.
Кроме того, при активации опции «Заносить изменения, произведенные в файлах при каждом действии» также будут вестись подробные записи действий пользователей в файл /var/webmin/webmin.log. Этот журнал может быть просмотрен и проанализирован с помощью модуля «Журнал действий Webmin» (Webmin Actions Log).
Если возможностей Webmin не хватает или соскучились по командной строке, то во вкладке «Прочее» (Others) имеются несколько специальных пунктов. «Вход по SSH/Telnet» (SSH/Telnet Login), который по умолчанию пытается подключиться к 23 порту сервиса telnet, чтобы изменить поведение, нажимаем вкладку «Настройка модуля» и в строке «Тип соединения» выбираем Secure Shell, здесь же можно выставить количество строк, другой узел для работы и использование отдельного окна. Так что Webmin может пригодиться для того, чтобы попасть на свои компьютеры, используя SSH в местах, где не так просто найти необходимые приложения (даже из интернет-кафе), для этого достаточно запустить его на одной из своих машин.
Далее во вкладке «Прочие» обнаруживается и интерфейс к командному интерпретатору «Командная оболочка (shell)» (Command Shell), позволяющий удаленно выполнять команды оболочки и поддерживающий историю команд.
Следующий пункт «Команды пользователя» (Custom Commands) позволяет неподготовленным пользователям выполнять команды или скрипты нажатием одной кнопки. Админу достаточно создать команду, заполнив соответствующие поля (прописать комманду, задать параметры пользователя, от имени которого будет выполняться команда, добавить описание и пр.).
Здесь же во вкладке «Прочее» найдете и менеджер файлов (рис. 4) (требует подержки JAVA), который позволит получить доступ к файлам на удаленном компьютере в удобной графической оболочке.
Рисунок 4
Модульность Webmin позволяет нарастить функциональность до нужного уровня, а с другой стороны, убрать лишнее, чтобы не мозолило глаза и не отвлекало от работы. Некоторые модули доступны с главного сайта, большую коллекцию модулей найдете по адресу http://www.thirdparty modules.com/webmin. В первую очередь хотелось бы отметить модуль Usermin (http://www.usermin.com), написанный также Джейми Камероном. В отличие от Webmin, нацеленного на администратора, Usermin ориентирован на конечного пользователя, позволяя читать почту, работать с GPG, иметь удаленный доступ к своим файлам, управлять заданиями cron и пр.
Для установки достаточно зайти в раздел «Настройка Usermin» (Usermin Configuration) и нажать на кнопку «Install Usermin tar.gz package». Для работы с модулями (обычно файл с расширением .wbm, хотя возможна установка и rpm-пакетов) заходим в «Модули Webmin» (Webmin Modules), где можно установить новый, указав его местонахождение на локальном диске или в Интернете, удалить модуль, выбрав его из списка, или копировать модуль. Копирование модулей позволяет иметь один и тот же модуль с разными настройками, который можно положить в разные группы для быстрого доступа и разрешить доступ разным пользователям.
Из других удобств следует отметить возможность изменения внешнего вида (в одноименной вкладке), позволяющую подобрать цвета по вкусу и более глобально изменить вид, в том числе значки, цвета, фон и расположение страниц темы. Может, кому это покажется и игрушкой, но когда приходится удаленно настраивать работу нескольких узлов одновременно, то разное оформление позволяет меньше путаться.
Вот такой он, Webmin. Простой в установке и настройке, полезный в работе, позволяющий администраторам больше сосредоточиться на процессе настройки системы и дающий возможность безопасно работать и получать информацию из тех мест, где нет доступа нужным утилитам. Есть, конечно, и другие утилиты, имеющие аналогичные (почти) возможности, наиболее популярен здесь linuxconf (http://www.solucorp.qc.ca/linuxconf), традиционно входящий в состав RedHat и умеющий работать как в консоли, так и в Х, и позволяющий подключаться через сеть. Но все-таки linuxconf, как мне кажется, менее удобен, особенно для новичка, имеет меньше возможностей и ориентирован в первую очередь на локальное применение.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|