Автор: dcontm 25 февраля 2020
Первоначальная настройка сервера Ubuntu 18.04
Предисловие
Сегодня я продемонстрирую, как выполнить первоначальную настройку сервера. Предполагается, что у вас есть чистый сервер Ubuntu 18.04 с базовыми настройками и root доступом. Мы настроим доступ к удаленному серверу, установим и настроим Brandmauer.
Настройка удаленного доступа к серверу
Для начала установим соединение с вашим сервером, используя его IP-адрес:
Примите предупреждение о подлинности хоста, если оно появится. На предложение "ввести пароль", введем пароль, полученный от поставщика услуг.
После установки соединения нам нужно создать нового пользователя, так как работа под root крайне небезопасна:
Вам будет задано несколько вопросов, первый из которых о пароле пользователя - введите надежный пароль. На некоторые из вопросов вы можете не отвечать - для пропуска нажмите клавишу Enter.
Следующим шагом будем выделение прав суперпользователя нашему новому пользователю. Это поможет нашему обычному пользователю выполнить некоторые команды с правами администратора при помощи программы системного администрирования sudo, помещая слово sudo перед командой:
На данном этапе самое подходящее время заняться настройкой доступа с помощью SSH ключей. Для начала выйдите из системы:
На вашем локальном компьютере (предполагаю, что у вас также установлен Linux) сгенерируйте SSH ключи (если вы ранее генерировали ключи, пропустите этот шаг):
Вам будет предложено выбрать место, куда сохранить ваши ключи (можно нажать Enter и они по умолчанию сохранятся в /home/<user>/.ssh/id_rsa). Так же будет предложено дополнительно защитить их паролем (этот шаг можно пропустить, по вашему усмотрению). В результате этих действий мы создали 2 файла id_rsa и id_rsa.pub, которые и являются SSH ключами. Наша задача переправить ключ id_rsa.pub на наш удаленный сервер (разрешение .pub говорит о том, что он публичный, ключ без всякого разрешения является приватным, не сообщайте его никому).
Чтобы добавить ваш приватный ключ на удаленный сервер, мы воспользуемся утилитой ssh-copy-id, для начала установим её на ваш локальный компьютер:
Затем для копирования ключа используем следующую команду:
войдите в систему под именем созданного нами нового пользователя:
Если все прошло успешно, вы должны подлючиться к удаленному серверу без ввода пароля.
На следующем этапе мы отключим возможность входа в систему с помощью пароля. Обратите внимание, что это довольно ответственный шаг, так как если вы каким-то образом удалите свой публичный ключ с вашего удаленного сервера или обновите ключи на локальном компьютере, то потеряете доступ (поэтому я рекомендую сохранить копию ваших ключей в безопасном месте). Также вы не сможете войти в систему как root, единственным способом при утере ключей восстановить доступ будет обращение к поставщику услуг (будьте готовы подтвердить свою личность). В тоже время доступ по SSH ключу является очень безопасным способом доступа, так же вам не придется каждый раз вводить пароль, что действительно удобно. Убедитесь, что в настоящее время подлючение с использованием SSH ключей не вызывает проблем. Следующая команда откроет файл конфигурации демона sshd - это настройки сревера OpenSSH:
После открытия файла найдите следующую строку:
PasswordAuthentication no
Измените yes на no и сохраните файл. Если данная строка была закомментирована (в начале строки символ #), раскомментируйте её. Не забудьте перезапустить сервер sshd, чтобы изменения вступили в силу:
Теперь вы закрыли возможность входа системы по паролю.
Первоначальная настройка Brandmauer
При настройке брандмауера будем отталкиваться от следующего - запретим все, а потом разрешим доступ только к необходимым портам. Для управления будем использовать утилиту UFW (Uncomplicated Firewall), если в вашей системе она не установлена, самое время сделать это:
Нам необходимо убедиться, что файрвол разрешает SSH-соединения и мы сможем зайти на сервер в следующий раз. Мы можем разрешить SSH-соединения следующей командой:
Следующей командой включим файрвол:
Убедимся, что SSH-соединения разрешены:
Вы должны получить следующий вывод:
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Резюме
В итоге мы получили систему с возможностью доступа только с помощью SSH ключей, закрыв доступ по паролю даже для пользователя root. Нами был создан новый пользователь, которого мы наделили привелегиями суперпользователя при использовании программы sudo. Также настроили брандмауэр, закрыв возможность подлючения извне ко всем портам системы кроме 22-го, который необходим для OpenSSH.