Обновить

За ночь у меня удалили все 22 виртуальные машины

Время на прочтение10 мин
Охват и читатели91K
Всего голосов 71: ↑56 и ↓15+56
Комментарии149

Комментарии 149

После того как инфраструктура выросла до 20+ узлов переехал на личный Step-CA. Немного бесит необходимость начальной установки времени, у OpenWRT могут быть с этим заморочки когда инет недоступен, но в целом решаемо.

Не совсем понятно как свой СА защитит от взлома при максимально кривых настройках как в статье...

есть понимание, кто стоит за атакой? обиженный ученик?

Летом я зарелизил два проекта - Рублокс (аналог роблокса) и свой мессенджер на подобии вичата, назвал Маська. Обо всем снимал видео в тикток для сбора аудитории. За пару месяцев пришло примерно 8к регистраций, и с ними пришли рейдеры. Мои сервисы рейдили пару недель каждый день всеми возможными способами. Одному это удалось, хотя скорее я там оставил дверь открытой) Да, всех рейдеров, их ip и данные знаю.

их ip и данные знаю.

Данные, которые они пожелали оставить о себе.

Ого, интересно. Было бы интересно прочитать статью и об этом тоже. Что за рейдеры? Какие-то частные лица? Или структуры, связанные с государством? Чего хотели? Денег? Отжать продукт?

их ip и данные знаю.

По IP вычислили?

Как будто написать оскорбления и запустить при этом майнер( который должен тихо и незаметно работать)это нелогично для ноунейма, тут конечно что-то личное

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

Желательно ещё чтобы нагрузка на сервер его не вешала, а позволяла работать

чаще всего это были дети, которые насмотрелись мистера робота и с помощью нейронок занимались пинтестом. Большая часть взломщиков писали мне на почту или в тиктоке. Характер сообщений четко указывал на возраст. Чаще всего они парсили открытые данные моих сервисов и скдиывали мне с гордым видом, что они взломщики. Реальные уязвимости вскрыло всего несколько человек, и все они писали о них и просили исправить а не использовали в своих целях. Скорее всего мне так повезло, но и не стоит отрицать что я не все знаю и ваш комментарий имеет место быть)

занимались пинтестом

пЕнтест

Самое интересное не написали. Во сколько вы оцениваете размер ущерба от потери, в деньгах, и какова вероятность такого инцидента после всех ваших изменений?

Ущерб только репутационный. Взлом начался в 12 ночи по мск, к 8 утра уже все полностью было восстановлено и работало. В деньгах посчитать сложно - 10 литров бензина на поездку к серверу в соседний город для восстановления. Базы данных шифруются, но полного списка всего что сделал взломщик у меня не было. Сейчас вероятность конкретно такого взлома нулевая, ведь это и взломом в полной мере не назвать. Я оставил дверь открытой.

Почему-то сложилось впечатление после прочиения статьи, что проект с десятками виртуалок должен содержать что-то стоящее. А тут оказывается буря в стакане. /s Нулевая вероятность инцедента это скорее неправильная оценка для реальной системы.

глупый вопрос - а провайдер кто? если селектел и их же образ proxmox, то я могу рассказать как сломали и сертификаты/fail2ban вообще не помогли бы

Провайдера нет — это своё железо, физически стоит у меня, обычный домашний канал. Proxmox ставил сам, не из образа провайдера, так что тут вопрос отпадает.

Я читал об этом, но уже забыл напрочь. Там, вроде в образе был зашитый дефолтный пароль или ключ, или что-то такое?

... 10 литров бензина это не хухры-мухры!

В июне ещё были не такие большие деньги…

У меня был один пароль. На всё.

Дальше, в принципе, можно не читать, кмк.

Ну почему же, дальше

Плюс он был в открытом виде записан в рабочих файлах документации

ещё фееричнее.

Использовать пароль для SSH в наше время — это смело 😄 На некоторых "известных мне" серверах Fail2Ban фиксирует до 20 000 попыток подключения в сутки, причём всего 3-х попыток достаточно для блокировки IP атакующего.

FYI На скорости 10000 попыток в сенунду, для полного перебора 8-символьного пароля, состоящего из полного набора печатных символов ASCII, потребуется 21,02 столетия.

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

Там шансы намного больше, особенно с подходом - один пароль на много серверов, может быть этот же пароль быть в какой нибудь базе, и займёт, при условии правильной сортировки слитых данных, сильно меньше

В реальности там ничего не светит и со "слитыми" базами: в общем случае придется перебирать все комбинации логин+пароль на реальных скоростях порядка несколько десятков попыток в секунду.

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

Ну то есть проблема не в использовании пароля, а только в том, кто использует, верно?

Длина пароля защищает ОТ КРАЖИ БАЗЫ. В сценарии автора 8 знаков у пароля, 32 или 320 - никакой разницы вообще.

На скорости 10000 попыток в сенунду

Я одного не пойму, а почему вообще существует такая метрика как число попыток в секунду, если это число ограничено не отправляющей, а принимающей стороной? И больше 1 пароля в секунду или больше 10 в минуту, например, хакер при всём желании и сколь угодно больших мощностях не введёт. По-моему, это самый простой и логичный способ защиты от брутфорса. Главное - не настроить ограничение слишком жёстким (типа "вы ввели 10 неверных паролей, подождите 5 минут"), чтобы не создать неудобств реальному пользователю, вспоминающему пароль.

Я одного не пойму, а почему вообще существует такая метрика как число попыток в секунду, если это число ограничено не отправляющей, а принимающей стороной?

Пережиток древних времён, когда можно было через криво настроенный софт (например, apache) получить доступ к master.passwd, скачать его себе и там уже вволю брутфорсить.

А потом это превратилось в карго-культ.

Кто думает что можно подобрать 10символьный пароль - просто не умеет в арифметику 1 класса.

Кстати, fail2ban из коробки стоит только в ламерской убунте. В redhat и debian его нет.

Я лично переношу ssh на порт повыше, чтобы не засирали логи (максимальный вред от брутфорсеров)

у меня на нестандартный порт ssh просто на день позже начинают ломиться

а в моей реальности на порты выше 40000 не начинают даже после 10 лет.

Использование ключа смещает объект взлома с сервера на владельца сервера. Стоит ли?

если дефолтный порт ssh поменять на какой-нибудь другой то попытки подключения прекращаются

К вопросу кто как решает — в широком смысле решаю сертификатами и аппаратными ключами, TOTP. В узком смысле для SSH аппаратные ключи.

Уважаемый ТС, если вы самостоятельно не можете настроить безопасность своих серверов или сомневаетесь в результате самостоятельной настройки, установите openclaw иди hermes agent и поручите это сделать им. А заодно поручите им сделать cron задание по мониторингу активности и безопасности с оповещением в телеграм.

А по тексту статьи и рисункам / графикам разве не понятно, что там 146% ИИ сделано?
Я вообще бы сказал, что все в целом придумано нейронкой: от автора, до взлома и анализа, но не могу этого доказать. Особенно то, как мгновенно было проведено расследование и восстановление при нулевых знаниях по безопасности.

Картинки нейронкой собирал. Тексты писал лично. Восстановление прошло быстро благодаря настроеному резервному серверу, а расследование делал несколько дней после взлома.

Ну текст же тоже не вы писали, признайтесь :)

Например: "И вот тут самое интересное." Да и вообще очень узнаваемый стиль иишного текста.

Я бы скорее сказал, что текст сильно причесан ИИ. Или после ИИ редактуры ещё частично исправлен руками.

Некоторые абзацы не вызывают вопросов, а вот другие — ИИ воняет.

Весьма поучительная история. Хорошо, что все обошлось.

Если проект для вас важен - сейчас самое время провести аудит, вероятно, техдолг у вас накопился приличный.

кто как решает вопрос с хранением секретов

Для секретов в репозитории есть sops, например, и vault как KMS/PKI.

Для ssh есть системы типа Teleport, но вам, наверное, проще просто перейти на ключи и настроить fw (либо вообще разрешать ssh только через VPN).

есть ли у вас мониторинг, который реально будит ночью

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

BTW, для простых внешних проверок и алертинга есть uptime-kuma.

Если проект важен не аудит надо делать, а холодный бэкап...

Работу над ошибками никто не отменял.

Тем более, у автора внешний бэкап был, хоть и случайно, вместе с локальным бэкапом и репликой.

Интересная история. Я сам пару лет назад вместе с ии начал изучать, пробовать сервера, проксмокс, сети, сервисы и прочее. Признаю и понимаю что глубина и серьёзность знаний тут сомнительная, но прикладная выгода и удобства - несравнимы.

