Когда вы впервые создаете новый Ubuntu 14.04 сервер, есть несколько шагов настройки, которые вы должны принять на ранней стадии, как части базовой установки. Это позволит повысить безопасность и удобство вашего сервера и даст вам прочную основу для последующих действий.
Для входа в сервер, вы должны знать, общественный IP-адрес вашего сервера и пароль для учетной записи "root" пользователя. Если вы еще не вошли в свой сервер, вы можете следить за первыми инструкциями этой серии, как подключиться к вашему Droplet с SSH, который охватывает этот процесс в деталях.
Если вы еще не подключены к серверу, идите дальше и авторизуйтесь в качестве root пользователя, используя следующую команду (замените выделенное слово с общественным IP-адресом вашего сервера):
local$ ssh root@_IP_ADDRESS
Завершите процесс входа в систему, принимая предупреждение о host подлинности , если оно возникнет, то предоставьте root авторизацию (пароль или ключ). Если это ваш первый вход на сервер с помощью пароля, вам также будет предложено изменить пароль.
Привилегированный пользователь является административным пользователем в среде Linux, который имеет очень широкие привилегии. Из-за повышенного уровня привилегий суперпользователя, на самом деле не рекомендуется использовать его на регулярной основе. Это обьясняется тем, что используя часть мощности, присущей корневой учетной записи может сделать очень деструктивные изменения, даже случайно.
Следующим шагом является создание альтернативной учетной записи пользователя с пониженным уровнем доступа для ежедневной работы. Мы научим вас, как пользоваться повышенными правами, когда вы в них нуждаетесь.
После того, как вы вошли в систему как суперпользователь, мы готовы добавить новую учетную запись пользователя, который мы будем использовать для авторизации в дальнейшем.
В этом примере создается новый пользователь с именем "демо", но вы должны заменить его с именем пользователя, который вам нравится:
# adduser demo
Вам будет предложено несколько вопросов, начиная с пароля учетной записи.
Введите надежный пароль и, возможно, и заполните дополнительную информацию по Вашему желанию. Это вовсе не обязательно, и вы можете нажать «Enter» в любой области, чтобы пропустить.
Теперь у нас есть новая учетная запись пользователя с правами обычного аккаунта. Тем не менее, мы иногда сталкиваемся с административными задачами.
Чтобы избежать выхода из обычного аккаунта и снова войти в качестве суперпользователя мы можем установить привилегии суперпользователя для нашей обычной учетной записи. Это позволит нашему пользователю запускать команды с правами администратора, поставив слово Sudo перед каждой командой.
Чтобы добавить эти привилегии нового пользователя, нам нужно добавить нового пользователя в группу "Sudo". По умолчанию, на Ubuntu 14.04, пользователи, принадлежащие к группе "Sudo" могут использовать команду Sudo.
Как суперпользователь, запустите эту команду, чтобы добавить нового пользователя в Sudo группы (замените выделенное слово с вашего нового пользователя):
# gpasswd -a demo sudo
Теперь ваш пользователь может запустить команды с привилегиями cуперпользователя! Для получения более подробной информации о том, как это работает, проверьте это в sudo инструкции.
Следующим шагом в обеспечении сервера будет настройка аутентификации открытого ключа для нового пользователя. Установка позволит повысить безопасность вашего сервера, требуя личный ключ SSH для входа в систему.
Если у вас еще нет парного ключа SSH, который состоит из публичного и частного ключа, то его нужно сгенерировать. Если у вас уже есть ключ, который вы хотите использовать, перейдите к шагу Сopy Public Key .
Для создания новой пары ключей, введите следующую команду в терминале вашей локальной машины (то есть вашего компьютера).:
Local$ ssh-keygen
Если предположить, что локальный пользователь называется "LocalUser", вы увидите результат, который выглядит следующим образом:
ssh-keygen output
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
Нажать Return чтобы принять это имя файла и путь (или ввести новое имя)
Далее, вам будет предложено ввести ключевую фразу для защиты ключа.
Вы можете либо ввести фразу-пароль или оставить пустым парольную фразу.
Примечание: Если оставить фразу пустой, вы сможете использовать закрытый ключ для аутентификации без ввода пароля. Если ввести фразу, вам понадобится как секретный ключ и фразу, чтобы войти. Обеспечение ключи с фраз является более безопасным, но оба метода имеют свои области применения и более безопасные, чем базовая аутентификация паролем.
Это создает секретный ключ, id_rsa, и открытый ключ, id_rsa.pub, в .ssh директорию домашнем каталоге LocalUser . Помните, что закрытый ключ не должен быть известен тем, кто не должен иметь доступ к серверам!
После генерации пары ключей SSH, Вы можете захотеть скопировать ваш публичный ключ на ваш новый сервер. Мы рассмотрим два простых способа сделать это.
Если локальная машина имеет установлен сценарий ssh-copy-id, вы можете использовать его, чтобы установить свой публичный ключ для любого пользователя, которому вы дали учетные данные для входа.
Запустите сценарий ssh-copy-id, указав пользователя и IP-адрес сервера, на котором вы хотите установить ключ, так, как здесь:
Local$ ssh-copy-id demo@_IP_ADDRESS
После предоставления пароль в командной строке, ваш публичный ключ будет добавлен в .ssh / authorized_keys файла удаленного пользователя. Соответствующий секретный ключ теперь может быть использован для входа на сервер.
Предполагая, вы создали пару ключей SSH, используя предыдущий шаг, используйте следующую команду в терминале локальном компьютере, чтобы распечатать открытый ключ (id_rsa.pub):
Local$ cat ~/.ssh/id_rsa.pub
Это должно вывести ваш открытый ключ SSH, который должен выглядеть следующим образом:
id_rsa.pub contents
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf [email protected]
Выберите открытый ключ, и скопируйте его в буфер обмена.
Чтобы начать использование ключа SSH для аутентификации в качестве нового удаленного пользователя, вы должны добавить открытый ключ в специальном файле в домашнем каталоге пользователя.
На сервере, в качестве суперпользователя, введите следующую команду, чтобы перейти на нового пользователь (заменить свое имя пользователя):
# su – demo
Теперь вы будете в домашнем каталоге вашего нового пользователя.
Создайте новый каталог называемый .ssh и ограничьте свои права с помощью следующих команд:
$ mkdir .ssh
$ chmod 700 .ssh
Теперь откройте файл в .ssh, называемый authorized_keys в текстовом редакторе. Мы будем использовать nano для редактирования файла
$ nano .ssh/authorized_keys
Теперь вставьте свой публичный ключ (который должен быть в вашем буфере обмена), вставив его в редактор.
Нажмите CTRL-X для выхода из файла, а затем Y, чтобы сохранить изменения, внесенные, потом ВВОД для подтверждения имени файла.
Теперь ограничьте права доступа к файлу authorized_keys с этой командой:
$ chmod 600 .ssh/authorized_keys
Введите эту команду, чтобы вернуться к суперпользователь:
$ exit
Теперь вы можете SSH авторизоваться в качестве нового пользователя, используя секретный ключ для аутентификации.
Чтобы узнать больше о том, как ключ аутентификации работает, прочтите этот учебник: Как настроить ключ проверки подлинности на основе SSH на Linux Server.
Теперь у нас есть наш новый аккаунт, мы можем немного обезопасить наш сервер изменив его конфигурацию Daemon SSH (программа, которая позволяет войти нам удаленно), чтобы запретить удаленный доступ по SSH к учетной записи суперпользователя.
Начните с открытия файла конфигурации с текстовым редактором как суперпользователь:
# nano /etc/ssh/sshd_config
Далее, нам нужно найти строку, которая выглядит следующим образом:
/etc/ssh/sshd_config (before)
PermitRootLogin yes
Здесь, у нас есть возможность отключить логин суперпользователя через SSH. Это, как правило, более безопасный параметр, так как в настоящее время мы можем получить доступ к нашему серверу через логин обычного пользователя и повысить привилегии при необходимости.
Измените эту строку на "нет", чтобы отключить логин суперпользователя:
/etc/ssh/sshd_config (after)
PermitRootLogin no
Отключение удаленного логина суперпользователя настоятельно рекомендуется на каждом сервере!
Когда вы закончите внесения изменений сохраните и закройте файл, используя метод, который мы изучили ранее (CTRL-X, потом Y, потом ENTER).
Теперь, когда мы сделали наше изменение, нам нужно перезапустить службу SSH, так что она будет использовать нашу новую конфигурацию.
Введите это для перезапуска SSH:
# service ssh restart
Теперь, перед выходом из сервера, мы должны проверить нашу новую конфигурацию. Мы не хотим отсоединения, пока не подтвердили, что новые соединения успешно установлены.
Откройте новое окно терминала на локальном компьютере. В новом окне, мы должны начать новое соединение с нашим сервером. На этот раз, вместо того использовать учетную запись суперпользователя, мы использовать новую учетную запись, которую мы создали.
Для сервера, метод настройки которого мы показали выше, вы должны подключиться с помощью этой команды. Подставьте свое имя пользователя и IP-адрес сервера, который используете:
Local$ ssh demo@_IP_ADDRESS
Примечание: Если вы используете PuTTY для подключения к серверам, не забудьте обновить номер порта сеанса, чтобы соответствовать текущей конфигурации вашего сервера.
Вам будет предложено ввести пароль нового пользователя, который настроен. После этого, вам будет предложено войти в качестве нового пользователя.
Помните, что если вам нужно запустить команду с привилегиями суперпользователя, типа "Sudo" ,то это будет выглядеть таким образом:
$ sudo command_to_run
Если все хорошо, вы можете закрыть ваши сеансы, набрав:
$ exit
На данный момент, у вас есть прочный фундамент для вашего сервера. Вы можете установить любое программное обеспечение, необходимое на вашем сервере в настоящее время.
Если вы не уверены, что вы хотите сделать с вашим сервером, проверьте следующие инструкции в этой серии для дополнительных последующих рекомендаций для новых Ubuntu 14.04 серверов. Он охватывает такие вещи, как основные настройки брандмауэра, NTP, и файлов подкачки. Он также содержит ссылки на учебные пособия, которые показывают вам, как настроить общие веб-приложения. Вы также можете проверить это руководство, чтобы узнать, как включить fail2ban снизить эффективность атак перебором.