Привет друзья. Готовы поработать в субботу и потом отдохнуть 4 дня?

Жаль что подобные графики справедливы для рядовых айтишников. А нам инженерам приходится держать оборону 24/7/365. Но в этом есть и свои плюсы.

Теперь по делу. Иногда клиент очень хочет оставить авторизацию на Linux сервера по ssh по паролю.

Я таких никогда не уговариваю использовать ключи, ну хочет человек, ради бога.

Возможно когда его забрутфорсят, мозги встанут на место.

Ладно. Как жить с паролями? Обычно! Я выполняю 3 действия:

  1. При первом логине запрашиваем смену пароля
  2. Пароль должен отвечать заданному шаблону
  3. Ну и естественно втыкаю fail2ban

Давай теперь по каждому пункту.

Чтобы при первом логине был запрос на смену пароля, делаем так:

adduser newuser
chage -d0 newuser

Сначала заводим пользователя, а потом ставим на него черную метку. Через ключ -d говорим через сколько дней запросить смену пароля. У меня это 0, то есть поменять при первом логине.

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

Теперь как сделать шаблон пароля.

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

Тут посложнее. Будем использовать модуль libpam-pwquality.

apt install libpam-pwquality

Открываем файл /etc/security/pwquality.conf и настраиваем под свои хотелки:

minlen  = 16
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1

Длина пароля, маленькие и большие буковки, спецсимволы и т.п.

Да, нужно включить этот модуль в файле /etc/pam.d/common-password

password requisite pam_pwquality.so retry=3

Теперь при смене паролей, будут ошибки:

The password contains less than 1 uppercase letters
The password contains less than 1 non-alphanumeric characters
The password is shorter than 16 characters

Пока пароль не будет соответствовать заданному шаблону.

Ну а дальше настраиваешь fail2ban по мануалам из гугла или ютуба и радуешься.

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Но вообще не рекомендую подобной херней заниматься и делать сразу всё на ключах + по возможности настраивать iptables.

Стоит ли менять 22 порт на другой?

А зачем? Если у тебя логин по ключам и fail2ban, да ради бога, пусть стучатся головой об стенку. Единственное забьются логи, да похер, логи надо сразу в лог-сервер заворачивать.

Как отключить логи я писал в этом посте.

Ну и для прикола можешь Port knocking настроить, если уж совсем делать нехуй.

Всем котиков и бородатых мужиков!