Изучаем Linux, 302 (смешанные среды): Конфигурирование SWAT

Управление Samba с помощью Web-интерфейса

Samba Web Administration Tool (SWAT) – это графический Web-инструмент для администрирования Samba, который можно запустить на любом компьютере, на котором установлен Web-браузер. Поскольку SWAT является самостоятельным сервером, то, как и все серверы, требует выполнения определенных начальных настроек конфигурации. Из этой статьи вы узнаете о том, как установить, настроить и использовать SWAT для управления Samba.

Родерик Смит (Roderick Smith), автор и консультант, IBM

Род Смит (Rod Smith) - фотографияРод Смит (Rod Smith) долгое время работает техническим консультантом и является автором более десятка книг о Linux, UNIX и сетях.



14.06.2012

Об этой серии

Эта серия статьей поможет вам освоить задачи администрирования операционной системы Linux. Вы можете использовать материалы этих статей для подготовки к экзаменам программы LPIC третьего уровня (LPIC-3).

Чтобы посмотреть описания статей этой серии и получить ссылки на них, обратитесь к нашему перечню материалов для подготовки к экзаменам LPIC-3. Этот перечень постоянно дополняется новыми статьями по мере их готовности и содержит текущие (по состоянию на ноябрь 2010 года) цели экзаменов сертификации LPIC-3.

Краткий обзор

В этой статье рассматриваются следующие темы:

  • Обзор возможностей Samba Web Administration Tool (SWAT).
  • Инсталляция и настройка SWAT.
  • Конфигурирование Samba с помощью SWAT.

Эта статья поможет вам подготовиться к сдаче экзамена LPI 302 (специализация "Смешанные среды") и содержит материалы цели 312.5 темы 312. Цель имеет вес 4.


Предварительные требования

О факультативном экзамене LPI-302

Как и многие другие программы, программа сертификации Linux Professional Institute (LPIC) предусматривает различные уровни сертификации, где для получения каждого последующего уровня необходимо обладать более глубокими знаниями и практическим опытом. Экзамен LPI-302 – это факультативный экзамен третьего уровня программы LPIC, требующий продвинутых знаний в области системного администрирования Linux.

Для получения сертификата LPIC третьего уровня (LPIC-3) необходимо успешно сдать два экзамена первого уровня (101 и 102), два экзамена второго уровня (201 и 202), а также базовый экзамен 301 третьего уровня (LPIC-3). Если вы получили сертификат третьего уровня, вы можете сдавать факультативные экзамены по определенным специализациям, например, экзамен LPI-302.

Чтобы извлечь наибольшую пользу из этой статьи, необходимо обладать практическими навыками работы с инструментами командной строки Linux и знать основы конфигурирования Samba. Вы должны знать общую структуру конфигурационного файла smb.conf и иметь представление о работе серверов, включая использование сценариев запуска System V (SysV) и супер-серверов.


Установка и запуск SWAT

В Samba версии 3.x SWAT является отдельным самостоятельным сервером (в дополнение к двум основным серверам Samba – smbd и nmbd), поэтому его необходимо инсталлировать и запускать отдельно от Samba. Также может потребоваться отдельная инсталляция SWAT в зависимости от того, каким способом был установлен сервер Samba. Для обеспечения дополнительной защиты можно настроить SWAT на использование SSL-шифрования.

Примечание. Версия Samba 4, до сих пор находящаяся в разработке, содержит существенные изменения в архитектуре, затрагивающие, в том числе, и SWAT. В этой статье рассматривается SWAT для версии Samba 3.x (на сегодняшний день рекомендуется использовать в рабочих окружениях именно эту версию).

Создайте ваш собственный канал

Вы можете создать ваш собственный RSS, Atom или HTML канал обновлений и получать уведомления о новых или обновленных статьях нашего сайта. Для этого перейдите на страницу developerWorks RSS feeds, выберите зону Linux, установите флажок Статьи и введите в качестве ключевой фразы Linux Professional Institute, после чего выберите требуемый тип канала.

Инсталляция SWAT

Если сервер Samba был создан из исходного кода, как описано в цели 311.1, то SWAT уже должен быть скомпилирован и установлен вместе с компонентами Samba. Запретить компиляцию SWAT позволяет опция --disable-swat команды configure. Если же вы хотите явно разрешить компиляцию SWAT, то можно не полагаться на значения по умолчанию, а указать команде configure опцию --enable-swat.

