Библиотека девопса | DevOps, SRE, Sysadmin
10.3K subscribers
1.38K photos
71 videos
4 files
2.58K links
Все самое полезное для девопсера в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/25874ec4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
Ситуация: переезжаете на другой сервер, перетащили проект в zip архиве, распаковали, а сам zip не удалили. И теперь любой кто узнает имя архива, сможет его скачать. Ну, или, как часто бывает в распространенных движках, есть всем известная папка, где могут находиться эти бэкапы.

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

Как с этим бороться? Ничего не бэкапить в папки проекта, удалять промежуточные файлы если что-то переносили, настраивать политики nginx чтобы 403 отдавал и прочее.

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

Маловероятно, что злоумышленник — это человек. В основном сбором бигдаты занимается автоматизированный софт. Устанавливается на уже скомпрометированные машины, с которых осуществляется сканирование каталогов на наличие плохо лежащих файлов.

Настроим такую штуку на примере nginx

Добавляем в nginx конфиги:

location ~* "^/(new|old|bkup|tmp|temp|upload|ftp|sql|file|www|drupal|joomla|wordpress|x|user|admin|a|b|r|rezerv|arch|arx|111|archive|auth|backup|clients|com|dat|dump|engine|files|home|html|index|master|media|my|mysql|old|site|sql|website|wordpress)\.tar.gz$" {
access_log /var/log/nginx/pitfall.log;
default_type application/zip;
root /var/www/project/files/backup;
rewrite ^(.*)$ /backup break;
max_ranges 0;
limit_rate 4k;
limit_conn addr 1;
}

# а это в секцию http
limit_conn_zone $binary_remote_addr zone=addr:10m;


Указываем список на что будем реагировать. Ограничиваем скорость, ограничиваем число потоков, запрещаем докачку.

Создаем файл заглушку размером 1ГБ, этого вполне хватит. Но можно сделать и больше.

dd if=/dev/zero of=/var/www/project/files/backup bs=1G count=1


Теперь если кто-то попытается вытянуть бэкап — будет страдать.
6👍2🔥2
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

#️⃣C#

Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

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

👾Data Science

Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие профильные каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика

💼Каналы с вакансиями

Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
👍32
🦖🦖 Prodzilla

Prodzilla — это современный синтетический инструмент мониторинга, написанный на Rust. Он ориентирован на тестирование сложного пользовательского прода.

Поддерживает цепочки запросов к конечным точкам, передачу значений из одного ответа в другой запрос, проверку соответствия ответов ожидаемым и вывод предупреждений через webhooks. Он также предоставляет API, который позволяет просматривать результаты в формате json и запускать тесты вручную.

Работает менее, чем с 5 МБ оперативки и доступен для бесплатного размещения на Shuttle.

long-term фичи:

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

#полезный_софт
5🔥1
💪💪 Запуск проекта в Kubernetes за 60 минут: инструменты, GitLab, Terraform

В материале рассматривается пример CI/CD-пайплайна, который собирает разбитое на два микросервиса CRUD-приложение, пушится в платформенный реджистри и деплоится в Kubernetes.

Читать

#туториал
👍6
#дайджест инструментов для кластера K8s

♦️ Prometheus: мониторинг и оповещения для Kubernetes, обеспечение безопасности в облаке путем обнаружения нерегулярного трафика или активности, которые потенциально могут перерасти в атаку.

♦️ Cyclops: развертывание приложений за пару кликов. Преобразует сложные файлы конфигурации в form-based UIs, устраняя необходимость ручной настройки и взаимодействия из командной строки.

♦️ Keda: расширяет возможности собственных решений для автоматического масштабирования Kubernetes за счет масштабирования модулей на основе внешних событий или триггеров.

♦️ Karpenter: поддерживает функцию консолидации, активно перемещая модули и заменяя узлы более дешевыми версиями для снижения затрат на кластер.

♦️ Velero: создает моментальные снимки ресурсов и данных кластера и сохраняет их в поставщиках хранилища объектов, таких как AWS S3, Google Cloud Storage или Azure Blob Storage.
2👍2🔥1🥰1
Что такое тестовая кухня в Chef?

Test Kitchen — это инструмент командной строки в Chef, который запускает экземпляр и тестирует на нем cookbook перед ее развертыванием на реальных узлах.

Вот наиболее часто используемые команды.
👍31
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

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

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍31
😎😎 Импорт приложений в AWS CloudFormation

AWS Infrastructure as Code (IaC) позволяет управлять, моделировать и предоставлять инфраструктуру. Вы можете объявить свою инфраструктуру в виде кода на YAML или JSON с помощью AWS CloudFormation, на ЯП общего назначения с использованием AWS Cloud Development Kit (CDK) или визуально с помощью Application Composer. Конфигурации IaC затем можно проверять и контролировать в любой системе контроля версий. Наконец, развертывание AWS IaC позволяет выполнять предварительный просмотр развертывания с использованием наборов изменений, автоматические rollback-и и многое другое.

Подробнее про управление существующей сетевой архитектурой с помощью CloudFormation читаем тут

#гайд
👍4
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🤔 Как нестандартно войти в АйТи

