При создании нового сервера, есть несколько шагов настройки, которые необходимо принимать на раннем этапе в рамках базовой установки. Это позволит повысить безопасность и удобство использования вашего сервера, и даст вам прочную основу для дальнейших действий.
Для того, чтобы войти на свой сервер, то вам нужно знать общественный IP – адрес сервера и пароль для учетной записи пользователя “root“. Если вы еще не вошли на свой сервер, вы можете следовать гиду как подключиться к Вашему серверу через SSH, который охватывает этот процесс в деталях.
Если вы еще не подключены к серверу, идти вперед и войдите в систему как пользователь root
, используя следующую команду (замените слово SERVER_IP_ADDRESS на IP адрес вашего сервера):
ssh root@SERVER_IP_ADDRESS
Завершив процесс входа в систему, приняв предупреждение о подлинности хоста, если он появится, при предоставлении корневой аутентификации (пароль или ключ). Если ваш вход на сервер произошел в первый раз, с помощью пароля, вам также будет предложено изменить пароль.
Привилегированный пользователь является пользователь с правами администратора в среде Linux , которая имеет очень широкие привилегии. Из – за возросших привилегий корневой учетной записи, вам на самом деле не рекомендуется использовать его на регулярной основе. Это происходит потому, что часть привилегий, присущей корневой учетной записи является возможность сделать деструктивные изменения, даже случайно.
Следующим шагом является создание альтернативной учетной записи пользователя с уменьшенной сферой влияния. Мы научим вас, как получить повышенные привилегии во времена, когда вы нуждаетесь в них.
После того, как вы вошли в систему под root
, мы готовы, чтобы добавить новую учетную запись пользователя, которую мы будем использовать, чтобы войти.
В этом примере создается новый пользователь с именем “demo“, но вы должны заменить его на имя пользователя, который вам нравится:
adduser demo
Затем назначьте пароль новому пользователю (опять же, заменить слово “demo” с пользователем, который вы только что создали):
passwd demo
Введите надежный пароль и повторить его еще раз, чтобы проверить его.
Теперь мы имеем новую учетную запись пользователя с регулярными привилегиями учетной записи. Тем не менее, нам иногда необходимо выполнять административные задачи.
Чтобы избежать необходимости выйти из нашего обычного пользователя и снова войти в систему в качестве корневой учетной записи, мы можем установить, известного как “супер – пользователь” или корневые привилегии для нашей обычной учетной записи. Это позволит нашему обычному пользователю выполнять команды с правами администратора, поставив слово sudo
перед каждой командой.
Чтобы добавить эти привилегии к нашему новому пользователю, нам нужно добавить нового пользователя в группу “wheel“. По умолчанию на CentOS 7, пользователям, принадлежащим к группе “wheel” разрешено использовать команду sudo
.
Запустите эту команду под root, чтобы добавить нового пользователя к группе wheel (заменить слово demo на нового пользователя):
gpasswd -a demo wheel
Теперь ваш пользователь может запускать команды с привилегиями супер-пользователя! Для получения дополнительных сведений о том, как это работает, проверьте наш гид о sudoers.
Следующим шагом в обеспечении безопасности вашего сервера, это настроить проверку подлинности открытого ключа для нового пользователя. Установка этой программы позволит повысить безопасность вашего сервера, требуя секретный ключ SSH для входа в систему.
Если у вас еще нет пары ключей SSH, который состоит из открытого и секретного ключа, необходимо их сгенерировать. Если у вас уже есть ключ, который вы хотите использовать, перейдите к шагу скопировать открытый ключ.
Для создания новой пары ключей, введите следующую команду в терминале вашей локальной машине:
ssh-keygen
Предположим, что ваш локальный пользователь называется “localuser“, вы увидите вывод, который выглядит следующим образом:
Generating public/private rsa key pair. Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
Нажмите вернуться, чтобы принять это имя файла и путь к нему (или введите новое имя).
Далее, вам будет предложено ввести ключевую фразу, чтобы обеспечить ключ. Вы можете либо ввести ключевую фразу или оставьте пустым парольную фразу.
Это создает закрытый ключ id_rsa
и открытый ключ, id_rsa.pub
, в директории .ssh
домашней директории localuser‘s. Помните, что закрытый ключ не должен использоваться совместно с кем – либо, кто не должен иметь доступ к серверам!
После генерации пары ключей SSH, вы захотите скопировать свой открытый ключ на новый сервер. Мы рассмотрим два простых способа сделать это.
Если ваша локальная машина имеет установленный скрипт ssh-copy-id
, вы можете использовать его, чтобы установить свой открытый ключ любому пользователю, которому вы установили учетные данные для входа.
Запустите скрипт ssh-copy-id
, указав пользователя и IP – адрес сервера, на который вы хотите установить ключ, так:
ssh-copy-id demo@SERVER_IP_ADDRESS
После предоставления пароля в командной строке, ваш открытый ключ будет добавлен к удаленного пользователю в файл .ssh/authorized_keys
. Соответствующий секретный ключ теперь может быть использован для входа на сервер.
Предполагая, что вы сгенерировали пару ключей SSH, используя предыдущий шаг, используйте следующую команду в терминале вашей локальной машине, чтобы напечатать ваш открытый ключ ( id_rsa.pub
):
cat ~/.ssh/id_rsa.pub
Это должно напечатать ваш публичный ключ SSH, который должен выглядеть следующим образом:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local
Выберите открытый ключ, и скопируйте его в буфер обмена.
Для того, чтобы разрешить использование ключа SSH для аутентификации в качестве нового удаленного пользователя, вы должны добавить открытый ключ в специальный файл в домашнем каталоге пользователя.
На сервере, в качестве корневого пользователя, введите следующую команду, чтобы временно переключиться на нового пользователя (замените на собственное имя пользователя):
su - demo
Теперь вы будете в домашнем каталоге вашего нового пользователя.
Создайте новую папку с именем .ssh
и ограничьте права доступа со следующими командами:
mkdir .ssh chmod 700 .ssh
Теперь откройте файл в .ssh под названием authorized_keys
с помощью текстового редактора. Мы будем использовать vi для редактирования файла:
vi .ssh/authorized_keys
Введите режим вставки, нажав i
, а затем введите свой открытый ключ (который должен быть в вашем буфере обмена), вставьте его в редактор. Теперь нажмите , ESC
чтобы выйти из режима вставки.
Введите :x и
, ENTER
чтобы сохранить и выйти из файла.
Теперь ограничьте права доступа к файлу authorized_keys с помощью следующей команды:
chmod 600 .ssh/authorized_keys
Введите эту команду один раз, чтобы вернуться к пользователю root
:
exit
Теперь вы можете войти по SSH в качестве нового пользователя, с помощью закрытого ключа в качестве проверки подлинности.
Теперь, когда у нас есть наш новый аккаунт, мы можем обеспечить наш сервер немного изменяя его конфигурацию SSH – демон (программа, которая позволяет нам войти в систему удаленно), чтобы запретить удаленный доступ по SSH к корневой учетной записи.
Начните с открытия файла конфигурации с помощью текстового редактора в качестве root:
vi /etc/ssh/sshd_config
Здесь мы имеем возможность отключить корневой вход через SSH. Это, как правило, более безопасный параметр, так как теперь мы можем получить доступ к нашему серверу через нашу обычную учетную запись пользователя и повышения привилегий при необходимости.
Чтобы отключить удаленных корневых логин, нам нужно найти строку, которая выглядит следующим образом:
#PermitRootLogin yes
Подсказка: Для поиска этой линии, наберите /PermitRoot и
затем нажмите ENTER
. Это должно привести курсор к символу “P” на этой строке.
Раскомментируйте строку, удалив символ “#” (нажмите Shift-x
).
Теперь переместите курсор на “yes”, нажав кнопку c
.
Теперь вместо “yes” наберите “no”. Нажмите Escape
когда вы закончите редактирование. Оно должен выглядеть следующим образом :
PermitRootLogin no
Отключение удаленного корневого входа настоятельно рекомендуется на каждом сервере!
Введите :x
, а затем, ENTER
чтобы сохранить и выйти из файла.
Теперь, когда мы сделали наши изменения, нам необходимо перезапустить службу SSH, так чтобы можно было использовать нашу новую конфигурацию.
Введите эту команду, чтобы перезапустить SSH:
systemctl reload sshd
Теперь, прежде чем выйти из системы сервера, мы должны проверить нашу новую конфигурацию. Мы же не хотим, отключиться от сервера, пока мы не сможем подтвердить, что новые соединения могут быть успешно установлены.
Откройте новое окно терминала. В новом окне, мы должны начать новое соединение с нашим сервером. На этот раз, вместо того чтобы использовать корневую учетную запись, мы хотим использовать новую учетную запись, которую мы создали.
Для сервера, который мы настраивали выше, подключение с помощью этой команды. Подставьте свою собственную информацию, где это необходимо:
ssh demo@SERVER_IP_ADDRESS
Вам будет предложено ввести пароль нового пользователя, который был настроен. После этого вы войдете в систему в качестве нового пользователя.
Помните, что если вам нужно выполнить команду с привилегиями суперпользователя, введите “sudo” перед ним, как здесь:
sudo command_to_run
Если все хорошо, вы можете выйти из ваших сессий, набрав:
exit
Поправьте меня, может быть я неправ, но “reload” относится к перезагрузке настроек служб, например, “Firewall-cmd –reload” , а для перезапуска службы используется команда “restart”, например, “systemctl restart sshd”.