Начальная конфигурация CentOS 7

Это третья статья из серии «Устанавливаем блог WordPress на CentOS с Caddy, PHP 7.2 и MySQL 8.0». Вот мы, как раз, и приступаем к настройке операционной системы центос.

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

$ ssh -i {/path/to/private/key} root@{IP-address}

(например ssh -i ~/.ssh/sy_blog_01a root@203.0.113.0 — т.е. без фигурных скобок) 

При самом первом соединении с сервером CentOS, когда удаленный сервер не «встречал» ранее ваш локальный сервер, он спросит уверены ли вы, что хотите законнектиться — набираем yes и жмем Enter.

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

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

Делается это просто (имя нового юзера может быть любое, в этом примере указываю имя droplet)

$ adduser droplet 

следующей коммандой устанавливаем юзеру пароль (как и в примере выше, у нас юзер droplet)

$ passwd droplet

вводим пароль и повторяем ввод пароля (обязательно сохраните, система может иногда запрашивать пароль)

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

$ gpasswd -a droplet wheel

Рекомендуется (с точки зрения безопасности) создать пользователю SSH ключ для доступа, плюс в конфигах операционной системы CentOS, по умолчанию, включен запрет на вход по паролю, разрешен только по файл-ключу. 

Ключ этот генерируем на локальном компьютере, а не на сервере. Ранее мы это делали для root пользователя (ссылка на предыдущую статью). Напоминаю, что делаю на macOS (для Windows процедура немного другая)

Открываем терминал и выполняем команду

$ cd ~/.ssh

для перехода в директорию ключей. Далее

$ ssh-keygen -t rsa

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

Распечатываем публичный ключ для переноса на наш сервер

$ cat ~/.ssh/blog_02a.pub

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

# su - droplet

Оказываемся в домашней директории пользователя droplet.

Создаем новую директорию для ключа и назначаем ей необходимые права

$ mkdir .ssh
$ chmod 700 .ssh

Следующей командой создаем и открываем файл для ввода ключа

$ vi .ssh/authorized_keys

Нажимает клавишу i чтобы перейти в режим редактирования в редакторе vi, вставляем ключ из буфера обмена, скопированный ранее, нажимаем ESC, чтобы выйти из режима редактирования. После этого набираем с клавиатуры 2 символа: символ «двоеточия» и английская буква x и жмем ENTER чтобы сохранить и закрыть файл.

И, так же, устанавливаем на созданный файл необходимые права

$ chmod 600 .ssh/authorized_keys

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

$ exit
$ exit

Команда соединения с сервером с новым пользователем для нашего примера будет выглядит так

$ ssh -i ~/.ssh/blog_02a droplet@203.0.113.0

(у вас будет точно другой IP после знака @, и, возможно, другие имя пользователя и путь к ключу)

Таким образом, у нас готовая операционна система для установки блога.

Хостинг Digital Ocean

Это первая статья из серии «Устанавливаем блог WordPress на CentOS с Caddy, PHP 7.2 и MySQL 8.0». В любом случае, нам понадобится хостинг для размещения блога.

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

Имею достаточно большой и позитивный опыт с Amazon (AWS), хотя он, считается дорогим (заслуженно, так как инфраструктура там широчайшая). Зная, что есть альтернативы, решил остановить свой выбор на Digital Ocean (DO), так же широко известном.

Плюсом будет то, что у DO есть достаточный по характеристикам сервер стоимостью 5 у.е.

Итак, нужно зарегистрировать :

https://cloud.digitalocean.com/registrations/new

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

Далее, привязываем карту (или другой платежный инструмент).

В DO облачные сервера называются «дроплетами» (Droplet). С английского переводится, как «капля». Это, чтоли, отсылка к тому, что облако состоит из множества капелек?! =)

Итак, перейдем к созданию дроплета-сервера: CreateDroplets

Далее выбираем операционную систему. Исторически сложилось, что, в основном, приходилось работать со сборками CentOS (версии 6 и 7) — выбираем 7.6 версию

План — Standard

Тариф — 5 у.е. в месяц (1GB / 1CPU / 25GB SSD)

Датацентр (физическое расположение сервера) выбираем поближе к России. Я выбирал Frankfurt

Метод аутентификации, для пущей «секьюрности» выбрал SSH keys (в этом случае доступ к серверу будет осуществляться не по паре {логин + пароль}, а по паре {логин + файл-ключ}). При этом необходимо загрузить сгенерированные самостоятельно SSH-ключ. Это и сделаем далее…

Нажимаем тут кнопку New SSH Key и видим следующее диалоговое окно:

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

Оговорюсь, что, при написании данной статьи, была использована операционная система macOS (процесс создания аналогичный для Linux систем, а для Windows постараюсь описать позже). Итак, открываем терминал и выполняем команду

$ cd ~/.ssh

для перехода в специальную директорию (для SSH ключей) внутри домашней директории для вашего текущего пользователя

Далее выполняем команду для генерации ключа

$ ssh-keygen -t rsa

Увидим следующую предложение для ввода имени ключа

Enter file in which to save the key (/home/user/.ssh/id_rsa):

вводим удобное для вас имя (чтобы далее его можно было найти), например blog_01a и подтверждаем ввод — ENTER

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

Чтобы вывести в консоль содержимое публичного ключа (а именно он нам необходим для ввода в интерфейсе создания Droplet-сервера) используем следующую команду

$ cat ~/.ssh/blog_01a.pub

Копируем полученное буквенно-цифровое выражение, а это будет что-то вроде…

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDi28juE0FufXdPwZmOUE+E+gQJSunhUmsE7mSnuPmwcb8VBVuly4Uarq3EkCYAXrjrPwq/FOQWDX1Yw2sC16gQLWECUUKmnVR3OPrZCW2iPOO/ZpSLvs0cMrAHZlobBrNOYLl22tnIuaZVl49GLCcwuEFIQuxcIO9fU8ZBD0fpJoOEl9niqg2n2/86IczTGhsxdjq+EXyYLTUv/F0GtEneQQCxiHRVRTL1dDNbSQZj1Y0UtKZHFNHsI6TbmhkUlFZX3jEmC+b6XxSmJM2UiTCKOERAKmImTwnDOyLPZmnKAbGrqLmQv/E1GQdAqyGJCEC7zThFxwPtkvcmo2NzFwsr

…и вставляем в ранее указанное поле в диалоговом окне добавления файла-ключа в интерфейсе создания Droplet. Даем имя в поле Name (например тоже, что и у файла-ключа — blog_01a) и жмем кнопку Add SSH Key

Готово. Осталось отметить его галочкой, оставить, как есть «1 Droplet» в поле «How many Droplets?» и дать ему имя в поле «Choose a hostname».

Tags — опционально, выбираем Project (если ранее не создавали проект — создаем, это просто), пока что отключаем backups (так как это лишние траты, если захотим — включим позже) и, наконец-то нажимаем кнопку Create Droplet. С удовольствием наблюдаем за процессом создания нашего сервера…

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