obit_admin

OpenStack

Инструмент для создания сервисов и хранилищ в облаке. Он не требует особого уровня доступа и распространяется под лицензией APACHE. 

Принцип работы

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

Перечень модулей постоянно расширяется и вы можете индивидуально проконсультироваться с технической поддержкой по поводу подбора и отладки модулей. 

Структура

  • Модуль Glance распоряжается виртуальными ОС хостов, но не занимается их хранением. 
  • Cinder — система хранения данных для работы с блоками информации.
  • Swift — аналогичная система Cinder для обращения к объектам, которая управляется через собственное внутреннее программное обеспечение.
  • Neutron — отладчик соединений между используемыми модулями.
  • Keystone — элемент управления для идентификации и аутентификации.
  • Данный модуль выполняет функции контроля доступа к системе/ конкретному блоку.
  • Watcher — распределитель нагрузки.
  • Horizon — модуль мониторинга системы, построенной вокруг OpenStack.
  • Nova — один из главных модулей, служит контроллером исполнения (запуск/перезапуск/остановка).
  • OpenStack — надежное решение с богатым техническим бэкграундом. Принцип конструктора поможет пользователю разобраться в своих потребностях, сократит время, которое клиент мог потратить на настройку полноценной конфигурации.

 

Jenkins

Это Программное обеспечение может быть использовано в качестве вспомогательного инструмента разработки новых решений, а также в качестве отладчика уже существующих продуктов. Чаще всего Jenkins необходим для интеграции нескольких компонентов в единое решение. Язык, на котором спроектирован Jenkins — Java.

Принцип работы

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

Плюсы использования

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

Jenkins — удобное многофункциональное решение для создателей программного обеспечения.

RDP

Технология подключения к удаленной ОС через сервер терминалов. Этот протокол реализовали  еще в 90-х, но он до сих пор широко используется. Стоит отметить, что протокол работает только в ОС группы Windows, а подключение других операционных систем осуществляется за счет внешних приложений.

Режимы подключений

Осуществление подключения к серверной ОС и последующая работа. Windows Server поддерживает параллельно 2 удаленных подключения. RDP — как механизм установки соединения с терминалом сервера. Этот способ релевантен только в случае подключения к серверным ОС. RDP — подключение напрямую к станции (машине). 

Принцип работы

В основе технологии лежит протокол TCP. Соединение между клиентом и сервером устанавливается на транспортном уровне. После прохождение аутентификации пользователь получает доступ к серверу. 

Через RDP прокладываются специальные виртуальные каналы, поддерживающие некоторые функции ОС, такие как печать и буфер обмена. 

Безопасность

Безопасность технологии RDP поддерживается несколькими способами:

Во-первых, существует внутренняя система Standart RDP Security. Генерируется RSA ключи и единый сертификат открытого ключа. Открытый ключ используют для выбора алгоритма шифрования. В старых Windows Server 2008 значение длины ключа — 168 бит, но в зависимости от версии ПО это значение может меняться. После ввода данных и проверки сертификата пользователь авторизируется.

Другой способ заключается в использовании внешних инструментов безопасности (Enhanced RDP Security). Например, TLS отвечает за шифрование трафика во время подключения и валидацию пользователя при входе. Подобный способ оптимизирует нагрузку на сервер при большом количестве одновременных соединений.  В интересах больших компаний добиться ресурсообеспеченности, исключая постоянное масштабирование. 

Технология RDP используется для получения удаленного доступа исключительно в экосистеме Windows. Для иных ОС создано внешнее программное обеспечение, решающее проблему поддержки протокола RDP.

Kubernetes

Инструмент управления контейнерами (dockers). Kubernetes — это open-source платформа, которая контролирует сервисы, связанные с контейнерами. Это решение упрощает процесс автоматизации. Использование Kubernetes имеет следующие преимущества:

  • Команда контролирует ресурсы, потому что инструмент позволяет организовать гибкий график работы приложений
  • Нагрузка равномерно распределяется
  • Система может автоматически распределять ресурсы в зависимости от обстановки внутри инфраструктуры 
  • Простая миграция приложений 
  • Гибкая управление версиями (легкий откат к прошлым версиям для тестирования)
  • Система остаётся цельной после добавления новых хостов

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

Структура и механизм работы

Кластер, состоящий из физических/виртуальных машин — строительный блок Kubernetes. Nodes — машины (узлы), которые могут быть связующими узлами (master-node). Один узел содержит в себе совокупность контейнеров, которые хранят приложения. Master устанавливает параметры контейнеров, движение трафика.

Docker

ПО с открытым кодом, предназначенное для отладки, запуска систем в изолированных средах. Эффективность использования ресурсов и мобильность — главные преимущества DOCKER. Docker работает по принципу «исполнителя кода», поэтому разработка оптимизирована под конкретные задачи клиента. Такой подход выгоден экономически. Не нужно дополнительно инициализировать сторонние модули. Они могут быть запущены из контейнера напрямую. Мобильность решения значительно сокращает издержки.
Преимущества применения:

  • Docker позволяет поддерживать больше кода.
  • Заранее сконфигурированные контейнеры проще разворачиваются.
  • Трансфер (перенос) приложения в среду продакшена производится быстрее.

DOCKER — кросс-платформа, которая доступна для Linux/macOS/Windows. Возможности Docker имеют предел, зависимый от настроек конкретной системы.

Установка Wireguard VPN на VPS

Данное руководство поможет последовательно установить, настроить и отладить WireGuard VPN. Для работы вам понадобится виртуальный сервер под управлением OS Linux. В нашем случае, был выбран Ubuntu 20 с минимальными расширениями. Редактирование файлов будет происходить в программе VIM.

Удалённый сервер
С помощью авторизации по SSH произведите подключение к серверу, на котором будет развернут VPN.

  1. обновление репозиториев apt — sudo apt update -y 
  2. установка WG — sudo apt install -y wireguard
  3. переход в папку с VPN — cd/etc/wireguard/
  4. генерация ключей для соединения с VPN — wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey.Команда tee сохраняет ключи в файл, далее скрипт создает публичный ключ на основе секретного, передает в директорию, полученный файл, сохраняет изменения. 
  5. Командой cat проверьте существование ключей в файлах:
cat publickey
cat privatekey

Следующим шагом в VIM создайте файл конфигурации VPN-сервера. Вставляем:

[Interface]
PrivateKey = <privatekey> # Приватный ключ из файла privatekey.
Address = 10.0.0.1/24 #Адрес VPN-сервера в частной сети.
ListenPort = 51830  #Порт, который будет слушать VPN-сервер.
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  #Команды, который будут выполнять при поднятии сервера
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE  #Команды, который будут выполнять при выключении сервера.

Вместе privatekey вставьте приватный ключ. 

Настройте форвардинг (прохождение трафика через VPN) — 

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

Включите автоматический запуск VPN после выключения, а также перезагрузки виртуального сервера — systemctl enable wg-quick@wg0.service. Команда вернет сообщение:

Created symlink /etc/systemd/system/multi-user.target.wants/wg-quick@wg0.service → /lib/systemd/system/wg-quick@.service.

Произведите запуск WG — systemctl start wg-quick@wg0.service. Обязательно, уточните статус сервера VPN — systemctl status wg-quick@wg0.service. Настройка сервера завершена. 

Подключение к WG
Создайте пары ключей для клиента — wg genkey | tee /etc/WireGuard/katkov_privatekey | wg pubkey | tee /etc/WireGuard/katkov_publickey

Папка сервера содержит файлы:
.
├── katkov_privatekey — частный ключ клиента
├── katkov_publickey — публичный ключ клиента
├── privatekey — частный ключ WG сервера
├── publickey — публичный ключ WG сервера
└── wg0.conf — конфигурационный файл WG сервера

Откройте файл — vim /etc/WireGuard/wg0.conf

Добавьте в конец файла строки ниже:
[Peer]
PublicKey = <katkov_publickey> #Публичный ключ клиента
AllowedIPs = 10.0.0.2/32 #IP-адрес в час

Добавили, теперь перезагрузите сервер и проверьте статус:

systemctl restart wg-quick@wg0
systemctl status wg-quick@wg0

Вывод:

Настраиваем машину клиента

