Мы запустили профессиональную сертификацию по облачным технологиям!
Наша программа сертификации ориентирована на международные стандарты, поэтому теперь специалисты по облачным технологиям смогут официально подтвердить свои компетенции. Это поможет им получить конкурентное преимущество при трудоустройстве, ускорить развитие карьеры и претендовать на более высокую оплату. А для тех, кто работает с заказчиками напрямую, — получать более выгодные контракты.
Экзамен на сертификат Yandex Cloud Certified Engineer Associate проверяет знания и навыки в шести областях:
• Базовые облачные технологии
• Хранение и обработка данных
• DevOps и автоматизация
• Бессерверные вычисления
• Информационная безопасность
• Биллинг
🔍 О том, как устроена сертификация, что нужно сделать для подготовки и участия в первом экзамене, читайте по ссылке.
Наша программа сертификации ориентирована на международные стандарты, поэтому теперь специалисты по облачным технологиям смогут официально подтвердить свои компетенции. Это поможет им получить конкурентное преимущество при трудоустройстве, ускорить развитие карьеры и претендовать на более высокую оплату. А для тех, кто работает с заказчиками напрямую, — получать более выгодные контракты.
Экзамен на сертификат Yandex Cloud Certified Engineer Associate проверяет знания и навыки в шести областях:
• Базовые облачные технологии
• Хранение и обработка данных
• DevOps и автоматизация
• Бессерверные вычисления
• Информационная безопасность
• Биллинг
🔍 О том, как устроена сертификация, что нужно сделать для подготовки и участия в первом экзамене, читайте по ссылке.
This media is not supported in your browser
VIEW IN TELEGRAM
Атаки через почту. Как защититься?
По данным Positive technologies, 92% фишинговых атак начинаются с электронного письма. Важно постоянно тестировать почту на уязвимости, чтобы устранить основной вектор атак.
Positive Technologies представляет сервис для проверки безопасности почты – PT Knockin. Теперь вы можете за 2 минуты узнать, хорошо ли ваш ящик защищен от вредоносного ПО, а также получить рекомендации по улучшению работы средств защиты.
Симулятор атак на почту PT Knockin абсолютно безопасен для устройства и корпоративной сети. Бесплатно проверить защищенность корпоративной почты можно прямо сейчас – переходи на сайт!
[Проверить безопасность почты]
По данным Positive technologies, 92% фишинговых атак начинаются с электронного письма. Важно постоянно тестировать почту на уязвимости, чтобы устранить основной вектор атак.
Positive Technologies представляет сервис для проверки безопасности почты – PT Knockin. Теперь вы можете за 2 минуты узнать, хорошо ли ваш ящик защищен от вредоносного ПО, а также получить рекомендации по улучшению работы средств защиты.
Симулятор атак на почту PT Knockin абсолютно безопасен для устройства и корпоративной сети. Бесплатно проверить защищенность корпоративной почты можно прямо сейчас – переходи на сайт!
[Проверить безопасность почты]
🙂 Мухаха, наебнёмка SSH
Вводные: У клиента есть сервак с авторизацией по ssh ключам. С виду все настроено верно. Катают ансиблом.
Проблема: При подключении к серверу, продолжает запрашиваться пароль. Хотя явно указан ключ для подключения, а на сервере прописан публичный ключ клиента в
Проблема на самом деле распространенная. Для отладки открываем логи авторизаций и смотрим что происходит. И да, никто блядь не читает логи, а сразу начинают искать суслика, которого нет. ЧИТАЙ ЛОГИ!
Понятно дело, в логах видим ошибку:
С этой ошибкой ты всяко бодался. Смотрим права. И действительно, на файле
✔️ \033[1m Но сейчас про другое \033[0m
Как сказать пингвину, чтобы он забил хуй на проверку прав для этих ключей?
А вот так, добавляем в
Ну и рестартим демона
Всё. Теперь можешь играться с правами ключей. Хоть 000 выстави. Права проверяться не будут и тебя успешно пропустят без пароля.
Короче для дебага фишка мастхев, если в логах хуй с маслом, включаем эту опцию и проверяем, действительно ли дело в правах на ключи или дело в кривых руках.
Финк диферент!
tags: #linux #debug
@ВАSНDАYS | BАSHDАYS.CОM
Вводные: У клиента есть сервак с авторизацией по ssh ключам. С виду все настроено верно. Катают ансиблом.
Проблема: При подключении к серверу, продолжает запрашиваться пароль. Хотя явно указан ключ для подключения, а на сервере прописан публичный ключ клиента в
authorized_keys
.Проблема на самом деле распространенная. Для отладки открываем логи авторизаций и смотрим что происходит. И да, никто блядь не читает логи, а сразу начинают искать суслика, которого нет. ЧИТАЙ ЛОГИ!
Понятно дело, в логах видим ошибку:
message repeated 4 times: Authentication refused: bad ownership or modes for file /root/.ssh/authorized_keys
С этой ошибкой ты всяко бодался. Смотрим права. И действительно, на файле
authorized_keys
стоят 3 топора (777). А должно быть 600. Как фиксить, ежу понятно.✔️ \033[1m Но сейчас про другое \033[0m
Как сказать пингвину, чтобы он забил хуй на проверку прав для этих ключей?
А вот так, добавляем в
/etc/ssh/sshd_config
строчку:StrictModes no
Ну и рестартим демона
systemctl restart sshd
Всё. Теперь можешь играться с правами ключей. Хоть 000 выстави. Права проверяться не будут и тебя успешно пропустят без пароля.
Когда StrictModes установлено в no, SSH сервер не будет так строго проверять права доступа к этим файлам и каталогам. Это означает, что, например, если домашний каталог пользователя имеет права доступа, которые обычно не допускаются (например, другие пользователи могут читать каталог), SSH сервер все равно будет работать.
Установка StrictModes no уменьшает уровень безопасности, так как позволяет некоторым нежелательным правам доступа с точки зрения безопасности, но это может быть полезно в некоторых сценариях, например, при развертывании на тестовых серверах или в средах, где безопасность не является приоритетом.
Короче для дебага фишка мастхев, если в логах хуй с маслом, включаем эту опцию и проверяем, действительно ли дело в правах на ключи или дело в кривых руках.
Финк диферент!
tags: #linux #debug
@ВАSНDАYS | BАSHDАYS.CОM
❓ Как освоить Linux на профессиональном уровне быстро и эффективно?
🎁 Начните с бесплатного практического урока «Работа с IPTables. Фильтрация пакетов» от OTUS, где вы вместе с опытным экспертом:
- разберёте основные возможности сетевого фильтра IPTables на примере системы Ubuntu 22.04;
- изучите архитектуру подсистемы Netfilter и основные команды утилита iptables;
- научитесь настраивать рабочую конфигурацию сетевого фильтра для реального сервера.
⏰ Занятие пройдёт 11 апреля в 19:00 мск в рамках курса «Administrator Linux. Professional». Доступна рассрочка на обучение!
👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/TEe2/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🎁 Начните с бесплатного практического урока «Работа с IPTables. Фильтрация пакетов» от OTUS, где вы вместе с опытным экспертом:
- разберёте основные возможности сетевого фильтра IPTables на примере системы Ubuntu 22.04;
- изучите архитектуру подсистемы Netfilter и основные команды утилита iptables;
- научитесь настраивать рабочую конфигурацию сетевого фильтра для реального сервера.
⏰ Занятие пройдёт 11 апреля в 19:00 мск в рамках курса «Administrator Linux. Professional». Доступна рассрочка на обучение!
👉 Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/TEe2/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🧠 Вебинар "Как работают программы в Linux?"
На бесплатном практическом уроке от OTUS, вы вместе с опытным экспертом изучите системные вызовы, сигналы и межпроцессное взаимодействие в Linux. Также преподаватель ответит на все вопросы по теме.
👉 Зарегистрируйтесь на вебинар чтобы принять участие и получить подарок https://otus.pw/9Qi3/
🎁 Всем кто зарегистрируется подарим урок «Настройка Nginx для высоких нагрузок и защиты от DoS-атак»
⏰ Занятие пройдёт 16 апреля в 20:00 мск
📌 Вебинар пройдет в рамках курса «Инфраструктура высоконагруженных систем». Доступна рассрочка на обучение!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
На бесплатном практическом уроке от OTUS, вы вместе с опытным экспертом изучите системные вызовы, сигналы и межпроцессное взаимодействие в Linux. Также преподаватель ответит на все вопросы по теме.
👉 Зарегистрируйтесь на вебинар чтобы принять участие и получить подарок https://otus.pw/9Qi3/
🎁 Всем кто зарегистрируется подарим урок «Настройка Nginx для высоких нагрузок и защиты от DoS-атак»
⏰ Занятие пройдёт 16 апреля в 20:00 мск
📌 Вебинар пройдет в рамках курса «Инфраструктура высоконагруженных систем». Доступна рассрочка на обучение!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
✔️ Сделаем за час в течение недели
Все из вас знают про канализационные люки и т.п. кринжовые задачи на собесах. Когда я работал в региональной веб-студии, директор этого цирка абсурда придумал свою кринжату.
Тестирование проводилось на кандидатах, которые претендовали на роль бэкенд разработчика. Ща будет жара!
Короче всем кандидатам назначалось одно время для собеса. Собиралось 5-10 человек. Всем вручали кубик-рубика. Включали таймер на 15 минут и понеслась пизда по кочкам.
Как ты понял, нужно было за 15 минут собрать эту шайтан игрушку. В лучшем случае из 10 человек, успешно собирали двое. Всех остальных вышвыривали обратно на мороз с фразой — мы вам перезвоним.
А дальше была битва на ножах? Неа! Брали на испытательный сразу двух человек и выживал только один (как в фильме Горец), самый скилловый, который за 3 месяца меньше всего нафакапил и принес больше денег фирме.
Вот такие вот эксперименты над людьми. Думаю они до сих пор это практикуют, так как, там напрочь отбитое начальство. Не удивлюсь если девопсов начали проверять на детекторе лжи.
Я проработал там 5 лет и ни разу у меня не было root доступа. Как я работал без рута? Шеф вводил пароль и сидел рядом пока я пилил таски. Пиздец…
Зачем кубик то собирать? Да всё просто! Если бэкендер смог собрать кубик, значит у него с алгоритмами заебись и в голове порядок. Значит он это уже делал раньше, значит нейронные связи установлены правильно.
Есть тут доля правды, ради интереса поспрашивал своих бэкендеров, сука, все как один сказали — да, мы можем собрать кубик, похуй хоть 3x3 хоть 13x13. Демоны какие-то )))
Задал этот же вопрос фронтэндерам, в ответ получил — Рома, ты ёбнутый, мы кнопочки двигаем, а не в кубики играем.
Вот и выводы. Если ты не умеешь собирать кубик-рубика, то ты не можешь быть бэкендером. Можешь конечно, но недостаточно хорошим.
Подумай, возможно как раз кубик поможет тебе решить вопросы с карьерной лестницей и разблокирует темные участки мозга.
А ты умеешь собирать кубик? Я вот нет, да и в бэкендеры не особо хочу. Но один раз по мануалу собрал, удовольствия особого не испытал.
tags: #рабочиебудни
@ВАSНDАYS | BАSHDАYS.CОM
Все из вас знают про канализационные люки и т.п. кринжовые задачи на собесах. Когда я работал в региональной веб-студии, директор этого цирка абсурда придумал свою кринжату.
Тестирование проводилось на кандидатах, которые претендовали на роль бэкенд разработчика. Ща будет жара!
Короче всем кандидатам назначалось одно время для собеса. Собиралось 5-10 человек. Всем вручали кубик-рубика. Включали таймер на 15 минут и понеслась пизда по кочкам.
Как ты понял, нужно было за 15 минут собрать эту шайтан игрушку. В лучшем случае из 10 человек, успешно собирали двое. Всех остальных вышвыривали обратно на мороз с фразой — мы вам перезвоним.
А дальше была битва на ножах? Неа! Брали на испытательный сразу двух человек и выживал только один (как в фильме Горец), самый скилловый, который за 3 месяца меньше всего нафакапил и принес больше денег фирме.
Вот такие вот эксперименты над людьми. Думаю они до сих пор это практикуют, так как, там напрочь отбитое начальство. Не удивлюсь если девопсов начали проверять на детекторе лжи.
Я проработал там 5 лет и ни разу у меня не было root доступа. Как я работал без рута? Шеф вводил пароль и сидел рядом пока я пилил таски. Пиздец…
Зачем кубик то собирать? Да всё просто! Если бэкендер смог собрать кубик, значит у него с алгоритмами заебись и в голове порядок. Значит он это уже делал раньше, значит нейронные связи установлены правильно.
Есть тут доля правды, ради интереса поспрашивал своих бэкендеров, сука, все как один сказали — да, мы можем собрать кубик, похуй хоть 3x3 хоть 13x13. Демоны какие-то )))
Задал этот же вопрос фронтэндерам, в ответ получил — Рома, ты ёбнутый, мы кнопочки двигаем, а не в кубики играем.
Вот и выводы. Если ты не умеешь собирать кубик-рубика, то ты не можешь быть бэкендером. Можешь конечно, но недостаточно хорошим.
Подумай, возможно как раз кубик поможет тебе решить вопросы с карьерной лестницей и разблокирует темные участки мозга.
А ты умеешь собирать кубик? Я вот нет, да и в бэкендеры не особо хочу. Но один раз по мануалу собрал, удовольствия особого не испытал.
tags: #рабочиебудни
@ВАSНDАYS | BАSHDАYS.CОM
Как создавать и настраивать различные типы сервисов в Kubernetes?
Эта тема актуальна, так как играет ключевую роль в развертывании масштабируемых и надежных приложений в контейнерах.
Освойте ее на бесплатном практическом уроке от OTUS. Спикер — преподаватель курса и действующий Senior DevOps Engineer. На вебинаре вы узнаете, как создавать и настраивать различные типы сервисов в Kubernetes:
- ClusterIP для внутренних связей;
- ExternalService для внешнего доступа;
- NodePort для открытия порта на уровне узла;
- LoadBalancer для балансировки нагрузки.
Занятие пройдёт 11 апреля в 20:00 (мск) в рамках набора на онлайн-курс «Инфраструктурная платформа на основе Kubernetes». Спикер — преподаватель курса и действующий Senior DevOps Engineer. Также на вебинаре вы сможете задать эксперту вопросы о самом курсе и перспективах выпускников.
Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок: https://vk.cc/cw6rB9
Для всех, кто пройдет вступительный тест и запишется на бесплатн...
Эта тема актуальна, так как играет ключевую роль в развертывании масштабируемых и надежных приложений в контейнерах.
Освойте ее на бесплатном практическом уроке от OTUS. Спикер — преподаватель курса и действующий Senior DevOps Engineer. На вебинаре вы узнаете, как создавать и настраивать различные типы сервисов в Kubernetes:
- ClusterIP для внутренних связей;
- ExternalService для внешнего доступа;
- NodePort для открытия порта на уровне узла;
- LoadBalancer для балансировки нагрузки.
Занятие пройдёт 11 апреля в 20:00 (мск) в рамках набора на онлайн-курс «Инфраструктурная платформа на основе Kubernetes». Спикер — преподаватель курса и действующий Senior DevOps Engineer. Также на вебинаре вы сможете задать эксперту вопросы о самом курсе и перспективах выпускников.
Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок: https://vk.cc/cw6rB9
Для всех, кто пройдет вступительный тест и запишется на бесплатн...
Есть ли мемы на Марсе? Как вытянуть репку с помощью кода? Попробуйте разгадать все тайны Гиперкуба на Tinkoff CTF.
20 и 21 апреля пройдет ИТ-соревнование с призами до 420 000 ₽.
Выберите лигу по скиллам и участвуйте даже без опыта в спортивном хакинге. Задания будут интересны сильным разработчикам, QA- и SRE-инженерам, аналитикам и другим ИТ-специалистам.
Играйте как вам удобно: онлайн из дома или офлайн — в одном 16 городов России, Беларуси и Казахстана. В офлайне вас ждет общение с другими игроками, квизы, мерч и другие развлечения.
Узнайте больше о соревновании и зарегистрируйтесь до 19 апреля
erid:2Vtzqx5Gph4
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
20 и 21 апреля пройдет ИТ-соревнование с призами до 420 000 ₽.
Выберите лигу по скиллам и участвуйте даже без опыта в спортивном хакинге. Задания будут интересны сильным разработчикам, QA- и SRE-инженерам, аналитикам и другим ИТ-специалистам.
Играйте как вам удобно: онлайн из дома или офлайн — в одном 16 городов России, Беларуси и Казахстана. В офлайне вас ждет общение с другими игроками, квизы, мерч и другие развлечения.
Узнайте больше о соревновании и зарегистрируйтесь до 19 апреля
erid:2Vtzqx5Gph4
Реклама. АО "Тинькофф Банк", ИНН 7710140679, лицензия ЦБ РФ № 2673
Открытие костыльного цеха
Привет. Все бэкапы, как и полагается я сжимаю через tar + gzip. Ну повелось так. Можно сказать это устоявшийся стандарт.
Но моя ебанца покоя не даёт, вот и в этот раз сижу, думаю — а хули так долго все сжимается, у меня 32 ядра на сервере с репликой, диск не самый плохой. А оно еле ворочается.
Пошел ковырять кишочки, оказывается у меня gzip хуярит на одном ядре. Не понял. Так и есть. Говорят что с версии 1.7 все изменилось и оно само подстраивается под железо. НИХУЯ, у меня 1.10. Из коробки работает одно ядро.
Хм, может для gzip есть какой-то ключ? Бегло пробежался, в хелпах про threads ничего нет.
Ну раз так. Расчехляем свиней. PIGZ!
Ставится из репы:
Давай затестим. Создаем 10ти гигабайтный файл.
Запускаем тесты:
Хуясе да! PIGZ сжал 10гигабайт за 8 секунд. А gzip понадобилось аж 46 секунд. Разница ОЩУТИМА! Понятно тесты синтетические, но мне их достаточно.
Ради интереса открыл htop, всё верно. Gzip усирается на одном ядрышке. А «свиньи» сразу жрут всё с костями. Прекрасно!
✔️ Теперь pigz нужно подружить с tar
С этим все просто, через пайп:
Либо как вариант через ключ
Но мне первый больше нравится. А чтобы видеть прогресс, можешь запустить так:
Тут используется утилита pv, про нее писал в этом посте.
Короче pigz прям тема и гибко конфигуряется. Я в восторге. Например, можешь сказать ей чтобы использовала только 2 ядра и 2 потока. Почитай хелпину если интересно. Основное я тебе рассказал. Изучай.
Увидимся! Пойду адаптировать под свои бэкапы.
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Привет. Все бэкапы, как и полагается я сжимаю через tar + gzip. Ну повелось так. Можно сказать это устоявшийся стандарт.
Но моя ебанца покоя не даёт, вот и в этот раз сижу, думаю — а хули так долго все сжимается, у меня 32 ядра на сервере с репликой, диск не самый плохой. А оно еле ворочается.
Пошел ковырять кишочки, оказывается у меня gzip хуярит на одном ядре. Не понял. Так и есть. Говорят что с версии 1.7 все изменилось и оно само подстраивается под железо. НИХУЯ, у меня 1.10. Из коробки работает одно ядро.
Хм, может для gzip есть какой-то ключ? Бегло пробежался, в хелпах про threads ничего нет.
Ну раз так. Расчехляем свиней. PIGZ!
PIGZ (Parallel Implementation of GZIP) - это утилита для сжатия файлов, которая использует параллельные вычисления для ускорения процесса сжатия данных.
Ставится из репы:
apt install pigz
, а где-то уже сразу установлен.Давай затестим. Создаем 10ти гигабайтный файл.
truncate -s 10G bashdays
Запускаем тесты:
time gzip -k -c bashdays > /dev/null
real 0m46.590s
time pigz -k -c bashdays > /dev/null
real 0m8.535s
Хуясе да! PIGZ сжал 10гигабайт за 8 секунд. А gzip понадобилось аж 46 секунд. Разница ОЩУТИМА! Понятно тесты синтетические, но мне их достаточно.
Ради интереса открыл htop, всё верно. Gzip усирается на одном ядрышке. А «свиньи» сразу жрут всё с костями. Прекрасно!
✔️ Теперь pigz нужно подружить с tar
С этим все просто, через пайп:
tar cf - bashdays | pigz -k -c > bashdays.tar.gz
Либо как вариант через ключ
--use-compress-program
tar --use-compress-program="pigz --best --recursive" -cf bashdays.tar.gz bashdays
Но мне первый больше нравится. А чтобы видеть прогресс, можешь запустить так:
tar cf - bashdays | pigz -k -c | pv > bashdays.tar.gz
Тут используется утилита pv, про нее писал в этом посте.
Короче pigz прям тема и гибко конфигуряется. Я в восторге. Например, можешь сказать ей чтобы использовала только 2 ядра и 2 потока. Почитай хелпину если интересно. Основное я тебе рассказал. Изучай.
Увидимся! Пойду адаптировать под свои бэкапы.
tags: #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
🌳 Tesla A100 на платформе immers.cloud. Графический процессор с максимальным ускорением для обучения и инференса моделей искусственного интеллекта.
⚡️ Особенности A100:
- Установлены блоки памяти HBM2e внутри чипа для увеличения производительности до 20 раз в сравнении с предыдущими моделями.
- Тензорные ядра поддерживают широкий диапазон точностей вычислений, включая FP16, FP64 и INT8.
- Доступно объединение памяти и вычислительных мощностей с помощью NVLink мостов для достижения высокой пропускной способности.
💸Тарифы:
- Выгодные долгосрочные тарифы со скидками до 35% при предоплате за 30 или 60 дней.
- Цена за A100 начинается от 209,95 рублей, а минимальная конфигурация с NVLink доступна от 434,67 руб.
Повышайте производительность проектов с Tesla A100 на immers.cloud!
🎁 Для подписчиков паблика предлагаем эксклюзивный бонус: 20% к пополнению счета. Готовы подобрать индивидуальные конфигурации под конкретные задачи.
✈ Подписаться на immers.cloud
Творите, развивайтесь, масштабируйтесь вместе с на...
⚡️ Особенности A100:
- Установлены блоки памяти HBM2e внутри чипа для увеличения производительности до 20 раз в сравнении с предыдущими моделями.
- Тензорные ядра поддерживают широкий диапазон точностей вычислений, включая FP16, FP64 и INT8.
- Доступно объединение памяти и вычислительных мощностей с помощью NVLink мостов для достижения высокой пропускной способности.
💸Тарифы:
- Выгодные долгосрочные тарифы со скидками до 35% при предоплате за 30 или 60 дней.
- Цена за A100 начинается от 209,95 рублей, а минимальная конфигурация с NVLink доступна от 434,67 руб.
Повышайте производительность проектов с Tesla A100 на immers.cloud!
🎁 Для подписчиков паблика предлагаем эксклюзивный бонус: 20% к пополнению счета. Готовы подобрать индивидуальные конфигурации под конкретные задачи.
✈ Подписаться на immers.cloud
Творите, развивайтесь, масштабируйтесь вместе с на...
Переходите на тёмную сторону тему на Хабре вместе с Yandex Cloud!
Мы знаем о любви разработчиков к тёмной теме. И знаем, что многим её не хватало на Хабре. Встречайте технический квест от Хабра и Yandex Cloud, пройдя который вы сможете подключить долгожданную тёмную тему и выиграть мерч.
Пройти квест и подключить темную тему можно здесь
Мы знаем о любви разработчиков к тёмной теме. И знаем, что многим её не хватало на Хабре. Встречайте технический квест от Хабра и Yandex Cloud, пройдя который вы сможете подключить долгожданную тёмную тему и выиграть мерч.
Пройти квест и подключить темную тему можно здесь
Привет отдыхающим. Хош не хош, а постом вас нужно порадовать и желательно интересным. Вот сейчас и порадую, самое время.
Сегодня будем дебажить и багфиксить. Узнаем что такое core файлы в Linux и как с ними взаимодействовать.
Иногда в Linux появляются какие-то странные файлы, с названием
А этот высер можно либо отключить, либо залезть в него рукой и поковырять. На самом деле все эти «Корки», очень полезный материал для изучения и отладки падающих приложений.
✔️ Что такое «Корки»
Нет это не порода собаки. Всё просто, это файл, который содержит дамп памяти процесса в моменте, когда он уебался. То есть произошел segmentation fault.
Имея этот файл на руках, можно запатчить, забагфиксить либо понять откуда растут ноги у ошибки.
Как включить core файлы.
Хуй знает. Обычно это делается через файл
Либо из консоли брякнуть:
В этом случае, если процесс/программа уебалась, то в папке с этим приложением появится файл
Важно! Выполняем:
Если вернуло 0, то хуй те, а не «корка». Чтобы все сработало, выполняем команду:
Так. У нас всё готово, по идее «корки» теперь будут создаваться. Если не создаются, то ты что-то сделал не так, либо в твоем дистрибутиве это делается иначе. Но я думаю это везде одинаково. Пробуй.
Пишем простой код на СИськах
Компилируем:
Ключ -g включает отладочную информацию. Без этого ключа хуй мы чо отдебажим.
Сложно? Забей, нам важно понять как работать с «корками» и дебажить.
Так. Запускаем бинарник.
Хуяк и словили
Запускаем отладчик:
``
Происходит магия. Чето там бежит и льется. Без паники! Смотрим несколько последних строчек:
Тааак… и видим из-за чего была вызвана ошибка. Даже строчку показывает, которая справедлива для исходника, хотя мы смотрим бинарник.
Проверяем указатель ptr, вводим в отладчике:
И видим что указатель ptr имеет значение
Теперь когда у нас есть эта инфа, мы знаем, что проблема заключается в попытке доступа к памяти по-нулевому указателю и можно это забагфиксить.
Самое простое решение, это добавить проверку и убедиться, что указатель ptr указывает на допустимую область памяти. Прежде чем разыменовывать его. Выделяем память для ptr с помощью функции malloc().
Вот и забагфиксили, компилируем, запускаем.
Ошибка сегментации исчезла. Улыбаемся и в очередной раз гордимся - какие же мы охуительные.
Но не достаточно! Чтобы прям вообще преисполниться, нужно запатчить бинарник через hex редактор.
Как это сделать, покажу совсем скоро, а то пост пиздец толстый получился.
У меня всё. Изучай.
tags: #linux #debug
@ВАSНDАYS | BАSHDАYS.CОM
Сегодня будем дебажить и багфиксить. Узнаем что такое core файлы в Linux и как с ними взаимодействовать.
Иногда в Linux появляются какие-то странные файлы, с названием
core.xxx
, порой их бывает прям дохуя. Обычно их все сносят и не задумываются чо это за высер такой.А этот высер можно либо отключить, либо залезть в него рукой и поковырять. На самом деле все эти «Корки», очень полезный материал для изучения и отладки падающих приложений.
✔️ Что такое «Корки»
Нет это не порода собаки. Всё просто, это файл, который содержит дамп памяти процесса в моменте, когда он уебался. То есть произошел segmentation fault.
Имея этот файл на руках, можно запатчить, забагфиксить либо понять откуда растут ноги у ошибки.
Как включить core файлы.
Хуй знает. Обычно это делается через файл
/etc/sysctl.conf
, добавляем:kernel.core_pattern=core
Либо из консоли брякнуть:
sysctl -w kernel.core_pattern=core
В этом случае, если процесс/программа уебалась, то в папке с этим приложением появится файл
core.xxx
.Важно! Выполняем:
ulimit -c
Если вернуло 0, то хуй те, а не «корка». Чтобы все сработало, выполняем команду:
ulimit -c unlimited
Так. У нас всё готово, по идее «корки» теперь будут создаваться. Если не создаются, то ты что-то сделал не так, либо в твоем дистрибутиве это делается иначе. Но я думаю это везде одинаково. Пробуй.
Пишем простой код на СИськах
#include <stdio.h>
int main() {
int *ptr = NULL;
*ptr = 10;
return 0;
}
Компилируем:
gcc -g -o bashdays bashdays.c
Ключ -g включает отладочную информацию. Без этого ключа хуй мы чо отдебажим.
В коде выше, я пытаюсь присвоить значение 10 по адресу, на который указывает указатель ptr, но ptr не инициализирован и содержит значение NULL. В попытке разыменования указателя на NULL мы получим segmentation fault.
Сложно? Забей, нам важно понять как работать с «корками» и дебажить.
Так. Запускаем бинарник.
./bashdays
Хуяк и словили
Segmentation fault (core dumped)
. Видишь в скобках core dumped? ВОТ ОНО! Рядом с бинарником появился файл core.1302
. Полезли копаться в этом высере!Запускаем отладчик:
gdb ./bashdays core.1302
``
Происходит магия. Чето там бежит и льется. Без паники! Смотрим несколько последних строчек:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x0000563ebf37f13d in main () at coretest.c:5
5 *ptr = 10;
Тааак… и видим из-за чего была вызвана ошибка. Даже строчку показывает, которая справедлива для исходника, хотя мы смотрим бинарник.
Проверяем указатель ptr, вводим в отладчике:
(gdb) print ptr
$1 = (int *) 0x0
И видим что указатель ptr имеет значение
NULL (0x0)
. Это и вызвало ошибку сегментации при попытке разыменования.Теперь когда у нас есть эта инфа, мы знаем, что проблема заключается в попытке доступа к памяти по-нулевому указателю и можно это забагфиксить.
Самое простое решение, это добавить проверку и убедиться, что указатель ptr указывает на допустимую область памяти. Прежде чем разыменовывать его. Выделяем память для ptr с помощью функции malloc().
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr = malloc(sizeof(int)); // выделяем память для указателя
if (ptr != NULL) { // если память выделена, присваиваем значение
*ptr = 10;
free(ptr); // освобождаем память
} else {
printf("Алярма! Память не выделяется\n");
}
return 0;
}
Вот и забагфиксили, компилируем, запускаем.
Ошибка сегментации исчезла. Улыбаемся и в очередной раз гордимся - какие же мы охуительные.
Но не достаточно! Чтобы прям вообще преисполниться, нужно запатчить бинарник через hex редактор.
Как это сделать, покажу совсем скоро, а то пост пиздец толстый получился.
У меня всё. Изучай.
tags: #linux #debug
@ВАSНDАYS | BАSHDАYS.CОM
Самара, ждём вас 25 апреля на технологический митап для IT Support специалистов 👨💻
Поговорим об инженерных процессах, улучшении качества IT-поддержки и процессах автоматизации работы с помощью программных решений. Рассмотрим лучшие практики и успешные кейсы адаптации новичков, которые помогают IT-специалистам получить необходимые знания и навыки для эффективной работы в компании и в команде.
Спикеры и темы:
✔️ Антон Осипов, Senior-инженер по сопровождению — «Как НЕ сломать банк? IT-поддержка и автоматизация»
✔️ Ирина Баюсова, исполнительный директор, и Юрий Логинов, старший инженер по сопровождению — «Использование ML в системах мониторинга банка»
✔️ Алексей Рылов, эксперт Центра компетенции IT on-boarding — «Адаптация IT-специалистов: прошлое и настоящее on-boarding»
Время: 18:30 – 21:40.
Локация: Бенке Холл Центра труда и отдыха «Станкозавод» — г. Самара, ул. Куйбышева, 128/1.
Регистрируйтесь по ссылке 👌
Поговорим об инженерных процессах, улучшении качества IT-поддержки и процессах автоматизации работы с помощью программных решений. Рассмотрим лучшие практики и успешные кейсы адаптации новичков, которые помогают IT-специалистам получить необходимые знания и навыки для эффективной работы в компании и в команде.
Спикеры и темы:
✔️ Антон Осипов, Senior-инженер по сопровождению — «Как НЕ сломать банк? IT-поддержка и автоматизация»
✔️ Ирина Баюсова, исполнительный директор, и Юрий Логинов, старший инженер по сопровождению — «Использование ML в системах мониторинга банка»
✔️ Алексей Рылов, эксперт Центра компетенции IT on-boarding — «Адаптация IT-специалистов: прошлое и настоящее on-boarding»
Время: 18:30 – 21:40.
Локация: Бенке Холл Центра труда и отдыха «Станкозавод» — г. Самара, ул. Куйбышева, 128/1.
Регистрируйтесь по ссылке 👌
Высокопроизводительные базы данных от
А вы знали, что облачные базы данных Selectel — одни из самых производительных надиком западе рынке? Все потому, что они работают на действительно мощном железе: процессорах Intel® Xeon® Gold 6454 и AMD EPYC™, высокочастотных планках оперативной памяти, а также NVMe локальных дисках в конфигурации RAID10.
Чтобы вы могли выжать максимум из облачных баз данных, коллеги прокачали их еще сильнее, а именно: увеличили параметры производительности дисковой подсистемы IOPS в 3,5 раза (до 90 000 IOPS) и пропускной способности — в 2,5 раза (до 1000 МБ/c).
Главные преимущества DBaaS в Selectel:
▫️В Selectel большой выбор систем управления базами данных: PostgreSQL, MySQL, TimeScaleDB, Apache Kafka и даже Redis.
▫️ Развернуть отказоустойчивый кластер можно всего в пару кликов в панели управления.
▫️ Облачные базы данных Selectel соответствуют основным стандартам безопасности, включая 152-ФЗ, PCI DSS 3.2.1, ISO 27001, ISO 27017, ISO 27018.
Переходите по ссылке и создайте ...
А вы знали, что облачные базы данных Selectel — одни из самых производительных на
Чтобы вы могли выжать максимум из облачных баз данных, коллеги прокачали их еще сильнее, а именно: увеличили параметры производительности дисковой подсистемы IOPS в 3,5 раза (до 90 000 IOPS) и пропускной способности — в 2,5 раза (до 1000 МБ/c).
Главные преимущества DBaaS в Selectel:
▫️В Selectel большой выбор систем управления базами данных: PostgreSQL, MySQL, TimeScaleDB, Apache Kafka и даже Redis.
▫️ Развернуть отказоустойчивый кластер можно всего в пару кликов в панели управления.
▫️ Облачные базы данных Selectel соответствуют основным стандартам безопасности, включая 152-ФЗ, PCI DSS 3.2.1, ISO 27001, ISO 27017, ISO 27018.
Переходите по ссылке и создайте ...
Онлайн-хакатон по детектированию уязвимостей
13 мая – 16 июня
Positive Technologies запускает хакатон для тех, кто хочет примерить на себя роль специалиста по разработке сканера уязвимостей, работает с Linux/Windows на продвинутом уровне, умеет писать на Python.
Участников ждут три этапа:
📍Стендирование
📍Обнаружение ПО
📍Обнаружение уязвимостей
Сомневаешься в своих силах? Эксперты будут поддерживать всех участников и отвечать на вопросы в специальном чате. А еще в начале хакатона мы пришлем тебе видео, которое поможет разобраться в выполнении заданий.
Участвуй и забирай денежные призы. Самые лучшие получат шанс присоединиться к команде Positive Technologies. Заявку можно отправить до 8 мая.
Участвовать в хакатоне
13 мая – 16 июня
Positive Technologies запускает хакатон для тех, кто хочет примерить на себя роль специалиста по разработке сканера уязвимостей, работает с Linux/Windows на продвинутом уровне, умеет писать на Python.
Участников ждут три этапа:
📍Стендирование
📍Обнаружение ПО
📍Обнаружение уязвимостей
Сомневаешься в своих силах? Эксперты будут поддерживать всех участников и отвечать на вопросы в специальном чате. А еще в начале хакатона мы пришлем тебе видео, которое поможет разобраться в выполнении заданий.
Участвуй и забирай денежные призы. Самые лучшие получат шанс присоединиться к команде Positive Technologies. Заявку можно отправить до 8 мая.
Участвовать в хакатоне
⚡️⚡️⚡️⚡️⚡️⚡️
Linux умер! Все из вас хоть раз в жизни запускали fork бомбу. Но если ты, тот единственный и неповторимый, то советую взять и прям сейчас это сделать. Это как впервые поссать в море.
Открывай консоль и запускай:
После запуска, перезагружай свой компьютер и продолжай читать этот пост.
✔️ Что это за странная регулярка?
Ну да, похожа на язык брейнфака. Давай теперь эту непонятную строчку, сделаем более понятной.
Опа, теперь всё на своих местах. Все наглядно и прозрачно. Каждый экземпляр запускает два новых экземпляра и так до бесконечности.
От этой заразы можно защитится с помощью ulimit, ограничив количество запускаемых процессов. Делается так:
Ну либо прописать эти ограничения
hard = максимальное количество процессов nproc
* = для всех пользователей равным 30
Жесткое ограничение позволяет зафиксировать лимиты, чтобы пользователи ненароком через ulimit их не сняли.
Еще был вопрос: а почему вместо | не использовать && ? Ну логично же, && выполняет команды последовательно. А вертикальная палка выполняет команды одновременно, при этом дескрипторы файлов перенаправляются в канал.
Вот бы с регулярками так, развернул их и наглядно стало понятно, что они делают и как. Но увы.
Ладно, чо, вроде пятница, а организм уже бунтует против субботнего рабочего дня. Ну ничего, зато потом 4 дня можно будет отдохнуть. Давай, увидимся!
tags: #bash #linux
@ВАSНDАYS | BАSHDАYS.CОM
Linux умер! Все из вас хоть раз в жизни запускали fork бомбу. Но если ты, тот единственный и неповторимый, то советую взять и прям сейчас это сделать. Это как впервые поссать в море.
Открывай консоль и запускай:
:(){ :|:& };:
После запуска, перезагружай свой компьютер и продолжай читать этот пост.
Концепция, лежащая в основе форк-бомбы — процессы постоянно воспроизводят сами себя, потенциально вызывая отказ в обслуживании.
✔️ Что это за странная регулярка?
Ну да, похожа на язык брейнфака. Давай теперь эту непонятную строчку, сделаем более понятной.
forkbomb()
{
forkbomb | forkbomb &
};
forkbomb
Опа, теперь всё на своих местах. Все наглядно и прозрачно. Каждый экземпляр запускает два новых экземпляра и так до бесконечности.
От этой заразы можно защитится с помощью ulimit, ограничив количество запускаемых процессов. Делается так:
ulimit -u 30
Ну либо прописать эти ограничения
/etc/security/limits.conf
* hard nproc 30
hard = максимальное количество процессов nproc
* = для всех пользователей равным 30
Жесткое ограничение позволяет зафиксировать лимиты, чтобы пользователи ненароком через ulimit их не сняли.
Еще был вопрос: а почему вместо | не использовать && ? Ну логично же, && выполняет команды последовательно. А вертикальная палка выполняет команды одновременно, при этом дескрипторы файлов перенаправляются в канал.
Вот бы с регулярками так, развернул их и наглядно стало понятно, что они делают и как. Но увы.
Ладно, чо, вроде пятница, а организм уже бунтует против субботнего рабочего дня. Ну ничего, зато потом 4 дня можно будет отдохнуть. Давай, увидимся!
tags: #bash #linux
@ВАSНDАYS | BАSHDАYS.CОM
Яндекс приглашает начинающих DevOps-инженеров на летнюю стажировку в формате «Технолето»
Студентов ждет насыщенная и яркая программа стажировки. Участники смогут пообщаться с топовыми специалистами компании, познакомиться с передовыми технологиями Яндекса, а также зажечь под диджей-сеты и на Алгорейв-вечеринках.
Во время обучения начинающие DevOps-специалисты научатся развивать инфраструктуру и мониторинг компонентов сервиса, улучшать процессы разработок и CI/СD, разбираться в архитектуре высоконагруженных распределенных систем и многое другое. А если хочется погрузиться в другую сферу, то на стажировке есть возможность освоить бэкенд, фронтенд, машинное обучение, QA, DevOps и другие IT-направления.
Стажировка оплачивается, кроме того, студенты могут выбрать для себя удобный график обучения — в течение 3, 4 или 6 месяцев. По итогам у стажеров есть все шансы получить оффер в Яндексе. По статистике, больше половины стажеров переходят в штат компании.
Оставляй заявку на участие и проведи лето ярко.
Студентов ждет насыщенная и яркая программа стажировки. Участники смогут пообщаться с топовыми специалистами компании, познакомиться с передовыми технологиями Яндекса, а также зажечь под диджей-сеты и на Алгорейв-вечеринках.
Во время обучения начинающие DevOps-специалисты научатся развивать инфраструктуру и мониторинг компонентов сервиса, улучшать процессы разработок и CI/СD, разбираться в архитектуре высоконагруженных распределенных систем и многое другое. А если хочется погрузиться в другую сферу, то на стажировке есть возможность освоить бэкенд, фронтенд, машинное обучение, QA, DevOps и другие IT-направления.
Стажировка оплачивается, кроме того, студенты могут выбрать для себя удобный график обучения — в течение 3, 4 или 6 месяцев. По итогам у стажеров есть все шансы получить оффер в Яндексе. По статистике, больше половины стажеров переходят в штат компании.
Оставляй заявку на участие и проведи лето ярко.
Как в 20 выглядеть на 40?
Правильно! Установить Linux!
Я всегда обходил стороной команду find, наверное потому что я никогда не умел ее готовить. Мне всегда было проще находить нужное в midnight commander.
Но для bash скриптов mc это не панацея, поэтому изредка приходилось гуглить про find и что-то лепить.
Сегодня затрём как раз про find. Но не за Базу, а за его скорость и бест-практики.
С помощью find мы ищем по разным паттернам и условиям. Порой необходимо совершить какие-то действия с найденными результатами. И find не может нас этим порадовать. Приходится передавать данные внешним утилитам.
У find есть пару опций:
exec = запускает утилиту и передает в неё аргументы
execdir = перед запуском утилиты, переходит в каталог с найденным
Синтаксис этих штук такой:
команда = утилита, которую запускаем
{} = развернется в найденные файлы
; = суффикс, на каждый файл запускается команда
+ = суффикс, команда запускается с группой файлов
Хорош с теорией, погнали в практику:
Эта команда будет искать обычные файлы в домашнем каталоге пользователя. Утилитой для обработки, у нас будет интерпретатор, который выведет на экран идентификатор процесса. Интерпретатор используем чисто в лабораторных целях.
По итогу на экран я получил 100500 строчек такого вида:
Это список процессов, которые были задействованы в результате поиска. Чёто прям дохуя. Если надоело ждать результата, жми CTRL+C.
✔️ А теперь давай оптимизируем!
По итогу я получаю одну цифру
Но что произошло? Ща объясню. В оптимизированном варианте, имена файлов разбиваются на максимально большие группы и затем передаются в утилиту. Вот в этом и есть разница.
Ведь, чтобы запустить внешнюю утилиту, нужно совершить кучу лишний телодвижений. Если запускать на каждый найденный файл отдельный процесс, то тратится куча ресурсов, причем зря. Естественно это прилично влияет на скорость.
Проще ведь сразу скормить утилите группу найденных файлов и никому не ебать мозги.
Стопэ. Это еще не всё, можно еще больше разогнать 👇
Включаем режим оверклоакинга!
Будем использовать утилиту xargs, она как раз входит в пакет с find. Утилита xargs запускает процессы параллельно. Уже понимаешь чо щас будет?
Xargs читает стандартный ввод и разбивает его на группы аргументов. А после этого запускает команду с данной группой аргументов.
По ключам:
0 = аргументы разделяются символами NUL ASCII. А спецсимволы косой черты
n = максимально количество аргументов переданных за один раз
P = максимально количество процессов запущенных одновременно. Если указать 0, запустится как можно больше таких процессов.
команда = внешняя команда которая будет запущена. Если ничего не указывать, на экран выведутся группы аргументов, удобная фича для отладки.
А еще если во время работы xargs, ей послать сигнал SIGUSR1 (kill), то количество одновременно запускаемых процессов будет увеличено. А для SIGUSR2, будет уменьшено.
Это базовая команда для правильной работы find + xargs:
Но учти, если command у тебя будет оболочкой sh/bash, тогда нужно правильно обработать аргументы и учесть всякие splitting, globbing и т.п.
Ладно чо. Всем хорошего отдыха и заебатых шашлычков. На 01.05 я возьму отгул, а там дальше уже всё по плану: за кишочки подергаем, да на страусе (strace) покатаемся. Будет охуенно!
tags: #bash #linux
@ВАSНDАYS | BАSHDАYS.CОM
Правильно! Установить Linux!
Я всегда обходил стороной команду find, наверное потому что я никогда не умел ее готовить. Мне всегда было проще находить нужное в midnight commander.
У меня кстати даже постов про find не было в этом канале.
Но для bash скриптов mc это не панацея, поэтому изредка приходилось гуглить про find и что-то лепить.
Сегодня затрём как раз про find. Но не за Базу, а за его скорость и бест-практики.
С помощью find мы ищем по разным паттернам и условиям. Порой необходимо совершить какие-то действия с найденными результатами. И find не может нас этим порадовать. Приходится передавать данные внешним утилитам.
У find есть пару опций:
exec = запускает утилиту и передает в неё аргументы
execdir = перед запуском утилиты, переходит в каталог с найденным
Синтаксис этих штук такой:
-exec команда {} суффикс
команда = утилита, которую запускаем
{} = развернется в найденные файлы
; = суффикс, на каждый файл запускается команда
+ = суффикс, команда запускается с группой файлов
Символ ; обязательно нужно экранировать либо поместить в кавычки.
Хорош с теорией, погнали в практику:
find ~/ -type f -exec sh -c 'echo $$' {} \;
Эта команда будет искать обычные файлы в домашнем каталоге пользователя. Утилитой для обработки, у нас будет интерпретатор, который выведет на экран идентификатор процесса. Интерпретатор используем чисто в лабораторных целях.
По итогу на экран я получил 100500 строчек такого вида:
26719
26720
26721
Это список процессов, которые были задействованы в результате поиска. Чёто прям дохуя. Если надоело ждать результата, жми CTRL+C.
✔️ А теперь давай оптимизируем!
find ~/ -type f -exec sh -c 'echo $$' {} +
По итогу я получаю одну цифру
27413
, один идентификатор процесса, в отличие от предыдущего варианта. Круто? Да охуеть не встать!Но что произошло? Ща объясню. В оптимизированном варианте, имена файлов разбиваются на максимально большие группы и затем передаются в утилиту. Вот в этом и есть разница.
Ведь, чтобы запустить внешнюю утилиту, нужно совершить кучу лишний телодвижений. Если запускать на каждый найденный файл отдельный процесс, то тратится куча ресурсов, причем зря. Естественно это прилично влияет на скорость.
Проще ведь сразу скормить утилите группу найденных файлов и никому не ебать мозги.
Стопэ. Это еще не всё, можно еще больше разогнать 👇
Включаем режим оверклоакинга!
Будем использовать утилиту xargs, она как раз входит в пакет с find. Утилита xargs запускает процессы параллельно. Уже понимаешь чо щас будет?
find ~/ -type f -print0 | xargs -0 -n4 -P2 команда
Xargs читает стандартный ввод и разбивает его на группы аргументов. А после этого запускает команду с данной группой аргументов.
По ключам:
0 = аргументы разделяются символами NUL ASCII. А спецсимволы косой черты
\
и кавычками, воспринимаются как обычные.n = максимально количество аргументов переданных за один раз
P = максимально количество процессов запущенных одновременно. Если указать 0, запустится как можно больше таких процессов.
команда = внешняя команда которая будет запущена. Если ничего не указывать, на экран выведутся группы аргументов, удобная фича для отладки.
А еще если во время работы xargs, ей послать сигнал SIGUSR1 (kill), то количество одновременно запускаемых процессов будет увеличено. А для SIGUSR2, будет уменьшено.
SIGUSR1 и SIGUSR2 могут быть использованы программой для произвольных нужд, например для межпроцессной (или межпоточной) синхронизации, управления фоновыми процессами (демонами) и т. п. По умолчанию, сигналы SIGUSR1 и SIGUSR2 завершают выполнение процесса.
Это базовая команда для правильной работы find + xargs:
find -print0 | xargs -0 command
Но учти, если command у тебя будет оболочкой sh/bash, тогда нужно правильно обработать аргументы и учесть всякие splitting, globbing и т.п.
Ладно чо. Всем хорошего отдыха и заебатых шашлычков. На 01.05 я возьму отгул, а там дальше уже всё по плану: за кишочки подергаем, да на страусе (strace) покатаемся. Будет охуенно!
tags: #bash #linux
@ВАSНDАYS | BАSHDАYS.CОM
✨ Курс «Быстрый старт в DevOps» бесплатно. Как забрать?
Меня зовут Марсель Ибраев, и на своем канале я делюсь фишками, которые помогут вам начать путь в DevOps.
2 апреля стартовал курс, созданный на основе ваших пожеланий. Мы с командой учебного центра Слёрм ответили на самые актуальные вопросы начинающих девопсеров:
⚡️ что такое DevOps, и как выстроить работу команды в рамках этой методологии;
⚡️ Kubernetes, Docker и т.д.: как базовые инструменты выстраивают работу в DevOps;
⚡️ DevOps и компания: как состыковать критерии успеха.
1 неделя = 1 открытый модуль. В первом модуле разберем как быстро и эффективно освоить профессию с высокой зарплатой, с каких инструментов начинать, и какую роль в девопсе играют софт-скиллы.
🔗 ЗАБРАТЬ КУРС
erid: 2Vtzqv8A2ek
Меня зовут Марсель Ибраев, и на своем канале я делюсь фишками, которые помогут вам начать путь в DevOps.
2 апреля стартовал курс, созданный на основе ваших пожеланий. Мы с командой учебного центра Слёрм ответили на самые актуальные вопросы начинающих девопсеров:
⚡️ что такое DevOps, и как выстроить работу команды в рамках этой методологии;
⚡️ Kubernetes, Docker и т.д.: как базовые инструменты выстраивают работу в DevOps;
⚡️ DevOps и компания: как состыковать критерии успеха.
1 неделя = 1 открытый модуль. В первом модуле разберем как быстро и эффективно освоить профессию с высокой зарплатой, с каких инструментов начинать, и какую роль в девопсе играют софт-скиллы.
🔗 ЗАБРАТЬ КУРС
erid: 2Vtzqv8A2ek
Привет. Сегодня шифруем пиксели!
Если кратко, берем png картинку и шифруем ее с помощью парольной фразы.
Но самое главное, картинка останется в png формате и не превратится в какой-то бесполезный бинарник. А дальше её можно будет открыть и визуально посмотреть через любой просмотрщик файлов.
А поможет нам в этом старый и добрый ImageMagic
Для начала мне понадобится изображение, в котором я буду шифровать пиксели. Давай его сгенерим:
Эта команда создаст изображение bashdays.png с волшебником, который хуячит живопись. Выглядит это так: bashdays.png
Хорошо. Теперь нужно зашифровать это изображение. Выполняем команду:
Получаем файл hidden.png с пикселями. Файл прекрасно открывается, но волшебника мы уже не видим. Лишь какой-то цветной шум. Выглядит это так.
Шифрование делаем через опцию encipher, в качестве аргумента эта опция принимает имя файла с парольной фразой. Дефис после encipher означает - стандартный ввод, который в данном случае указывает на канал «|».
Ну и дешифровка:
Если проебал пароль или ввел неправильно, получишь тот же набор цветных пикселей. Пароль восстановить увы не получится. Так что запиши на бумажку и повесь на монитор, как в лучших практиках ИБ.
Еще есть прикол, что изображение можно зашифровать с помощью ключа, например другого изображения.
В этом примере, key.gif это ключ для шифрования. Без этого файла расшифровать изображение уже не получится. Заебись? Заебись!
✔️ А какие нюансы?
Да, они есть. Некоторые форматы изображений, не поддерживают зашифрованные пиксели, например jpeg или gif. Поэтому прежде чем что-то шифровать, проверь что это получится расшифровать.
ImageMagick зашифровывает только пиксели, метаданные изображения остаются нетронутыми и читабельными для любых пользователей. Поэтому если что-то скрываешь, подчищай метаданные.
Шифрование идет через AES в режиме счетчика. Первая половина парольной фразы это одноразовый номер, вторая половина это ключ шифрования.
Где можно применить?
Каждый сам решает зачем ему это нужно. Но знаю реальный случай, когда блекхэты публиковали в twitter подобные изображения.
Эти изображения можно было найти в поиске по-специальному тэгу. С помощью этих картинок, осуществлялась координация кибер-атак по всему миру.
По мне так, данный способ уматно использовать в каких-нибудь онлайн квестах, где нужно найти парольную фразу, а потом расшифровать изображение. Больше на ум (из легального) ничего и не приходит.
Изучай!
tags: #security
@ВАSНDАYS | BАSHDАYS.CОM
Если кратко, берем png картинку и шифруем ее с помощью парольной фразы.
Но самое главное, картинка останется в png формате и не превратится в какой-то бесполезный бинарник. А дальше её можно будет открыть и визуально посмотреть через любой просмотрщик файлов.
Правда в зашифрованном виде, но это не проблема если у тебя есть парольная фраза или файл-ключ.
А поможет нам в этом старый и добрый ImageMagic
Для начала мне понадобится изображение, в котором я буду шифровать пиксели. Давай его сгенерим:
convert wizard: bashdays.png
Эта команда создаст изображение bashdays.png с волшебником, который хуячит живопись. Выглядит это так: bashdays.png
Хорошо. Теперь нужно зашифровать это изображение. Выполняем команду:
echo 'пароль' | convert bashdays.png -encipher - -depth 8 png24:hidden.png
Получаем файл hidden.png с пикселями. Файл прекрасно открывается, но волшебника мы уже не видим. Лишь какой-то цветной шум. Выглядит это так.
Шифрование делаем через опцию encipher, в качестве аргумента эта опция принимает имя файла с парольной фразой. Дефис после encipher означает - стандартный ввод, который в данном случае указывает на канал «|».
Ну и дешифровка:
echo 'пароль' | convert hidden.png -decipher - restored.png
Если проебал пароль или ввел неправильно, получишь тот же набор цветных пикселей. Пароль восстановить увы не получится. Так что запиши на бумажку и повесь на монитор, как в лучших практиках ИБ.
Еще есть прикол, что изображение можно зашифровать с помощью ключа, например другого изображения.
convert bashdays.png -encipher key.gif result.png
В этом примере, key.gif это ключ для шифрования. Без этого файла расшифровать изображение уже не получится. Заебись? Заебись!
✔️ А какие нюансы?
Да, они есть. Некоторые форматы изображений, не поддерживают зашифрованные пиксели, например jpeg или gif. Поэтому прежде чем что-то шифровать, проверь что это получится расшифровать.
ImageMagick зашифровывает только пиксели, метаданные изображения остаются нетронутыми и читабельными для любых пользователей. Поэтому если что-то скрываешь, подчищай метаданные.
Шифрование идет через AES в режиме счетчика. Первая половина парольной фразы это одноразовый номер, вторая половина это ключ шифрования.
Если далёк от криптографии, то забей хуй, работает да и ладно.
Где можно применить?
Каждый сам решает зачем ему это нужно. Но знаю реальный случай, когда блекхэты публиковали в twitter подобные изображения.
Эти изображения можно было найти в поиске по-специальному тэгу. С помощью этих картинок, осуществлялась координация кибер-атак по всему миру.
По мне так, данный способ уматно использовать в каких-нибудь онлайн квестах, где нужно найти парольную фразу, а потом расшифровать изображение. Больше на ум (из легального) ничего и не приходит.
Изучай!
tags: #security
@ВАSНDАYS | BАSHDАYS.CОM