Debian – одна из самых стабильных и популярных операционных систем из семейства Linux. Данная ОС часто используется как на рабочих станциях, так и на серверах, в том числе и виртуальных. На хостинге UltraVDS теперь доступен для заказа виртуальный выделенный сервер, работающий под управлением Debian 12. Сделать выбор в пользу данного дистрибутива можно из меню Операционная система
перед этапом оплаты заказываемого VPS.
Инсталляция операционной системы запускается после оплаты сервера. Спустя непродолжительное ожидание вы уже сможете использовать свой новый VPS. Тем не менее, после установки системы на новую виртуальную машину требуется произвести её первоначальную настройку для обеспечения безопасности и удобства работы с сервером. В статье разберём минимальные меры, которые должны помочь сделать систему более защищённой и комфортной в дальнейшей эксплуатации.
Создание пользователя с административными полномочиями
Во-первых, в системе необходимо создать пользователя, которого далее можно будет использовать вместо учётной записи root
. Чтобы это сделать, подключитесь к серверу по SSH (Secure Shell) при помощи учётных данных пользователя root
. Узнать пароль данного пользователя можно странице созданного сервера в личном кабинете UltraVDS. Также, информацию, необходимую для подключения к удалённой машине, вы получите на адрес электронной почты, используемый вашим аккаунтом на UltraVDS.
Для создания нового пользователя в командной строке запустите следующую команду, в которой замените your-user
на имя создаваемой учётной записи:
# adduser your-user
Чтобы созданный пользователь получил привилегии администратора, следующей командой добавьте его в группу sudo
:
# usermod -aG sudo your-user
Теперь, когда в системе уже присутствует только что созданный администратор, необходимо ограничить возможность подключения по SSH для учётной записи root
. Для этого перейдите в каталог /etc/ssh
:
# cd /etc/ssh
Затем откройте файл sshd_config
при помощи текстового редактора nano
:
# nano sshd_config
В файле найдите строку PermitRootLogin
и измените значение yes
на no
. В итоге, строка должна выглядеть так:
PermitRootLogin no
После чего закройте файл с сохранением внесённых изменений. Для этого используйте комбинацию клавиш Ctrl
x
, затем нажмите y
и Enter
.
Чтобы внесённые изменения вступили в силу, перезагрузите конфигурацию службы ssh
.
# systemctl reload ssh
После выполнения команды пока не отключайтесь от сервера, поскольку далее подключение по SSH под именем пользователя root
становится невозможным.
Для того, чтобы выполнять команды, требующие привилегий администратора системы, необходимо использовать ранее созданную учётную запись. В нашем примере — это пользователь your-user
. Для повышения полномочий данного пользователя до уровня администратора следует применять утилиту sudo
.
По умолчанию данная утилита отсутствует в дистрибутиве Debian 12. Поэтому её следует проинсталлировать. Перед установкой нового программного обеспечения нужно обновить локальный список пакетов в системе:
# apt update
После чего проинсталлируйте утилиту sudo
:
# apt install sudo
На данном этапе вы уже можете завершить сеанс учётной записи root
при помощи команды exit
, либо используя комбинацию клавиш Ctrl
d
. Если в дальнейшем понадобится выполнить команду, требующую полномочий администратора, используйте утилиту sudo
. Например, следующая команда изменит текущее имя хоста на debian-server
:
$ sudo hostnamectl hostname debian-server
Настройка брандмауэра
Чтобы контролировать входящий и исходящий сетевой трафик, на новом виртуальном сервере рекомендуется установить и настроить брандмауэр. Довольно часто на Debian и Ubuntu используется такой брандмауэр, как UFW.
UFW (Uncomplicated Firewall) — простой в использовании интерфейс для управления сетевыми правилами на базе iptables
. UFW позволяет легко открывать и закрывать порты, задавать доступы для IP-адресов и таким образом контролировать сетевой трафик. Благодаря интуитивным командам, данный интерфейс упрощает настройку брандмауэра, что делает его доступным как для новичков, так и для опытных администраторов.
В чистом образе Debian 12 брандмауэр UFW не установлен. Для его установки запустите команду:
$ sudo apt install ufw
Следующая команда отображает список предустановленных приложений, для которых настроены профили в UFW:
$ sudo ufw app list
Для того, чтобы не потерять доступ к системе, необходимо добавить правило, разрешающее подключения к серверу по SSH. В UFW соответствующий профиль называется OpenSSH
.
Выполните следующую команду, чтобы создать разрешающее правило для SSH-подключений:
$ sudo ufw allow OpenSSH
Следующая команда активирует брандмауэр в системе, включая его в автозагрузку:
$ sudo ufw enable
При выполнении команда попросит подтвердить включение брандмауэра, предупреждая о возможной потере SSH-подключения.
Убедиться в корректности запуска брандмауэра можно при помощи команды, которая выводит текущее его состояние:
$ sudo ufw status
Аутентификация с помощью ключей SSH
В целях повышения уровня безопасности виртуальной машины, рекомендуется настроить аутентификацию на сервере с помощью ключей SSH вместо аутентификации при помощи пароля.
Сначала на компьютере, с которого вы планируете подключаться к VPS, создайте пару ключей — открытый и секретный. Для генерации пары SSH-ключей с определённым типом шифрования и длиной ключа откройте командную строку и выполните команду:
ssh-keygen -t rsa -b 4096
Флаг -t
указывает тип шифрования, который будет использоваться при генерации ключей. В данном случае выбран алгоритм RSA (Rivest-Shamir-Adleman), один из самых широко используемых алгоритмов для криптографии с открытым ключом. Флаг -b
указывает длину ключа в битах. В данном случае мы устанавливаем длину ключа 4096 бит. По умолчанию, если не указать явный размер ключа, для RSA используется длина в 2048 бит. Однако, длина в 4096 бит предпочтительнее для лучшей безопасности в долгосрочной перспективе.
Также при создании ключей есть возможность установить дополнительную защиту в виде пароля. Этот пароль необходимо будет набирать каждый раз при подключении к серверу по SSH.
В итоге, команда сгенерирует два файла:
- открытый ключ:
~/.ssh/id_rsa.pub
; - секретный ключ:
~/.ssh/id_rsa
.
Далее переключитесь в консоль удалённого сервера и создайте каталог .ssh
в домашней директории вашего пользователя:
$ mkdir -p ~/.ssh
После чего перейдите в созданный каталог:
$ cd ~/.ssh
Там создайте файл authorized_keys
при помощи следующей команды, в которую необходимо между символами "
и "
вставить содержимое файла id_rsa.pub
:
$ echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDNny9+5coYPvxrGJ..." >> authorized_keys
Файл id_rsa.pub
чуть ранее был создан на компьютере, с которого вы подключаетесь к своей виртуальной машине.
Затем на удалённой машине перейдите в каталог /etc/ssh
:
$ cd /etc/ssh
Откройте для редактирования файл sshd_config
:
$ sudo nano sshd_config
В файле найдите следующие строки и удалите символ комментария (#
) в начале каждой из них. В результате, строки должны выглядеть следующим образом:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2
После сохранения изменений в файле вы получаете возможность подключаться к VPS при помощи SSH-ключей и без использования пароля пользователя. При этом, теперь вы можете дополнительно запретить аутентификацию с использованием пароля. Чтобы это сделать, найдите в файле sshd_config
параметр PasswordAuthentication
, раскомментируйте его и установите значение no
:
PasswordAuthentication no
Затем закройте файл, сохранив внесённые в него изменения, и перезагрузите конфигурацию службы ssh
:
$ sudo systemctl reload ssh