Мы показываем процесс на примере Windows 11, но любая версия Windows настраивается таким же образом. Не закрывайте сессию SSH на удаленном сервере, потому что нам необходимы ключи из директории /etc/WireGuard/

  1. скачайте WG — https://www.wireguard.com/install/
  2. создайте текстовый документ, файл конфигурации для соединения к серверу WG, местоположение значения не имеет.
    В созданный wgvpn_connect.conf вставьте:

    [Interface] 
    PrivateKey = <CLIENT-PRIVATE-KEY> #Клиентский приватный ключ. В нашем случае katkov_privetkey. 
    Address = 10.0.0.2/32 #IP-адрес клиента, который настроен на WG сервере 
    DNS = 8.8.8.8 #DNS, который будет использовать при подключении 
    [Peer] 
    PublicKey = <SERVER-PUBKEY> #Публичный ключ сервера 
    Endpoint = <SERVER-IP>:51830 #IP адрес удаленного сервера и порт прослушивания 
    AllowedIPs = 0.0.0.0/0 #Если указаны все нули — весь трафик клиента будет проходить через WG сервер 
    PersistentKeepalive = 20 #Интервал проверки соединения между клиентом и сервером (сек).

    Чтобы узнать IP сервера, воспользуйтесь панелью управления или введите команду — curl ifconfig.me

  3. Подготовленный файл загрузите в клиент WG:
  4. Когда будет совершено подключение, индикатор загорится зеленым, трафик будет увеличиваться
  5. ifconfig.me — для проверки IP 

Вы настроили WG VPN-сеть. Чтобы подключать новых пользователей (новые устройства), генерируйте новые ключи и не забывайте давать им осмысленные названия. Также, следите за файлами конфигурации, они тоже должны присутствовать на каждом устройстве в сети. 

 

Создание SSH-ключа, чтобы авторизироваться на сервере

В этом руководстве мы рассмотрим процесс создание ключа SSH в OS Linux и Windows. Этот ключ необходим для подключения к виртуальному серверу на базе Linux OS.

Как работает?
При соединении с каким-либо элементом веб-инфраструктуры обычно используются стандартные ключи — пароли. Авторизация с помощью SSH-keys проходит без введения пароля. Дело в том, что пароли чаще поддаются компрометированию, а ключи почти неуязвимы к краже.

Генерируется не один ключ, а пара — закрытый и открытый. Закрытый ключ хранится на элементе инфраструктуры, к которому производится подключение, а открытый ключ — у вас. В итоге, при соединении ключи совпадают по хэш-сумме. Защита обеспечивается посредством обработки ключей тем способом, который неизвестен третьему лицу.

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

ssh-keygen -t rsa 

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

На скриншоте видно, что ключи записались в директории. 

Генерируем ключи OS Windows
Установите программу PuttyGen. 

Выберите тип ключей «RSA». Значение Number of bits in generated key — 2048. Сгенерируйте (Generate). Key passphrase — кодовая фраза. Двухфакторная авторизация нужна для обеспечения конфиденциальности ключей. Но при этом, каждое подключение требует повторного ввода сид-фразы. Повторите кодовую фразу и сохраните ключи. 

Ключи и панель управления
В настройках есть пункт SSH-ключи, выберите «Добавить SSH-ключ». Затем установите имя для пары ключей и вы увидите поле, подписанное как «Код ключа». 

SSH соединение
При настройке сервера не забудьте включить опцию «Подключение с SSH-ключом»

 

WordPress + LAMP

WordPress — востребованный open-source движок для создания блогов и веб-сайтов. Многие веб-сайты используют специализированные системы управления. 

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

Платформа WordPress требует наличия облачной инфраструктуры и доменного имени. Это руководство показывает способ установки WordPress на стеке LAMP. Расшифровывается как LINUX APACHE MYSQL PHP. Стек — серверная установка (совокупность необходимых инструментов для поддержки веб приложения). 

Требования

Для начала работы вам потребуется доступ к серверу Linux Ubuntu 20.0. А затем нужно выполнить следующие действия:

  • Настройте ваш сервис и проверьте, чтобы был задан пользователя sudo без прав администратора (root).
  • Разверните и проведите отладку стека LAMP
  • Защита для сайта — важный элемент, требующий отдельного внимания. Данные пользователя всегда будут главной добычей для злоумышленников, поэтому настройте шифрование трафика, с помощью технологии TLS/SSL. Здесь есть два варианта: 
  1. Если доменное имя уже готово к использованию, то подключите LETS ENCRYPT. Модуль предоставляет бесплатные подлинные сертификаты. 
  2. В случае, если домен не подобран, то воспользуйтесь самоподписанным сертификатом

Зайдите на сервер пользователем sudo и начните настройку системы по следующему алгоритму: 

ШАГ 1 — База данных

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

mysql -u root -p

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

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

Удобно, можно контролировать базы данных MYSQL через WordPress. 

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Команда создаст базу для WordPress, которая нужна для администрирования. 

Чтобы привязать базы данных, используйте команду:

CREATE USER 'wordpressuser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

В wordpressuser разрешите абсолютный доступ к ранее созданной базе MYSQL:

GRANT ALL ON wordpress.* TO 'wordpressuser'@'%';
mysql> EXIT; - выйдите из программы

ШАГ 2 — PHP расширение для сервера

PHP реализует коммуникацию всех модулей веб-сайта. Команды, приведенные ниже устанавливают актуальные расширения PHP:

sudo apt update
sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

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

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

sudo systemctl restart apache2

ШАГ 3 — Конфигурация Apache для переопределения и перезаписи .htaccess

Измените настройки Apache. Предварительно, файл для сайта должен находиться по адресу /etc/apache2/sites-available

Также, мы будем использовать /var/www/wordpress​​​ в качестве корневой директории для нашей установки WordPress. Вы должны использовать корневой веб-узел, указанный в вашей собственной конфигурации. Если вы следовали указаниям нашего руководства по LAMP, вы можете использовать ваше доменное имя вместо wordpress в обоих случаях. После определения пути, перейдите к работе с .htaccess, потому что APACHE нужно обрабатывать изменения настроек в разных директориях. До настройки файлы .htaccess не работают. 

sudo nano /etc/apache2/sites-available/wordpress.conf .Эта команда открывает файл с надстройками Apache. Внутри файла будет закрытый блок Directory. Адрес рядом с первым тегом обозначает корневую папку документа. Вставьте данный кусок кода в блок файла надстроек VirtualHost, перед этим проверьте корректность адреса корневой директории. 

<Directory /var/www/wordpress/>
AllowOverride All
</Directory>

В редакторе nano нажмите сочетание клавиш CTRL и X, затем Y, затем ENTER.

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

sudo a2enmod rewrite
http://example.com/2012/post-name/
http://example.com/2012/12/30/post-name

Активация изменений 

Команда sudo apache2ctl configtest тестирует работу сервера. Проделайте это, чтобы убедиться в отсутствии ошибок при редактировании конфигурационных файлов. 

ШАГ 4 — Выгрузка WordPress

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

cd /tmp
curl -O https://wordpress.org/latest.tar.gz

Эти команды скачивают систему 

Извлечь файлы:

tar xzvf latest.tar.gz

Далее необходимо перенести файлы в корневую папку, создать файл .htaccess 

touch /tmp/wordpress/.htaccess

Можно создать директорию, отвечающую за обновления в автоматическом режиме

mkdir /tmp/wordpress/wp-content/upgrade

Перемещаем все файлы в корневую директорию. 

sudo cp -a /tmp/wordpress/. /var/www/wordpress*

Не забывайте, у вас может быть другая директория (отличная от /wordpress).

ШАГ 5 — Настройка главной папки WordPress

Очень важно установить привязку к корневой директории. 

sudo chown -R www-data:www-data /var/www/wordpress*

Группа команд, которые устанавливают необходимые разрешения

sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \;
sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;

Сгенерируйте секретный ключ безопасности, который обеспечивает приватность и конфиденциальность использования. 

curl -s https://api.wordpress.org/secret-key/1.1/salt/

Вставьте полученные значения в файл настроек, скопировав вывод скрипта

sudo nano /var/www/wordpress*/wp-config.php

В кавычки вместо ‘put your un…’ вставьте сгенерированные ключи

Поскольку мы предоставили веб-серверу разрешение на запись там, где ему потребуется, мы можем прямо установить метод файловой системы «direct». Если бы мы не внесли это изменение в текущие настройки, это привело бы к тому, что при выполнении некоторых действий WordPress будет запрашивать данные учетной записи для FTP.

