Рубрики
kali \ virus \ rootkit \ вирусы \ защита

linux пароли

Общая информация:

Пароли Linux могут состоять только из символов кодировки ASCII (никаких международных специальных символов!). 
Из соображений безопасности рекомендуется создавать пароли, состоящие из букв как верхнего, так и нижнего регистра; кроме того, пароль должен содержать минимум одну цифру
Пароли в Linux сохраняются в форме так называемых хеш-кодов, которые позволяют контролировать, но не реконструировать данные. 
В современных дистрибутивах сейчас используется надежный хеш-алгоритм SHA512 (см. переменную ENCRYPT_METHOD в /etc/login.defs). 
Данный алгоритм позволяет создавать пароли любой длины (в некоторых более старых дистрибутивах используются другие хеш-алгоритмы, учитывающие только восемь первых символов в пароле!).
Так называемые взломщики паролей (программы для расшифровки) действуют противоположным образом: 
они обычно примеряют к программе миллионы случайных паролей — как правило, в таком качестве взломщик использует слова из словаря в комбинации с числами. 
Поскольку многие пользователи применяют запоминающиеся пароли, а компьютеры становятся все быстрее, подобный метод подбора ужасающе часто приводит злоумышленника к цели.
Чтобы осложнить жизнь потенциальным агрессорам, в новых системах Linux зашифрованные коды-пароли сохраняются не прямо в /etc/passwd, а в отдельном файле /etc/shadow. 
Преимущество заключается в том, что этот файл может читать только администратор. (Файлы /etc/passwd и /etc/group должны быть доступны для чтения всем пользователям системы, так как содержат элементарную информацию
по управлению системой. А к файлу /etc/shadow могут иметь доступ только программы для верификации и изменения паролей. 
Поэтому потенциальный агрессор должен сначала получить доступ администратора и только потом сможет прочитать зашифрованные коды-пароли.)

Формат файла shadow должен быть следующим:
Логин:Код-пароль:D1:D2:D3:D4:D5:D6:reserve6
В полях dl-d6 могут содержаться желаемые данные по времени:
dl указывает, когда пароль был в последний раз изменен (данные указываются в днях, прошедших с 01.01.1970);
d2 определяет, через сколько дней можно изменить пароль;
d3 указывает, через сколько дней пароль обязательно необходимо изменить, прежде чем он станет недействителен (подробности об этих полях сообщаются в файле справки man 5 shadow);
d4 определяет, за сколько дней до истечения срока действия пароля пользователь начнет получать об этом предупреждения;
d5 указывает, через сколько дней просроченная учетная запись без действующего пароля будет полностью деактивирована;
d6 задает, когда именно учетная запись будет деактивирована.


/etc/login.defs - файл настроек шифрования паролей в файле shadow 
/etc/passwd - файл с параметрами настроек пользователей
/etc/group - файл групп
/etc/shadow - файл с паролями
/etc/pam.d/ - каталог с файлами настроек аутентификации
/etc/pam.d/common-auth - файл настроек аутентификации 
/etc/pam.conf - методы аутентификации
/var/log/faillog - информация обо всех не удачных попытках входа

debian 9 файл login.def:

cat /etc/login.defs | grep -Ei encry
-------------------------------------
# If set to "yes", new passwords will be encrypted using the MD5-based
# Set to "no" if you need to copy encrypted passwords to other systems
# This variable is deprecated. You should use ENCRYPT_METHOD.
# If set to MD5 , MD5-based algorithm will be used for encrypting password
# If set to SHA256, SHA256-based algorithm will be used for encrypting password
# If set to SHA512, SHA512-based algorithm will be used for encrypting password
# If set to DES, DES-based algorithm will be used for encrypting password (default)
ENCRYPT_METHOD SHA512
# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512.
-------------------------------------

Взаимодействие конфигурационных файлов:

как взаимодействуют три файла — passwd, groups и shadow. 

Файл passwd каждого пользователя содержит строку, построенную по следующему образцу:
# Строка в /etc/passwd
user_name:x:1000:1000:user_info user_name:/home/user_name:/bin/bash
Здесь user_name — это логин; 
1000 — идентификационный номер пользователя; 
1000 — идентификационный номер основной группы; 
user_info — полное имя (для электронной переписки, новостей и т. д.); 
/home/user_name — домашний каталог пользователя;
/bin/bash — используемая им оболочка.
Идентификатор группы — это уникальный номер, важный для управления правами доступа к файлам.


Соответствующая строка в /etc/shadow с информацией о пароле выглядит следующим образом:
# Строка в /etc/shadow
user_name:$6$9dk0$...:13479:0:99999:7:::
Последовательность символов после user_name: — это зашифрованный пароль. 
Если не задать эту последовательность, то в систему можно будет входить, не указывая пароль. 
Если определить вместо нее символ * или !, то вход в систему будет запрещен.

Номер GID из /etc/passwd должен соответствовать группе из /etc/group. 
Во многих дистрибутивах каждому обычному пользователю соответствует одноименная группа:
# Строка в /etc/group 
user_name:x:1000: