Первоначальная настройка сервера linux (ubuntu)

3 мая, 2023 19:35
Admin
3 мая, 2023 19:35

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

Создание пользователя с правами sudo

Сперва нам потребуется выполнить вход на наш сервер

$ ssh root@your_server_ip

При входе потребуется ввести пароль пользователя root если вход осуществляется по паролю, а не ssh ключу.

После входа под пользователем root первым делом нам необходимо создать нового пользователя следующей командой:

$ adduser username

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

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

$ usermod -aG sudo username

Теперь, когда вы войдете в систему со стандартным пользователем username, вы можете ввести sudo перед командами для выполнения действий с правами суперпользователя.

Генерация ssh ключей для нового пользователя

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

$ ssh-keygen -t ed25519 -C "comment"
# или
$ ssh-keygen -t rsa -b 2048 -C "comment"

После генерации ssh ключа у нас появиться 2 файла (секретный и публичный ключ). Публичный ключ с расширением .pub требуется добавить в файл на сервере ~/.ssh/authorized_keys созданного нами ранее пользователя. Для этого мы можем просмотреть содержимое нашего созданного публичного ключа например с помощью команды:

$ cat ~/.ssh/id_filename.pub

Далее скопировать содержимое и добавить в файл authorized_keys с помощью вашего любимого редактора (например nano).

То есть вся процедура генерации ключа выглядит следующим образом:

  • Генерация ssh ключа на вашем компьютере.
  • Добавление публичного ключа на сервер в файл authorized_keys.
  • Настройка файла ~/.ssh/config на вашем компьютере в случае если при создании ключа меняем его название.

Для использования нескольких ssh ключей или в случае если мы меняем название ключа при его генерации необходимо настроить файл ~/.ssh/config. Для этого отредактируем файл и добавим в него следующее содержимое:

# комментарий например ip вашего сервера
Host 127.0.0.1
  PreferredAuthentications publickey
  ServerAliveInterval 20
  IdentityFile ~/.ssh/id_filename_private_key

Вам потребуется заменить Host и IdentityFile на ваши данные. После этого проверяем что мы можем входить на сервер по ключу не вводя пароля:

$ ssh root@your_server_ip

Аутентификация по ключу должна пройти успешно.

Закрываем доступ по ssh для пользователя root и вход по паролю

После настройки ssh ключа, для большей безопастности мы можем отключить вход по паролю, а также отключить вход для суперпользователя. Для этого нам потребуется отредактировать следующий файл /etc/ssh/sshd_config. В данном файле необходимо изменить следующие настройки:

# Запрещаем вход под пользователем root
PermitRootLogin no

# Запрещаем вход по паролю
PasswordAuthentication no

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

$ sudo systemctl restart ssh.service

Обязательно перед применением данных настроек стоит убедиться что у вас корректно работает вход по ssh ключу. В противном случае для получения доступа к вашему серверу потребуется обращаться в техническую поддержку вашего хостера.

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