Если сервер Samba был инсталлирован из пакета двоичного кода, разработанного для вашего дистрибутива, то просмотрите список пакетов, чтобы узнать, как можно установить SWAT. Во многих дистрибутивах сервер SWAT содержится в пакете с именем swat или samba-swat. Этот пакет необходимо инсталлировать отдельно от основных пакетов Samba, хотя, он может инсталлироваться и автоматически. Используйте инструменты для работы с пакетами, чтобы узнать, какие пакеты установлены на вашем компьютере.

Если вы не можете найти отдельный пакет SWAT, то, возможно, он был установлен как часть другого пакета Samba. Двоичный файл SWAT называется, как ни странно, swat, поэтому вы можете поискать его в вашей файловой системе и, таким образом, определить, установлен ли SWAT на вашем компьютере. При использовании дистрибутива Gentoo Linux для извлечения пакета samba для сборки SWAT значение swat должно быть задано в качестве флага USE.

После того, как SWAT инсталлирован, его можно запускать. Работа SWAT осуществляется через супер-сервер, например, xinetd или inetd. Поскольку конфигурации этих двух супер-серверов существенно отличаются, то мы рассмотрим их отдельно.

Запуск SWAT через xinetd

На сегодняшний день в большинстве дистрибутивов Linux в качестве супер-сервера используется xinetd. Если вы не знаете точно, какой супер-сервер работает на вашем компьютере, то попробуйте поискать строку inetd с помощью команды ps.

$ ps ax | grep inetd
17996 ?        Ss     0:00 /usr/sbin/xinetd -pidfile /var/run/xinetd.pid -stayalive -reuse

В этом примере видно, что на компьютере работает xinetd. Если в выводе команды ps есть процесс inetd, то следуйте инструкциям из следующего раздела Запуск SWAT через inetd. Если ни один из этих процессов не запущен, то, возможно, потребуется установить xinetd или inetd самостоятельно.

Сервер xinetd использует конфигурационный файл с именем /etc/xinetd.conf. В большинстве дистрибутивов этот файл содержит глобальные параметры, а файлы с настройками, относящимися к различным серверам, расположены в директории /etc/xinetd.d. Конфигурационный файл SWAT, скорее всего, будет называться /etc/xinetd.d/swat, а его содержимое должно быть похоже на содержимое листинга 1.

Листинг 1. Пример конфигурационного файла SWAT
service swat
{
        port            = 901
        socket_type     = stream
        protocol        = tcp
        wait            = no
        only_from       = localhost
        user            = root
        server          = /usr/sbin/swat
        log_on_failure += USERID
        disable         = yes
}

Ваша конфигурация может иметь некоторые отличия, но основные параметры должны быть такими же. Если этот файл отсутствует в вашей системе, то можно либо создать его вручную, либо добавить в файл /etc/xinetd.conf запись, описывающую службу SWAT. Значения для большинства параметров лучше не изменять (либо оставить их, как есть, в конфигурационном файле вашего дистрибутива, либо задать в соответствии с предыдущим примером), однако может потребоваться настроить некоторые из них:

  • only_from – ограничивает доступ. В нашем примере xinetd разрешает доступ только с компьютера, на котором запущен SWAT. Эта мера защиты является достаточно эффективной, однако если необходимо управлять сервером Samba с другого компьютера (а, возможно, с нескольких), то можно указать в этой строке различные адреса. Можно указывать адреса различных типов; чтобы узнать подробности, обратитесь к man-странице xinetd.conf.
  • server – содержит полный путь к двоичному файлу SWAT. Убедитесь, что файл swat присутствует в указанной директории.
  • disable = yes – указывает xinetd на то, что SWAT не должен запускаться. Для использования SWAT необходимо изменить значение этого параметра на disable = no.

Последняя строка очень важна: в целях безопасности во многих дистрибутивах запуск SWAT запрещен по умолчанию в файле /etc/xinetd.d/swat. Кроме того, серверы могут быть запрещены в файле /etc/xinetd.conf:

disabled = swat

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

