Линукс и DevOps Дни
2.03K subscribers
108 photos
8 videos
194 links
Самобытно про разработку, devops, linux, скрипты, тестирование, сисадминство, техдирство, пиэмство и за айтишную жизу.
Download Telegram
Переходите на тёмную сторону тему на Хабре вместе с Yandex Cloud!

Мы знаем о любви разработчиков к тёмной теме. И знаем, что многим её не хватало на Хабре. Встречайте технический квест от Хабра и Yandex Cloud, пройдя который вы сможете подключить долгожданную тёмную тему и выиграть мерч.

Пройти квест и подключить темную тему можно здесь
Привет отдыхающим. Хош не хош, а постом вас нужно порадовать и желательно интересным. Вот сейчас и порадую, самое время.

Сегодня будем дебажить и багфиксить. Узнаем что такое 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.

Регистрируйтесь по ссылке 👌
Высокопроизводительные базы данных от

А вы знали, что облачные базы данных 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.

Переходите по ссылке и создайте ...
Онлайн-хакатон по детектированию уязвимостей
13 мая – 16 июня

Positive Technologies запускает хакатон для тех, кто хочет примерить на себя роль специалиста по разработке сканера уязвимостей, работает с Linux/Windows на продвинутом уровне, умеет писать на Python.

Участников ждут три этапа:
📍Стендирование
📍Обнаружение ПО
📍Обнаружение уязвимостей

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

Участвуй и забирай денежные призы. Самые лучшие получат шанс присоединиться к команде Positive Technologies. Заявку можно отправить до 8 мая.

Участвовать в хакатоне
⚡️⚡️⚡️⚡️⚡️⚡️

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 месяцев. По итогам у стажеров есть все шансы получить оффер в Яндексе. По статистике, больше половины стажеров переходят в штат компании.

Оставляй заявку на участие и проведи лето ярко.
Как в 20 выглядеть на 40?

Правильно! Установить 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
Привет. Сегодня шифруем пиксели!

Если кратко, берем 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
Сегодня про RANDOM и револьвер

В бородатые 2000е была такая консольная игруля «Русская рулетка», состояла она из одной строчки:

[ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo "You live"


Для начала давай сделаем её более безопасной:

[ $[ $RANDOM % 6 ] == 0 ] && echo 'You died' || echo 'You live'


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

А теперь давай посмотрим на условия, при которых «пистолет выстрелит» сразу.

Число отличное от 0, указанное в качестве переменной RANDOM используется как seed (семя) для генератора псевдослучайных чисел.

Если посеять число 2, то при первом обращении к переменной RANDOM получим значение, которое делится на 6 без остатка.

RANDOM=2  
[ $[ $RANDOM % 6 ] == 0 ] && echo 'You died' || echo 'You live'


Этот посев даст нужное в разных версиях интерпретатора. Все дело в том, что в версии bash 5.1 были внесены изменения связанные с этим. Короче если у тебя версия баша > 5.0, то можно изменить поведение генератора с помощью переменной BASH_COMPAT.

Переменная BASH_COMPAT в оболочке Bash используется для указания совместимости с предыдущими версиями Bash. Если установить ее на определенное значение, это может изменить поведение Bash так, чтобы оно соответствовало определенной версии.

Например, если вы установите BASH_COMPAT=3.2, то это означает, что текущая оболочка Bash будет работать совместимо с версией 3.2. Это может быть полезно, если у вас есть скрипты, которые были написаны для старых версий Bash и вы хотите, чтобы они продолжали работать в новых версиях без изменений поведения.


Так, давай теперь это проверим:

( BASH_COMPAT=51 ; RANDOM=0 ; echo $RANDOM )


Получаем значение: 20814

( BASH_COMPAT=50 ; RANDOM=0 ; echo $RANDOM )


А тут уже другое: 20034

Если мы задаем 0 в переменную RANDOM, тогда семя (seed) инициализируется жестко заданным значением. При котором генерируется требуемое число, то есть делится на 6 без остатка.

RANDOM=0  
[ $[ $RANDOM % 6 ] == 0 ] && echo 'You died' || echo 'You live'


Тут пистолет гарантированно выстрелит. Аналогично предыдущему примеру, если начало строки не число:

RANDOM='bashdays'  
[ $[ $RANDOM % 6 ] == 0 ] && echo 'You died' || echo 'You live'


Снова получим 100% выстрел.

✔️ Как работает генератор:

- Начальное значение seed, оболочка получает совершая манипуляции над значениями pid, ppid, uid + текущие время (секунды, микросекунды).

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

- Потом полученное число усекается. В документации указано максимальное возможное значение 32367.

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

Такие дела, исследуйте!

tags: #bash #linux

@ВАSНDАYS | BАSHDАYS.CОM
Хотели в детстве сыграть в «Самый умный»?💡
Реализуйте мечту в IT-квизе


Активируйте Telegram-бота и проверьте свои знания сразу в восьми темах:

▫️ Дата-центры и железо
▫️ Разработка и soft skills
▫️ ИБ и сети
▫️ Kubernetes и ML

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

Перейти в бота → https://slc.tl/6evat

Реклама ООО «Селектел» erid 2VtzqvpmxJc
🔤🔤🔤🔤🔤🔤🔤🔤🔤

shopt -s extglob; : "${PS1}"; : "${_//$'\x01'+([^$'\x02'])$'\x02'}"; : "${#_}"; printf '%b' "\e#8\e[$(((LINES-1)/2));$(((COLUMNS-_)/2))H"


tags:
#bash

@ВАSНDАYS | BАSHDАYS.CОM
⚡️ Появление технологической базы ПО отечественных вендоров и рост приложений, использующих алгоритмы на основе ИИ, — одни из главных трендов 2023 года. А что еще?

Мы опросили 800+ ИТ-специалистов, включая топ-менеджеров компаний, чтобы понять, как за год трансформировался отечественный рынок DevOps. Упаковали все это в отчет, который сейчас можно бесплатно скачать по ссылке.

📊 Из отчета вы узнаете:
- как российские компании преодолевают технологические и кадровые вызовы;
- планы и прогнозы развития рынка DevOps в ближайшем будущем;
- актуальные вопросы безопасной разработки (DevSecOps);
- в каком состоянии кадровый рынок DevOps.

Наши партнеры: МТС, IBS, Яндекс, Лаборатория Касперского, а также НИУ ВШЭ, ИСП РАН и ЭКОПСИ Консалтинг.

Забирайте ежегодный отчет по ссылке.

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

Поддержи подпиской и лайком! Спасибо!👇

https://youtu.be/gTwpoAaB_dY
Привет, это Девопс фабрика! Мы обучаем желающих перейти в DevOps.

Приглашаем на МОК интервью по DevOps! Сделаем бесплатно для первых десяти человек.

МОК интервью - это отличный способ подготовиться к реальным собеседованиям и проверить свои знания в дружелюбной обстановке.

Что вас ждет?

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

Посмотреть видео предыдущих интервью и записаться можно по ссылке в канале

Реклама. ООО «Байкалтим», ИНН: 3851008933, erid: 2Vtzqx3bUA5
Официальные тренинги по Zabbix на русском языке от Галс Софтвэр

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

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

Zabbix Certified Specialist (ZCS) 3-7 июня 2024 года (оффлайн + онлайн)

Zabbix Certified Professional (ZCP) 1-3 июля 2024 года (оффлайн + онлайн)

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

Задать вопросы и получить дополнительную информацию вы можете у или по запросу на welcome.com.
Тут у безопасников жопы сгорели после предыдущего поста.

Нужно ли на приватный ssh ключ устанавливать пароль?


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

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

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

Удобно? Охуенно удобно! Главное практично.

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

Добавь тогда уж туда еще один фактор авторизации через QR код и Яндекс.Ключ. Лишним не будет 😲

✔️ Пароль на ключ тебе нужен — если ты рукожопая обезьяна, сосёшься в засос с ослами, качаешь сомнительный со...
Если команда разработки расширяется, DevOps-инженеров становится меньше, а инфраструктура активно развивается и растет, поддерживать сразу несколько архитектурных решений становится сложно и невыгодно. 

На встрече Алексей Подольский, инженер внутренней разработки в Cloud․ru, расскажет, как безболезненно объединить кластеры Kubernetes, оптимизировать инфраструктуру и повысить безопасность трафика внутри кластера.

На вебинаре вы узнаете:

▪️ как сделать процесс объединения более простым и комфортным — 4 основных условия;
▪️ какие этапы объединения кластеров Kubernetes можно выделить;
▪️ как не только объединить несколько архитектурных решений, но и оптимизировать инфраструктуру и снизить стоимость ее обслуживания;
▪️ как усилить безопасность периметра с помощью тонкой фильтрации трафика;
▪️с какими проблемами можно столкнуться на этапе миграции и как их лучше решать.

Также на встрече покажем готовое решение — поделимся результатом слияния нескольких кластеров и создания целостной инфраструктуры.

Веб...
Привет, сегодня коротко, очередная внеплановая пятница. Короче в продолжение к постам про повышение привилегий.

Если звезды сошлись (suid/guid и прочая хуйня), то через vim ты можешь получить интерактивный root shell.

Делается так:

vim -c ':!/bin/sh'


Или так:

vim --cmd ':set shell=/bin/sh|:shell'


На выходе тебе выплюнет доллар ($) ну и там уже бесоёбишь.

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

И если в этом списке есть vi/vim, то ты ничем не ограничен. Запускаешь полноценный shell через vim и развлекаешься. А порой можно дотянутся и до папки /root и всего остального. Было бы желание 🥳

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

Давай, хороших выходных! Я пожалуй тоже устрою себе внеплановый отпуск на пару дней. Увидимся!

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

tags: #linux #security #utils

@ВАSНDАYS | BАSHDАYS.CОM
This media is not supported in your browser
VIEW IN TELEGRAM
Майские праздники равносильны новогодним, уже на третий день начинаешь деградировать и превращаться в обезьяну. После таких затяжных выходных, нужно еще пару недель, чтобы вернуться к нормальной жизни.

Привет. Сегодня расскажу про штуку, которой одно время пользовался на локальной машине и снова к ней вернулся.

✔️ Называется Atuin — Magical shell history.

Если коротко, эта тулза заменяет стандартный поиск в командной строке по ctrl+r на красивенький и достаточно удобный.

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

По сути у тебя одна общая история на нескольких машинах. Очень удобно если бегаешь между ноутом и стационарным компом.

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

Все в лучших традициях selfhosted. Мануал по установке сервера. Через docker-compose за пару минут все расчехляется.

Кстати если нажать стрелочку вверх, сработает триггер и откр
...