1 (26.02.2015 16:03:54 отредактировано Lost)

Тема: Защита /etc/shadow

Если из /etc/shadow убрать хеш пароля пользователя то можно войти в систему.
Как защитить /etc/shadow от такого метода?

2

Re: Защита /etc/shadow

Если файловая система нешифрованная то никак. Но если вы хотите зашифровать файловую систему, то вам придётся каждый раз при её монтировании, т.е. запуске операционной системы, вводить пароль, ну либо к примеру использовать флешку как ключ.

В любом случае, даже к примеру в Windows есть возможность сбросить пароль любого пользователя.

3 (26.02.2015 11:45:47 отредактировано AntiduPb)

Re: Защита /etc/shadow

А разве /etc/shadow не доступен на просмотр/редактирование только root'у ? Чтобы убрать хеш вам нужен root, а если у вас root то вам уже, по большому счету, по барабану защищен пользователь паролем или нет. Какая у вас задача?

4

Re: Защита /etc/shadow

При отсутствии локального доступа к системе при обычных настройках безопасности что-то изменить в /etc/shadow может только root.
При наличии локального доступа к системе, как уже говорили выше, только шифрование.

5

Re: Защита /etc/shadow

ну раз пошол разговор о /etc/shadow, интересно как сделать "отключение" root как в бубунте, получается тупо удалив пароль из /etc/shadow

6

Re: Защита /etc/shadow

AntiduPb пишет

А разве /etc/shadow не доступен на просмотр/редактирование только root'у ?

Так и есть, но кто вам запрещает загрузиться с UBS / CD в Live систему, смонтировать корневую ФС и отредактирвоать /etc/shadow? Если запрещена загрузка с USB / CD, то в случае наличия GRUB2 с настройками по умолчанию вы можете загрузиться с того же USB, просто вручную вводя нужные команды по загрузке ядра и образа initrd.

7

Re: Защита /etc/shadow

UPD ошибся полазив по инету, почитав рекомендации оказалось что отключение происходит не так. А правильно так sudo passwd -l root

8

Re: Защита /etc/shadow

lone_wolf пишет

passwd -l root

man passwd не осилил? :-)
Эх.. прочитай , инфа старая, но актуальная.

9 (26.02.2015 18:34:15 отредактировано )

Re: Защита /etc/shadow

i2ks пишет

man passwd не осилил? :-)

эх меня в нем забанили  ag
читал конечно но давненько, вот как показала практика пора освежать знания в голове.

i2ks пишет

Эх.. прочитай , инфа старая, но актуальная.

спасибо, обязательно прочту.

10

Re: Защита /etc/shadow

Lost пишет

Как защитить /etc/shadow от такого метода?

никак.

lone_wolf пишет

получается тупо удалив пароль из /etc/shadow

если "тупо удалить", то будет пустой пароль.
вот

passwd(1)                              Пользовательские команды                             passwd(1)

НАЗВАНИЕ
       passwd - изменяет пароль пользователя

СИНТАКСИС
       passwd [параметры] [УЧЁТНАЯ_ЗАПИСЬ]

ОПИСАНИЕ
       Программа passwd изменяет пароли пользовательских учётных записей. Обычный пользователь может
       изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой
       учётной записи. Программа passwd также изменяет информацию об учётной записи или срок действия
       пароля.

   Изменение пароля
       Сначала пользователя попросят ввести старый пароль, если он был. Этот пароль зашифровывается и
       сравнивается с имеющимся. У пользователя есть только одна попытка ввести правильный пароль.
       Для суперпользователя этот шаг пропускается, для того чтобы можно было изменить забытый
       пароль.

       После ввода пароля проверяется информация об устаревании пароля, чтобы убедиться, что
       пользователю разрешено изменять пароль в настоящий момент. Если нет, то passwd не производит
       изменение пароля и завершает работу.

       Затем пользователю предложат дважды ввести новый пароль. Значение второго ввода сравнивается с
       первым и для изменения пароли из обеих попыток должны совпасть.

       Затем пароль тестируется на сложность подбора. Согласно общим принципам, пароли должны быть
       длиной от 6 до 8 символов и включать один или более символов каждого типа:
       ·   строчные буквы

       ·   цифры от 0 до 9

       ·   знаки пунктуации

       Не включайте системные символы стирания и удаления. Программа passwd не примет пароль, который
       не имеет достаточной сложности.

   Выбор пароля
       Безопасность пароля зависит от стойкости алгоритма шифрования и размера пространства ключа. В
       старых системах UNIX метод шифрования основывался на алгоритме NBS DES. Сейчас рекомендуют
       более новые методы (смотрите ENCRYPT_METHOD). Размер пространства ключа зависит от степени
       произвольности выбранного пароля.

       При обеспечении безопасности пароля выбирают нечто среднее между сложным паролем и сложностью
       работы с ним. По этой причине, вы не должны использовать пароль, который является словом из
       словаря или который придётся записать из-за его сложности. Также, пароль не должен быть
       названием чего-либо, номером вашей лицензии, днём рождения и домашним адресом. Обо всём этом
       легко догадаться, что приведёт к нарушению безопасности системы.

       О том, как выбрать стойкий пароль, читайте в http://ru.wikipedia.org/wiki/Сложность_пароля.

ПАРАМЕТРЫ
       Параметры команды passwd:

       -a, --all
           Этот параметр можно использовать только вместе с -S для вывода статуса всех пользователей.
       -d, --delete
           Удалить пароль пользователя (сделать его пустым). Это быстрый способ заблокировать пароль
           учётной записи. Это сделает указанную учётную запись беспарольной.

       -e, --expire
           Немедленно сделать пароль устаревшим. В результате это заставит пользователя изменить
           пароль при следующем входе в систему.

       -h, --help
           Показать краткую справку и закончить работу.

       -i, --inactive ДНЕЙ
           Этот параметр используется для блокировки учётной записи по прошествии заданного числа
           дней после устаревания пароля. То есть, если пароль устарел и прошло более указанных ДНЕЙ,
           то пользователь больше не сможет использовать данную учётную запись.

       -k, --keep-tokens
           Указывает, что изменение пароля нужно выполнить только для устаревших ключей
           аутентификации (паролей). Пользователи хотят оставить свои непросроченные ключи
           нетронутыми.

       -l, --lock
           Заблокировать пароль указанной учётной записи. Этот параметр блокирует пароль, изменяя его
           значение на вариант, который не может быть шифрованным паролем (добавляется символ «!» в
           начало пароля).

           Заметим, что это не блокирует учётную запись. Пользователь всё ещё может войти в систему с
           помощью другого способа аутентификации (например, с помощью ключа SSH). Чтобы
           заблокировать учётную запись, администратор должен использовать команду usermod
           --expiredate 1 (это установит дату устаревания учётной запись равной 2 января 1970 года).

           Посетитель с заблокированным паролем не может изменить свой пароль.

       -n, --mindays МИН_ДНЕЙ
           Задать минимальное количество дней между сменами пароля. Нулевое значение этого поля
           указывает на то, что пользователь может менять свой пароль когда захочет.

       -q, --quiet
           Не выводить сообщений при работе.

       -r, --repository РЕПОЗИТОРИЙ
           Изменить пароль в РЕПОЗИТОРИИ.

       -R, --root КАТ_CHROOT
           Выполнить изменения в каталоге КАТ_CHROOT и использовать файлы настройки из каталога
           КАТ_CHROOT.

       -S, --status
           Показать состояние учётной записи. Информация о состоянии содержит 7 полей. Первое поле
           содержит имя учётной записи. Второе поле указывает, заблокирован ли пароль учётной записи
           (L), она без пароля (NP) или у неё есть рабочий пароль (P). Третье поле хранит дату
           последнего изменения пароля. В следующих четырёх полях хранятся минимальный срок,
           максимальный срок, период выдачи предупреждения и период неактивности пароля. Эти сроки
           измеряются в днях.

       -u, --unlock
           Разблокировать пароль указанной учётной записи. Этот параметр разблокирует пароль,
           возвращая его прежнее значение (которое было перед использованием параметра -l).

       -w, --warndays ПРЕД_ДНЕЙ
           Установить число дней выдачи предупреждения, перед тем как потребуется смена пароля. В
           параметре ПРЕД_ДНЕЙ указывается число дней перед тем как пароль устареет, в течении
           которых пользователю будут напоминать, что пароль скоро устареет.

       -x, --maxdays МАКС_ДНЕЙ
           Установить максимальное количество дней, в течении которых пароль остаётся рабочим. После
           МАКС_ДНЕЙ пароль нужно изменить.

ПРЕДОСТЕРЕЖЕНИЯ
       Сложность пароля проверяется на разных машинах по разному. Пользователю настоятельно
       рекомендуется выбирать пароль такой сложности, чтобы ему нормально работалось.

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

НАСТРОЙКА
       На работу этого инструмента влияют следующие переменные настройки из /etc/login.defs:

       ENCRYPT_METHOD (строка)
           Задаёт системный алгоритм шифрования по умолчанию для шифрования паролей (используется,
           если алгоритм не указан в командной строке).

           Возможны следующие значения: DES (по умолчанию), MD5, SHA256, SHA512.

           Замечание: этот параметр переопределяет переменную MD5_CRYPT_ENAB.

       MD5_CRYPT_ENAB (логический)
           Обозначает, что пароль должен быть зашифрован по алгоритму на основе MD5. Если значение
           равно yes, то новые пароли будут зашифрованы по алгоритму на основе MD5, совместимому с
           используемым в новых версиях FreeBSD. Он поддерживает пароли неограниченной длины и имеет
           более длинную строку соли. Установите в no, если вам нужно копировать шифрованные пароли в
           другие системы, которые не поддерживают новый алгоритм. По умолчанию no.

           Эта переменная переопределяется переменной ENCRYPT_METHOD или любым параметром командной
           строки, который задаёт алгоритм шифрования.

           Эта переменная устарела; используйте ENCRYPT_METHOD.

       OBSCURE_CHECKS_ENAB (логический)
           Включает дополнительные проверки при смене пароля.

       PASS_ALWAYS_WARN (логический)
           Предупреждать о слабых паролях (но разрешать их использовать) для суперпользователя.

       PASS_CHANGE_TRIES (число)
           Максимальное количество попыток смены пароля (слишком простого) при непрохождении
           проверки.

       PASS_MAX_LEN (число), PASS_MIN_LEN (число)
           Количество значимых символов в пароле для crypt(). По умолчанию значение PASS_MAX_LEN
           равно 8. Не изменяйте, если ваш crypt() лучше. Игнорируется, если значение MD5_CRYPT_ENAB
           равно yes.

       SHA_CRYPT_MIN_ROUNDS (число), SHA_CRYPT_MAX_ROUNDS (число)
           Если значение ENCRYPT_METHOD равно SHA256 или SHA512, эта переменная определяет количество
           раундов SHA, используемых алгоритмом шифрования по умолчанию (если количество раундов не
           задано в командной строке).

           Увеличение количества раундов повышает сложность подбора пароля простым перебором. Но
           заметим, что при этом для аутентификации пользователей требуется большее количество
           процессорных ресурсов.

           Если не задана, то libc выбирает значение количества раундов по умолчанию (5000).

           Значения должны лежать в диапазоне 1000-999999999.

           Если задано какое-то одно значение — SHA_CRYPT_MIN_ROUNDS или SHA_CRYPT_MAX_ROUNDS — то
           будет использовано это значение.

           Если SHA_CRYPT_MIN_ROUNDS > SHA_CRYPT_MAX_ROUNDS, то используется большее значение.

ФАЙЛЫ
       /etc/passwd
           содержит информацию о пользователях

       /etc/shadow
           содержит защищаемую информацию о пользователях

       /etc/login.defs
           содержит конфигурацию подсистемы теневых паролей

ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
       Программа passwd завершая работу, возвращает следующие значения:

       0
           успешное выполнение

       1
           доступ запрещён

       2
           недопустимая комбинация параметров

       3
           неожиданная ошибка при работе, ничего не сделано

       4
           неожиданная ошибка при работе, отсутствует файл passwd

       5
           файл passwd занят другой программой, попробуйте ещё раз

       6
           недопустимое значение параметра

СМОТРИТЕ ТАКЖЕ
       chpasswd(8), passwd(5), shadow(5), login.defs(5),usermod(8).

shadow-utils 4.2                              05/09/2014                                    passwd(1)