ШАГ 6 — Завершение установки с помощью графического интерфейса

После детальной настройки сервера, завершить установку системы через специальный интерфейс. 

Введите в браузер адрес домена или публичный адрес вашего сервера:

https://server_domain_or_IP

Установите язык:

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

Перейдите на следующую страницу:

Совершите авторизацию в учетной записи WordPress:

 Готово! Веб-страница ждёт заполнения и развития. 

Дополнительно 

Выставьте постоянные ссылки для постов (Настройки — Permalinks(Постоянные ссылки)). Можно изменить тему интерфейса (Внешний вид — Темы). Также, есть возможность добавлять пользователей, которые могут редактировать наполнение веб-сайта (Пользователи — Добавить нового +). 

Изменение ключа доступа к учетной записи администратора

Изменять пароль по умолчанию необходимо, чтобы усложнить задачу для злоумышленника. Дефолтные пароли — серьезная брешь в безопасности. Изменить пароль админа на виртуальном сервере OS Linux не так сложно. 

Зайдите на сервер через систему управления 1cloud, откройте консоль и установите соединение с серверной машиной, используя программу PUTTY.

Откроется командная строка. Вам необходимо ввести данные учетной записи — логин и пароль администратора. 

После успешной авторизации, введите команду passwd. Скрипт автоматически запустит модуль, который отвечает за замену пароля. Придумайте новый ключ доступа, не забудьте его записать или поместить в защищенное место. Повторите новый пароль. Вы увидели сообщение «passwd: password updated successfully», значит пароль успешно изменен.

 

Добавление нового диска и создание разделов на виртуальных серверах под управлением ОС Linux

Проблему с нехваткой места на жестком диске можно решить удалением ненужных файлов, кэша и программ. Однако рано или поздно возможности для удаления исчерпаются и перед пользователем встанет вопрос о монтаже нового носителя в систему. Мы расскажем, как добавить новый диск на Virtual Private Server, Virtual Dedicated Server и Standalone Server.

Предварительная подготовка

Прежде всего нужно проверить наличие жесткого диска в системе, так как его наличие в BIOS не всегда бывает достаточным. Чтобы увидеть в системе все накопители, которые доступны в настоящее время, нужна команда:

sudo fdisk -l

На изображении видно, что в системе есть два диска — sda и sdb, объем каждого из них составляет 10 Гб. Поскольку первый диск системный, вся работа будет вестись с диском sdb. 

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

Разметка диска

Вторым шагом нужно запустить компьютерную программу fdisk и прописать путь до диска:

fdisk /dev/sdb

Ввод “m” с нажатием клавиши Enter вызовет страницу команд, которые доступны пользователю:

Для создания простого раздела можно задействовать весь объем жесткого диска. Для этого нужно нажать клавишу “n” и подтвердить ввод клавишей Enter.

В ответ появится вопрос от системы о том, какой тип раздела требуется создать. Нужно выбрать p (primary) и 1, что будет означать первичный раздел номер 1.

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

После того как все нужные опции выбраны, нужно нажать “w”, чтобы сохранить изменения и подтвердить выбор нажатием Enter.

Форматирование диска

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

У Linux есть несколько разных видов файловых систем. Чтобы создать одну из них, нужно ввести команду mkfs и указать ключи или выполнить одну из программ:

Команда для форматирования диска выглядит следующим образом:

sudo mkfs.ext4 /dev/sdb1

Теперь осталось смонтировать диск, чтобы он был полностью готов к работе.

Монтирование диска

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

Для начала нужно создать каталог в директории /mnt:

sudo mkdir /mnt/1

Следующим шагом нужно нужно настроить права, разрешающие доступ к каталогу только root-пользователям и только для чтения и записи

sudo chmod -R 660 /mnt/1

После этого нужно ввести команду для монтирования диска:

sudo mount /dev/sdb1 /mnt/1

Если нужно сделать так, чтобы диск монтировался автоматически при загрузке системы, потребуется отредактировать файл /etc/fstab. Для этого нужно открыть его любым текстовым редактором. В этом примере используется редактор nano:

sudo nano /etc/fstab

Останется добавить в конец файла следующую строку и сохранить файл:

/dev/sdb1 /mnt/1 ext4 defaults 0 0