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

Установка, обновление, настройка Linux

Модераторы: Olej, adminn

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

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

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

Olej писал(а):
09 янв 2020, 13:06
5. Запретить доступ root по SSH (да и по всем остальным сетевым протоколам).
Разрешить или запретить доступ SSH определенному пользователю или группе в Linux

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

root@277938:~# cat /etc/group | grep root
root:x:0:
Дописал 2 строчки:

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

timeweb@277938:~$ cat /etc/ssh/sshd_config | grep Deny
DenyUsers root
DenyGroups root
Перезагрузка sshd:

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

root@277938:/etc/ssh# systemctl restart sshd

root@277938:/etc/ssh# systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-01-09 16:08:21 MSK; 7s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
  Process: 4350 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 4351 (sshd)
    Tasks: 2 (limit: 544)
   Memory: 17.2M
   CGroup: /system.slice/ssh.service
           ├─4346 sshd: [accepted]
           └─4351 /usr/sbin/sshd -D

янв 09 16:08:21 277938.local systemd[1]: Starting OpenBSD Secure Shell server...
янв 09 16:08:21 277938.local systemd[1]: ssh.service: Found left-over process 4346 (sshd) in control group while starting unit. Ignoring.
янв 09 16:08:21 277938.local systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.
янв 09 16:08:21 277938.local sshd[4351]: Server listening on 0.0.0.0 port 22.
янв 09 16:08:21 277938.local sshd[4351]: Server listening on :: port 22.
янв 09 16:08:21 277938.local systemd[1]: Started OpenBSD Secure Shell server.
Проверяем, что root-у по SSH ходу нет:

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

olej@ACER:~/2020_WORK/rus.linux.net.hist/timeweb$ ssh -l root 185.178.47.95
root@185.178.47.95's password: 
Permission denied, please try again.
root@185.178.47.95's password: 
^C

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

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

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

Olej писал(а):
09 янв 2020, 13:06
4. Заблокировать (заблокировать, а не запретить) логин от root ... как это делается в Ubuntu, выполнение root-операций делать через sudo, или из-под sudo -i...
Про блокировку паролей уже рассматривалось здесь: теневые пароли.
Проверяем возможность логина для root:

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

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

root@277938:~# whoami
root

root@277938:~# exit
выход

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

root@277938:/etc/ssh# cat /etc/shadow | grep root
root:$6$NEAXaM3S7Nr2sgqv$dG03bkz7wOZK20kNiviy7GrzZ24w6gDIF8jb8OXqI9kTWcLEttBX.yP/atqT4SnLFvDk.TZN9oGbBYH0uR.m./:18249:0:99999:7:::
А теперь мы это пресечём:

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

root@277938:/etc/ssh# passwd -l root
passwd: информация об истечении срока действия пароля изменена.

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

root@277938:/etc/ssh# cat /etc/shadow | grep root
root:!$6$NEAXaM3S7Nr2sgqv$dG03bkz7wOZK20kNiviy7GrzZ24w6gDIF8jb8OXqI9kTWcLEttBX.yP/atqT4SnLFvDk.TZN9oGbBYH0uR.m./:18249:0:99999:7:::
Обращаем внимание на "!" в позиции после 1-го ":" ...

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

olej@277938:~$ su -
Пароль: 
su: Сбой при проверке подлинности
Всё!
root-у хода нет! :lol:

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

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

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

Olej писал(а):
09 янв 2020, 16:30
А теперь мы это пресечём:

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

root@277938:/etc/ssh# passwd -l root
passwd: информация об истечении срока действия пароля изменена.
...
Всё!
root-у хода нет!
И обратно, когда нам понадобится логин для root - сделаем так:

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

olej@277938:~$ sudo passwd -u root
...

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

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

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

Olej писал(а):
09 янв 2020, 15:29
Поехали дальше ... разбирать 5 способов генерации...
Ну и для полноты картины, к 5-ти ещё 2 способа генерации рандомного пароля высокой криптостойкости... итого 7:

6. Используя PGP/GPG:

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

olej@ACER:~/2020_WORK/rus.linux.net.hist/org.doc$ gpg --gen-random -armor 1 6
SbkRQ7nF

olej@ACER:~/2020_WORK/rus.linux.net.hist/org.doc$ gpg --gen-random -armor 1 6
az852c6E
7. Код на языке Perl:

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

olej@ACER:~/2020_WORK/rus.linux.net.hist/local$ cat passwd.perl 
#!/usr/bin/perl

my @alphanumeric = ('a'..'z', 'A'..'Z', 0..9);
my $randpassword = join '', map $alphanumeric[rand @alphanumeric], 0..7;
print "$randpassword\n"

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

olej@ACER:~/2020_WORK/rus.linux.net.hist/local$ perl passwd.perl 
Geak61tG

olej@ACER:~/2020_WORK/rus.linux.net.hist/local$ perl passwd.perl 
dPExOM4B

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

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

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

Olej писал(а):
09 янв 2020, 18:37
Ну и для полноты картины, к 5-ти ещё 2 способа генерации рандомного пароля высокой криптостойкости... итого 7:
Ещё: Десять способов генерировать пароль в командной строке случайным образом

8. Простота...
А вот самый простой способ создать в пароль в командной строке, который работает в Linux, в Windows с Cygwin, и, вероятно, в Mac OS X. Я уверен, что некоторые скажут, что это не столь случайный пароль, как в других вариантах, но, честно говоря, подобной «случайности» вполне достаточно в случае, если вы собираетесь использовать пароль целиком.

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

olej@ACER:~/2020_WORK/rus.linux.net.hist/timeweb$ date | md5sum | head -c 8 ; echo
84a502ba
9.
В следующем методе используется алгоритм SHA для хэширования даты, затем вычисляется base64, а затем берутся первые ... символа.

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

olej@ACER:~/2020_WORK/rus.linux.net.hist/timeweb$ date +%s | sha256sum | base64 | head -c 8 ; echo
ZmMzZTA4

olej@ACER:~/2020_WORK/rus.linux.net.hist/timeweb$ date +%s | sha256sum | base64 | head -c 8 ; echo
YjRkZDAw

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

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

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

Olej писал(а):
09 янв 2020, 13:06
1. Использовать 8 символьные пароли (6 - как предельный минимум);
В обсуждении John the Ripper уже оценивалось что:
- 8 символьный, соответственно: 6,5699×8 = 52,5592 бит, 2**52,5592 = 6,635837588×10¹⁵ комбинаций, 3,317918794×10¹⁵ вероятных переборов, 110597293125 сек. на их выполнение = 30721470 часов = 1280061 суток = 3507 лет! Столько не живут. :lol:
Т.е. уже 8-символьный пароль UNIX практически не вскрываем.
И примеры генерации парольных последовательностей показывались условно на длине 8 символов.
Но, поскольку такие "безобразные" пароли всё-равно приходится где-то хранить, то совершенно равноценно (с точки зрения "удобно-неудобно") использовать пароли длиной, скажем, 18, 24, или 32 символа.
И тогда их вскрытие становится абсолютно безнадёжным занятием. :evil:

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

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

Непрочитанное сообщение Olej » 04 сен 2022, 21:28

Olej писал(а):
09 янв 2020, 13:06
К этим позициям добавим позиции, не относящиеся впрямую к паролю:
Итого, в результате применения выше названных п.п.1-5 мы получаем (и уже реально получили на сервере, где работает читаемый вами форум):
- доступа по имени root нет ни по логину, ни по SSH ... - его практически не существует в системе...
- в системе зарегистрировано 10-12 имён ординарных пользователей...
- некоторые, 2 или 3 из них (угадайка! :lol: ) имеют разрешённый доступ к sudo...
- пароли всех этих пользователей - длинные, энтропийные и не вскрываемые.

Для того, чтобы в такой мудрёной среде не путаться, не искать и не копировать пароли и имена, на своём локальном компьютере (за 1000 км. и за NAT от провайдера) я создаю примерно такие вот скрипты доступа от имени каждого из пользователей ... примерно такого содержания:

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

sshpass -p xxxxxxxxxx ssh -l yyyyyyyyy -Y 185.178.47.95

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

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

Непрочитанное сообщение Olej » 07 ноя 2023, 14:18

Тема крайне актуальная ... причём тем дальше по времени - тем больше.
Olej писал(а):
09 янв 2020, 19:04
Т.е. уже 8-символьный пароль UNIX практически не вскрываем.
Т.е. ... "фуй вам, ребята" :oops:
Но для этого нужны пароли с хорошей энтропией.
Olej писал(а):
09 янв 2020, 18:56
Десять способов генерировать пароль в командной строке случайным образом
Свожу всё воедино и подвожу итоги...

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

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

Непрочитанное сообщение Olej » 07 ноя 2023, 14:57

Olej писал(а):
07 ноя 2023, 14:18
Свожу всё воедино и подвожу итоги...
1.

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

olej@R420:~$ cat /dev/urandom | tr -cd '[:graph:]' | head -c 8; echo
_63Rs6B}

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

olej@R420:~$ cat /dev/urandom | tr -cd '[:alpha:]' | head -c 8; echo
RtmNVGeZ

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

olej@R420:~$ cat /dev/urandom | tr -cd '[:alnum:]' | head -c 8; echo
lb2QckFP
2. (утилиту strings, возможно, придётся доустановить стандартным способом)

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

olej@R420:~$ strings /dev/urandom | tr -d '\n' | head -c8; echo
JZnrbTus

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

olej@R420:~$ strings /dev/urandom | tr -d '\n' | head -c8; echo
[actzO|1

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

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

Непрочитанное сообщение Olej » 07 ноя 2023, 15:00

Olej писал(а):
07 ноя 2023, 14:18
Свожу всё воедино и подвожу итоги...
3. (требует дополнительной установки пакета pwgen стандартным способом):

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

olej@R420:~$ pwgen -Bcny 8
Aijah&Y9 pou`Wei4 Aeh~ai7a ahM.u4ie Xah{jo9W raTe,v3e aw"e7ahM zah3eeV-
Wuu9Vu#x efa3Aev= ooP,i3ae ohPah=m4 aiN,aht9 cee9Xoh% mot3Vaj. chay4Ua+
Vei=h3jo kee7He]w Aec3vai* Jee4bu$h mei{Y4oh ohm7Aso= Aek"eu4c pee'Pu4p
rah"P9oh Eerai/f3 wei3Aez| fei"Roh3 Ami|x4ch Lu3ohb=i Aa4aew/o sahN_ei4
Huy)ei9k Rae7xae: Ro7phe/x vee3Rei< Eev'eit3 Uo+d7eu~ Ugae=M3L ahqu9UN\
ieV:ei7a nai3ti{W iu.Mai7c Uh?u3hie Ui-zae9a Lut@oo9r doV_ich3 Aek3ohb{
wa4eiV<a oK4iequ" cee3Le=a cei=F3xe baw3Ci~k xee(Ng4i Vie/ng9a eC|aeF4d
Ang:e9ee Aeg3Nai- Cix\ie9e Eo9phoo$ Af9iez^u aih7eoC\ quo|i3Th iec/ah9U
ieNg[ei3 Wahp#ee9 pah4Yei^ ooT~a"i9 AaJ?ae7a thae)r9R Eeth#a4a Aif4pe#C
Thu9ooc& si/u4Ho9 jai4Rai; Tie!d9Ay ahs3Uu|j Ahph&ae4 eish*o3E Ki4aigh_
Pai?j3yu vah#Ng3E Acie+gh3 yo%pi4Er zae)gh4A ze4nu|Wo echu}v4U ax4Ay&ee
eiJ(ui7v ohs:ei7W Wai4xie& wae<Yoh9 AiT=ae7i ii*n3Ree eizai\T7 Kut3ed_e
aeh4di;F vau;feC9 Aiqu9oe: io`T7aig oi4Uoth' eiX9be-c vei%W7fe xoh`x3Ah
aP&aep4i uT9yu:Th JaT9fi/v uo4Eek"i Ahg7doh: Mi4saht: eM9fei%y Ma7vei`c
kei.y7Pa mahn'o7M Aet*o4Ei xuu)yuM9 saiL&u7u uc9soJ.o bei7Wai+ Ef3aeX#u
woh+d7uL ooc"oo3L oK9koo#W Evo{Wu4e gei\C9oh Ahf_om4i ooR9koh{ iRae*H3A
nie4uTh` ahc#ai9J ahng7oV< Aiv~a3ni Ahf7Ew*u oY^ai3aR eej9Aek" Uid-ohc3
Kah_w7es Ree4ai/x pee*Ro4u Ahb%a3sh eek7AhT" ohv4EPh, iH4uW+ee fee7Pe_k
Ua_s3een eu}W3nae eNae+Ph4 Ya+a9Nie ai?n3eiM UH%ae9oh eL4AeFu: nai\X7ai
Ahs|ohv7 imaN#ai3 pooV4af? seix=u9U id3ohPh+ Ar)oo7th hae4Rah} ou(Ng3xu

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

olej@R420:~$ pwgen -Bcny 10
ahh4da~oKu taWi~che4e thi9MooV]a goh4sae[Co zei$s7Mage ra9eL{ei]g iey<aiJai9
Ucahr9uek< tu4eeJ~ai9 uCaeC3oop\ mah_P9to7e Jie}co3pu3 pho@Fa4uph Nu9aVahj_a
uj"ung9Eek aeFo4eik(u ahg9Uzaic& uJ,ah9dahx Eed4phei(r eeCu`oR4ei chuNg!oo3e
ooNgei9be[ Eev!ie7Ewi ahM"ee7nee ii3mueX^u7 quoo&teXi7 AF3Uopoh?t thae[Phee4
Ki4aeh,osh bae;zooz3A boo9iVuP\u Koh7reeY)u secuuz:u4H ie3da,Vah7 ievu7Jeek^
Ugoo4Ro~a4 ceaz%e9oWe thei4xi-Ph uK9dohd%aa ohc4eeP`oo uaMoo9at/o ahz3Kei+s%
chob[eiW9e aip4Ahm!ai phie7sha:H poex3Ahf'u ee7iechiM+ wuH@o9iz'i Laey'ok3Ha
Aa7eipae^w aeng`ee4Ta aiP4egh[oh aimis3ieX= Ka9ihohqu- Pee7Xeiph! Eedoax9oj}
tho@i4Kau4 se4nee,Cei Theb>e+u9f ee:ghie7Ma bo=di3eTho zooghe|C7a er7aPeu^Ce
yai:x$ohK4 zah?Loo9th je(woo7Aef vi$o3UoJei ocah`C/ai3 iece4dee.C xoh>ngoo7M
ohCh)i&i9P ohM\eid4ae Thi~w4iqu7 im3Pi^oph9 Kee$paech9 Pii4bahd>a ni3eeN#o9b
ievu9Fo,H7 bu3EeHei>f oe+y7xohTh sei`r7ohK> sie@y9aiVa yuo3gah~Ph Ju:imo+e7e
si%ka3Va>J aeC$iez4oh iow+e4ePh4 ut:eeH4fe@ AhThi9iej- buT^eiN9vu iu4ta-iMar
iedie/Kai3 ecah4Eit#o Ui!peepee9 thahT/ohz3 Li]feePh3Y thie$j7ohP quoosae;M3
gaeF3Ao$gu ahsh7Yaze/ Aer4ohy&ai ies"ebu7eC jii_Loch7T Nei(d{oh4i vaen{ieX9v
ieth%ir9Ai Chie}n4iek si9Tie$Ngo beomie_C9a aep3quoo$L cu@b3thaiN sahXie)x3e
oi!j4Aith- gee7queH-u Moj3op_iek Choh#ba7ai ohg4fie+Ch it3Mo]cho# tieY$e4Eex
oovou9Pie; Eim-ex7pae yio<Lu4eef nesh+aCh3t woong3Eik( Ei3Aozae.r ohJ}eeh7bo
jae[gh3Var ooCogh#ai7 Veub:a3Yo7 Up4agh(eey ia-gaer3Eo Loo;V3yien Aid&ah7teg
Ashaiha>u4 ahb9pei%Lu ahXai+fio7 Ut3ash[ahr xai3ooJuY$ Thas&ah7fo ieyah/v9Ch

Ответить

Вернуться в «Администрирование Linux»

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

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