Как администрировать сервер на линукс

Обновлено: 02.07.2024

Совсем недавно (5-8 лет назад) системный администратор Linux был ограничен в средствах администрирования и автоматизации. Где-то можно было обойтись самописными скриптами на bash, Python, Perl, а где-то уже требовалось решение уровня энтерпрайз от таких гигантов, как IBM, Oracle или RedHat.

С развитием Open Source стала развиваться и автоматизация в администрировании. На замену самописным скриптам и программам пришли готовые решения. Эти средства появились не на пустом месте. Это были решения по автоматизации существующих задач любого системного администратора. Зачастую это решения, развиваемые по принципу KISS (акроним для «Keep it simple, stupid»), которые получали большие перспективы развития и распространения.

Конечно, лет 5-10 назад средства централизованного администрирования в Windows были развиты лучше, чем в Linux. Это было небезосновательно, т.к. Windows был широко распространён как среди домашних пользователей, так и в офисной/серверной среде. Microsoft, похоже, не предполагала что когда-то будет соперничать с Linux в серверном сегменте. Но не будем здесь углубляться в эти застойные времена для Microsoft, когда главой корпорации был Стив Балмер.

Администрирование

Одним из часто используемых средств администрирования мною и коллегами до появления ansible/puppet/chef был cssh (Cluster SSH).

Скриншот работы cssh

Cluster SSH в работе

Работа с cssh была проста, не нужно было повторять одни и те же действия на каждом сервере по очереди, всё сводилось к мультиплексированию ввода в терминале на группу SSH подключений. У этого решения, конечно, были очевидные недостатки — необходимо было взаимодействие с администратором, его контроль. Сегодня средства автоматизации ушли намного дальше в своих возможностях и функциональности и зачастую расширяются плагинами.

25–26 ноября, Москва и онлайн, От 24 000 до 52 000 ₽

Одно из наиболее распространённых средств автоматизации в администрировании — Ansible. Оно позволяет автоматизировать практически любые задачи системного администратора. Для работы достаточно SSH доступа к хостам. На сайте есть обзорная статья про Ansible, как его настроить и работать. Проект развивался независимо и вскоре был куплен компанией RedHat.

Мониторинг

После настройки сервера и введения его в эксплуатацию для обеспечения SLA и не только необходимо уделить внимание мониторингу.

Мы часто разделяем мониторинг на два отдельных компонента:

  • мониторинг с оповещениями,
  • статистика по показателям.

