сложность паролей в системе

Вопросы программного кода и архитектуры Linux

Модератор: Olej

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

сложность паролей в системе

Непрочитанное сообщение Olej » 09 янв 2020, 11:51

Эта тема уже обсуждалась, хоть и попутно, но весьма обстоятельно, в теме по поводу ... хакерства-онанирования и "чудо-инструмента" этих онанистов: John the Ripper.
Итог там обсуждения был таков:
- ни одного серьёзного взлома UNIX систем, описанных эксцессов с использованием John the Ripper - в природе нет...
- но продавать прыщавым кулцхакерам инструментарий, по $185 за штуку - это круто! :lol:
Никакие уловки "крутых кулцхакеров" не позволят вскрыть пароли UNIX/Linux методами подбора... по крайней мере, до тез пор, пока не будет создан квантовый компьютер (см. Квантовая криптография).

Но, с точки зрения администрирования, важен практический выбор пароля!
Для home-использования, для компьютеров за NAT от провайдеров Интернет мы используем ... более-менее внятные по написанию осмысленные пароли, а). которые легче запоминаются и б). одни и те же (привычные) для разных целей и подсистем. Это, можно думать что и оправдано...

Но для внешнего использования, как например а). VDS сервер этого форума, или б). пароли администрирования самого этого phpBB форума - это не годится.
Что делаем?

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: сложность паролей в системе

Непрочитанное сообщение Olej » 09 янв 2020, 12:42

Olej писал(а):
09 янв 2020, 11:51
Что делаем?
Итог там (в теме) выглядит так:
- ни одного серьёзного взлома UNIX систем, описанных эксцессов с использованием John the Ripper - в природе нет...
- но продавать прыщавым кулцхакерам инструментарий, по $185 за штуку - это круто! :lol:
Нет никаких оснований полагать, что методами сколь угодно изощрённого подбора эти уродцы могут вскрыть пароли UNIX/Linux ... по краней мере, до тех пор пока не будет создан квантовый компьютер (см. Квантовая криптография).

Пока мы работаем на локальном компьютере, за NAT своего провайдера, с "серым" локальным IP адресом - мы можем пользоваться а). достаточно простыми б). осмысленными в написании паролями ... в). да ещё и одними и теми же для разных целей/приложений.

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: сложность паролей в системе

Непрочитанное сообщение Olej » 09 янв 2020, 13:06

Olej писал(а):
09 янв 2020, 12:42
Пока мы работаем на локальном компьютере, за NAT своего провайдера, с "серым" локальным IP адресом - мы можем пользоваться а). достаточно простыми б). осмысленными в написании паролями ... в). да ещё и одними и теми же для разных целей/приложений.
А вот когда мы переходим к внешним серверам, таким как VDS этого вот форума, доступные извне по реальным IP адресам, всё должно стать совсем по-другому:

1. Использовать 8 символьные пароли (6 - как предельный минимум);
P.S. Достаточно любопытной могла бы быть идея использовать русские символы в пароле, в UNCODE UTF-8 написании, по 2 байта на символ (правда 1-й из которых всегда 0xD0) ... но это может быть неудобным ... и вопрос этот требует дополнительного изучения.

2. Использовать символы из максимально широкого словаря, увеличить энтропию символов.

3. Использовать случайный набор символов.

К этим позициям добавим позиции, не относящиеся впрямую к паролю:

4. Заблокировать (заблокировать, а не запретить) логин от root ... как это делается в Ubuntu, выполнение root-операций делать через sudo, или из-под sudo -i...

5. Запретить доступ root по SSH (да и по всем остальным сетевым протоколам).

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: сложность паролей в системе

Непрочитанное сообщение Olej » 09 янв 2020, 14:03

Olej писал(а):
09 янв 2020, 13:06
3. Использовать случайный набор символов.
Здесь как-раз случилась кстати публикация в тему: 5 способов сгенерировать случайный пароль в командной строке

Энтропия (генератора случайных чисел) на моём удалённом сервере:

Код: Выделить всё

root@277938:~# cat /proc/sys/kernel/random/entropy_avail
1018

root@277938:~# cat /proc/sys/kernel/random/entropy_avail
1004

root@277938:~# cat /proc/sys/kernel/random/entropy_avail
1014
И это маловато ... и мне непонятно, потому что на моём рабочем компьютере:

