TGViewer
Bash Days | Linux | DevOps Bash Days | Linux | DevOps @bashdays · 23.6K subscribers
Post #365 11.1K
Привет друзья. Готовы поработать в субботу и потом отдохнуть 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 по мануалам из гугла или ютуба и радуешься.

Но вообще не рекомендую подобной херней заниматься и делать сразу всё на ключах + по возможности настраивать iptables.

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

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

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

А вообще всегда помни, если твою инфраструктуру захотят поиметь, а еще и денег за это кому-то заплатят, то ничего не поможет. Максимум можешь перевести свой сервер в оффлайн и то не факт что это как-то тебя защитит. Лично знаю много подобных случаев, да и ты всяко про такое слышал.


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

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

tags: #linux

@ВАSНDАYS | BАSHDАYS.CОM
More from @bashdays
  1. Sep 30, 2026↗️ Для всех, кто строит 15 октября Cloud․ru соберет инженеров, которые строят и эксплуатир…
  2. Sep 29, 2026Самый жаркий холивар в команде — это не systemd, а какие заказать роллы на всю команду. Од…
  3. Sep 24, 2026Post #1565
  4. Sep 23, 2026Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, по…
  5. Sep 22, 2026Всем привет, с вами TagdTagd. Сегодня опять поднимем тему архивов, но немного с другой сто…
  6. Sep 15, 2026Всем привет, с вами TagdTagd. И это вторая часть. Практическая. С первой частью можешь озн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →