Установка webmin на Ubuntu Server 16.04
Не всегда удобно настраивать систему через терминал. Многие администраторы предпочитают графический интерфейс терминалу для решения простых задач. На серверах полноценный графический интерфейс использовать не принято, чтобы не затрачивать ценные вычислительные ресурсы, но зато очень часто применяются веб-интерфейсы для настройки.
С помощью веб-интерфейса вы сможете получить доступ к настройке веб-сервера из любого места где есть доступ к интернету и вам понадобится только браузер. Один из таких веб-интерфейсов с открытым исходным кодом — webmin. Он очень популярен среди пользователей Linux из-за своей простоты и огромной функциональности.
Что такое Webmin?
В большинстве случаев для администрирования сервера можно обойтись и без командной строки, а просто выполнить все действия через веб-интерфейс. Давайте рассмотрим какие функции поддерживает Webmin:
- Создание и удаление учетных записей пользователей;
- Настройка служб и сервисов с помощью специальных модулей, например, Apache или DNS;
- Создание почтовых ящиков пользователей;
- Просмотр статистики использования системы.
В поставке по умолчанию Webmin содержит более 500 скриптов, которые и реализуют связь между опциями веб-интерфейса и командной оболочкой системы.
И к этому всему могут быть добавлены дополнительные модули чтобы еще более расширить функциональность программы. Webmin полностью написан на Perl и как я уже говорил доступен бесплатно.
В этой статье мы рассмотрим как выполняется установка Webmin на Ubuntu Server 16.04.
Установка Webmin на Ubuntu Server
Перед тем как перейти к установке Webmin в Ubuntu необходимо добавить официальный репозиторий программы в источники приложений. Для этого откройте файл /etc/apt/sources.list и добавьте туда строки:
sudo vi /etc/apt/sources.list
deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib
Затем добавьте GPG ключ репозитория:
sudo wget http://www.webmin.com/jcameron-key.asc
$ sudo apt-key add jcameron-key.asc
- Осталось обновить списки пакетов:
- sudo apt-get update
- Только теперь может быть выполнена установка webmin ubuntu 16.04:
- sudo apt-get install webmin
- Когда установка завершится, чтобы разрешить доступ к веб-интерфейсу извне нужно открыть порт 10000 с помощью брандмауэра. Для этого выполните:
- sudo ufw allow 10000
Теперь все готово к работе, дальше мы рассмотрим как выполняется настройка Webmin Ubuntu Server 16.04, а также как с помощью этой программы конфигурировать систему.
Настройка Webmin на Ubuntu 16.04
Получить доступ к интерфейсу Webmin можно просто набрав адрес вашего сервера и порт 10000 в адресной строке браузера. По умолчанию Webmin использует https, поэтому вам тоже нужно будет применить этот протокол. Адрес будет выглядеть вот так:
https://ip_адрес:10000
Браузер предупредит, что сертификат SSL не является доверенным, это происходит потому, что webmin автоматически создает свой сертификат после установки. И поскольку этот сертификат был выдан не удостоверяющим центром, браузер не может считать его надежным. Но мы знаем, что это наш сервер, поэтому можем продолжить.
На следующем экране вам нужно будет ввести свой логин и пароль на сервере для входа в веб-интерфейс. Этот пользователь должен иметь полномочия суперпользователя:
Вот так будет выглядеть главная страница:
На первой странице показана общая информация о системе, которая поможет вам понять с какой системой вы сейчас имеете дело. Также здесь будет показаны обновления Webmin если они есть.
В левой части экрана вы найдете меню навигации, с помощью которого вы получите доступ к различным модулям Webmin и сможете управлять сервером. В разделе Webmin содержаться настройки самой программы Webmin, другие разделы отвечают за другие системные службы или параметры.
Выводы
Вот и все, установка Webmin на Ubuntu Server 16.04 завершена и теперь вы можете настраивать свою систему удаленно. Это может быть очень полезно, когда вы не можете или не хотите использовать терминал. Если у вас остались вопросы, спрашивайте в х!
Безопасный доступ к webmin (правильный способ):
Рекомендуемый способ безопасного доступа к webmin (или любой другой службе на вашем сервере) заключается в том, чтоб оставить порт 10000 закрытым. Будем поучать доступ к webmin через ssh. Это гораздо безопаснее.
Вот как это делается :
- Вам надо скачать putty-a free ssh и telnet client для windows.
- Устанавливаем и запускаем.
- В поле Имя хоста (или IP address) введите имя хоста или ip-адрес вашего сервера
- В поле Порт введите SSH port, который используется для подключения к серверу
- Тип подключения: SSH
- В Saved Sessions введите имя, чтобы сохранить настройки, которые вы делаете, я использую имя хоста.
- Далее, в разделе категория, нажмите на знак + рядом с «SSH«, в разделе «соединение» и выберите » туннели“
- В исходном порту проставляется 10000
- В пункт назначения положить 127.0.0.1: 10000
Установка защита Webmin Centos server
Нажмите кнопку Add, и вы увидите строку L10000 127.0.0.1: 10000, добавленную в разделе перенаправленные порты
Установка защита Webmin Centos server
Используйте прокрутку, чтобы прокрутить назад, и нажмите на Session еще раз, а затем нажмите кнопку “SAVE”. Вы должны увидеть свои сохраненные настройки в «Saved Sessions”
Установка защита Webmin Centos server
Проверим наше соединение. Нажимаем кнопку “Open” , если имя хоста и порт верны, вы должны быть встречены на заднем экране с подсказкой ” войти как:»:
Введите свое имя пользователя и нажмите кнопку “enter”
Вам будет предложено ввести пароль. Введите его, снова нажмите ” enter «, и если все идет хорошо, вы увидите $ или # prompt вашего сервера. Уже почти готово!!!
Запустите ваш любимый браузер перейдите на https://127.0.0.1:10000, ошибку конфиденциальности надо игнорировать. Вы увидите экран входа webmin
Установка защита Webmin Centos server
Как включить больше плагинов в Munin?
По умолчанию есть только несколько пунктов для мониторинга (плагинов) и они будут отображены в интерфейсе Munin. Но есть много других полезных плагинов и мы можем добавить их если нам нужно.
Эти детали можно найти в каталоге /usr/share/munin/plugins/.
Например, мы хотим добавить MySQL плагин. Чтобы сделать это, нужно создать символическую ссылку к плагинам, как показано ниже.
# ln -s /usr/share/munin/plugins/mysql_* /etc/munin/plugins/
Перезапустите службу munin-node на вашем сервере.
# service munin-node restart
Подождите 5 минут и вы увидите что элементы MySQL будет добавлены.
Вот и все. Я полностью завершил «Установка и настройка Munin в CentOS/RedHat/Fedora».
Установка
При первом запуске машины VirtualBox запрашивает загрузочный диск. В моем примере установочный образ CentOS смонтирован в диск G:
На первом экране, соответственно, выбираем Install CentOS 7. После загрузки установщика мы довольно неожиданно попадаем в весьма симпатичную графическую оболочку. Именно для нее потребовалась мышь типа «USB планшет». Теоретически можно выбрать русский язык, но «для полноты ощущений» предлагаю оставить английский:
Данные для следующего этапа некоторое время заполняются значениями по умолчанию. Большинство пунктов можно не трогать — это Keyboard, Language Support, Installation Source, Software Selection, KDUMP и Security Policy. За исключением клавиатуры и языка, альтернатив особо и нет. Сначала настраиваем время (фактически просто выбираем часовой пояс):
Переходим к выбору места установки (Installation Destination), и на этом пункте хотелось бы остановиться. Локальный диск у моей виртуальной машины один — он и выбран по умолчанию. Таблица разделов может быть создана автоматически, что по сути мы и сделаем. Однако хотелось бы понять, каким образом будет размечен диск, для этого переключаемся на I will configure partitioning. Ниже (не поместился на один экран) есть еще флаг Encrypt my data, но шифровать мы наверное ничего не будем. Открывается окно создания таблицы разделов.
Как я и говорил, рассмотрим автоматически создаваемую таблицу — нажимаем «Click here to create them automatically». Получается довольно интересно:
Чуть было не забыл про настройку сети. Предлагаю сетевые адаптеры включить сразу во время установки — по умолчанию они выключены.
На данном этапе настройки закончены.
По кнопке Begin Installation начинается собственно процесс установки, при этом параллельно можно установить пароль root’у (это такой unix’овый суперпользователь, если вдруг ) и/или создать пользователя. «В стиле Ubuntu» предпочтительнее создание администратора без задания пароля root’а и повышение привилегий с помощью sudo при необходимости.
Что за прикол с группой wheel, я сначала не понял — оказалось, в CentOS это и есть группа администраторов. Через некоторое время установка завершится и останется лишь нажать кнопку Reboot.
Установка php в CentOS 8
Установка php в Centos 8 сильно упростилась по сравнению с предыдущей версией, потому что в базовом репозитории хранится актуальная версия php 7.2, которой можно пользоваться. Пока нет необходимости подключать сторонние репозитории, так как версия 7.2 вполне свежа и актуальна. Если у вас нет необходимости использовать что-то новее, то можно остановиться на этой версии.
Устанавливаем php в CentOS 8, а так же некоторые популярные модули, которые могут пригодиться для того же phpmyadmin.
Выполним перезапуск apache:
Создадим файл в директории виртуального хоста и проверим работу php:
Заходим по адресу http://z.serveradmin.ru/index.php
Вы должны увидеть вывод информации о php. Если что-то не так, возникли какие-то ошибки, смотрите лог ошибок виртуального хоста, php ошибки будут тоже там.
Где лежит php.ini
После установки часто возникает вопрос, а где хранятся настройки php? Традиционно они находятся в едином файле настроек. В CentOS php.ini лежит в /etc, прямо в корне. Там можно редактировать глобальные настройки для всех виртуальных хостов. Персональные настройки каждого сайта можно сделать отдельно в файле конфигурации виртуального хоста, который мы сделали раньше. Давайте добавим туда несколько полезных настроек:
Добавляем в самый конец, перед </VirtualHost>
Для применения настроек нужно сделать restart apache. Если у вас полностью дефолтная установка, как у меня, то скорее всего вы увидите ошибку.
Суть ошибки в том, что у нас не загружен модуль mod_php. Проверим, где он подключается. Это файл /etc/httpd/conf.modules.d/15-php.conf.
Тут стоит проверка на запуск модуля. Он загружается только, если у нас загружен модуль prefork. Давайте попробуем его загрузить принудительно. Для этого комментируем все строки, кроме основной.
Проверяем конфигурацию apache.
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.
Получили новую ошибку. Смысл в том, что изначально apache сконфигурирован на работу модуля mpm_event, он подключается в конфиге /etc/httpd/conf.modules.d/00-mpm.conf.
Стандартный модуль mod_php скомпилирован с поддержкой модуля mpm_prefork. С другими он работать не будет. Таким образом, чтобы у нас нормально заработал php, нам надо вместо модуля mpm_event подключить модуль mpm_prefork. Для этого в конфиге 00-mpm.conf закомментируем подключение mpm_event_module и раскомментируем prefork.
После этого проверяйте конфигурацию и перезапускайте apache. Все должно заработать. Теперь в выводе phpinfo можно увидеть изменение настроек.
Я подробно разобрал эти ошибки, чтобы у вас было понимание, как все устроено и куда смотреть в случае проблем. Более подробно о работе и выборе mpm модулей читайте в официальной документации apache — http://httpd.apache.org/docs/2.4/mpm.html.
Webmin — система на кончиках пальцев
Как говорится на официальном сайте, Webmin — это web-интерфейс для системного администрирования Unix. Используя любой современный баузер, Вы можете настраивать аккаунты юзеров, сервер Apache, DNS, файловый сервер и многое другое.
На Хабре в х достаточно много упоминаний о Webmin, когда дело касается администрирования Linux, однако отдельной публикации не было. Исправляем.
В Webmin доступны сотни модулей и несколько десятков тем оформления, многие из которых уже входят в стандартный дистрибутив. Каждый из модулей реализует управление какой либо частью системы или сервиса. Ниже скриншоты некоторых модулей.
Запускаемые сервисы при загрузке системы. Вместо правки /etc/init.d
Настройка сетевого интерфейса. Вместо правки /etc/network/interfaces, /etc/hosts и пр.
Так выглядит настройка Samba. Вместо правки /etc/samba/smb.conf
Ну и сама настройка Webmin’а.
… перечислять можно бесконечно. В общем, всем нелюбителям править текстовые конфигурационные файлы посвящается (однако, заметьте, это не избавляет от необходимости знания предмета).
Опытные администраторы воскликнут, что есть ssh и /dev/hands, и, конечно, будут правы.
Но если речь идет о настройке офисного локального сервера, или же рабочей машины, тогда юзабилити становится на первое место.
- Минусы:
- Плюсы:
- УСТАНОВКА
— сервис висит в памяти — открыт порт (10000) — наглядность — все конфиги в одном месте — не требуется гуглить на тему («как мне добавить нового пользователя в систему» или «как создать задание cron») — лишние модули неустановленных в системе программ скрыты — есть возможность управления кластером серверов Webmin — дает представление о системе неопытному пользователю
Есть бинарные версии под большое количество систем: RPM, DEB, TAR.GZ, Solaris и даже под Windows. Я лишь расскажу как установть DEB из репозитория. Погружаемся в консоль, получаем права root’а
sudo -i
Получаем ключ
cd /root
wget http://www.webmin.com/jcameron-key.asc apt-key add jcameron-key.asc Добавляем источник приложений
gedit /etc/apt/sources.list
В текстовом редакторе добавляем строку
deb http://download.webmin.com/download/repository sarge contrib
Сохраняем, закрываем редактор. Обновляем и устанавливаем
apt-get update
apt-get install webmin Установка должна вытянуть несколько зависимостей, соглашаемся.
Осталось только открыть любимый браузер, и перейти по адресу https://localhost:10000/
Тут возможны некоторые проблемы с сертификатами в Firefox, для него надо добавить исключение вручную. Остальные браузеры соглашаются работать после уведомления о небезопасности подключения. Осталось только залогиниться под рутом. В Ubuntu надо логиниться от имени текущего пользователя. Вуаля!
P.S. Хабраюзер Exaktus дал ссылку на отличную тему оформления StressFree. Видео с демонстрацией возможностей интерфейса:
Настройка ssl сертификата Lets Encrypt в apache
Теперь настроим работу web сервера apache с ssl сертификатом. Хотя если быть точным, то tls сертификатом. Устанавливаем пакет certbot для получения бесплатного ssl сертификата от let’s encrypt. В репозиториях centos 8 его пока нет, поэтому поставим вручную с сайта разрабочиков.
При первом запуске certbot-auto предложит установить зависимости, которые ему нужны для работы. Он написан на python, поэтому зависимостей в виде модулей питона будет много.
После установки пакетов certbot напишет ошибку, что не может сам настроить apache.
Настроим все сами. Для начала создадим самоподписанный дефолтный сертификат, чтобы apache не ругался на отсутствие файла и смог запуститься.
Все параметры оставляйте дефолтные, не принципиально. Мы этот сертификат использовать не будет. Перезапустите apache.
Теперь выпустим сертификат для нашего домена. Имейте ввиду, чтобы получить сертификат у вас должно быть действующее доменное имя, ссылающееся на web сервер, который настраиваете. Let’s Encrypt будет по доменному имени обращаться к серверу, на котором настраиваете сертификат, чтобы проверить домен. В тестовой лаборатории с вымышленным доменным именем получить настоящий ssl сертификат не получится.
В качестве способа аутентификации выбирайте
Дальше заполняйте в соответствии с вашими названиями. После получения сертификата, укажем его в конфигурации виртуального хоста. В моем случае в файле z.serveradmin.ru.conf. Добавляем туда параметры ssl.
Перезапускайте apache и проверяйте работу сайта по https, зайдя по соответствующему протоколу.
По аналогии делаете с остальными виртуальными хостами, для которых используете бесплатные сертификаты let’s encrypt. Осталось дело за малым — настроить автоматический выпуск новых ssl сертификатов, взамен просроченным. Для этого добавляем в /etc/crontab следующую строку:
Переадресация с http на https в apache
В настроенном ранее примере https отлично работает, но неудобно, что нет автоматической переадресации с http на https. Чтобы использовать безопасную версию сайта, необходимо вручную в браузере набирать https. Хотя все современные браузеры уже сами умеют проверять версии сайта и если есть защищенная, то они автоматически сами ее выбирают.
Тем не менее, лучше все же добавить редирект с http на https. Его можно сделать двумя различными способами:
- Через файл .htaccess
- С помощью настройки виртуального хоста.
Мне нравится больше второй вариант, поэтому приводим конфиг виртуального хоста к следующему виду.
Перечитывайте конфиг httpd и проверяйте. Должно работать автоматическое перенаправление на https версию.
Установка RPM пакетов в Linux
Давайте сначала рассмотрим синтаксис самой утилиты rpm:
$ rpm -режимопции пакет
Утилита может работать в одном из режимов:
- -q, —query — запрос, получение информации;
- -i, —install — установка;
- -V, —verify — проверка пакетов;
- -U, —upgrade — обновление;
- -e, —erase — удаление.
Рассмотрим только самые интересные опции программы, которые понадобятся нам в этой статье:
- -v — показать подробную информацию;
- —vv — выводить отладочную информацию;
- —quiet — выводить как можно меньше информации;
- -h — выводить статус-бар;
- —percent — выводить информацию в процентах о процессе распаковки;
- —force — выполнять действие принудительно;
- —nodeps — не проверять зависимости;
- —replacefiles — заменять все старые файлы на новые без предупреждений;
- -i — получить информацию о пакете;
- -l — список файлов пакета;
- -R — вывести пакеты, от которых зависит этот пакет;
Теперь, когда вы уже имеете представление как работать с этой утилитой, может быть рассмотрена установка rpm пакета в Linux. Самая простая команда установки будет выглядеть вот так:
Для работы с командной текущей директорией должна быть папка с пакетом. Здесь мы устанавливаем режим установки и передаем файл пакета. При успешной установке утилита не выведет ничего, если произойдет ошибка, вы об этом узнаете.
Для того чтобы посмотреть более подробную информацию в процессе установки используйте опцию -v:
Также вы можете включить отображение статус бара в процессе установки:
Чтобы проверить установлен ли пакет, нам уже нужно использовать режим запроса:
Также сразу можно удалить пакет, если он не нужен:
Но у rpm так же как и у dpkg, есть один существенный недостаток. Программа не может разрешать зависимости. В случае отсутствия нужного пакета в системе, вы просто получите сообщение об ошибке и пакет не установится.
Для автоматической загрузки зависимостей во время выполнения установки rpm linux нужно использовать пакетный менеджер дистрибутива. Рассмотрим несколько команд для самых популярных RPM дистрибутивов. В RedHat и других дистрибутивах, использующих Yum используйте такую команду:
Первая опция отключает проверку GPG ключа, а вторая говорит, что мы будем выполнять установку локального пакета. В Fedora, с помощью dnf все делается еще проще:
Пакетный менеджер Zypper и OpenSUSE справляются не хуже:
Вот так очень просто выполняется установка rpm с зависимостями. Но не всем нравится работать в консоли, многие новые пользователи хотят использовать графический интерфейс для решения всех задач, в том числе и этой. Дальше мы рассмотрим несколько таких утилит.
Установка CentOS 8 с флешки
Флешку подготовили, приступаем к установке. Ставим загрузку с USB и наблюдаем стандартный, горячо любимый и родной (смахнул слезу) установщик Centos.
Дальше увидите немного обновленный, но тем не менее привычный интерфейс с опциями установки. Перечислим их.
- Выбор часового пояса centos.
- Поддержка каких языков будет осуществляться на сервере.
- Выбор раскладки клавиатуры.
- Откуда будет происходить установка. Так как у нас дистрибутив centos dvd1, установка будет локальной.
- Выбор пакетов для установки.
- Разбивка жесткого диска. Подробнее коснемся этого пункта, когда будем разбирать установку на raid.
- Настройка режима работы KDUMP. Этот механизм делает дамп ядра, если оно у вас падает в момент установки. Теоретически может пригодится, если у вас с установкой возникнут какие-то проблемы. В общем случае лучше не включать, сэкономите немного оперативной памяти во время установки.
- Настройка сетевых интерфейсов. Без них нельзя установить систему, если используется netinstall.
- Подозреваю, что security policy это про SELinux, но скажу честно, я не знаю, как это работает на этапе установки, потому что никогда не настраивал и не изучал вопрос. Буду рад, если кто-то поделится актуальной инфой в комментариях.
Восклицательным знаком помечены разделы, без настройки которых продолжение невозможно. Пройдемся по всем параметрам и установим необходимые для нас значения. Итак, нажимаем на Time & Date (раньше было Date & Time, явно поработал кто-то эффективный и протолкнул изменение, за которое получил премию по итогу квартала) и настраиваем параметры времени:
- Указываем регион.
- Выбираем город.
- Включаем при необходимости службу времени для синхронизации часов centos с внешними серверами. Это возможно сделать только если вы уже настроили сетевые параметры. Если нет, то вернитесь к этой настройке позже.
- Выбираем список внешних серверов для синхронизации времени.
- Указываем формат, в котором будет отображаться текущее время.
- При необходимости изменяем дату сервера.
Когда все сделаете, жмите сверху на Done. В разделе Language Support можно выбрать дополнительные языки, которые будет поддерживать система. В принципе, настраивать прямо сейчас тут нет большой необходимости, если вы точно не знаете, понадобится ли вам какое-то еще язык, помимо английского. Все это можно добавить и потом. Но если точно знаете, что нужен еще один язык в системе, например, Русский может понадобиться, если будете использовать Сервер 1С, то добавляйте сразу.
То же самое с клавиатурой. Если нужен набор на еще каком-то языке, то добавляйте его в разделе Keyboard.
- Добавляем необходимые раскладки. Я добавил Russian.
- Нажимаем Options и выбираем, как будет происходить переключение раскладок.
- Тестируем раскладки и переключение. Если все в порядке, идем дальше.
Далее нужно указать, откуда будет производиться установка. Как я уже говорил, в данном примере я использую полный iso образ dvd1, который позволяет выполнить установку centos 8 полностью локально. Сетевую установку я рассмотрю отдельно позже. Так что в данном случае нам ничего отдельно настраивать не надо, по-умолчанию и так выбран виртуальный cd-rom в виде устройства sr0 в качестве источника.
Ротация логов веб сервера apache
Последний штрих в настройке web сервера — ротация логов виртуальных хостов. Если этого не сделать, то через какое-то, обычно продолжительное, время возникает проблема в связи с огромным размером лог файла.
У нас уже будет файл конфигурации logrotate для httpd, который был создан во время установки — /etc/logrotate.d/httpd. Приведем его к следующему виду:
/var/log/httpd/*log { missingok notifempty sharedscripts delaycompress postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript } /web/sites/pma.serveradmin.ru/log/*log { size=10M rotate 10 missingok notifempty compress sharedscripts postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript } /web/sites/z.serveradmin.ru/log/*log { size=10M rotate 10 missingok notifempty compress sharedscripts postrotate /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true endscript }