Код: Выделить всё

olej@ACER:~$ cat /proc/sys/kernel/random/entropy_avail
3680

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: сложность паролей в системе

Непрочитанное сообщение Olej » 09 янв 2020, 14:21

Olej писал(а):
09 янв 2020, 14:03
И это маловато ... и мне непонятно
Про генераторы случайных чисел у нас здесь - генератор случайных чисел.
Но очень странно, что:

Код: Выделить всё

root@277938:~# rngd -ld
-bash: rngd: команда не найдена

root@277938:~# systemctl --failed
0 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
Возможно это эффект того, что это мы имеем VDS виртуальный сервер под KVM? :-o
Аппаратных источников у нас нет, как показало: генератор случайных чисел.

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: сложность паролей в системе

Непрочитанное сообщение Olej » 09 янв 2020, 15:03

Olej писал(а):
09 янв 2020, 14:21
Аппаратных источников у нас нет, как показало: генератор случайных чисел.
Можно пойти так:

Код: Выделить всё

root@277938:~# apt-cache search haveged
haveged - источник энтропии на основе алгоритма HAVEGE

root@277938:~# aptitude search haveged
p   haveged                                                                      - источник энтропии на основе алгоритма HAVEGE                                          

Код: Выделить всё

root@277938:~# apt install haveged
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  liblockfile1 lockfile-progs m4 procmail sendmail-base sendmail-cf sensible-mda
Для их удаления используйте «apt autoremove».
Будут установлены следующие дополнительные пакеты:
  libhavege1
Следующие НОВЫЕ пакеты будут установлены:
  haveged libhavege1
Обновлено 0 пакетов, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 59,1 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 201 kB.
Хотите продолжить? [Д/н] y
Пол:1 http://mirror.timeweb.ru/debian buster/main amd64 libhavege1 amd64 1.9.1-7 [25,7 kB]
Пол:2 http://mirror.timeweb.ru/debian buster/main amd64 haveged amd64 1.9.1-7 [33,4 kB]
Получено 59,1 kB за 0с (713 kB/s)
Выбор ранее не выбранного пакета libhavege1:amd64.
(Чтение базы данных … на данный момент установлено 42712 файлов и каталогов.)
Подготовка к распаковке …/libhavege1_1.9.1-7_amd64.deb …
Распаковывается libhavege1:amd64 (1.9.1-7) …
Выбор ранее не выбранного пакета haveged.
Подготовка к распаковке …/haveged_1.9.1-7_amd64.deb …
Распаковывается haveged (1.9.1-7) …
Настраивается пакет libhavege1:amd64 (1.9.1-7) …
Настраивается пакет haveged (1.9.1-7) …
Created symlink /etc/systemd/system/default.target.wants/haveged.service → /lib/systemd/system/haveged.service.
Обрабатываются триггеры для systemd (241-7~deb10u2) …
Обрабатываются триггеры для man-db (2.8.5-2) …
Обрабатываются триггеры для libc-bin (2.28-10) …

Код: Выделить всё

root@277938:~# systemctl status haveged
● haveged.service - Entropy daemon using the HAVEGE algorithm
   Loaded: loaded (/lib/systemd/system/haveged.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-01-09 14:56:44 MSK; 1min 13s ago
     Docs: man:haveged(8)
           http://www.issihosts.com/haveged/
 Main PID: 3415 (haveged)
    Tasks: 1 (limit: 544)
   Memory: 3.3M
   CGroup: /system.slice/haveged.service
           └─3415 /usr/sbin/haveged --Foreground --verbose=1 -w 1024

янв 09 14:56:44 277938.local systemd[1]: Started Entropy daemon using the HAVEGE algorithm.
янв 09 14:56:45 277938.local haveged[3415]: haveged: ver: 1.9.1; arch: x86; vend: GenuineIntel; build: (gcc 8.3.0 ITV); collect: 128K
янв 09 14:56:45 277938.local haveged[3415]: haveged: cpu: (L4 VC); data: 32K (L2 L4 V); inst: 32K (L2 L4 V); idx: 24/40; sz: 31410/52825
янв 09 14:56:45 277938.local haveged[3415]: haveged: tot tests(BA8): A:1/1 B:1/1 continuous tests(B):  last entropy estimate 8.00418
янв 09 14:56:45 277938.local haveged[3415]: haveged: fills: 0, generated: 0

Код: Выделить всё

root@277938:~# cat /proc/sys/kernel/random/entropy_avail
2788
Это уже гораздо лучше!
Но это нужно сохранить после перезагрузки:

Код: Выделить всё

root@277938:~# systemctl enable haveged
Synchronizing state of haveged.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable haveged

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: сложность паролей в системе

Непрочитанное сообщение Olej » 09 янв 2020, 15:29

Olej писал(а):
09 янв 2020, 15:03
Это уже гораздо лучше!
Поехали дальше ... разбирать 5 способов генерации...

Код: Выделить всё

root@277938:~# cat /dev/urandom | tr -cd '[:graph:]' | head -c 8; echo
s|w)l{G$

root@277938:~# cat /dev/urandom | tr -cd '[:alpha:]' | head -c 8; echo
NeFMndtB

root@277938:~# cat /dev/urandom | tr -cd '[:alnum:]' | head -c 8; echo
IU75zmhZ

Код: Выделить всё

root@277938:~# tr -cd "[:graph:]" < /dev/urandom | head -c 8; echo 
?)9y|)L9

