DigitalOcean/Создаём Droplet на базе Linux: различия между версиями
Dzmuh (обсуждение | вклад) Нет описания правки |
Dzmuh (обсуждение | вклад) (→Ссылки) |
||
| (не показано 12 промежуточных версий этого же участника) | |||
| Строка 3: | Строка 3: | ||
== Пользователи == | == Пользователи == | ||
Добавляю непривилегированного пользователя. | В созданном Droplet на базе Linux существует только один пользователь и это пользователь root, что предоставляет потенциальную опасность. | ||
Добавляю непривилегированного пользователя с помощью утилиты <code>[[useradd]]</code>. | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
| Строка 9: | Строка 10: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Добавляю в группу <code>sudo</code>: | Добавляю в группу <code>sudo</code> так: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
adduser user sudo | adduser user sudo | ||
</syntaxhighlight> | |||
или так: | |||
<syntaxhighlight lang="bash"> | |||
usermod -aG sudo user | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| Строка 21: | Строка 27: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Теперь осуществлять операции в droplet нужно из под непривилегированного пользователя. Любая системная операция потребует ввода пароля. | |||
Не забываем добавить новому пользователю публичные ключи в <code>echo public_key_string >> ~/.ssh/authorized_keys</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> | |||
== Ссылки == | == Ссылки == | ||
* {{cite web | |||
|url = https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server-ru | |||
|title = Настройка аутентификации на базе ключей SSH на сервере Linux | |||
|lang = ru | |||
|date = 2021-02-19 | |||
|access-date = 2022-11-17 | |||
|website = [[DigitalOcean]] | |||
|archive-url = https://web.archive.org/web/20220206214209/https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server-ru | |||
|archive-date = 2022-02-06 | |||
}} | |||
[[Категория: | [[Категория:Документация к 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
Ссылки
- Настройка аутентификации на базе ключей SSH на сервере Linux. DigitalOcean (19 февраля 2021). Дата обращения: 17 ноября 2022. Архивировано 6 февраля 2022 года.
- ↑ SSH default port not changing (Ubuntu 22.10) (англ.). AskUbuntu (6 ноября 2022). Дата обращения: 28 ноября 2022. Архивировано 22 ноября 2022 года.
- ↑ SSHd now uses socket-based activation (Ubuntu 22.10 and later) (англ.) (8 октября 2022). Дата обращения: 28 ноября 2022. Архивировано 7 ноября 2022 года.