что можно настроить на сервере

Как проходит настройка сервера

Что такое сервер? Зачем необходимо использовать сервер?

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

Почему выбирать, устанавливать и настраивать сервер должны профессионалы?

Cервер — это неотъемлемая и важная часть компании. От стабильной работы сервера зависит работа всего офиса компании. Даже небольшая компания, создавая скромные объёмы информации, нуждается в сервере. Устанавливая в офисе сервер, вы рассчитываете, что размещённая информация будет всегда доступна, будет защищена от несанкционированного доступа или потери, а взаимодействие с ним будет максимально быстрым и простым. Более того часто возлагаются надежды на сокращение финансовых издержек и ускорение тех или иных повседневных функций.

Готовы ли вы доверить не дешёвые работы по установке и настройке дорогого серверного оборудования и всю свою корпоративную информацию непрофессионалам в которых не уверены? Любые работы по установке и настройке сервера это сложный, многоэтапный процесс который требует тщательного и взвешенного подхода. Если вы хотите чтобы настроенный сервер работал стабильно и был помощником, а не проблемой, обратитесь к профессионалам, позвоните нам!

Как проходит настройка сервера?

1. Определение задач:

После того как определены роли для будущего сервера, начинается подбор аппаратного решения, максимально удовлетворяющего запросам приложений и сервисов которые будут на нём запущены. На этом этапе определяются технические характеристики вашего будущего сервера, определяется необходимая производительность и её запас для оперативного масштабирования внедряемого решения. Путём установления сложного баланса между техническими характеристиками, надёжностью, гарантийными обязательствами и бюджетом, подбирается производитель. После окончательного анализа всех факторов, упомянутых выше, server закупается и начинается следующий этап работы с ним.

2. Подбор программного обеспечения:

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

Выбор программного обеспечения, в том числе операционной системы, это тонкий процесс, в работе над которым, должно быть учтено множество факторов. Платный, но имеющий интуитивный интерфейс Windows, или бесплатный, но требующий опыта и знаний Linux? Дорогие лицензии на Windows, и относительно не дорогое обслуживание, или бесплатный Linux и дорогостоящее обслуживание? Это вопросы, от ответа на которые зависит дальнейший выбор используемых программных решений.

3. Установка сервера. Первичная настройка сервера:

Когда муки выбора остались позади, начинается длительный технический этап установки и настройки аппаратных и программных компонентов сервера. Наши специалисты проводят тестирование всех аппаратных элементов, а, при необходимости, проводят установку дополнительных. После этого начинается процесс первичной настройки, который включает в себя настройку серверного RAID массива, установку выбранной операционной системы, установку необходимых для работы драйверов, первичную настройку и оптимизацию операционной системы.

4. Настройка серверных сервисов и служб. Тестирование сервера:

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

5. Обслуживание сервера:

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

Сколько времени занимает настройка и установка сервера?

Как показывает наша практика, самыми длительными этапами являются согласование бюджета, формулирование требований к серверу, ожидание счетов и их оплата. Техническая часть работы – это наша профессия и мы делаем её быстро и качественно, более того как правило компаниям мало и среднего бизнеса необходимы относительно схожие типовые решения, поэтому внедрение многих из них отточено у наших сотрудников практически до автоматизма и не занимает много времени.

Требования к помещению для установки сервера:

Установка сервера нуждается в подготовленном месте для установки. Установка сервера выполняется в дата-центре на хостинг или в специально оборудованном помещении в офисе. Установку серверов рекомендуют делать в стойку высотой 180-240 см. Данная установка позволяет максимально экономить пространство в помещении.

Компании, не обладающие достаточной площадью помещения, обычно выполняют установку сервера в Дата-центре.

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

Услуги предоставляемые нашей компанией по настройке серверного оборудования:

    Услуги по установке и настройке Windows Server для фирм и организаций в Донецке и Донецкой области;

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

    Услуги по установке и настройке Linux серверов для фирм и организаций в Донецке и Донецкой области;

    Linux (Линукс) – это обобщённое название Unix-подобных операционных систем, на основе одноимённого ядра. В настоящее время ОС Linux корректно функционирует практически на всех PC совместимых системах, чем обусловливается её растущая популярность.

      Услуги по подключению и обслуживанию серверного оборудования для фирм и организаций в Донецке и Донецкой области;

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

      Разделы

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервереСвежие объявления

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервереДобавить объявление

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервереРасширенный поиск

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервереНовости

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервереИнформеры

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервереRss

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервереКонтакты

      Источник

      Уютный VPS-сервер для маленьких проектов: как настроить

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      Мне всегда хотелось иметь в сети личное пространство. Место, где все было бы устроено как мне удобно. Наилучшим решением мне виделся недорогой VPS, который я мог бы обустраивать в соответствии со своими потребностями. Долго я не мог подступиться к решению этой задачи, но как-то незаметно подобрался набор инструментов, который позволил организовать именно такую программную среду, как мне хотелось.

      Если вам тоже хочется создать в сети свое личное пространство, но вы не знаете, с чего начать, или вам просто интересны такие замечательные программные продукты как Docker, Portainer, Traefik – добро пожаловать под кат.

      Введение

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

      Когда я учился в институте (это то время, когда у меня в городе только появился интернет по карточкам и первое интернет-кафе), мой друг, который к тому времени умудрился устроится лаборантом на кафедру информатики, активно пытался подсадить меня на Линукс. И вот я, считающий себя продвинутым компьютерщиком, имеющий опыт, наверное, сотни установок винды, прихожу домой после института и уверенным движением вставляю в дисковод диск с дистрибутивом линукс… И что? И ничего.

      Я уже за давностью лет не помню всех подробностей, наверно мне даже удалось его установить, но дальше был провал – я просто не понимал, что делать. Привычный способ, который работал в винде – рыться в панели управления рандомно включая разные настройки пока все не заработает (или сломается окончательно, но тогда можно было переустановить винду и начать все снова) тут не действовал. Все, что у меня было, это консоль, которая раз за разом отвергала мои попытки что-то настроить. Помню, что у меня была даже книга по линуксу, которая тоже никак не помогала — команды, которые там были приведены, в большинстве своем почему-то не работали. В общем, промучившись несколько дней я тогда решил для себя, что линукс, это какая-то ерунда, и с облегчением вернулся к привычной винде.

      Сейчас все поменялось. С приходом в нашу жизнь веба в его современном виде я пересел на Node.js и волей-неволей стал проникаться идеологией консоли и Linux. Для хостинга своих разработок мне понадобился VPS, и тут оказалось, что VPS с виндой стоят гораздо дороже, так что моя жаба перевесила мои фрустрации относительно консоли, да и наличие скоростного интернета позволило мгновенно находить ответы на возникающие вопросы.

      Я научился пользоваться ssh, осознал силу git и стал активно пользоваться docker’ом, но мне все также нравится использовать для своих задач графический интерфейс, и в этой статье я хочу вас познакомить с замечательным набором инструментов, которые позволяют решать мне мои повседневные задачи, не обращаясь лишний раз к консоли.

      Подготовка

      Я создал VPS минимальной конфигурации (vCPU: 1 core, RAM: 1 ГБ, NVMe: 20 ГБ) на macloud. Для установки на VPS я выбрал дистрибутив Debian 10. При установке я сразу добавил через панель управления SSH-ключ, чтобы было удобно заходить в консоль с помощью SSH-клиента. Для дальнейших экспериментов понадобится следующее:

      Устанавливаем необходимые зависимости:

      Добавляем официальный GPG ключ Docker’а:

      Теперь осталось обновить список пакетов:

      и установить докер:

      Проверить, что все корректно установилось можно, запустив команду:

      Если появилось приветствие, значит все прошло хорошо. У меня на момент написания данной статьи установилась следующая версия:

      Теперь надо установить docker-compose. Для этого воспользуемся официальной инструкцией:

      Для начала нам нужно получить ссылку на свежий релиз docker-compose. Список релизов можно посмотреть тут: https://github.com/docker/compose/releases

      На момент написания статьи наиболее свежей была версия 1.29.2. Нам нужна версия для linux, поэтому выбираем файл с названием docker-compose-Linux-x86_64. Скопируем ссылку на него. Теперь надо в консоли ввести следующую команду (вставьте в нужное место ссылку, полученную выше):

      В моем случае получилось:

      Запустим команду и загрузится бинарный файл docker-compose.

      Последний шаг – надо установить для него разрешение на исполнение. Это можно сделать следующей командой:

      Если всё прошло нормально, то на этом процесс установки окончен, теперь можно проверить версию docker-compose. У меня получилось вот так:

      Последний шаг – это включение файла подкачки, учитывая малый объем памяти он точно не будет лишним:

      Создадим файл размером 4 Гб

      Назначим ему необходимые права:

      Инициализируем его как файл подкачки:

      Проверить, появился ли файл подкачки в системе можно командой free. У меня все получилось:

      Осталось последнее действие: для того, чтобы файл подкачки оставался активным после перезагрузки надо добавить в файл /etc/fstab следующую строку:

      Для подобных задач мне нравится использовать файловый менеджер Midnight Commander. Это консольный файловый менеджер с классическим интерфейсом. Если вы сталкивались с Norton Commander/FAR/TotalCommander – вы легко поймете, как им пользоваться. Установить его можно следующей командой:

      А запустить с помощью команды

      Увидим до боли знакомую картину:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      Теперь найдем нужный файл и отредактируем его:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      На этом предварительная настройка закончена, можно двигаться дальше.

      Portainer

      Первый инструмент, с которым мне бы хотелось вас познакомить – это Portainer. Portainer – это инструмент для управления контейнерами в Docker, Swarm, Kubernetes и Azure ACI. Как написано в документации Portainer’а:

      «Отрицая необходимость для пользователей использовать интерфейс командной строки, писать YAML или понимать манифесты, Portainer делает развертывание приложений и устранение неполадок настолько простым, что любой может это сделать».

      Для моих целей Portainer подходит просто идеально. Давайте познакомимся с ним поближе. В соответствии с документацией https://documentation.portainer.io/v2.0/deploy/ceinstalldocker/ проще всего это сделать следующим образом:

      Создадим том для хранения данных:

      Теперь можно запустить Portainer следующей командой:

      После запуска Portainer будет доступен по адресу http:// :9000/

      При первом запуске Portainer попросит вас указать пароль администратора, после чего спросит, каким образом подключится к окружению:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      Я выбрал вариант подключится к локальному Docker’у, после чего появился домашний экран Portainer’а:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

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

      Зайдем в него, и увидим удобный дэшбоард со сводной информацией:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      Здесь мы можем управлять всеми аспектами работы Docker’а. Давайте посмотрим, что у нас в контейнерах:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      Здесь пока один контейнер – это сам Portainer. Интерфейс очень удобно позволяет просматривать и управлять контейнерами, а также есть возможность добавлять новые. Можете пройтись по остальным вкладкам и убедится, насколько удобный и продуманный интерфейс имеет Portainer.

      Наибольший интерес представляет вкладка Stacks. Стэк – это совокупность взаимосвязанных контейнеров, которые запускаются и работают совместно. По сути, это тоже самое, что композиция Docker Compose, конфигурацию которой мы описываем в файле docker-compose.yml и потом запускаем командой docker-compose up.

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

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      Для определения стека используется формат docker-compose, именно он работает здесь под капотом. Мне при помощи этой функции удобнее всего построить из контейнеров необходимую инфраструктуру.

      На этом предлагаю пока отвлечься от изучения возможностей portainer’а. Думаю, вы уже увидели, что это серьезный инструмент, благодаря которому можно практически полностью отказаться от использования CLI docker’а. Давайте теперь кратко рассмотрим, что же я хочу получить в результате на этом VPS.

      У меня периодически возникает потребность в разработке «быстрых» проектов. Я так называю проекты, которые не требуют глубокой проработки. Это могут быть эксперименты, небольшие сайты, боты, сборщики информации и т.п. Все то, что не требует выстраивания цепочки CI/CD. Мне было бы крайне удобно разрабатывать и отлаживать такие приложения прямо там, где они будут работать. Также у меня довольно часто бывает ситуация, когда я нахожусь вдали от своего рабочего места с настроенной средой разработки, и, если что-то в этих моих проектах начинает работать не так как надо, хотелось бы иметь возможность быстро разобраться в ситуации и пофиксить проблему, или просто поработать над проектами пока есть свободная минутка с любого компьютера, даже если на нем нет ничего, кроме браузера и доступа в интернет.

      Для удобства доступа у меня есть купленное доменное имя, и я хочу настроить для различных инструментов домены третьего уровня, так, чтобы например portainer был доступен по адресу portainer.example.com. Также я хочу, чтобы всё работало через https, и, чтобы не заморачиваться с покупкой сертификатов SSL, воспользоваться Let’s Encrypt. Еще одно требование, чтобы всё, к чему не предполагается публичный доступ было закрыто аутентификацией.

      Для того, чтобы всё это реализовать, давайте познакомимся со следующим замечательным инструментом. Это…

      Traefik

      Traefik — это реверсивный прокси-сервер, который заточен для работы с контейнерами. Для меня важны следующие его возможности:

      Чтобы процесс получения сертификата Let’s encrypt прошел успешно, перед запуском надо убедится, что записи DNS корректно настроены. Я для этих целей использую cloudflare, и в нем конфигурация должна выглядеть примерно так:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      В графе «Content» должен находится адрес нашего VPS.

      Если теперь скопировать получившийся docker-compose.yml на сервер выполнить следующую команду:

      То после запуска по адресу portainer.example.com будет такая картина:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      Причем он уже будет защищен сертификатом Let’s Encrypt:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      У traefik есть очень удобный дашборд, который помогает понять, правильно ли применились настройки конфигурации. Для того, чтобы его активировать, надо добавить в docker-compose.yml следующие строки:

      Также надо в настройках DNS добавить домен третьего уровня traefik.example.com. Это можно сделать по аналогии с тем, как ранее был добавлен домен для portainer. После применения настроек по адресу traefik.example.com увидим дашборд:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      Как видите, Traefik оказался замечательным инструментом. Он работает в тесной связке с docker’ом, а его возможности динамической конфигурации позволяют полностью отказаться от использования конфигурационных файлов для настроек роутинга. Вместо этого мы просто прописываем все необходимые параметры в качестве labels для настраиваемого сервиса, так что все настройки оказываются в одном месте.

      Теперь предлагаю немного отвлечься от настройки базовых сервисов и добавить в систему среду разработки. Это будет…

      Visual Studio Code Server

      Для меня всегда среда разработки или IDE, была чем-то таким серьезным. Мощный программный пакет, который устанавливается на машине разработчика, занимает много гигабайт на диске и в оперативной памяти. Пример такой IDE, которой я пользовался много лет, и до сих пор считаю, что это лучший выбор, если вы работаете со стеком технологий Microsoft, это Microsoft VisualStudio. Когда я начал изучать Node.js, я открыл для себя VSCode, и, несмотря на родственные названия, это совсем другая IDE, с совершенно иной концепцией и возможностями. Тот факт, что для отображения своего интерфейса VSCode использует движок Chrome, позволяет разнести интерфейс и сам VSCode. Благодаря такой архитектуре возник Visual Studio Code Server, который может работать на VPS, при этом интерфейс VSCode будет доступен через браузер. И нет, это не очередной онлайн редактор кода, это полноценная IDE VSCode, которая обладает всеми ее замечательными возможностями.

      Чтобы добавить VSCode Server на свой VPS я в Portainer’е создам новый stack, назову его code-server и добавлю туда следующую конфигурацию:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      Также перед запуском надо не забыть добавить в записи DNS домен третьего уровня code.example.com. Теперь осталось нажать кнопку Deploy the stack.

      После окончания процесса в portainer’е появится новый stack, и, если мы зайдем по адресу code.example.com, то увидим такую картину (я сразу включил dark theme):

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      Здесь можно вести разработку также как в десктопной версии VSCode. По большому счету, единственное отличие, с которым я столкнулся, это разница в дефолтных биндингах некоторых сочетаний клавиш, но к этому быстро привыкаешь в процессе использования.

      Для удобства я подключил к контейнеру code-server’a том, который смонтировал в директорию /app, так что создавать или клонировать из репозитория проекты лучше всего там, в таком случае данные не пропадут даже при пересоздании контейнера.

      В данном образе уже установлен Node.js, так что мне не пришлось ничего делать, и я могу сразу приступить к работе над своими проектами. Если же вам в работе нужны другие ЯП, то обратите внимание, что создатели данного образа поддерживают каталог модов, которые позволяют добавить поддержку различных платформ. О том, как их использовать, можно почитать в описании образа на Docker Hub, а со списком официальных модов можно ознакомиться здесь: mods.linuxserver.io/?mod=code-server

      Обратите также внимание на то, что в настройках контейнера указан пароль sudo. Для демонстрации я оставил его простым, но на практике лучше сделать его сложным, а еще лучше использовать свойство SUDO_PASSWORD_HASH, чтобы не хранить пароль в открытом виде. Как это сделать, можно почитать в описании образа здесь: hub.docker.com/r/linuxserver/code-server.

      Как вы наверное уже заметили – на данный момент доступ к code-server никак не защищен и сейчас любой, кто зайдет по адресу code.example.com получит доступ. Это очень плохой вариант, и, хотя в настройках образа можно включить доступ по паролю, мне бы хотелось иметь единый логин для доступа ко всем ресурсам, расположенным на сервере. Для этого предлагаю познакомиться со следующим инструментом. Это будет…

      KeyCloak

      KeyCloak – это современный инструмент для организации доступа к распределенным системам с использованием технологии единого входа. На самом деле это единственный свободный инструмент с настолько мощной функциональностью, который мне удалось найти. Если знаете достойную альтернативу, обязательно напишите об этом в комментариях.

      Для того, чтобы добавить его в мою систему, я создал в portainer’е новый стек с названием auth и добавил в него следующую конфигурацию:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      После нажатия кнопки Deploy the stack, KeyCloak будет доступен по адресу auth.example.com. Если мы зайдем туда, нас встретит приветственное окно KeyCloak:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      Зайдем в консоль администратора:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      Имя пользователя будет admin, а начальный пароль тот, что мы установили в конфигурации стека переменной окружения KEYCLOAK_PASSWORD. После логина попадем в админку KeyCloak:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      Рекомендации по первоначальной настройке KeyCloak для docker’а можно подчерпнуть в официальной документации вот здесь www.keycloak.org/getting-started/getting-started-docker.

      Вкратце, надо создать новый пользовательский Realm, в нем создать пользователя и добавить нового клиента.

      Для клиента необходимо установить Access Type: confidential и добавить в Valid Redirect URIs наши домены, пока это будут «https://traefik.example.com/*» и « code.example.com*»:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      После установки Access Type: confidential появится вкладка Credentials, в которой можно будет забрать Secret, он нам пригодится далее при настройке.

      На этом пока закончим настройку KeyCloak. Теперь нам надо подружить его с Traefik’ом. Напомню, что мы хотим закрыть от неаутентифицированных пользователей доступ к узлам code.example.com и traefik.example.com. Для этих целей у traefik есть ForwardAuth middleware, которое позволяет организовать авторизацию через внешний сервис. Чтобы обеспечить его взаимодействие KeyCloak нам понадобится промежуточный сервис, я буду использовать github.com/thomseddon/traefik-forward-auth. Он доступен также в качестве образа на Docker Hub, поэтому я просто дополню конфигурацию стека auth в portainer’е таким сервисом:

      Здесь в переменной PROVIDERS_OIDC_ISSUER_URL должен быть путь к ранее созданному нами Realm в Keycloak, PROVIDERS_OIDC_CLIENT_ID должен содержать имя клиента, созданного мной ранее в данном realm’е, а PROVIDERS_OIDC_CLIENT_SECRET надо взять из вкладки Credentials данного клиента. В переменной SECRET надо забить рандомную строку.

      Теперь, чтобы закрыть сервис, роутинг в который обеспечивает Traefik достаточно добавить к нему в labels следующую строку:

      Для начала я решил закрыть аутентификацией code server, для чего зашел в его стек и дополнил его конфигурацию. Получилось следующее (для краткости привожу только секцию labels):

      Нажмем кнопку Update Stack и попробуем зайти по адресу code.example.com. Если все сделано правильно, то появится окно логина:

      что можно настроить на сервере. Смотреть фото что можно настроить на сервере. Смотреть картинку что можно настроить на сервере. Картинка про что можно настроить на сервере. Фото что можно настроить на сервере

      После ввода корректных имени пользователя и пароля (которые до этого настроил в KeyCloak) я попал в интерфейс Code server. Все работает!

      Подобным образом я закрыл от посторонних глаз дашборд traefik’а. Для этого пришлось сходить в консоль (Portainer не может вносить изменения в конфигурацию стека, который был создан не им, а Traefik я поднимал из консоли) и аналогичным образом отредактировать docker-compose.yml:

      Для проверки я зашел по адресу traefik.example.com. Чтобы удостоверится, что все работает как надо, мне пришлось открыть окно браузера в режиме инкогнито, иначе система меня узнавала и не спрашивала пароль, поскольку я ранее уже логинился для доступа к code-server и поэтому KeyCloak аутентифицировал меня автоматически.

      Таким образом, при помощи связки KeyCloak и Traefik мне удалось защитить от несанкционированного доступа чувствительные элементы моей системы. Преимущество данного подхода в том, что он позволяет сделать это даже там, где не предусмотрены собственные механизмы аутентификации. Есть конечно и недостатки — KeyCloak достаточно тяжелый, занимает много ресурсов, в первую очередь памяти, да и по возможностям это явный overkill, мне скорее всего не потребуется большая часть того, что он умеет. В качестве альтернативы можно бы было использовать облачный сервис, например traefik-forward-auth имеет встроенную поддержку Google OAuth.

      Выводы

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

      Конечно, при настройке мне пришлось многое делать из консоли, но в дальнейшем, при повседневном использовании построенная система позволит мне сократить ее использование, что для меня несомненно плюс.

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

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

      Для удобства файлы конфигураций я разместил в репозитории вот тут: https://github.com/debagger/vps-docker-workspace

      Благодарю за внимание!

      Облачные серверы от Маклауд быстрые и безопасные.

      Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

      Источник

      Добавить комментарий

      Ваш адрес email не будет опубликован. Обязательные поля помечены *