После настройки всех необходимых параметров в файле /etc/xinetd.d/swat необходимо, чтобы xinetd перезагрузил свой конфигурационный файл. В большинстве дистрибутивов это можно сделать, передав опцию reload в сценарий запуска SysV сервера xinetd:

# /etc/init.d/xinetd reload

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

Запуск SWAT через inetd

Если вы используете inetd, то процесс настройки будет похож на процесс настройки xinetd, но с несколькими существенными отличиями. Как вы могли догадаться, конфигурационный файл inetd называется /etc/inetd.conf. Последние версии inetd поддерживают разделение конфигурации на несколько файлов, каждый из которых относится к определенному серверу (как и в случае с xinetd), поэтому в директории /etc/inetd.d вы можете найти несколько отдельных конфигурационных файлов.

При использовании как файла /etc/inetd.conf, так и файла /etc/inetd.d/samba конфигурация Samba состоит из одной строки:

swat  stream  tcp  nowait  root  /usr/sbin/tcpd  /usr/sbin/swat

Эта строка содержит почти ту же самую информацию, что и строка конфигурации xinetd. Номер порта можно определить, найдя имя (swat) в начале строки в файле /etc/services. Фрагмент /usr/sbin/tcpd в этом примере не имеет аналога для конфигурации xinetd, поскольку он указывает на программу, которую запускает inetd при попытках обращений клиента к серверу. В этом примере inetd запускает TCP Wrappers (используя для этого имя программы /usr/sbin/tcpd). TCP Wrappers, в свою очередь, выполняют собственные проверки безопасности и запускают SWAT, т. е. программу, указанную в последнем фрагменте строки (/usr/sbin/swat).

В файле /etc/inetd.conf строка для SWAT может быть закомментирована с помощью символа решетки (#). В этом случае необходимо раскомментировать эту строку для включения SWAT. После раскомментирования этой строки и соответствующей настройки конфигурации необходимо, чтобы inetd перезагрузил свой конфигурационный файл. Это делается точно так же, как и в случае с xinetd, который был рассмотрен в предыдущем разделе.

Включение SSL-шифрования

Как только что было сказано, стандартная конфигурация SWAT не поддерживает шифрование. В этом нет ничего страшного, если вы разрешили доступ только с локального компьютера (как было показано в конфигурации для xinetd) или наложили подобные ограничения с помощью TCP Wrappers. Однако если вы планируете работать с SWAT удаленно, то отсутствие шифрования означает, что пароль пользователя root будет передаваться по сети в незашифрованном виде. Это создает большой риск безопасности, особенно если необходимо подключаться к SWAT с удаленного компьютера через Интернет, а не через локальную сеть, в которой работает сервер Samba.

Чтобы повысить уровень безопасности, можно настроить в конфигурации SWAT поддержку SSL. Для этого необходимо установить дополнительное программное обеспечение OpenSSL и stunnel и внести изменения в конфигурацию. Во многих дистрибутивах доступны оба этих пакета, и их инсталляция не должна вызывать трудностей.

Примечание. Лучше всего сначала настроить и протестировать SWAT без использования SSL-шифрования. Таким образом, вы будете точно знать, что сервер работает в соответствии с минимальными настройками. Если при этом возникают проблемы, то они не связаны с SSL. После устранения таких проблем можно приступать к настройке шифрования.

После того, как вы инсталлировали программы OpenSSL и stunnel, выполните следующие действия:

  1. При необходимости создайте пользователя и группу для stunnel.

    Возможно, эти действия будут выполнены автоматически при установке пакета stunnel, и этот шаг не потребуется.

  2. Сгенерируйте SSL-сертификат и закрытый ключ, выполнив следующую команду (в одной строке) от имени пользователя root:
    # openssl req -new -x509 -days 365 -nodes -out 
       /etc/stunnel/stunnel.pem -keyout /etc/stunnel/stunnel.pem

    В процессе выполнения этой команды вы должны будете предоставить различную информацию (например, имя компьютера и адрес электронной почты). Помните, что сертификат, создаваемый этой командой, действует в течение 365 дней, поэтому вам придется повторять эту процедуру каждый год.

  3. Измените разрешения для файла /etc/stunnel/stunnel.pem, сделав его владельцами пользователя и группу stunnel, созданные на шаге 1.
  4. Создайте или измените файл /etc/stunnel/stunnel.conf.

    В листинге 2 приведен пример конфигурации. Если в вашей системе уже есть этот файл, то оставьте его параметры без изменений, но убедитесь, что в конце присутствуют три строки, показанные в листинге 2 (три последние строки, начиная со строки [swat]). Эти строки указывают stunnel, как нужно обрабатывать подключения к SWAT: в частности, stunnel прослушивает порт 901 и передает дешифруемый трафик на порт 902. Также убедитесь в том, что в строках cert и key указан сертификат, который был сгенерирован на шаге 2.

    Листинг 2. Для утилиты stunnel требуется собственный конфигурационный файл
    chroot  = /var/lib/stunnel/
    pid     = /stunnel.pid
    setuid  = stunnel
    setgid  = stunnel
     
    debug   = 7
    output  = /var/log/messages
     
    client  = no
    cert    = /etc/stunnel/stunnel.pem
    key     = /etc/stunnel/stunnel.pem
    
    # Accept SSL connections on port 901 and funnel it to
    # port 902 for swat. 
    [swat]
    accept   = 901
    connect  = 902
  5. Создайте новую запись для SWAT в файле конфигурации xinetd или inetd.

    Эта конфигурация должна выглядеть как обычная конфигурация без поддержки шифрования, за исключением того, что должен прослушиваться порт 902, а вместо имени swat должно использоваться имя swat-stunnel. Подключения должны быть разрешены только c интерфейса локального компьютера (localhost).

  6. Удалите или закомментируйте исходную конфигурацию SWAT в файле xinetd или inetd.
  7. Отредактируйте файл /etc/services:
    1. Скопируйте строку swat.
    2. Переименуйте скопированную строку в swat-stunnel.
    3. Измените номер порта на 902.
  8. В некоторых дистрибутивах для запуска stunnel может потребоваться отредактировать файл /etc/default/stunnel4. В частности, необходимо изменить значение параметра ENABLED с 0 на 1.
  9. Перезапустите супер-сервер.
  10. Запустите stunnel.

    Для однократного запуска stunnel можно выполнить команду /etc/initd.d/stunnel start от имени пользователя root, а для регулярного запуска может потребоваться изменить конфигурацию SysV.

После того, как вы внесли все изменения, вы должны получить возможность подключаться к SWAT с использованием шифрованного соединения, используя вместо протокола http:// протокол https://. Обратите внимание на то, что при первом подключении браузер может сообщить о том, что сертификат не является доверенным, поскольку вы сгенерировали его сами. Разрешите использование этого сертификата.


Использование SWAT

После того, как SWAT сконфигурирован, можно приступать к его использованию. Подключиться к SWAT можно через любой Web-браузер. Подключившись к SWAT, можно управлять сервером Samba.

Подключение к SWAT

В любом браузере, в котором вы привыкли работать, наберите URL-адрес http://localhost:901; если вы подключаетесь к SWAT с удаленного компьютера, то вместо localhost укажите имя сервера, на котором запущен SWAT. Если вы настроили SSL-шифрование, то замените префикс http:// на https:// в начале URL-адреса. Если SWAT разрешено принимать учетные данные с других удаленных компьютеров, то для подключения к SWAT можно использовать Web-браузер любой операционной системы – Linux, Mac OS X, Windows и других. Можно даже использовать браузер мобильного телефона.

При первом подключении к серверу браузер запросит у вас имя пользователя и пароль. Введите в качестве имени пользователя root и пароль для этой учетной записи. После этого вы попадете на главную страницу SWAT, как показано на рисунке 1.

Рисунок 1. Главная страница SWAT, позволяющая выполнять различные действия
Рисунок 1. Главная страница SWAT, позволяющая выполнять различные действия

Кнопки, расположенные под логотипом Samba, настраивают различные параметры – раздел [global], общие файловые ресурсы, общие ресурсы печати и т. д. Как правило, если вы знакомы с конфигурационным файлом Samba smb.conf, то сможете легко настроить Samba с помощью SWAT.

Если прокрутить домашнюю страницу SWAT, то вы увидите ссылки на документацию Samba. Эта документация состоит из man-страниц различных демонов Samba, конфигурационных файлов, утилит и т. д.

Использование возможностей SWAT

Рассмотрим пример использования SWAT. Нажмите кнопку GLOBALS. На обновившейся странице вы увидите доступные для настройки параметры раздела [global] файла smb.conf, как показано на рисунке 2. Нажмите кнопку Advanced, если вы хотите получить доступ к дополнительным параметрам; по умолчанию (в режиме Basic) отображаются только общие параметры.

Рисунок 2. SWAT позволяет настраивать параметры Samba с помощью различных Web-форм и меню
Рисунок 2. SWAT позволяет настраивать параметры Samba с помощью различных Web-форм и меню

Внимательно ознакомьтесь с параметрами, содержащимися на этой странице, и попробуйте изменить некоторые из них. Чтобы внести изменения в файл smb.conf и перезагрузить конфигурацию, необходимо нажать кнопку Commit Changes.

Если нажать кнопку SHARES или PRINTERS, то можно редактировать общие файловые ресурсы и ресурсы печати, соответственно. Интерфейс идентичен интерфейсу раздела [globals] за исключением того, что нужно выбрать из выпадающего списка настраиваемый общий ресурс и нажать кнопку Choose Share. Можно также создать новый общий ресурс, указав его имя в текстовом поле напротив кнопки Create Share и нажав ее.

Дополнительные кнопки позволяют выполнять следующие действия:

  • Кнопка WIZARD открывает страницу, на которой вы можете быстро выполнить некоторые общие настройки, например, настроить конфигурацию домена.
  • Кнопка STATUS показывает текущий статус сервера Samba, например, сколько активных подключений обрабатывается, и к каким файлам происходят обращения. На этой же странице можно запустить, остановить или перезапустить серверы smbd, nmbd и winbindd.
  • Кнопка VIEW показывает текущий конфигурационный файл smb.conf.
  • Кнопка PASSWORD позволяет управлять пользователями – изменять пароли, добавлять и удалять пользователей, и т. д. Можно управлять как локальными пользователями, так и пользователями другого сервера Server Message Block (SMB)/Common Internet File System (CIFS).

Большинство возможностей SWAT доступны только пользователю root. Обычные пользователи могут просматривать страницы HOME, STATUS, VIEW и PASSWORD, однако некоторые параметры на этих страницах им недоступны. Вероятно, обычным пользователям будет доступна страница PASSWORD, поскольку они могут использовать ее для смены собственных паролей.


Предостережения относительно использования SWAT

SWAT – это полезный инструмент, тем не менее, он имеет определенные ограничения и недостатки. Основное и самое серьезное – это отсутствие в SWAT поддержки директивы include, которая используется в файле smb.conf для разделения конфигурации на несколько отдельных файлов (можно даже иметь отдельные конфигурационные файлы для различных клиентов). Если вы используете такие конфигурации, то SWAT окажется для вас бесполезен, по крайней мере, для настройки конфигурации Samba (тем не менее, пользователи могут использовать SWAT для смены своих паролей).

Другая основная проблема SWAT связана с безопасностью. Можно свести риск к минимуму, разрешив подключения только с локального компьютера или используя SSL-шифрование при удаленных подключениях, как это было описано выше. Но даже с учетом этих мер, любой сервер является потенциальной угрозой безопасности: программное обеспечение может содержать скрытые ошибки или быть неправильно настроено. Необходимо учитывать эти риски и принимать соответствующие меры предосторожности, например, использовать TCP Wrappers, параметры xinetd или правила брандмауэра iptables для ограничения доступа к компьютеру. Чем больше пользователей могут получить доступ к серверу из Интернета, тем более подвержена риску его конфигурация.


Что дальше

Следующая статья этой серии содержит материалы цели 312.6 темы 312. В ней рассматриваются вопросы локализации Samba, включая использование кодовых страниц и других возможностей для поддержки сервером Samba файлов, в названиях которых используются языки, отличные от английского.

Ресурсы

Научиться

Получить продукты и технологии

  • Web-сайт stunnel (EN) – загрузите программу stunnel и документацию по ней.
  • Web-сайт OpenSSL (EN) – загрузите OpenSSL и документацию по этому программному обеспечению.

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=821174
ArticleTitle=Изучаем Linux, 302 (смешанные среды): Конфигурирование SWAT
publish-date=06142012