Книга: Linux глазами хакера

14.1.6. Пароли

14.1.6. Пароли

Не буду повторяться, что пароли должны быть сложными, а поговорим немного о другом.

Все пароли необходимо менять через определенные периоды времени. На своем сайте (а к нему имеют доступ достаточно много человек) я это делаю каждый месяц, потому что в Интернете слишком много хакеров, которые только и ищут легкую добычу.

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

Единственное, что не меняется, — это пароль на вход в Windows на моем ноутбуке. Со своим компьютером я работаю один и никого не подпускаю. Не потому, что боюсь обнародовать что-то важное, а больше опасаюсь случайной потери данных.

Многие хакеры, получая доступ к системе, некоторое время не проявляют никакой активности. Они осматриваются, знакомятся с принципами работы системы и определяются, как сделать, чтобы их не вычислили. Быстрые действия можно ожидать только от того, кто проникает в систему ради уничтожения всех данных, и кому нет смысла уничтожать следы своего пребывания. Слава богу, что таких взломов не так уж и много.

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

Регулярное обновление паролей усложняет подбор. Как это происходит. Многие автоматизированные системы выявления атак могут без проблем определить, когда на отдельную учетную запись авторизуются несколько раз подряд. Чтобы обойти такие системы, хакеры проверяют пароли с определенной задержкой. Это делает взлом дольше, но, в конце концов, даст результат, если пароль несложный и постоянный. Если пароль изменчив, то вероятность успеть его подобрать до очередной смены становится очень низкой.

Чтобы увидеть это на примере, представим, что пароль может содержать только числа. Допустим, что на первоначальном этапе он был равен 7 000 000. Хакер тупым перебором прошел от 0 до 6 000 000, и в этот момент пароль меняется на 5 000 000. Дальнейшее сканирование хоть до миллиарда не даст результата, потому что диапазон, в котором находится новый пароль, уже пропущен.

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

Как заставить пользователя менять пароли через определенные промежутки времени? Для этого есть утилита chage, которая имеет следующий вид:

chage параметры пользователь

В качестве параметра можно указывать следующие ключи:

-m N — минимальное число дней (N) до смены пароля. Указав это значение чуть меньше, чем максимальный период (см. следующий параметр), вы защитите систему от нежелательной смены паролей. Это значит, что если хакер захватит учетную запись, он не сможет изменить пароль. Конечно же, злоумышленник тоже может выполнить команду chage, но только если у него есть права администратора. Три-четыре дня разницы между минимальным и максимальным значением необходимы для того, чтобы пользователь смог сменить пароль, пока он не устарел. Меньше 3 дней нежелательно, потому что существуют выходные, и если срок действия попадет на воскресенье, пользователь не успеет сменить пароль. По умолчанию стоит значение -1, что соответствует отсутствию проверки;

-M N — максимальный диапазон в днях (N), в течение которого действует пароль. После этого параметры авторизации считаются недействительными, и пользователь не сможет войти в систему. По умолчанию установлено 99999, что соответствует бесконечности, а значит, пароль никогда не устареет;

-d N — дата последнего изменения пароля. Параметр N указывает количество дней, начиная с 1 января 1970 года. Если установить 1000, то получится 27 сентября 1972 года. Чтобы не высчитывать дату в днях, можно указать ее явным образом в формате ГГГГ-ММ-ДД;

-Е дата — дата окончания действия пароля;

-I N — период в днях, после которого неиспользуемая учетная запись блокируется. Рекомендую указать не менее 3 дней и не более 4 дней, чтобы приостановить действие записи на время отпуска или болезни работника;

-W N — количество дней до окончания срока действия пароля, когда пользователю будет выводиться предупредительное сообщение. Нежелательно указывать менее 3 дней, чтобы не попасть на выходные;

-l пользователь — информация о времени жизни их пароля. С этим параметром команда может вызываться любыми пользователями. Чтобы получить сведения о пароле root, выполните директиву chage -l root.

Результат выполнения команды имеет следующий вид:

Minimum: -1
Maximum: 99999
Warning: -1
Inactive: -1
Last Change: Feb 04, 2004
Password Expires: Never
Password Inactive: Never
Account Expires: Never

Здесь отображаются следующие значения:

• Minimum — минимальный срок действия пароля;

• Maximum — максимальный период для пользования паролем;

• Warning — количество дней, за которые будет выдаваться предупреждение о завершении срока действия пароля;

• Inactive — максимальное количество дней, в течение которых учетная запись может не активироваться;

• Last Change — последняя дата изменения;

• Password Expires — дата окончания действия пароля;

• Password inactive — дата, когда пароль стал неактивным;

• Account Expires — дата окончания действия учетной записи.

Чтобы задать максимальное количество дней жизни пароля в 60 дней, выполните команду:

chage -М 60 robert

Слишком частая смена паролей приводит к тому, что пользователи просто не успевают запомнить их. Из-за этого сложные комбинации начинают писать на бумаге, чтобы случайно не забыть, или просто меняют пароль на старый. Ваша задача — контролировать замену, и в то же время не стоит заставлять пользователя делать это слишком часто. Период в 2–3 месяца (или 60–90 дней) считается вполне приемлемым.

А какие гарантии, что пароль выбран сложный или пользователь снова не указал старый шифр? В этом нам поможет PAM-модуль pam_cracklib.so, который выполняет основные проверки. Например, нельзя будет установить старый пароль или воспользоваться большей его частью.

Чтобы включить модуль pam_cracklib.so, необходимо добавить в файл /etc/pam.d/passwd следующую строку:

password required pam_cracklib.so retry=5 minlength=8

В этой команде мы заставляем систему использовать библиотеку pam_cracklib.so. Параметр retry задает 5 попыток для ввода нового пароля, а они понадобятся, если пользователь попытается задать слишком простую комбинацию. Параметр minlength задает минимальную длину пароля.

Оглавление книги


Генерация: 0.253. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз