Рассмотрим ряд шагов, которые следует выполнить при первоначальной настройке вашего сервера. Они помогут повысить уровень безопасности вашего сервера и избавят от части потенциальных угроз.
Создание пользователя с правами 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
В данной статье были описаны основные параметры, которые стоит настроить на новом сервере, для обеспечения минимальной безопастности. После этого вы можете приступать к установке и настройке дальнейшего программного обеспечения (файрвол, антивирус и т.д.), которое вам необходимо.