Сделал на работе сервер, убунту,

самба, шары, файловое хранилище и прочее -что реально сделало часть всего процесса нашего цеха куда проще , понятнее и прозрачнее

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

И буквально два запуска ватчера показали странную активность на сервере - 8 ядер под 100 процентов

С помощью ии конечно посмотрели процессы, папки, логи - оказалось Nocobase -тестовый контейнер , пробовал делать централизованную БД производства , имеет в старой установленной версии изъян в безопасности + открытая регистрация + открытый порт (с мыслями что вроде не страшно, тест, важных данных нет, да и честно "проиграл забыл") - эта связка привела к появлению суперадмина в БД с говорящим именем backdoor и паре майнеров на сервере которые неделю где то как то насиловали бедный and

Выводы интересные

Обновляться стоит чаще и тщательнее

Что то попробовал, потыкал - закрой за собой

Старый amd ещё как могёт - ЦЕХ вообще не заметил тормозов в работе с файлами и сервисами

Видимо, ещё и майнер был умный: загружал на 100, но не слишком агрессивно воевал за ресурсы.

Интересно, сколько майнер заработает на древнем cpu, стоит оно вообще того?

С одного сервера - копейки, но если серваков таких сотни - уже норм набегает)

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

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

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

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

Я забивал, пока у меня не взломали и не зашифровали 2 виндовых сервера.

Один пароль админа на обоих. Хранился в Evernote.

Один из серверов торчал голой жопой RDP в интернет, без VPN.

Сам дурак, да. Не надо так делать.

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

Дорогой был опыт, но небесполезный.

И я все это знал, в теории, но лень и надежда на "авось".

В моей практике пароль как-то утек, похоже, из переписки (мессенджера). Но там (как и везде в инфосеке) - не кино про джеймса бонда, а комедия с Луи де Фюнесом, где одни придурки-недотепы против других придурков-недотеп.

У нас - логин, пароль и адрес staging сервера был в переписке. "Хакеры" просто с ним зашли. Еще смешее - что на продакшне был точно тот же пароль. Адрес продакшна публичный, его многие тысячи человек знают, но они ломанули staging потому что бы адрес staging в письме, а ту же пару логин-пароль на проде даже и не попробовали. Залили шифровальщик-вымогатель (это вторая плюха программистов - пользователи могут заливать документы, но по факту через это можно было залить PHP скрипт). Я заметил высокую нагрузку, полез смотреть - ну и увидел это чудо.

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

По итогу взлома:
- Пароли, естественно, поменяли
- Проверку mimetype и имени файлов для заливаемых файлов сделали
- Задача "давайте уже принудим всех использовать 2FA" получила дополнительный аргумент.
- Частично зашифрованный сервер не стали чинить, просто бросили, подняли новый на AWS

Фактически, надо сказать спасибо взломщикам (какие-то из Индонезии) - этот факт взлома получилось использовать чтобы протолкнуть многие решения, про которые все говорили "нуууу даа.... хорошая идея, вообще надо, да.... как-нибудь наверное запланируем...". Тут в три дня все разом сделали.

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

Ну и сейчас, чтоб войти на staging надо и пароль и TOTP и еще и mTLS (это вообще лучшее решение, ящетаю).

Проверку mimetype и имени файлов для заливаемых файлов сделали

Раньше не проверяли, а сейчас верите на слово?)

Ну mimetype проверяется локально (не по данным от клиента).
Да и по расширению файла, какой-нибудь .docx/.pdf (даже если он будет на самом деле PHP) - в сам интерпретатор попасть не должен, так как по имени файла он все-таки документ.

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

Возможно, пропустил в тексте. Удачливый взломщик добрался до документации и в ней нашёл пароль? Или он умудрился подобрать пароль? Тогда, раз всё равно уже поимели, не могли бы вы написать, какой он (пароль) был, когда был целым? Мне как аматеру-содержателю аналогичной инфраструктуры, хотелось бы получше понять картину.

Вангую, что использовался пароль password1 безопасный пароль Password1!

Если автор достаточно стар, то мог быть hunter3.

Это откуда?

С оригинального башорга (который без .ru).

Ну это уже слииишком олдово, олдскулы свело однозначно.

ну давайте теперь бросаться в другую крайность: ключи, только ключи

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