Нет необходимости настраивать предупреждения по всем показателям в системе, но собирать показатели системы для статистики и дальнейшего выявлений аномалий — полезно и удобно.

    /Nagios/Icinga — используем для получения событий агентами и уведомлений по триггерам. + InfluxDB — в эту связку входят также Chronograf, Kapacitor, Telegraf.
      — time series база данных, принимает на вход данные с различных источников. Имеет широкий функционал возможностей для работы с данными. — веб-панель с дашбордами и система управления Influxdb, Kapacitor. — обработчик событий. — агент, отправляет данные с удалённых систем. — всем известная система построения дашбордов/графиков.

    Схема компонентов InfluxDB

    Также в категории мониторинга стоит обратить внимание на Netdata. Это одновременно и агент, и система мониторинга в реальном времени с дашбордом для просмотра статистики, предварительно настроенными графиками и триггерами. После установки остаётся настроить лишь способы оповещений с указанием канала передачи.

    Netdata — это «швейцарский нож» в системе мониторинга, обладает широкой функциональностью, поддержкой модулей на Python, Go и не только.

    Скриншот дашборда Netdata

    Централизованное управление пакетами

    В качестве централизованного управления набором ПО и его обновлениями мы использовали RedHat Spacewalk.

    Скриншот интерфейса RedHat Spacewalk

    Интерфейс RedHat Spacewalk

    С выходом RHEL 7 RedHat провели обновление, вследствие чего заменили Spacewalk на RedHat Satellite, который во многом напоминает Foreman. Для перехода на RedHat Satellite необходимо было бы перенастраивать уже работающие с RedHat Spacewalk системы, отлаживать новое решение (RedHat Satellite) и почти гарантированно бороться с новыми проблемами.

    Зачастую в госструктурах и энтерпрайзе широко использовались решения RedHat. И тут со второго плана выходит компания Oracle, которая занималась развитием дистрибутивов Oracle Enterprise Linux/Oracle Unbreakable Enterprise Kernel.

    Это продукты, основанные на кодовой базе RedHat Enterprise Linux, но с большим количеством доработок под собственные нужды, в которые том числе входило создание и поддержка среды для, наверное, основного продукта компании Oracle — Oracle Databases.

    Но, в отличие от RedHat, дистрибутив которого скачать можно было только по подписке (лицензировании), не говоря уже об обновлениях, Oracle предоставляет это бесплатно. Именно Oracle взялся поддерживать и продолжать развитие Oracle Spacewalk, который вскоре был обновлён в Oracle Linux Manager.

    Логирование

    С увеличением количества обслуживаемых хостов возникает необходимость централизованного сбор логов. Для этих задач отлично подходят уже готовые Open Source решения, которые мы используем:

    Агенты — rsyslog, syslog-ng (доступны в большинстве дистрибутивов)

    • Loki (Prometheus),
    • Graylog2,
    • Logstash,
    • ELK.

    Резервное копирование

    Для резервного копирования выбор достаточно прост. Где-то достаточно rsync + tar (синхронизации и сжатия), а где-то требуется Bacula/Bareos.

    Схема работы Bareos

    В резервном копировании есть достаточно хорошие проприетарные решения, например, «Veeam backup». Если вы используете виртуализацию VMWare, то здесь Veeam упрощает резервное копирование и предоставляет поддержку.

    Также в своих решениях мы используем резервное копирование для /etc директории — etckeeper. Он позволяет автоматизировать сохранение содержимого каталога /etc в хранилище системы контроля версий (VCS), отслеживает, когда ваш пакетный менеджер сохраняет изменения в /etc при установке или обновлении пакетов.

    Помещение /etc под контроль версий сейчас рассматривается как лучшая практика в индустрии. Преимуществом etckeeper является то, что он делает этот процесс безболезненным, насколько это возможно, и удобным. При наличии незакоммиченных изменений etckeeper будет ежедневно их сохранять, если это не отключено, и отправлять в централизованный репозиторий.

    Иногда случается так, что подготовленный к установке/обновлению пакет программ может перезаписать существующие файлы в /etc , т.к. некоторые заказчики пользуются сторонними службами/пакетами. Etckeeper умеет фиксировать конфигурацию перед установкой пакетов и после, что значительно облегчает работу.

    Постскриптум

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

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

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

    Администрирование Linux

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

    • Удаленный доступ;
    • Диагностика сети;
    • Мониторинг ресурсов системы;
    • Проверка работоспособности сервисов;
    • Просмотр логов;
    • Установка программного обеспечения.

    Мы не будем рассматривать очень подробно каждую из тем, возможно, некоторые основы администрирования Linux были более детально рассмотрены в предыдущих записях, тогда на них будет ссылка. С первоначальной настройкой сервера обычно проблем не возникает. Можно использовать одну из известных панелей управления, например, панель управления VestaSP, которая позволяет все установить и настроить автоматически, но вам нужно следить за показателями системы и перенести на сервер файлы.

    Удаленный доступ к серверу Linux

    Чаще всего веб-мастера и администраторы используют для удаленного доступа и загрузки файлов на сервер протокол SSH и FTP. По SSH вы не только передавать файлы, но и выполнять на сервере различные команды Linux. Протокол FTP позволяет лишь загружать файлы на сервер, перемещать и переименовывать их. Если кратко, то, например, чтобы перенести файлы сайта с одного сервера на другой, сначала мы создаем архив с помощью tar:

    tar cvzf backup.tar.gz /папка/с/файлами

    Обратите внимание, что опцию p передавать не нужно, чтобы права на файлы не сохранились, затем, вам нужно будет установить права вручную. Когда архив готов, используем копирование scp для передачи его на сервер:

    scp backup.tar.gz user@ip_сервера:/var/www/public_html/

    Затем авторизуемся на сервере и распаковываем архив:

    ssh user@ip_сервера
    $ cd /var/www/public_html/
    $ tar xvzf backup.tar.gz

    После этого останется сменить владельца для распакованных данных на имя пользователя веб-сервера:

    chown -R www-data /var/ww/public_html/project/

    Большинство действий по администрированию сервера вам придется выполнять так что лучше понять как пользоваться ssh.

    Диагностика сети Linux

    Этот момент администрирования Linux серверов подходит больше для компьютеров, к которым у вас есть физический доступ, но может в некоторых случаях полезным и на сервере. Самый простой способ проверить есть ли доступ к сети на компьютере, это выполнить команду ping:


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


    Убедитесь, что правильно задан шлюз доступа к сети:


    Обычно, это может подсказать вам, что конфигурация сети выполнена неверно, например, компьютер не получает нужные данные по протоколу DHCP или заданы неправильные статические настройки. Также проблема может быть в DNS. Возможно, сеть есть, но сервер не может получить ip адрес на основе доменного имени, для проверки вы можете выполнить ping какого-либо внешнего ip:


    Если же сеть не работает, и она настроена правильно, то можно еще попытаться узнать на каком узле обрывается соединение. Для этого используется команда traceroute:


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

    Мониторинг ресурсов системы

    Часто может случится, что сервер начинает работать очень медленно, веб-службы начинают очень долго отвечать на запросы и даже соединение по SSH работает медленно. Скорее всего, причиной этому может стать перегрузка ресурсов процессора или памяти. Если вся память будет занята, система будет сбрасывать данные на диск, в раздел подкачки, что тоже сильно замедляет работу сервера. Чтобы посмотреть сколько памяти осталось доступно используйте команду free:


    Естественно, что если свободно только 40-50 Мб, то этого системе очень мало и все будет работать очень медленно. Следующим шагом будет выяснить какой процесс потребляет больше всего памяти, для этого можно использовать команду htop:

    В утилите вы можете сортировать процессы по загрузке процессора, колонка %CPU% или по потреблению памяти %MEM%. Так вы можете очень просто понять в чем проблема и кто перегружает систему. Например, веб-сервер Apache потребляет слишком много памяти, поэтому, возможно, будет эффективнее использовать Nginx.

    Также в некоторых случаях нас может интересовать загрузка диска Linux и какие именно процессы перегружают жесткий диск. Для этого применяется утилита iotop. Просто выполните утилиту без параметров:

    Проверка работоспособности сервисов

    В системное администрирование linux также входит управление сервисами. Сейчас в большинстве дистрибутивов, в качестве системы инициализации используется systemd. Соответственно, управление службами linux выполняется с помощью нее. Чтобы посмотреть запущена ли служба, например, веб-сервер nginx, выполните:

    Или запустить ее, если она не была запущена до этого:

    Если служба не запустилась, то вы можете посмотреть информацию об этом с помощью команды status или же выполнить:

    Просмотр логов

    Если какой-либо сервис или системный компонент не работает, то первое что нужно сделать - это смотреть логи. Если не помогает - включить режим отладки и смотреть логи. В 90% вы найдете ответ почему ничего не работает в логах программы. Логи всех служб и системные логи находятся в папке /var/log/. Некоторые службы создают отдельные папки для своих файлов, например, /var/log/nginx или /var/log/apache.

    Если в обычном логе вы не нашли решение, то можно переключить программу в режим отладки или включить отображение максимально подробной информации. Обычно это дается в конфигурационном файле программы. Приводить конкретные примеры нет смысла, поскольку у каждого сервиса все по-другому. Но рассмотрим несколько команд, которые вы можете использовать:

    tail -f /путь/к/лог/файлу

    С помощью этой команды вы можете в реальном времени просматривать изменения в конце лог файла. Если опцию -f не указывать, то команда tail покажет десять последних строк из лога:

    Также для просмотра лог файла вы можете использовать любой текстовый редактор или утилиту cat.

    Установка программного обеспечения

    Установка программного обеспечения, одна из распространенных задач администрирования. В Linux большинство программ можно установить из официальных или сторонних репозиториев. Некоторые программы нужно собирать из исходников. Для установки софта из репозиториев используется пакетный менеджер. Существуют два основных пакетных менеджера, которые применяются на серверах, это yum, который используется в CentOS и apt, который применяется в Ubuntu. Работают пакетные менеджеры похожим образом и все их мы рассматривали в отдельных статьях, смотрите установка программ CentOS и установка программ Ubuntu. Например, чтобы установить пакет в Ubuntu используйте такую команду:

    sudo apt install имя_пакета

    А в CentOS/RedHat:

    sudo yum install имя_пакета

    Для удаления программы используется команда remove вместо install. Но что еще более важно для серверов обновление программ. Никогда не отключайте автоматическое обновление, и старайтесь следить, чтобы система была в самом актуальном состоянии. Нужно обновлять все программные продукты, поскольку в них постоянно обнаруживаются новые уязвимости и следует получить вовремя исправления для них.

    Выводы

    В этой статье мы рассмотрели в общих чертах администрирование Linux для начинающих, это очень обширная тема, поэтому сложно охватить ее в одной статье. Мы рассмотрели диагностику сети, установку пакетов, просмотр логов и другие основные действия. Если у вас остались вопросы, спрашивайте в комментариях!


    UNIX-подобные системы всегда связывали с командной строкой, поэтому уровень админов считался выше, а новички обходили такие решения стороной. Но времена меняются, даже в небольшой организации можно встретить *nix-системы, которыми приходится кому-то управлять. Нужно признать, что у GUI есть ряд преимуществ — наглядность, простота в использовании, понятность и меньшая вероятность ошибки. Выбрать среди десятков проектов непросто: несмотря на кажущуюся схожесть, у всех разный набор функций. Остановимся на самых знаковых.

    Cockpit

    Самый молодой проект обзора — ему всего два года. Cockpit — веб-панель управления серверами с открытым исходным кодом, разрабатываемая компанией Red Hat. Предназначена для контроля работы и состояния систем, развертывания услуг на базе контейнеров. С помощью понятного интерфейса очень просто выполнить основные задачи администрирования: здесь и запуск и остановка служб (systemd), и настройка устройств хранения (настройка LVM, создание RAID), конфигурация сети (bonding, VLAN, bridge), управление учетными записями пользователей, присоединение в домен, управление пользовательскими SSH-ключами, мониторинг нагрузки в реальном времени, проверка логов и многое другое. Особенно хочется выделить возможность работать с контейнерами Docker. Чтобы управлять несколькими серверами из одной веб-консоли, к Dashboard можно подключить панель управления кластерами Kubernetes или OpenShift v3. К несомненным плюсам Cockpit относится возможность использовать для управления сервером одновременно терминал и веб-браузер. В отличие от остальных решений, здесь такой подход не вызывает никаких проблем. Можно отдавать команды в консоли, а отслеживать результат в Cockpit, или наоборот. Более того, сам Cockpit предоставляет терминал, поэтому управлять сервером можно полностью из браузера.

    Веб-служба Cockpit (Cockpit-ws), установленная на базовой системе и использующая сокет systemd, позволяет получать доступ к интерфейсу локальным пользователям с помощью PAM (настройки обычно /etc/pam.d/cockpit). На удаленных системах должен работать SSH-сервер. Для подключения можно использовать связку логин/пароль, возможен SSO-вход на основе Kerberos или использование публичного ключа. Предусмотрена возможность входа на удаленный сервер с текущими данными пользователя.

    Управление производится при помощи веб-панели. Интерфейс не локализован, но, в принципе, это трудностей не создает, так как все параметры понятны и обычно требуется нажать ссылку или заполнить предложенные поля.

    Минус Cockpit — привязка к systemd. В дистрибутивах, использующих другой менеджер служб, будут работать не все функции. Хотя это не мешает собрать все серверы под один интерфейс для более удобного доступа к ним.

    Доступен в репозитории дистрибутива Fedora с версии 21. Кроме исходных текстов, на сайте проекта можно найти ссылки на репозитории разработчиков для Fedora, RHEL/CentOS, Arch Linux и Ubuntu. Версия Ubuntu не указана, но, если учесть привязку к systemd, без напильника будет работать в 15.04/15.10. Запустить можно и в более ранних версиях, использующих Upstart, в том числе и в популярной на серверах 14.04 LTS, но некоторые функции работать не будут. Установка:

    Cockpit позволяет управлять несколькими серверами

    Cockpit позволяет управлять несколькими серверами

    Ajenti

    Визитной карточкой Ajenti изначально был красивый интерфейс, использующий технологию AJAX. Первое время набор функций ограничивался системными параметрами: сеть, firewall, файл hosts, монтирование дисков, настройка DNS и NFS, учетные записи пользователей и групп, cron, просмотр логов, управление пакетами. Понятная среда, не перегруженная установками, позволяла проще освоиться даже неопытному админу. Необходимо лишь заполнить предложенные поля, а мастер проверит установки и подстрахует в случае ошибок. Риск получить неработающую конфигурацию минимален. Но знать, что делать, все-таки нужно, так как в Ajenti нет пошаговых мастеров, которые помогут настроить сервис, просто отвечая на вопросы. Также администратору показываются различные графики: загрузка процессора, ОЗУ и сетевых интерфейсов, состояние swap и другие.

    Развиваясь, Ajenti постепенно стал обрастать возможностями настройки и управления основными сервисами (веб, почта, FTP, СУБД и прочее), функциями мониторинга, появился файловый менеджер, консоль, редактор конфигов. Дополнительные возможности реализованы при помощи плагинов. Причем плагины при установке подключаются автоматически исходя из наличия определенных сервисов, так что лишней функциональности панель не несет. Если корректная работа плагина требует доустановки некоторых пакетов (они помечаются восклицательным знаком), выдается подсказка и ссылка для установки. Также в 2013 году разработчики анонсировали новое расширение Ajenti V, которое добавляет функции панели управления веб-сайтами, позволяя быстро разворачивать веб-серверы, приложения, базы, настраивать маршрутизацию и email (Exim 4 и Courier IMAP). Поддерживаются настройки PHP, Python, Ruby и Node.js. И хотя Ajenti V до сих пор находится в состоянии бета, это достаточно популярное решение.

    Интерфейс локализован и не перегружен, Dashboard можно полностью подстроить под себя, размещая виджеты по своему усмотрению. Распространяется по условиям GNU GPL. Разработчики по заявке могут легко адаптировать Ajenti под любые системы. Встраивание в коммерческие продукты требует определенных отчислений. К плюсам Ajenti можно отнести небольшие размеры и низкие системные требования: около 30 Мбайт ОЗУ и 75 Мбайт HDD. Написан на Python с фреймворком gevent и JavaScript с AngularJS.

    Официально поддерживаются Debian, Ubuntu, RHEL, CentOS, Gentoo и FreeBSD. Для этих систем имеются готовые пакеты и репозитории, а также установочный скрипт, при помощи которых установить Ajenti не составляет проблем. Для остальных *nix-систем доступен исходный код. Весь процесс самостоятельной сборки описан в документации, и особых затруднений она не вызывает.

    Возможности Ajenti расширяются при помощи плагинов

    Возможности Ajenti расширяются при помощи плагинов

    Vesta CP

    Vesta CP — панель управления сервером, написана сисадмином для сисадминов и ориентирована в первую очередь на хостеров, но может использоваться для наглядного управления сервисами. В процессе разработки (с 2007 года) переписывалась несколько раз, вероятно поэтому результат сегодня признают многие админы и предлагают своим пользователям хостеры. Vesta базируется на философии UNIX. Функциональность заложена в отдельных скриптах (на сегодня их более 350), каждый из которых выполняет только определенную работу (собственно, и проект начался со скрипта для создания виртуального хоста Apache). В принципе, их названия можно не знать, но часть операций администрирования (например, добавление СУБД, находящейся на другом узле) выполняется исключительно из командной строки, да и некоторые команды сами по себе могут помочь в администрировании. Данные хранятся в текстовых файлах. Все это объединено в понятном интерфейсе.

    Поддерживаются RHEL/CentOS от 5, Debian от 6, Ubuntu от 12.04. Разработчики предлагают скрипт установки, который в процессе установит готовый набор: nginx, Apache, Exim, Dovecot, MySQL, vsftpd и firewall + fail2ban.

    Меню установки Vesta CP
    Просмотр графиков нагрузки в Vesta CP

    Core-admin Free Web Edition

    Поставляется с набором готовых приложений, выполняющих задачи администрирования: анализ журнала в режиме реального времени, блокировку IP, сбор статистики, cron и многое другое. Предоставляются инструменты для сбора статистики, управления приложениями и процессами, просмотра событий, централизованного управления учетными записями и сетевыми интерфейсами и так далее. Реализовано множество опций, позволяющих повысить безопасность серверов: определение перебора SSH-логинов, изменения в crontabs, несанкционированных модификаций в файлах, отслеживание изменения параметров авторизации или изменения IP-адреса и так далее. Для поиска событий в журналах можно составить правило и команды, которые будут выполнены, если обнаружатся совпадения. Интерфейс позволяет отдавать консольные команды выбранным узлам. Учитывая, что MySQL часто используется на серверах, реализован интерфейс для выполнения основных операций: создания баз, пользователей и так далее. Реализовано четыре уровня привилегий пользователей: Platform admin, Machine admin, Application admin и Object admin. То есть четко можно указать, что разрешено конкретному пользователю на конкретном сервере. Каждый уровень имеет свои возможности и свою панель управления.

    Интерфейс простой, при выборе пункта открывается новая вкладка. Не локализован, но большинство параметров не требует пояснений. Хотя документацию прочитать все равно придется, чтобы понять некоторые особенности работы Core-admin. Предлагается три версии: Base Edition, Web Edition и Free Web Edition. В Web Edition, кроме сказанного, также реализованы функции, необходимые для простого управления хостингом: веб, почта, FTP, СУБД и DNS, управление сертификатами и конфигурациями сайтов, тарифами веб-хостинга, контроль ресурсов и прочее.
    Версия Free Web Edition позволяет управлять настройками до десяти доменов, лицензия дает возможность использования в коммерческих проектах. Поддерживается Ubuntu 12.04 и Debian 5.0.

    Core-admin позволяет управлять серверами и приложениями

    Core-admin позволяет управлять серверами и приложениями

    ISPConfig

    ISPConfig — уже довольно развитый проект, предоставляющий панель управления хостингом, которая дает возможность управлять из одного интерфейса несколькими серверами, настраивать виртуальные веб (Apache 2 и nginx) и FTP (PureFTPD) серверы, базы и пользователей MySQL, создавать виртуальные почтовые домены и почтовые ящики, редактировать DNS-записи, управлять SSL-сертификатами, собирать статистику (Webalizer и AWStats), отслеживать обращения в техподдержку. Есть настройки почтовых фильтров, антиспам- и антивирус-проверок, автоответчик, список рассылок и многое другое. Администратор может устанавливать email и дисковые квоты, лимиты трафика, управлять заданиями cron, изменять IP (поддерживается IPv6), добавлять правила firewall, управлять репозиториями, обновлять пакеты, просматривать журнал.

    Возможностей достаточно много. Из особенностей можно выделить поддержку технологии виртуализации OpenVZ. Реализовано четыре уровня доступа: администратор, реселлер, клиент и email-клиент. Интерфейс локализован (основные пункты) и понятен, все настройки распределены по десяти пунктам меню, назначение которых ясно из названия. В большинстве случаев помогает визард, нужно просто заполнить предложенные поля, при ошибке появится предупреждающая надпись. Некоторые настройки поддерживают шаблоны, это упрощает конфигурирование большого числа сервисов. Чтобы разобраться с возможностями интерфейса, достаточно потратить полчаса, все находится на своих местах и там, где ожидаешь.

    Возможности расширяются при помощи аддонов, на сайте доступны ссылки на некоторые расширения сторонних разработчиков. Официально поддерживаются Debian 5+, Ubuntu 8.10+, CentOS 5.2+, Fedora 10+, openSUSE 11.1+, но работает в любых других *nix-дистрибутивах. Установка в отличие от остальных описанных решений чуть сложнее, вначале следует развернуть окружение, а затем поставить панель. Но именно это и позволяет установить ISPConfig на любом дистрибутиве, развернуть кластер из нескольких систем или использовать несколько серверов: один будет обеспечивать работу веб, другой — БД, третий — FTP и так далее. Проект предлагает инструкции по развертыванию в разных вариантах конфигураций.

    ISPConfig — очень удобная панель для управления несколькими сайтами

    ISPConfig — очень удобная панель для управления несколькими сайтами

    Чтобы создать терминальный, файловый (FTP) или почтовый сервер на Linux, надо уметь работать в этой операционной системе. Иначе разобраться будет сложно. ОС не нужен мощный компьютер. Потому что она не расходует лишние ресурсы на графическое оформление. Дистрибутивы Линукса можно развернуть даже на старом ПК. Поэтому для создания различных серверов часто используют Linux или Ubuntu Server.

    Ubuntu Server

    Об этом написано много различной литературы. Некоторые книги о Линуксе насчитывают тысячу страниц. Работать придётся через терминал и все команды вводить вручную. Но всё же вы сможете сделать небольшой Linux-сервер своими руками, который будет включать файловое хранилище, Web-сервисы и почтовый протокол.

    Установка и настройка Ubuntu Server

    Ubuntu Server создана на базе операционной системы Linux. Для её работы не нужен современный процессор, хорошая видеокарта или большой объём оперативной памяти. С Линукс можно развернуть сервер даже на старом ноутбуке. И в нём будут все нужные компоненты: почта, FTP, Web.

    У Ubuntu упрощённый интерфейс. В нём нет никаких графических излишеств. Эта ОС прекрасно подходит, чтобы сделать Linux-сервер своими руками. С ней ресурсы компьютера будут использоваться для нужд домена. Ведь ей для работы нужно совсем немного.

    Её установка проходит так:

    • Выберите язык и регион, в котором проживаете.
    • Придумайте имя администратора. Оно используется для управления сервером.
    • Также задайте имя пользователя в поле «Username for your account». Под этим аккаунтом вы будете общаться с техподдержкой Ubuntu.

    Имя пользователя в Ubuntu

    Указываем имя пользователя в Ubuntu

    Пароль учетной записи

    Вводим пароль учетной записи

    • Укажите домен, если он есть. На нём будут находиться все сервисы: файловый (FTP), почтовый, хостинг для сайтов и так далее.
    • Подождите, пока установится система.
    • После этого она предложит дополнительные компоненты.

    Вот список того, что необходимо для сервера Linux и его полноценной работы:

    • Open SSh. Используется для удалённого администрирования. Пригодится, если вы решите управлять сервисом с другого компьютера. Тогда на ПК с Линуксом можно будет отключить монитор и видеоадаптер.
    • LAMP. Комплекс утилит Linux, который включает Apache (Web-сервер). MySQL (базы данных) и PHP (язык программирования для CMS). Эти компоненты нужны для создания управляющего интерфейса.

    Далее указано то, что устанавливать необязательно. Выбор дистрибутивов опционален и зависит от того, что вы хотите в итоге получить.

    • Samba file server. Позволяет настроить обмен файлами между компьютерами. Если вам нужен FTP-сервер, выберите этот пункт.
    • Virtual Machine host. Устанавливайте, если собираетесь пользоваться возможностями виртуализации.
    • Print server. Сетевые принтеры.
    • DNS server. Система доменных имён. С ней можно распознать IP-адрес по имени компьютера и наоборот.
    • Mail server. Почтовый сервер.
    • PostgreSQL database. Объектно-реляционные базы данных.

    Выберите то, что вам нужно, и подтвердите установку. При первом запуске надо будет ввести логин администратора и пароль. Откроется консоль. Она похожа на командную строку Windows или интерфейс операционной системы MS DOS.

    Консоль Ubuntu

    Изначально вам надо будет проверить наличие обновлений. Введите команду «Sudo apt-get update» или «Sudo apt-get upgrade» без кавычек. После апдейта можно заняться настройкой всех компонентов серверов: FTP, почтового, Веб.

    Для Ubuntu существует псевдографический интерфейс — Midnight Commander. Это аналог оболочки Norton Commander, которая разработана для системы MS DOS. С таким интерфейсом легче работать — всё нагляднее, чем в консоли.

    Запуск терминала Linux

    В современных Linux вместо консоли используется терминал. Чтобы в него зайти:

    1. Откройте «Приложения».
    2. Нажмите «Стандартные».
    3. Там будет «Терминал».

    Терминал в Linux

    Терминал в Linux

    В него можно вводить команды так же, как в Ubuntu Server.

    • Чтобы установить компоненты LAMP (если их ещё нет), надо последовательно ввести команды «sudo apt-get update», «sudo apt-get install tasksel» и «sudo tasksel install lamp-server». После каждой нажимайте Enter.
    • Чтобы загрузить Open SSh, введите «sudo apt-get install openssh-server».
    • Чтобы поставить Samba file server, напишите «sudo apt-get install samba».

    При установке MySQL из пакета LAMP нужно будет задать пароль администратора, для SQL.

    Локальный Web-сервер

    Для создания Web у сервера должен быть свой выделенный IP. Тогда после установки LAMP по этому IP-адресу будет доступна тестовая страница Apache. Это и есть будущий Веб. В дальнейшем на него можно будет поставить FTP, базы данных, почтовый протокол. Для настройки Web-сервера:

    • Установите phpMyAdmin. Для этого в терминале или в консоли введите друг за другом введите «sudo apt-get install phpmyadmin»

    Команда «sudo apt-get install phpmyadmin»

    Команда «sudo apt-get install phpmyadmin»

    • И потом «sudo service apache2 restart».
    • Компонент загрузится. Apache будет перезагружен. Дальнейшие действия зависят от версии операционной системы.

    Если у вас Ubuntu 13.1 и выше, используйте команды:

    1. sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
    2. sudo a2enconf phpmyadmin
    3. sudo /etc/init.d/apache2 reload

    Вбивайте их последовательно друг за другом, после каждой нажимайте Enter.

    В Ubuntu 16.04, нужны другие указания:

    1. sudo apt-get install php-mbstring php-gettext
    2. sudo phpenmod mcrypt
    3. sudo phpenmod mbstring
    4. sudo systemctl restart apache2
    • Конфигурация и данные о ней находятся в папке сервера Apache «etc/apache2/». Apache2.conf — конфигурационный файл для дистрибутива
    • В директориях «mods-available»/«sites-available» и «mods-enabled»/«sites-enabled» находятся моды и сайты.
    • В Ports.conf расписаны прослушиваемые порты.
    • Если вы добавите после команды «sudo /etc/init.d/apache2» слово «Stop», Apache приостановит работу. Если «Start» — снова запустится. Если «Restart» — перезагрузится.
    • Чтобы самостоятельно выбирать путь для сохранения сайтов, последовательно введите в терминал «sudo a2enmod rewrite» и «sudo a2enmod userdir».

    Каждый раз после внесения каких-либо изменений надо перезапускать службу командой «Restart».

    Почтовый сервер

    • Установите компонент Postfix. Для этого наберите в консоли «sudo apt-get postfix».
    • Когда он загрузится, напишите команду «sudo /etc/initd/postfix start». Сервис начнёт работать.
    • В Postfix уже прописаны параметры, которые нужны для полноценной работы с протоколом SMTP. Но всё же не помешает небольшая настройка.
    • Откройте файл /etc/postfix/main.cf.
    • Найдите в нём значение «mydomain =». После знака «=» напишите имя домена.
    • Потом отыщите «myhostname =». И введите имя машины.
    • Теперь почтовый сервер может отправлять письма другим компьютерам, которые находятся с ним в одной сети. Чтобы он мог посылать корреспонденцию и на другие домены в интернете, в файле «main.cf» найдите строчку «inet_interfaces =». Поставьте после неё слово «all».
    • В переменной «mynetworks =» пропишите диапазон адресов всех компьютеров вашей подсети (например, 127.0.0.0/8).

    Не рекомендуется открывать доступ к серверу извне. Такие «публичные» ресурсы очень часто используются для рассылки спама. Из-за этого ваш домен может оказаться в чёрном списке у других почтовых сервисов.

    Файловый сервер

    FTP-сервер Linux может понадобиться для обмена документами и загрузки файлов. Существует несколько версий таких ресурсов: vsFTPd, Samba, proFTPd.

    Подробнее остановимся на vsFTPd. Его можно установить и запустить одной командой — «sudo apt-get install vsftpd». Дальнейшие настройки зависят от ваших предпочтений и от того, какой сервис вы хотите сделать. Для изменения параметров могут понадобиться права администратора.

    Команда «sudo apt-get install vsftpd»

    Команда «sudo apt-get install vsftpd»

    1. Сразу после загрузки программы система создаёт нового пользователя и добавляет в домашнюю директорию папку, которая предназначена для работы с серверным хранилищем. Также в каталоге «etc» появляется файл «ftpusers». Туда можно добавлять пользователей, которым запрещён доступ к файлам.
    2. После установки лучше сменить директорию, в которой должны находиться файлы, в папку «var». Для этого от имени администратора напишите команду «usermod -d /var/ftp ftp && rmdir /home/ftp».
    3. Создайте новую группу пользователей. Например, «userftp». Напечатайте в консоли «addgroup userftp».
    4. Добавьте в неё новый аккаунт (для простоты назовём пользователя и группу одинаково). Используйте команду «useradd -a /var/ftp -g userftp userftp». Она заодно создаёт пользователя. Чтобы включить в группу уже существующий никнейм, вместо «useradd» напишите «usermod».
    5. Надо придумать пароль новому пользователю. Введите в терминале «passwd userftp».
    6. Напечатайте «chmod 555 /var/ftp && chown root:userftp /var/ftp», чтобы предоставить аккаунту доступ к корневой папке файлового сервера.
    7. Теперь создайте публичную директорию. Последовательно введите «mkdir /var/ftp/pub» и «chown userftp:userftp /var/ftp/pub».

    Изначально FTP запускается в автономном режиме. У неё есть скрипт, который играет роль демона. При такой функциональности доступно несколько команд. Они вводятся после строки «sudo service vsftpd».

    Команда «sudo service vsftpd»

    Команда «sudo service vsftpd»

    • Stop и Start. Отключение и включение.
    • Restart и Reload. Перезапуск. Нужен для применения новых настроек. Разница между командами в том, что во второй перезагрузка происходит без полного отключения.
    • Status. Информация о состоянии.

    Дальнейшая настройка сервера заключается в переписывании файла конфигурации, который находится в etc/vsftpd.conf. У него простая и понятная структура. Разобраться в нём достаточно просто. Хотя для этого нужны определённые знания. Перед изменением этого файла имеет смысл сделать его резервную копию. Чтобы в случае выявления ошибок можно было всё восстановить. Введите команду «cp /etc/vsftpd.conf /etc/vsftpd_old.conf» и информация будет сохранена.

    После этого можно приступать к редактированию.

    • В параметре «listen=» напишите «YES». Тогда сервер будет работать в независимом режиме.
    • «Local_enable» разрешает вход локальным пользователям.
    • «Write_enable» даёт им доступ в домашние каталоги.
    • «Anonymous_enable». Можно ограничить права анонимных пользователей, если поставить «NO». Также есть опция «no_anon_password» — анонимные входят без пароля. Её тоже можно запретить.

    Если вы хотите делать публичный сервер, то после строки «listen» надо добавить несколько дополнительных параметров.

    Терминальный сервер

    Терминальный сервер на Linux предназначен для предприятий и офисов, все компьютеры в которых объединены в одну сеть. Очень удобно, когда с любого ПК (если у него есть доступ) организации можно зайти на терминал. Это открывает большие возможности для удалённого администрирования.

    Для такой задачи подходит LTSP — Linux Terminal Server Project. Программа есть в стандартном пакете Ubuntu. Чтобы её установить:

    1. Введите команду «ltsp-server-standalone».
    2. Потом напишите «apt-get update && apt-get install ltsp-server-standalone».
    3. Подождите, пока всё загрузится и обновится.
    4. Теперь надо поставить клиентскую систему. Напечатайте «ltsp-build-client».
    5. Затем «ltsp-build-client -dist trusty -arch i386 -fat-client-desktop lubuntu-desktop».
    6. Используйте команду «debootstrap», и дистрибутив автоматически развернётся в директорию «opt/ltsp/i386».

    Linux Server может работать даже на слабых ПК. Поэтому его очень часто используют для создания серверов и удалённого администрирования. На этой операционной системе делают почтовые сервисы, FTP-хранилища, терминалы.

    Читайте также: