DigitalOcean/Создаём Droplet на базе Linux: различия между версиями

Материал из DZWIKI
Перейти к навигации Перейти к поиску
 
(не показано 8 промежуточных версий этого же участника)
Строка 4: Строка 4:
== Пользователи ==
== Пользователи ==
В созданном Droplet на базе Linux существует только один пользователь и это пользователь root, что предоставляет потенциальную опасность.
В созданном Droplet на базе Linux существует только один пользователь и это пользователь root, что предоставляет потенциальную опасность.
Добавляю непривилегированного пользователя.
Добавляю непривилегированного пользователя с помощью утилиты <code>[[useradd]]</code>.


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 32: Строка 32:


Просто в консоли переключаемся на созданного пользователя <code>su UserName</code> и идём в домашнюю папку делать дела.
Просто в консоли переключаемся на созданного пользователя <code>su UserName</code> и идём в домашнюю папку делать дела.
== Настраиваю SSH ==
=== Меняю стандартный порт ===
В файле <code>/etc/ssh/sshd_config</code> меняю значение строку <code>Port 22</code> на, например <code>Port 52222</code>.
Сохраняем файл и перезапускаем службу ssh:
<syntaxhighlight lang="bash">
service ssh restart
</syntaxhighlight>
{{Начало коробки|розовый}}
Внимание! В Ubuntu 22.10 изменить порт вышеуказанным способом не получится, так как используется socket-based активация<ref>{{cite web
|url          = https://askubuntu.com/questions/1439461/ssh-default-port-not-changing-ubuntu-22-10
|title        = SSH default port not changing (Ubuntu 22.10)
|lang        = en
|date        = 2022-11-06
|access-date  = 2022-11-28
|website      = AskUbuntu
|archive-url  = https://web.archive.org/web/20221122052554/https://askubuntu.com/questions/1439461/ssh-default-port-not-changing-ubuntu-22-10
|archive-date = 2022-11-22
}}</ref><ref>{{cite web
|url          = https://discourse.ubuntu.com/t/sshd-now-uses-socket-based-activation-ubuntu-22-10-and-later/30189/9
|title        = SSHd now uses socket-based activation (Ubuntu 22.10 and later)
|lang        = en
|date        = 2022-10-08
|access-date  = 2022-11-28
|archive-url  = https://web.archive.org/web/20221107172310/https://discourse.ubuntu.com/t/sshd-now-uses-socket-based-activation-ubuntu-22-10-and-later/30189/9
|archive-date = 2022-11-07
}}</ref>.
Решить вопрос можно двумя способами.
'''Первый способ''': переключаем активацию на старый метод.
<syntaxhighlight lang="bash">
systemctl disable --now ssh.socket
systemctl enable --now ssh.service
</syntaxhighlight>
'''Второй способ''': настраиваем socket.
<syntaxhighlight lang="bash">
mkdir -p /etc/systemd/system/ssh.socket.d
cat >/etc/systemd/system/ssh.socket.d/listen.conf <<EOF
[Socket]
ListenStream=2222
EOF
</syntaxhighlight>
Пример выше, заставляет sshd прослушивать порты 2222 и 22. Если нужно прослушивать только порт 2222, то:
<syntaxhighlight lang="bash">
mkdir -p /etc/systemd/system/ssh.socket.d
cat >/etc/systemd/system/ssh.socket.d/listen.conf <<EOF
[Socket]
ListenStream=
ListenStream=2222
EOF
</syntaxhighlight>
После этого перезапускаем droplet.
{{Конец коробки}}
=== Отключение проверки пароля ===
После настройки входа с помощью SSH ключа, желательно отключить вход посредством SSH-сервера с помощью имени пользователя и его пароля.
В файле <code>/etc/ssh/sshd_config</code> меняю значение строку <code>PasswordAuthentication yes</code> на <code>PasswordAuthentication no</code>.
Сохраняем файл и перезапускаем службу ssh:
<syntaxhighlight lang="bash">
service ssh restart
</syntaxhighlight>
=== Запрет на вход по SSH для пользователя root ===
Правим файл <code>/etc/ssh/sshd_config</code>, устанавливая следующие параметры:
<syntaxhighlight lang="ini">
PermitRootLogin no
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
</syntaxhighlight>
Сохраняем файл и перезапускаем службу ssh:
<syntaxhighlight lang="bash">
service ssh restart
</syntaxhighlight>


== Ссылки ==
== Ссылки ==
Строка 45: Строка 137:
}}
}}


[[Категория:Категоризовать]]
[[Категория:Документация к DigitalOcean]]

Текущая версия от 00:17, 1 декабря 2022

Краткая общая инструкция по созданию и настройке Droplet на базе Linux.

Пользователи

В созданном Droplet на базе Linux существует только один пользователь и это пользователь root, что предоставляет потенциальную опасность. Добавляю непривилегированного пользователя с помощью утилиты useradd.

useradd --home /home/user --gid users -m --shell /bin/bash user

Добавляю в группу sudo так:

adduser user sudo

или так:

usermod -aG sudo user

И задаю сложный пароль:

passwd user

Теперь осуществлять операции в droplet нужно из под непривилегированного пользователя. Любая системная операция потребует ввода пароля.

Не забываем добавить новому пользователю публичные ключи в echo public_key_string >> ~/.ssh/authorized_keys

Просто в консоли переключаемся на созданного пользователя su UserName и идём в домашнюю папку делать дела.

Настраиваю SSH

Меняю стандартный порт

В файле /etc/ssh/sshd_config меняю значение строку Port 22 на, например Port 52222.

Сохраняем файл и перезапускаем службу ssh:

service ssh restart

Внимание! В Ubuntu 22.10 изменить порт вышеуказанным способом не получится, так как используется socket-based активация[1][2].

Решить вопрос можно двумя способами.

Первый способ: переключаем активацию на старый метод.

systemctl disable --now ssh.socket
systemctl enable --now ssh.service

Второй способ: настраиваем socket.

mkdir -p /etc/systemd/system/ssh.socket.d
cat >/etc/systemd/system/ssh.socket.d/listen.conf <<EOF
[Socket]
ListenStream=2222
EOF

Пример выше, заставляет sshd прослушивать порты 2222 и 22. Если нужно прослушивать только порт 2222, то:

mkdir -p /etc/systemd/system/ssh.socket.d
cat >/etc/systemd/system/ssh.socket.d/listen.conf <<EOF
[Socket]
ListenStream=
ListenStream=2222
EOF

После этого перезапускаем droplet.

Отключение проверки пароля

После настройки входа с помощью SSH ключа, желательно отключить вход посредством SSH-сервера с помощью имени пользователя и его пароля.

В файле /etc/ssh/sshd_config меняю значение строку PasswordAuthentication yes на PasswordAuthentication no.

Сохраняем файл и перезапускаем службу ssh:

service ssh restart

Запрет на вход по SSH для пользователя root

Правим файл /etc/ssh/sshd_config, устанавливая следующие параметры:

PermitRootLogin no
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

Сохраняем файл и перезапускаем службу ssh:

service ssh restart

Ссылки

  1. SSH default port not changing (Ubuntu 22.10) (англ.). AskUbuntu (6 ноября 2022). Дата обращения: 28 ноября 2022. Архивировано 22 ноября 2022 года.
  2. SSHd now uses socket-based activation (Ubuntu 22.10 and later) (англ.) (8 октября 2022). Дата обращения: 28 ноября 2022. Архивировано 7 ноября 2022 года.