Многие IT-специалисты приходят в эту сферу нестандартным путем — кто-то начинал как самоучка, а кто-то стал программистом случайно. Был ли у вас необычный старт карьеры в IT?

Расскажите нам свою историю! Ваш опыт может вдохновить тех, кто мечтает о переменах, но пока не решается начать.

❤️ С нетерпением ждем ваших комментариев!
😁5👍2
🤔 systemd: как писать юниты с элегантной перезагрузкой

В этой статье рассматривается поведение systemd при завершении работы и методы написания юнитов systemd для выборочной очистки (custom cleanup) перед закрытием.

Читать статью

#гайд
👍5
#вопросы_с_собеседования

В чем разница между docker stop и docker pause?

В том, что они разные сигналы посылают

🔹 docker pause — использует SIGSTOP(19), что приостанавливает процессы в контейнере
🔹 docker stop — применяет sigterm и sigkill к главному процессу контейнера
👍11
💸 Рост или падение? Изменение зарплат в IT за 2023 год

Чтобы разобраться в этом вопросе, «Библиотека программиста» решила провести опрос среди читателей издания. Мы хотим понять, выросли ли ваши зарплаты в 2023 году и если да, то на сколько процентов. Или может быть наоборот — ваши доходы снизились на фоне кризисных явлений в экономике?

Примите участие в нашем коротком опросе и поделитесь своим мнением! Вместе мы проанализируем текущую ситуацию на рынке труда в IT-сфере и поймем, что ждёт эту отрасль дальше. Ждём ваших ответов!

Опрос займёт у вас примерно 4 минуты.

👉 Ссылка на опрос
🥰4
Очередной #дайджест для DevOps-ов

Гайд по Aurora OS — как начать разработку для отечественной мобильной операционки

Дорожная карта по DevOps — структурируете свои текущие знания, найдите в них пробелы и поймёте, куда стоит расти дальше

Generative AI Meets AWS Security — как разрабатывался CodeWhisperer Customizations, с опором на безопасность

Azure Boards + GitHub в private preview — важные улучшения для клиентов Azure Boards и репозиториями GitHub.

Как Platform и Site Reliability Engineering влияет на DevOps — ключевые моменты для роста и более эффективного управления DevOps
🥱4
Очередной #дайджест для джавистов

⏏️ Автоматическая проверка названий тестовых методов для Java — использование maven-плагина статического анализа jtcop для поддержания единого стандарта именований для тестового кода

⏏️ Книга «Mastering Java: 100+ Solved and Commented Exercises to Accelerate your Learning» — книга разделена на 7 глав в соответствии с темами программирования: математические формулы, циклы, массивы и прочие

⏏️ PECS и WildCards на пальцах — про метод описания поискового запроса с использованием метасимволов

⏏️ Адаптер. Шаблоны проектирования в деталях — используемый в тех случаях, когда требуется адаптировать существующий класс к использованию с другим интерфейсом

⏏️ Как я перешёл на тёмную сторону — путь из Андроида в бэкенд
🔥3
🤔 Остаться или уйти? Оптимальный срок работы на одном месте

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

Многие опытные айтишники сталкиваются с такой дилеммой. С одной стороны, текущее место работы устраивает. С другой — хочется разнообразия, новых задач и знаний.

Должен ли современный IT-специалист менять работу чаще, чем раз в 5 лет? Или лучше наращивать экспертизу в рамках одной компании? А может дело совсем не в сроках, а в качестве задач и развитии карьеры?

👉 Расскажите о своём опыте в нашем новом опросе 👈
👍5
🤔 Оптимизация запросов в Greenplum — особенности СУБД и интересные моменты

21 февраля в 11:00 Navicon планирует провести вебинар на тему «Оптимизация запросов в Greenplum».

Greenplum — из одна из наиболее популярных технологий для построения аналитических хранилищ на российском рынке. Важнейший параметр КХД — его производительность, и в контексте оптимизации SQL-запросов Greenplum обладает рядом особенностей, что ставит его в особое положение относительно других СУБД.

На мероприятии расскажут, на что стоит обратить внимание при оптимизации запросов в Greenplum. Вы узнаете, как эффективно организовывать физическое хранение данных, какие регламентные операции могут повысить производительность DWH, и чем выполнение запросов в Greenplum отличается от PostgreSQL.

Ключевые моменты:

🔹 Особенности планов запросов в Greenplum
🔹 Узкие места в запросах
🔹 Стоит ли использовать индексы?
🔹 Как эффективно собирать статистику

Регистрация тут

#мероприятие
👍4❤‍🔥1
Опишите некоторые шаблоны развертывания.

Blue Green развертывания и Canary-релизы являются распространенными шаблонами развертывания.

В сине-зеленых развертываниях у вас есть две идентичные среды. В «зеленой» среде находится текущая производственная система. Развертывание происходит в «синей» среде.

«Синяя» среда проверяется на наличие неисправностей и, если все работает хорошо, балансировка нагрузки и другие компоненты переключаются из «зеленой» среды в «синюю».

Canary-релизы — это релизы, в которых определенные функции предоставляются определенной группе пользователей, чтобы снизить риск, связанный с выпуском новых функций.
🔥8