Просто пароль надо посложнее чем qwedsa

Менеджер паролей

Менеджер паролей

«Брелок (сущ.) — маленькая фитюлька, предоставляющая человеку возможность потерять все ключи одновременно.» ©

Из нормального без проблем бэкапится. Вообще не иметь их на бумаге в сейфе немного странно.

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

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

Нормальный аппаратный менеджер паролей ничего не введёт пока кнопкой не подтвердишь. И база паролей в незашифрованном виде его не покидает.

Т.е. даже на взломанном компьютере можно получить только те пароли, что будут введены после взлома.

Аппаратный менеджер паролей бэкапить трудно. Когда он сломается, окажется, что треть паролей из бэкапа уже устарели.

? Вообще не трудно. Какой-нибудь мультипасс бэкапится сам ежедневно(ну или как скажешь). В чём проблемы то ?

Ну это как в истории про админов, что делятся на:

  1. не делающих бэкапы

  2. уже их делающих

  3. проверяющих работоспособность бэкапов

А со второго ключа пыль сдувать не надо – он в смартфоне, в настройках ssh-клиента.

смартфон - идеальное место для того, что вы не хотите, чтобы попало в чужие руки /s

смартфон - идеальное место для того, что вы не хотите, чтобы попало в чужие руки /s

Гопники согласно кивают.

Сейчас вроде если даже получил смартфон - как-то сложнее стало его вскрыть без пароля или пальца владельца?

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

Предлагаете, чтобы часть пальцев никогда не покидала периметр предприятия, да?

Фрезеровщиики согласно кивают.

А резервную копию ноутбука отменили что ли?

Просто пароль надо посложнее чем qwedsa

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

Раньше на Хабре предлагали использовать паттерн пароля. Универсальная база, но уникальные особенности для каждого сервиса, например, префикс. Для неопасных сервисов, где пароль - это простая "задвижка" от входа случайного любопытного, можно использовать базу без префикса.

Перечитывал несколько раз статью, подождал пока настоятся комментарии, и так и не понял (как и в комментариях выше) - где точка взлома (первый вход, сервер или web морда) ?

Подобран легкий пароль или каким-то образом он нашелся в открытых 350 файлах 🙄 документации?

Статья канечно кажется нейрослопом (из разряда "Я варила борщи а потом стала вайбкодером, Как я поднял 20мл а потом ушел в минус на 50мл" и так далее), но и такое может быть, когда заигрался и не хватает предыдущего опыта (например попался вирус в cms, или на компе, зашел на ftp и заразил весь сервер и тд).

Лет 15 назад когда был куплен первый vps (до этого только shared) и размещена cms - я гуглил как настроить сервер и там сразу были рекомендации: настроить fail2ban, поменять порты, использовать ключи и так далее. Здесь не нужно быть системным админом, все мы учились писать html странички и размещали первые скрипты, но это просто база для вебмастера, которая попадалась в каждой первой статье даже у хостеров, и занимала 5 минут на настройку.

А здесь и целая инфраструктура, и физические сервера, и один пароль, плюс записанный в сотнях файлах, короче абсурд.


Мне всегда эти телодвижения из инструкций кажутся нелепыми. Зачем нужен фейл2бан и менять порты, если пароль можно вводить 3 раза в минуту?

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

SECRET = os.environ.get('JWT_SECRET', 'K7x...9fQ')

Конструкция настолько привычная, что глаз её вообще не цепляет.

В каком месте она привычная? Она же орет "секрет в коде". Дайте угадаю, вы дали ИИ секрет и сказали "напиши" а она подставила его как значение по умолчанию, и вы решили что и так норм? А потом, когда оно стрельнуло, вы попросили опять же ИИ сделать разбор?

Знаете, в целом, абсолютно заслуженно поймали грабли.

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

Другой вариант: берём какую‑нибудь любимую (любимая — следовательно, помним её идеально), выбираем из неё один куплет, берём из неё один из куплетов, пароль — первая буква каждого слова в этом куплете. Выглядит как мусор, но с точки зрения «парольности» — идеально.

Например: CОнсДнноПЛснНкткв(естественно, набираем в английской раскладке).

Интересная схема. ИИ на предложении расшифровать анаграмму понес уверенный бред ;) Количество таких паролей невелико, если не лень - можно скачать сайт с текстами песен, найти вашу любимую песню.. Или зайти с другой стороны - если известны ваши вкусы - напрячь ИИ нагенерить анаграмм из песен из вашего плейлиста..

Количество таких паролей невелико, если не лень — можно скачать сайт с текстами песен, найти вашу любимую песню..

Только вот для этого надо знать, что ключом является именно песня, а не стихотворение, 14-я строка на 256-й странице «Войны и мiра», или слова, которыми вас послала девушка на первом свидании. Придумывать методы перебора имеет смысл только после того, как я Вам рассказал, по какой именно логике строится пароль — а до этого никаких вариантов, кроме полного перебора, у взломщика нет.

P.S.

Славься, Отечество наше свободное,
Дружбы народов надёжный оплот,
и далее по тексту.

Ахаха :)

ИИ под аббревиатуру сгенерировал куплет несуществующей песни ;)

снова осень на стекло давит ночью на окно

:)

Пароль хороший, особенно если его никогда не вводить и от него ничего не зависит ;) Если им пользоваться часто - рано или поздно спалитесь. Введете под камерой, под микрофоном, под кейлоггером..

Если им пользоваться часто - рано или поздно спалитесь.

Для того, чтобы спалить ключ — вообще ничего вводить не надо: он уже на диске лежит.

На диске много что лежит, но снаружи его не видно.

Ну да, картинка про 4096 битный ключ.. в таких условиях пароль тоже не работает

картинка про 4096 битный ключ

Картинка про молодогвардейцев. Они не сдали. Под пытками. А вам слабО?

(Не волнуйтесь, я уже давно знаю, что Вам — слабО.)

Они не сдали.

Они не сдали что? Пароль которого не знали?

По конфигурации сервера прям совсем непонятная солянка. И собирала эту солянку cloude. Так как по спекам явный косяк, я прям не знаю, чему ещё из статьи верить

UPD. у меня от этих пост мортем, нагаллюцинированных ИИшками аж глаз дёргается. То есть он расписывается в своей тупости смешивая доступную гипервизору память (не кратную 2N) с потоками процессора вместо реальных ядер. И т.д. Он с абсолютно серьёзной миной несёт чушь, которая может быть правдой, а может и нет, а может на половину... Я уже участвовал в таких разборах полётов, когда заведовал всем обезьяна с гранатой менеджер с клодом, который до пены у рта доказывал мне несуществующие факты и выводы, потому что он это читал это из окна чата, куда скормил пару скриншотов проблемы.

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

Это потому что с каждым годом отличить ИИ от человека все сложнее. В какой то момент не будет смысла гадать ИИ писал или человек, вероятность станет 50 на 50.

Этих конфигураций не существует. Не бывает таких серверов. Я не говорю, что они плохие, они нереальные.

Ахахаха. Модели скинуть серверов? Или что? Вам проще конечно сказать, что они выдуманные,чем в вопросе разобраться. А можете пример конфига "настоящего" сервера привести?

Я не понимаю эту агрессию. Для человека, работающего с детьми, это особенно странно.
Ещё раз: 3550 M4 не мог иметь 4 сокета с E7 процессорами. Я не говорю, что IBM/Lenovo плохие. Я говорю, что клод, исходя из тех данных, что вы ему дали, сделал неправильные выводы. Если даже по таким легко проверяемым нюансам, как технические характеристики серверов, уже есть ошибки, то с чего мы (да и вы тоже) должны доверять всему остальному, что сказал клод? В этом мысль. И я её достаточно корректно и без стёба описал несколько раз.

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

IBM, скорее всего, не 3550 М4, а 3850 Х5. Тогда количество сокетов, потоков и RAM сходится.

Ну и вряд ли об этом не знал Клод, достаточно большая модель. Больше похоже на изначальную ошибку автора.

А самому разобраться методом вдумчивого чтения документации, конечно не вариант, да...

А зачем на каждый сервер свой пароль.

Когда правильным будет отключить вход по паролю в ssh и использовать только ключи

Ну рили

А почему репликация отвалилась? Это помогло или не оказало влияния?

Совет ТС-су: освоить терраформ и анзибл/паппет чтоб все состояния серверов и виртуалок были декларативно описаны в гите. Остается только бекапы, и повторимость окружений быстро восстанавливается до нужного состояния. Это может быть сложно для начала, но это true way в проде и цель куда стремиться, а после и обучать "детей" :)

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

У меня был один пароль. На всё.

Я несколько лет использую только авторизацию по ключу. Зачем использовать пароли для ssh, если надежнее использовать ключ?

Один раз его сгенерировал, прописал на сервере и пусть сколько угодно пытаются взломать)

Для совсем надежности отключить вход под root, создать отдельного юзера, а переход под root ввести пароль (не тот, что один на всё)

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

Я ключи SSH храню в KeePassXC, SSH умеет брать их прямо оттуда. А уж один файлик с ключами и паролями бекапится по всякому.

использование JWT токена кстати тоже довольно таки рискованно если он неправильно настроен, подробнее тут: https://youtu.be/rWwCIBs6PuY?si=w___bek3auKh1kGd

fail2ban - штука вообще 100% бесполезная. Никто сейчас не подбирает пароль с одного IP.

32 символа пароля - а почему так мало (сарказм)? Подобрать через ssh - невозможно за конечное время даже восьмизначный.

fail2ban - штука вообще 100% бесполезная

До того момента, когда ввел пароль с ошибкой и заблокировал сам себя.

Именно. Это единственный известный мне реальный сценарий срабатывания fail2ban.

Зато она учит всегда оставлять backdoor.

До того момента, когда ввел пароль с ошибкой и заблокировал сам себя.

Для этого вводится «жёлтая зона» (IP-адресов), в случае попыток входа с которой блокируем не после 5 неудачных попыток, а после, скажем, 100.

Back door то есть.

Пользователя, который иногда 5 раз вводил свой пароль с ошибкой, я Вам с радостью покажу — это я. А Вы мне покажите пользователя, который 100 раз вводил свой пароль с ошибкой (и при этом у него разу так на десятом не возникло никаких подозрений).

Ну, возникло подозрение - и что? Пациенту все равно нужно войти, он начинает считать попытки, нервничает, ошибается снова.

Ну, возникло подозрение — и что?

И берём себя в руки, делаем несколько глубоких вдохов, проверяем состояние CAPS LOCK и NUM LOCK, индикатор раскладки клавиатуры, печатаем несколько буковков в адресной строке (чтобы убедиться, что раскладка реально правильная) и начинаем печатать пароль со скоростью 1 символ в секунду, каждый раз проверяя, что палец лежит на нужном символе.

Пациенту все равно нужно войти, он начинает считать попытки, нервничает, ошибается снова.

«Не суетись под клиентом» © О том‑то и речь, что после десятка попыток загорается лампочка «я что‑то делаю не так!», и включается режим выяснения «а что я делаю не так?». На выяснение у поцыента остаётся ещё 90 попыток.

"никто" может и нет, а некоторые вполне себе отправляют по миллиону попыток авторизации...

пароль стоял на SSH

На этом я и прекратил чтение. Пароль, Карл! Пароль в 2026 году…

ну расскажи как ты без пароля поднимаешь сервер, который грузится в single mode ?

Через консоль, конечно же. Пароли в ssh — это выстрел себе не в ногу, а сразу в голову.

Ну, и чем автогегеренный длиииинный пароль хуже?

Не только не хуже, но и удобнее ключей.

Чем удобнее, чем? (Ц)

Ну, например, тем, что он всегда с Вами, даже когда Вы просыпаетесь голый в реанимации соседнего города?

И с трудом вспоминаете как вас зовут? Тогда уж биометрия.

И с трудом вспоминаете как вас зовут?

В этом случае Вы тем более не вспоминаете, на какой сервер Вам надо вдруг срочно зайти.

Тогда уж биометрия.

А более лучший способ предоставить кому угодно возможность получить доступ к Вашей системе, воспользовавшись Вашей [хорошо ещё, если временно] бесчувственной тушкой, Вы не придумали?

Правильная биометрия работает в присутствии специально назначенного офицера.

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

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

https://learn.microsoft.com/en-us/security/benchmark/azure/mcsb-v2-controls-policy-mapping#im-6

https://docs.aws.amazon.com/pdfs/linux/al2/ug/al2-ug.pdf

https://docs.redhat.com/en-us/documentation/red_hat_enterprise_linux/9/pdf/configuring_basic_system_settings/Red_Hat_Enterprise_Linux-9-Configuring_basic_system_settings-en-US.pdf

https://www.ncsc.gov.uk/collection/device-security-guidance/infrastructure/enterprise-authentication-policy

https://www.cisa.gov/news-events/cybersecurity-advisories/aa25-239a

По такому же принципу, Passkeys считаются более безопасными для массового использования, чем пароли, ибо они тоже по схеме ассиметричного шифрования. Я вот себе например взял парочку Yubikey и у меня SSH ключи и Passkeys там хранятся.

На уровне практически любых нормативных документов рекомендуют использовать SSH ключи вместо паролей.

А Вы пробовали эти самые документы почитать?

Although SSH itself provides an encrypted connection, using passwords with SSH still leaves the VM vulnerable to brute-force attacks.

Понимаете, почему они "рекомендуют использовать SSH ключи вместо паролей"? Чисто для защиты от брутфорса. И всё.

Но эти документы полностью упускают из виду, что длина пароля ограничена исключительно ленью пользователя. А вот у сисадмина Васи пароль — 30 символов (строчка из его любимой песни, в которой каждая последняя буква заглавная). Удачи брутфорсерам.

Понимаете, почему они "рекомендуют использовать SSH ключи вместо паролей"? Чисто для защиты от брутфорса. И всё.

Так, и если бы автор где-то видел подобные рекомендации и бездумно последовал ими просто даже "ради защиты от брутфорса", была бы эта статья?

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

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

Что с ssh ключами? Создал и забыл про них, автоматически входишь в свои серваки, ничего не надо вводить, не надо ничего запоминать. Даже если ты мамонт и тебя проскамили зайти на чужой сервер и ты заново туда залил ключ, то уходит только публичная часть, а не приватная. Залил бекап на флешку или хотя бы в облако, чтобы не потерять.

Я не вижу ни одной причины не использовать SSH ключи, если их можно использовать.

>Создал и забыл про них, автоматически входишь в свои серваки

бро, ты в какую сторону воюешь?

сколько-сколько у тебя сертификатов в

~/.ssh/id_ed25519*

??! )))

очень безопасТно, даже не надо кейлоггер писать, просто два файлика в которых ВСЁ доступы

Если есть доступ к файлам - неважно, 2 файла или 222.

>нашлось 347 файлов, где он так или иначе фигурировал

>Если есть доступ к файлам

дык, у буратины этот сертификат будет лежать в 347 местах.

итого, пришли к тому, что проблема не в пароле, а в ДНКбуратине

Бро, грустно, конечно, если ты делишь свой компьютер с другими братьями или пацанами по общаге и все имеют доступы до твоих файлов, но раз такое дело, то включи свой любимый 40-символьный пароль в генерацию SSH ключа и будешь его вводить только когда добавляешь ключ в агента.

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

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

Пап, ну и сильно тебе помог этот обвес в зоопарке, когда у тебя из рук выхватили ноутбук?

Если дело дошло до выхватывания - у вас дыра в безопасности. Пароль тоже не поможет.

Пароль тоже не поможет.

А если нет разницы — зачем платить больше?
P.S. Поможет вот это

Когда приёмник удаляется более чем на 2 метра от «кнопки», либо когда кнопка нажимается, компьютеру подаётся команда заблокироваться.

Картинка про wireless кнопку и газовый ключ.хцкд

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

К этому, предположу что вдобавок: порт SSH дефолтный, fail2ban нет, мониторинга нет, логов нет и прочее прочее...

Что тут скажешь, на ум приходит только:

Скрытый текст

Уж простите...

Или даже хуже

На будущее - поставьте SIEM-систему и агента на каждый сервер, включая домашний и ноутбук. Тот же бесплатный Wazuh даст круглосуточный мониторинг, fail2ban, алерты в телеграм. Изучит сервер, покажет что и как настроить.

После пары часов чтения документации ни один "воин" не проберется.

В целом. Твоя основная проблема, что ты "голой жопой" высунул ssh основного сервера в сеть. Если тебе не хотелось морочиться с впнами и опенконектами, можно было настроит фаервол чтобы на ssh пускал только с твоего ip. Всё! И ничего бы не случилось.

Это называется - раздолбайство.
Я на своей копеечной впске и то озаботился ключами и настройкой фаерволла. Наружу даже ssh не светится.

у меня стойкое ощущение, что автор сказочник какой-то.

и статьи вымышленные, ВСЕ.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации