# Первичная настройка сервера на 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-пользователя — можно только через веб-консоль.
Далее можно переходить непосредственно к работе с сервером — устанавливать программное обеспечение, привязывать домен и начинать работу с собственными проектами.