Код: Выделить всё

root@277938:~# openssl rand -base64 6
FMULxMT3

root@277938:~# openssl rand -base64 6
Nv+M2isP

root@277938:~# openssl rand -base64 6
xTW8B2l5

Код: Выделить всё

root@277938:~# strings /dev/urandom | tr -d '\n' | head -c8
-bash: strings: команда не найдена
У нас нет (нужно устанавливать) команды strings на сервере... Но и не надо!
Нам нужны только пароли, которые лучше и нужно генерировать на стороне, на рабочем десктопе:

Код: Выделить всё

olej@ACER:~/2020_WORK/rus.linux.net.hist/timeweb$ strings /dev/urandom | tr -d '\n' | head -c8; echo
-/r^e)cz

olej@ACER:~/2020_WORK/rus.linux.net.hist/timeweb$ strings /dev/urandom | tr -d '\n' | head -c8; echo
I<kH4bl/

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: сложность паролей в системе

Непрочитанное сообщение Olej » 09 янв 2020, 15:32

Olej писал(а):
09 янв 2020, 15:29
У нас нет (нужно устанавливать) команды strings на сервере... Но и не надо!
Нам нужны только пароли, которые лучше и нужно генерировать на стороне, на рабочем десктопе:
Ну и, наконец, спец. утилита, которая требует дополнительной установки ... и тоже, естественно, на рабочем десктопе:

Код: Выделить всё

olej@ACER:~/2020_WORK/rus.linux.net.hist/timeweb$ which pwgen

olej@ACER:~/2020_WORK/rus.linux.net.hist/timeweb$ sudo apt-get install pwgen
[sudo] пароль для olej: 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Следующие НОВЫЕ пакеты будут установлены:
  pwgen
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 84 пакетов не обновлено.
Необходимо скачать 19,5 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 48,1 kB.
Пол:1 http://deb.debian.org/debian buster/main amd64 pwgen amd64 2.08-1 [19,5 kB]
Получено 19,5 kB за 0с (83,2 kB/s)
Выбор ранее не выбранного пакета pwgen.
(Чтение базы данных … на данный момент установлен 424451 файл и каталог.)
Подготовка к распаковке …/pwgen_2.08-1_amd64.deb …
Распаковывается pwgen (2.08-1) …
Настраивается пакет pwgen (2.08-1) …
Обрабатываются триггеры для man-db (2.8.5-2) …

Код: Выделить всё

olej@ACER:~/2020_WORK/rus.linux.net.hist/timeweb$ pwgen -Bcny 8
uC4eic!i aece!r4u Eu&f4gie va`k~u7u oR^oh9on waiy3Ci; feo3iu+b He4quah@
Uqua7Ve% Tho*xei7 Ua7aeTh_ ue-gh7ai yae\f4Ye thee<x4e aMee_n9Y Va4zah@T
ahph_oh7 aix-ai4o ea4aeX`a ruK9ahb_ ohch9At. ya7co(Ph vo4eefo' EeH~ie7u
kej@ei3H wee?Yoh4 iu3mum>u Yoo|ch4k Uqu-ein4 Wo4Ea,ch quai?x7y Unga9Ur.
ooN'oom4 ui7Eex{a Lei=Rae9 Aivah~t4 ha,pha9e phio4re\ Voo?gh4y CioTh#i9
Co:ng9ra aiph}e7E vee7Koh( Vae%P9th uo"bu7je eu*Y7rua aep)ae3o EiV9sei'
ki$u9ieh aiv/e9ee hei|j3Ef aiF~u3ph ua;X3Het ooV4ohj. EM{u4Ru4 wei{F9oh
zei3oot' as#ai7ET ohwe&xu7 vu"ana3R eveij{u9 Ti9aix_u au7oob+u ix7eek#a
Eyoo9ra) ou[ko4qu ho`Y7ox! Hee:gij9 Nea{doh4 Tho7yi?f ahL3ieg> thi{u4iC
EiJ'a7Jo nieV{a4e eem4coh* eih[u9eW aN:aeng3 NieF7xi_ goh'gh9U wei^d9Ah
ha3gu=de yi^L9doh uM3ahj{a Aeda}ur9 be%C7aes gef%ait9 iez%aeH7 EiH3aed"
Uitei#d7 iev!i9jo du=ot7ch oiPh{u9i eiW}e9Th ge4Thie, aigha!e7 dei>d4Ah
yoh[J9ba Ra,inu9P WieJ#ei3 eid$a9Ei be4Foo/p ahv`o4pu coo9Aeh@ aiNg}ae4
iet4Ui*V da7ahT_a uz`up9Ae Yee_c3re Eegie%W9 Nae@p[i3 vi(ik9iW Eid-ai9t
eing;i4u Foth3Ei\ ahC4ay'u oi?h4eec Wae<r7gu ohW3yoh' Ap9sien} wu7Esoo)
Ai+t7vi7 Cee[h3eu Ay*ee3Ae aen|ei4o Eo7eb+ei oy]iVai4 ohv9Mai- ko4baos&
xiF7phi_ jaiV4uR% Ujo3uR;o shuHa^e7 ip7ieP%i Aqu)ae4i ach3ooM> ohv|ei7u
eo9ooT-u yoCh9je& jai~Pie7 ahk3iNg% rahp?i7E asee{r7o ho_W4tho iz3oi=J&
be#vahm3 meih-a4X Eew(ae4u Ash/ee9c ieKa{i7e Fah+V9sh fie4ieJ, bu^F3oor
aTi9tu"H aex3Pah' eiL&ae9C ahx9aek. ahj4xei# vei4At[e Uu4mohs} ik3Yae(m
Выбирай на вкус !!! :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: сложность паролей в системе

Непрочитанное сообщение Olej » 09 янв 2020, 15:34

Olej писал(а):
09 янв 2020, 15:32
Выбирай на вкус !!!
Меня умиляют все получаемые пароли.
Нашим друзьям хакерам остаётся просто усраться, разгадывая такие кроссворды. :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 14939
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: сложность паролей в системе

Непрочитанное сообщение Olej » 09 янв 2020, 16:01

Olej писал(а):
09 янв 2020, 15:32
Выбирай на вкус !!!
Выбрав пароли для всех ординарных пользователей, заменяем их пароли на выбранные:

Код: Выделить всё

root@277938:~# passwd olej
Новый пароль :
Повторите ввод нового пароля :
passwd: пароль успешно обновлён

Код: Выделить всё

root@277938:~# passwd timeweb
Новый пароль :
Повторите ввод нового пароля :
passwd: пароль успешно обновлён
... ну и так далее...
Тем пользователям, кому это понадобится в дальнейшем, разрешаем sudo, включаем в группу sudo:

Код: Выделить всё

root@277938:~# adduser timeweb sudo
Добавляется пользователь «timeweb» в группу «sudo» ...
Добавление пользователя timeweb в группу sudo
Готово.
Тщательно проверяем ... чтобы потом не попасть в засаду :lol: :

Код: Выделить всё

root@277938:~# cat /etc/group | grep sudo
sudo:x:27:maks,olej,timeweb

Код: Выделить всё

olej@277938:~$ whoami
olej

olej@277938:~$ su - timeweb
Пароль: 

timeweb@277938:~$ whoami
timeweb

timeweb@277938:~$ exit
выход

olej@277938:~$ whoami
olej

Ответить

Вернуться в «Linux изнутри»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя