# Первичная настройка сервера на CentOS 7

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

В этой инструкции мы расскажем, как подготовить только что созданный сервер под управлением CentOS 7 к работе: создадим нового пользователя, наделим его привилегиями sudo, установим и предварительно настроим фаервол, запретим подключение к серверу от имени root-пользователя и настроим SSH-подключение с аутентификацией по ключу.

# Создание нового пользователя

Первое подключение к серверу производится от имени root-пользователя. Подключиться можно как через веб-консоль, так и по SSH, задав предварительно пароль root-пользователя в панели управления сервером.

Мы не будем использовать root-пользователя для постоянного управления сервером — его права настолько обширны, что серверу можно нанести непоправимый ущерб даже просто по неосторожности. Чтобы избежать этого, создадим нового пользователя:

adduser User

Зададим для него пароль:

passwd User

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

gpasswd -a User wheel

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

Если пакет sudo не установлен на вашем сервере (после ввода команды появится сообщение Unit sudo.service could not be found) установите его вручную.

Для этого зайдите на сервер от имени root-пользователя и выполните команду:

yum install sudo

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

# Установка и настройка фаервола

Для установки фаервола будем использовать программу-установщик YUM. Как правило, YUM установлен по умолчанию и сразу готов к работе.

Начнём с обновления репозиториев YUM:

sudo yum update

Программа-установщик укажет дисковый объём, который будет занят при установке обновлённых пакетов, и попросит согласие на продолжение.

После успешного обновления YUM (в строке выдачи появится сообщение Complete!) можно переходить непосредственно к установке фаервола:

sudo yum install firewalld

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

Активируем его и запустим:

sudo systemctl enable firewalld
sudo systemctl start firewalld

Активация позволит фаерволу запускаться после перезагрузки сервера.

Сейчас можем проверить, какая зона (группа настроек) активна и какие службы разрешены.

Вводим команду:

sudo firewall-cmd --list-all

Она выведет на экран активную зону с её настройками.

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

sudo firewall-cmd --list-all-zones|less

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

# SSH-подключение к серверу с аутентификацией по ключу

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

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

Чтобы вручную поместить публичный ключ на сервер, подключимся к серверу по SSH и зайдём как новый пользователь User, которого мы создавали в начале инструкции.

Зайдём в корневую папку пользователя:

cd ~

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

mkdir .ssh

Теперь установим на неё права 700:

chmod 700 .ssh

В этой папке создадим файл, который будет содержать публичный ключ:

cd .ssh
vi authorized_keys

В открывшемся текстовом файле разместим наш публичный ключ.Если вы используете ОС Windows, то для генерации пары ключей используйте утилиту PuTTY Key Generator. Сохраним файл и установим на него права 600:

chmod 600 authorized_keys

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

# Ограничение SSH-доступа для root-пользователя

Чтобы повысить уровень безопасности нашего сервера, запретим SSH-подключение к нему от имени root-пользователя. Для этого мы отредактируем файл конфигурации ssh-демона.

Подключимся к серверу от имени root-пользователя и откроем в текстовом редакторе файл конфигурации:

vi /etc/ssh/sshd_config

В этом файле нам нужно найти строку #PermitRootLogin yes. Раскомментируем её (уберём # в начале строки) и заменим yes на no. В итоге строка должна выглядеть так: PermitRootLogin no. Сохраним изменения и перезагрузим нашу ssh-службу:

systemctl reload sshd

Теперь к нашему серверу нельзя подключиться по SSH от имени root-пользователя — можно только через веб-консоль.

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