bashdays | Unsorted

Telegram-канал bashdays - Bash Days | Linux | DevOps

22119

Авторский канал от действующего девопса Самобытно про разработку, devops, linux, скрипты, тестирование, сисадминство, техдирство, пиэмство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue Курс: @tormozilla_bot РКН: https://bit.ly/knd2gov

Subscribe to a channel

Bash Days | Linux | DevOps

Хелоу! А какую команду ты запускаешь первой, когда поднял linux сервак/десктоп (vps/vds, виртулка, бареметал и т.п.)?

У меня руки на автомате вбивают: apt update && apt upgrade && apt install mc.

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

А как делаешь ты? Камон в комменты обсудим, интересно на твои паттерны посмотреть.

tags: #linux #рабочиебудни

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

A rom dom dom! Очередная «Пицца» подъехала!

Первую успешно захавал Кирилл. Красавчик!

Каждую неделю в рандомный момент я закидываю задачку. Кто первый напишет в комменты правильный ответ, тот получает 1000р на РФ карту.

Коменты с ответами пишем к посту, а не в чатике.

Поехали!

Сегодня придется поковыряться.

1. Подсказки на картинке к посту
2. Точка входа
https://pizza.bashdays.ru
3. Макс запросит у победителя шаги с решением


Удачи в поисках!

#pizza

Читать полностью…

Bash Days | Linux | DevOps

Хотели бы присоединиться к проекту, который приносит пользу миллионам пользователей? 🚀

В Авито актуальна вакансия в команду, которая занимается разработкой продукта по управлению виртуальной инфраструктурой:

1️⃣ SRE инженер в команду Dev

Также в поиске инженера команда инфраструктуры, которая обеспечивает весь фундамент Авито (от серверов до внутреннего облака):

2️⃣ Системный инженер HPC кластеров

А ещё есть вакансия в команде, которая занимается развитием и администрированием систем, повышающих безопасность компании, на основе Infrastructure as Code подхода:

3️⃣ DevOps Engineer

Вас будут ждать:

– достойная зарплата, размер которой обсуждается на собеседовании;
– прозрачная система премий;
– интересные и важные задачи на очень большом проекте;
– передовые технологии и подходы, возможность пробовать новое;
– опытные и заинтересованные коллеги, готовые оказать поддержку;
– мощное железо, дополнительные мониторы и всё, что нужно для продуктивной работы;
– личный бюджет на обучение, который можно тратить на книги, курсы и конференции;
– забота о здоровье: ДМС со стоматологией с первого дня, в офисе принимают терапевт и массажист;
– возможность работать удалённо и по желанию посещать комфортный офис в Москве или Санкт-Петербурге.

Скорее откликайтесь!

Читать полностью…

Bash Days | Linux | DevOps

РЕД ОС подходит для использования в гос. учреждениях, объектах КИ. Она востребована везде, где важен вопрос безопасности и санкционная устойчивость.

30 октября узнайте все о работе с дисками в РЕД ОС! Вместе с Никитой Климовым разберемся в темах:
- Современная адресация дисков: Поймете, как эффективно управлять дисковым пространством.
- Логические диски и их применение: Узнаете, где и как использовать логические диски для оптимизации работы.
- Инструменты ОС для работы с дисками: Освоите полезные утилиты, такие как fdisk и lsblk.

Используйте время с пользой, чтобы:
1️⃣ Получить практические знания, задать вопросы и получить конкретные решения для своих задач.
2️⃣ Оценить все возможности РЕД ОС и ее мощные инструменты.

✔️Запишитесь сейчас и поднимите свой уровень администрирования: https://clck.ru/3DzCKx

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru, erid: 2Vtzqxi4ro5

Читать полностью…

Bash Days | Linux | DevOps

Открытый вебинар «Мифы о надёжности Kubernetes: Ошибки, которые стоят вам продакшена» от Слёрм

Когда надежное становится ненадежным и почему многие системы обречены на падение?

На вебинаре покажем самые эпичные фейлы сбоев и фатальные ошибки в настройке кластеров k8s, стоившие компаниям многих часов простоя:

- Кластеры разваливаются
- API-сервера выходят покурить
- А coredns не понимает, кто он и где

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


Советы, как превратить ваш кластер из катастрофы в более-менее стабильную штуку, которая может прожить без падений хотя бы 2 дня, тоже будут😉

Спикеры:
- Виталий Лихачев. SRE в bооking.соm
- Всеволод Севостьянов. Staff engineer в Lokalise

Когда вебинар: 23 октября в 19:00 мск
Регистрация через бот

Реклама ООО «Слёрм» ИНН 3652901451

Читать полностью…

Bash Days | Linux | DevOps

Как Yandex Cloud делает Managed Service for Kubernetes?

В этом выпуске «Как мы делаем Yandex Cloud» обсуждаем работу над Managed Service for Kubernetes. Специальный гость — Александр Хаустов, руководитель подразделения Kubernetes в Yandex Cloud.

О чём поговорили?

👉 Как обеспечить стабильность инфраструктуры K8s, где более 4 тысяч кластеров и несколько сотен тысяч ядер?

👉 Как планировать изменения, когда поступает множество запросов от внешних и внутренних пользователей?

👉 Какие компетенции должны быть у разработчика в команде облачного Kubernetes?

Больше о том, как делаем мы Yandex Cloud в канале.

Читать полностью…

Bash Days | Linux | DevOps

Сегодня специалисты DevOps — одни из самых востребованных на рынке.

По данным hh.ru, на 2000 вакансий приходится 1900 соискателей. Если вы хотите работать с методологией DevOps — попробуйте курс Практикума.

После курса вы:
— начнёте применять DevOps в работе,
— разберётесь в Docker и Kubernetes,
— изучите современные инструменты,
— почувствуете себя опытным SRE.

Поможем сделать релизы более быстрыми и безопасными, инфраструктуру — стабильной, а взаимодействие команд — более эффективным и слаженным. А дальше — получить новый грейд или ответственную роль в команде.
Программа рассчитана на 6 месяцев, учёба займет от 15 часов в неделю. В финале — итоговый проект для портфолио, в котором нужно подготовить инфраструктуру и настроить конвейер деплоя.

Осваивать принципы DevOps начнём уже в этом месяце.
Приходите учиться!

Читать полностью…

Bash Days | Linux | DevOps

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

Приходите на вебинар 22 октября в 11:00, где владелец продукта Александр Бобровских покажет демо инструмента, расскажет про особенности архитектуры и преимущества для команд разработки.

Что еще обсудим:
· Почему двусторонняя синхронизация лучше обычного мигратора данных.
· Что дает интеграция с другими инструментами Platform V Works.
· Какую роль играют AI-ассистенты в TaskTracker.

Кому будет полезен вебинар:
· Руководителям отделов
· Проджект менеджерам
· Менеджерам продуктов
· СТО
· Scrum-мастерам

Регистрация уже открыта

Читать полностью…

Bash Days | Linux | DevOps

Как IT-технологии помогают следить за популяцией редких животных? Вопрос не из простых, но если поговорить со знающими людьми, можно найти ответ! Именно это и сделали блогер Тёма Пименов и комьюнити-менеджер Яндекс Образования Рина Родионова.

В подкасте «Непрошеный просвет» они провели настоящее IT-расследование: пообщались с Эдуардом Аллахвердовым, сотрудником Yandex Cloud и выпускником МФТИ и ШАДа, и выяснили, как технологии Data Science помогают учёным следить за снежными барсами в национальных парках. А ещё расспросили гостей из ШАДа и Yandex Cloud, на какие программы стоит обратить внимание, чтобы заниматься подобными проектами.

Включайте выпуск прямо сейчас и присоединяйтесь к IT-расследованию! Полная версия доступна по ссылке.

Читать полностью…

Bash Days | Linux | DevOps

На прошлой неделе обещал в чатике показать как без особых финансовых потерь потыкать полноценный Selectel. Ща.

Для начала регаешься тут.

Далее переходишь в левом сайдбаре в раздел — «Облачная платформа» и в верхнем правом углу жмешь на кнопку «Создать сервер».

Важно! Выбираешь регион: Москва - ru-7b

Натыкиваешь параметры:

1. CPU: 1
2. RAM: 512 Mb
3. HDD Базовый: 10 Gb
4. Сеть NAT

И самое главное тыкни галку: Прерываемый сервер

Опция «Прерываемый сервер» есть только в регионе Москва - ru-7b

Эта конфигурация обойдется тебе в 266 рубля. С параметрами 2x2x20 будет соответственно в 2 раза дороже.

Но сразу берем во внимание, что это прерываемый сервер и обычно работает 24 часа, потом отключается со статусом Expired.

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

Если тебе понадобится белый айпишник, придется раскошелится еще на 178 рублей. Но ты в праве запихать туда wireguard или openvpn и ходить по внутренним айпишникам.

Если в конфигурации сервера ты не выбирал Локальный диск, а сделал сетевой — то после удаления сервера, с сетевого диска можно будет без труда его восстановить. Просто раскатываем новый «прерываемый сервер» и подключить этот сетевой диск как загрузочный.

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

Короче такие сервера отлично подходят чтобы быстро что-то проверить. Продакшен естественно на них тащить не нужно, однажды проебешь всё разом.

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

Ну а кому вся эта хуйня чужда и ты привык к обычным VPS, у Селектела есть ЭТО. В нём гораздо меньше опций, нет обвесов, нет терраформа и т.п. но все же это тот же Селектел 🦖, ну и цены тут гораздо демократичнее:

CPU: 1 / RAM: 512 / SDD: 20 = 200 рублей


В общем на потыкать тот же терраформ в боевых условиях рекомендую первый вариант с прерываемыми серверами.

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

tags: #рабочиебудни

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Интересный вопрос сегодня залетел:

Если функции, вынесены в файл, подключенный через source, bash каждый раз его будет открывать/перечитывать при обращении к функции? Или как-то считает в память и все?


Давай посмотрим что происходит в кишках в это время. Давненько мы с тобой в strace не смотрели.

Предположим есть bash скрипт с функциями:

functions.sh

#!/bin/bash

bashdays_function() {
echo "Hello from BashDays"
}


И основной скрипт, который сорсит файл с функциями:

test_script.sh

#!/bin/bash

source ./functions.sh

bashdays_function
bashdays_function


Не забываем сделать: chmod +x test_script.sh

Запускаем test_script.sh под контролем strace:

strace -e trace=openat ./test_script.sh


И видим:


openat(AT_FDCWD, "./test_script.sh", O_RDONLY) = 3
openat(AT_FDCWD, "./functions.sh", O_RDONLY) = 3

Hello from BashDays
Hello from BashDays


То есть в контексте скрипта test_script.sh, файл с функциями был прочитан один раз.

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

Если бы файл functions.sh читался каждый раз, то мы увидели бы несколько строчек openat(AT_FDCWD).

Грубо говоря при каждом запуске test_script.sh, подключенный файл через source будет прочитан один раз.

Вроде очевидно, но порой заставляет задуматься.

Изучай!

tags: #bash #debug #linux

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

🎉 Результаты розыгрыша:

Победители:
1. MiRacLe (@miracle_rpz)
2. Mikhail (@WEB3_SAMURAI)
3. Владимир (@Dedula_Star)

Проверить результаты

Читать полностью…

Bash Days | Linux | DevOps

Покопавшись с вопросом по SPF из этого поста, решил воспользоваться советом Ivanchos, а именно — для начала выписать все ip которые инклудятся по домену.

Выписал, получилось достаточно много, строчка SPF стала длинной как хуй туземца, размером > 1024 символов.

v=spf1 ip4:178.154.239.164/32 ip4:77.222.53.78/32 ......


Согласно RFC 7208, длина SPF-записи (Sender Policy Framework) не должна превышать 255 символов в одной строке. Однако, если SPF-запись превышает 255 символов, ее можно разбивать на несколько строк, но общая длина записи не должна превышать 512 символов при передаче в DNS.


Хотя по некоторым данным допускается 450 символов.

А у меня блядь превышает… 1039!

Попёрся я обратно в SPF Surveyor смотреть. И в самом низу увидел секцию PIDR CIDR IP, где перечислялись диапазоны.

Ёпта, а чо так можно было? Собираю все эти диапазоны в одну строку, благо их там адекватное количество.

v=spf1 
ip4:32.190.247.0/24
ip4:65.233.160.0/19
ip4:64.102.0.0/20
ip4:75.14.192.0/18
ip4:78.125.0.0/16
ip4:103.177.8.0/21
ip4:174.194.0.0/16
ip4:206.85.128.0/17
ip4:213.58.192.0/19
ip4:171.217.0.0/19
ip4:171.217.32.0/20
ip4:171.217.128.0/19
ip4:44.92.0.0/15
ip4:48.107.0.0/16
ip4:81.220.186.0/24
ip4:168.154.239.164/32
~all


Скармливаю сначала в валидатор, а потом уже добавляю в TXT.

Хуяк! И оно работает! Теперь по DNS lookups needed to validate the record получаем - 0/10.

То есть теперь мы вообще не делаем никакие DNS запросы, а чисто сидим на CIDR.

За сутки на почту dmarc@ почти перестали приходить письма с варнингами, да и саппорт пока молчит, почта ходит.

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

Если всё накроется пиздой, я обязательно тебе про это сообщу ))

Всего тебе наилучшего!

tags: #рабочиебудни

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Bash генератор OTP для 2FA

Я давненько пользуюсь Authy. Это генератор OTP кодов для 2FA. Большим плюсом было — что этот генератор работал на десктопе.

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

TOTP (Time-based One-Time Password) — это алгоритм, используемый для генерации одноразовых паролей (OTP), которые действуют в течение ограниченного времени.


Короче в мою зону комфорта беспощадно насрали.

Каждое случившиеся гавно это повод изобрести велосипед что-то своё.

Пошло оно всё нахуй! Будем генерить коды Bash скриптом!

Для начала нам понадобится утилита zbar, она позволит из терминала распознать qr код, этот код выдают сервисы где включается 2FA.

Не парься, иксы не нужны, всё работает нативно в терминале.

sudo apt install zbar-tools


Далее пиздуем например в gitlab и включаем 2FA, в ответ оно тебе выплюнет QR код. Делаем скриншот QR и сохраняем.

Запускаем сканер:

zbarimg gitlab_qr.png


В ответ получаем нечто подобное:

QR-Code:otpauth://totp/gitlab.com:gitlab.com_hello%40devopsina.ru?secret=1234567890ABCDEFG&issuer=gitlab.com

scanned 1 barcode symbols from 1 images in 0.02 seconds


Замечательно. Из этой кишки нам нужен только secret=1234567890ABCDEFG.

Устанавливаем вторую утилиту:

sudo apt install oathtool


Накидываем bash скрипт:

#!/bin/bash

SECRET="1234567890ABCDEFG"
echo "Gitlab 2FA code: $(oathtool --totp -b "$SECRET")"


Запускаем и получаем желаемый OTP код, вводим его в Gitlab и охуеваем. Мы успешно прошли 2FA. Всё работает!

Базу расковыряли. Теперь нужно какое-то человеческое решение. Накидываем еще один bash скрипт:

#!/bin/bash

secrets=(
"GitLab:1234567890ABCDEFG"
"Google:1234567890ABCDEFG"
"Bashdays:1234567890ABCDEFG"
)

for i in "${!secrets[@]}"; do
IFS=":" read -r service secret <<< "${secrets[i]}"
echo "$((i + 1)). $service"
done

read -p "Введите номер сервиса: " choice

if [[ "$choice" -gt 0 && "$choice" -le "${#secrets[@]}" ]]; then
IFS=":" read -r selected_service selected_secret <<< "${secrets[choice - 1]}"
TOTPCODE=$(oathtool --totp -b "$selected_secret")
echo "TOTP код для $selected_service: $TOTPCODE"
else
echo "Неверный выбор."
fi

read -p ""


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

Что-то вроде:

secrets_file="secrets.txt"

while IFS= read -r line; do
secrets+=("$line")
done < "$secrets_file"


Сохраняем получившийся скрипт в qr.sh, делаем алиас если нужно и запускаем. В ответ получаем нумерованный список сервисов:

1. Gitlab
2. Google
3. Bashdays

Введите номер сервиса:


Вводим нужный номер сервиса и получаем актуальный OTP код.

Всю эту хуйню можно легко запилить в телеграм бота и генерить OTP коды прям в там не отходя от кассы. А также сделать автоматическую распознавалку QR с добавлением новых сервисов в список.

Например, кидаешь боту QR картинку, он ее распознает, добавляет в sqlite базу этот сервис и генерит по запросу коды.

В общем тут уже полет фантазии, можно и кнопочки прикрутить и другие украшения. Было бы время и желание.

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

Вот такой хуйнёй переодически приходится заниматься.

Ладно, чо. Хорошего тебе дня, увидимся!

tags: #linux #bash #рабочиебудни

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Как правильно натянуть презерватив

Вот поставил ты docker, запустил на нем контейнер, пробросил порты, збс! Только вот есть одно НО. Проброшенные порты торчат жопой наружу и любой желающий может получить к ним доступ.

Хуйня! У меня например на хостовой машине стоит nginx, который прокси-пасит по урлам на нужные приложения, например:

curl https://bashdays.ru/vault/


И оно проксирует на localhost:8002, на этом порту крутится контейнер с vault hashicorp.

Но если сделать так:

curl XXX.XXX.XXX.XXX:8002


Ты сразу попадешь в контейнер, минуя nginx и все его правила. Гавно!

Напрашивается iptables, но в связке с docker это то еще приключение.

Про эти моменты писал в этом и этом посте.


Есть решение гораздо изящнее. Рассмотрим пример с gitea.

Это урезанный docker-compose.yml

version: "3"

networks:
gitea:
external: false

services:
server:
image: gitea/gitea:latest
networks:
- gitea
volumes:
- gitea:/data
ports:
- "127.0.0.1:3000:3000"
- "127.0.0.1:2221:22"


Смотрим секцию с портами и видим там биндинг на 127.0.0.1. Вот это оно и есть. То есть ты и порты пробрасываешь на хостовую машину и наружу ими не светишь.

Nginx на хостовой машине отлично сходит на 127.0.0.1:3000, но вот если снова выполнить:

curl XXX.XXX.XXX.XXX:3000


То тебе покажут письку! 😑

Вроде элементарно, но как оказалось дохуя специалистов этого не знают и продолжают трахаться с iptables.

И да, оказывается многие (в основном деды) не знают что docker-compose (тот что бинарник) это легаси и файлики docker-compose.yml теперь можно запускать так:

docker compose up -d


А вообще если у тебя всё в контейнерах крутится, выкинь nginx и замени на traefik и никакие порты по умолчанию жопой наружу торчать не будут + автоматическое получение SSL для доменов.

Пользуйтесь!

tags: #devops #docker #security

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

🎉 Приглашаем вас на вебинар по основам мониторинга Linux! 🎉

📅 Когда: 28 октября, 19:00 (мск)
🌐 Где: Онлайн (ссылка на вебинар будет предоставлена после регистрации)
👨‍🏫 Спикер: Николай Лавлинский

Тема: "Основы мониторинга Linux"

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

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

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

📌 Зарегистрируйтесь для участия: https://vk.cc/cD7MrW

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Bash Days | Linux | DevOps

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

Привет ребят. Недавно я запилил пост — «Bash генератор OTP для 2FA» и буквально через день, случайно, обнаружил неведомую хуйню.

Мой основной парольник это «Bitwarden self-hosted». Пользуюсь я им очень давно, перепробовал кучу всего, платного и бесплатного, но Bitwarden покорил моё сердечко.

Про все его фичи писать не буду, ты сам всё прекрасно знаешь если пользуешь им.

Короче, заводя очередной пароль от сервиса я случайно захуячил пароль в какое-то поле ТОТP (Ключ аутентификатора).

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

Хм… Дак это же ебать генератор 2FA кодов!!! Встроенный в Bitwarden!

Включил 2FA в gitea, проверил, коды отлично подходят. Сука!

Как говорится — век живи, век учись.

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

Пользуйтесь, если кто не знал…

ps: по секрету, сегодня залетит очередная пицца, не проеби!


tags: #utilites #security #рабочиебудни

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Дурень думкой богатеет.

Смотрел я на логи ssh и думал, что же меня так раздражает. И понял, что меня достает не сама попытка перебора.

За стойкость пароля/ключа я спокоен. Меня достает то количество мусора, которое я должен периодически просматривать. И у меня возникла идея.

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

Конечно попытки простой долбежки тоже нужно учитывать, но, возможно, не так подробно, а за неделю, день или час и общем количеством (интегрально) чтобы иметь представление об интенсивности атаки.

Меня резкое снижение интенсивности атаки напрягает больше, чем ее повышение :-)

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

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

tags: #linux #security © by Tagd Tagd

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Включаем режим параноика.

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

Но почему-то многие думают, что это касается только ссылок http:// https:// ftp://.

Тут на @gitgate недавно проскакивала тема про Консольные онлайн Telnet/SSH игры.

Посмотрим на это глазами параноика: Что происходит, когда вы подключаетесь к ссылке вида ssh user@addr.dom. Ну, ничего страшного.

Просто в логах сервера отобразится ваш IP. Ситуация усугубляется, когда вы заходите на ссылку вида ssh addr.dom.

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

Прикиньте, есть ip и уже есть логин. Осталось подобрать пароль. Я бы на месте малышей-плохишей специально рыскал бы по github в поисках всякой прикольной фигни и собирал пары ip/login.

Да и логин, не какой-то там test, а реально используемый - сам по себе ценный ресурс.

Поэтому не ходите по ссылкам с рабочих машин, а если видите ссылку ssh addr.dom не поленитесь и добавьте пользователя test@addr.dom, чтобы не светить свой реальный логин.

Прошу прощениt за тему, которая и так всех задолбала.

tags: #linux #security © by Tagd Tagd

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

FALSE!

Ну, еще одна статейка для укрепления нервов.

Напоминаю: БЕЗДУМНАЯ ПРАВКА СИСТЕМНЫХ ФАЙЛОВ МОЖЕТ ПРИВЕСТИ НЕРАБОТОСПОСОБНОСТИ СЕРВЕРА.


Все знают, что для блокировки пользователя нужно использовать команду:

sudo usermod -L username


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

Все это дело происходит в файле /etc/shadow, где хранятся зашифрованные пароли пользователей.

Читаем man shadow:

Если поле пароля содержит строку, которая не удовлетворяет требованиям crypt(3), например содержит «!» или, то пользователь не сможет использовать этот пароль unix для входа (но может войти в систему под другими паролями).


Ахренеть. Я тут пользователя блокернул, а он войти может.

Проверяем. Точно, по ssh, через ключ, входит и выходит. Замечательно выходит!

Лирическое отступление: В мане shadow также написано, что пароль вообще может быть пустым, но некоторые программы могут запретить его использование.

Понимаете для чего нужна опция PermitEmptyPasswords в файле /etc/ssh/sshd_config?

Напоминаю, что если установить пользователю оболочку /usr/sbin/nologin, то иногда этот пользователь может получить доступ к файлам через sftp (при установленной подсистеме internal-sftp).

➡️ Что делать для полной блокировки пользователя?

Воспользоваться "оболочкой /usr/bin/false" Она просто возвращает код ошибки.

Резюмирую:

При блокировке пароля возможен доступ по ключу.

/usr/sbin/nologin иногда дает доступ к файлам
/usr/bin/false не дает, стерва.

man usermod shadow sshd_config

tags: #linux #security © by Tagd Tagd

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

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

Напоминаю: БЕЗДУМНАЯ ПРАВКА СИСТЕМНЫХ ФАЙЛОВ МОЖЕТ ПРИВЕСТИ НЕРАБОТОСПОСОБНОСТИ СЕРВЕРА.


Итак: если пользователю прописать оболочкой /usr/sbin/nologin

sudo usermod -s /usr/sbin/nologin user


Это вовсе не означает, что пользователь не может получить доступ к системе.

Да, он не может залогиниться с клавиатуры и зайти по ssh. Но он вполне МОЖЕТ ПОЛУЧИТЬ ДОСТУП К ФАЙЛАМ по sftp при условии, что в файле /etc/ssh/sshd_config есть строка Subsystem sftp internal-sftp, не знаю как сейчас, а раньше эта подсистема была установлена по-умолчанию.

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

Заткнуть эту дырку очень просто. В файле /etc/ssh/sshd_config заменим подсистему sftp:

#Subsystem sftp internal-sftp
Subsystem sftp /usr/lib/openssh/sftp-server


Теперь проверка правильности конфигурации и перезапуск службы в случае успеха.

sudo sshd -t && sudo systemctl restart sshd


В этом случае при попытке входа по sftp получим сообщение:

Received message too long 1416128883 Ensure the remote shell produces no output for non-interactive sessions.

Резюмирую: При оболочке nologin можно получить доступ к файлам если sftp internal-sftp.

Сможешь спать спокойно, не заглянув в /etc/ssh/sshd_config ? :-)

tags: #linux #security © by Tagd Tagd

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Сегодня про айпишники.

Допустим покупаешь ты себе облачный vps. Этому серверу автоматически назначается IP адрес, по которому ты можешь подключиться по ssh.

Например у AEZA есть услуга: Добавить IP адрес. То есть к серверу можно привязать 2 айпишника.

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

Смотрим сетевые настройки: /etc/networks

auto ens3
iface ens3 inet static
address 62.60.238.33
netmask 255.255.255.255
gateway 10.0.0.1
dns-nameservers 1.1.1.1 8.8.8.8

auto ens3:0
iface ens3:0 inet static
address 62.60.238.133
netmask 255.255.255.255
dns-nameservers 1.1.1.1 8.8.8.8


Всё логично и красиво. Айпишники прописаны статично, никакого dhcp и плавающих адресов с выходом на роутере.

Если я сделаю так:

curl ifconfig.me


То в выхлопе получу первый IP адрес (62.60.238.33).

Про сервисы вроде ifconfig писал в этом посте.


Но как мне выходить в интернет с конкретного IP адреса?

Можно курлыкнуть так:

curl --interface 62.60.238.133 ifconfig.me
curl --interface ens3:0 ifconfig.me


Пошли дальше. Давай настроим маршрутизацию, чтобы 50% трафика выходило через первый айпишник, а 50% через второй.

Открываем /etc/networks и комментим блок со вторым IP адресом:

auto lo
iface lo inet loopback

auto ens3
iface ens3 inet static
address 62.60.238.33
netmask 255.255.255.255
gateway 10.0.0.1
dns-nameservers 1.1.1.1 8.8.8.8

# auto ens3:0
# iface ens3:0 inet static
# address 62.60.238.133
# netmask 255.255.255.255
# dns-nameservers 1.1.1.1 8.8.8.8


Далее хуячим в терминале:


ip addr add 62.60.238.133/32 dev ens3

iptables -t nat -A POSTROUTING -o ens3 -m statistic --mode random --probability 0.5 -j SNAT --to-source 62.60.238.33
iptables -t nat -A POSTROUTING -o ens3 -m statistic --mode random --probability 0.5 -j SNAT --to-source 62.60.238.133

ip route flush cache


Добавляем второй айпишник на тот-же интерфейс где уже присвоен айпишник. А правила iptables изменяют исходный IP на с вероятностью 50%, когда пакеты проходят через интерфейс ens3.


Проверяем:

for i in {1..5}; do curl https://ifconfig.me; echo ""; sleep 5; done

62.60.238.33
62.60.238.133
62.60.238.133
62.60.238.33
62.60.238.33


ЗАЕБИСЬ! Теперь наш сервер выходит в интернеты с разных IP адресов.

Что с этим делать дальше? Хуй знает, я показал тебе концепт работы с двумя айпишниками, а ты уже дальше прикидывай где и как это можешь использовать.

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

Всем спасибо и увидимся!

tags: #networks

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Сегодня мы рассмотрим одну очень интересную тему. Бывает, что у вас маленькая локалка (/24), или сеть класса D.

И нужно, чтобы у некоторых групп пользователей были разные внешние IP.

Ну, например wi-fi желательно выпускать через отдельный ip, чтобы меньше было проблем типа "из вашей сети исходят подозрительные запросы".

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

А через прокси не каждый софт работает. Ну, в общем, задача понятна.

Использовать будем машину на pfsense. Да, без картинок воспринимается не очень, но это лучше, чем ничего.


Добавляем сетевые интерфейсы. Хорошо, если у вас есть несколько линий от разных провайдеров. Если нет - не беда.

pfsense позволяет работать с usb модемами, и подключениями типа pptp, pppoe и другими. Сейчас практически любой домашний роутер может работать как pptp сервер.

Но я не буду останавливаться на вопросе, как создать интерфейсы, как настроить pptp. Информации об это море. И да, здесь не поднимаем тему безопасности - задача сменить IP.

Добавляем Новые интерфейсы (типа PPP, или что там у вас есть)

Создаем алиасы с группой хостов, которые должны выходить через ip, отличающийся от шлюза по умолчанию. Таких может быть несколько. Например, IP_GATE1 IP_GATE2 IP_GATE3, по одному на каждый шлюз.

Система\Маршрутизация\Шлюзы добавляем шлюзы и в свойствах снимаем галки Мониторинг Шлюзов и Действие Шлюза. Если так не сделать - в случае "отваливания шлюза" умная система перенаправит трафик через шлюз по умолчанию, и на другом конце "засветится" ip шлюза по-умолчанию.

Межсетевой экран\Правила\LAN Для каждой группы создаем два правила:

- Разрешить IPv4 протокол любой Источник IP_GATE1, и в расширенных опциях указываем нужный шлюз (GATE1) (слева на правиле в общем списке правил появится шестеренка)

- Ниже: Блокировать IPv4 протокол любой Источник IP_GATE1.


Для остальных - аналогично. Теперь Группа IP_GATE1 будет выходить через GATE1 или вообще не будет выходить в случае отсутствия инета на GATE1.

Применять исключительно для причинения добра!

tags: #networks © by Tagd Tagd

🔔 @bashdays➡️ @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Все умрут, а я root!

Еще раз всем здрасти, раз в неделю в рандомный момент буду разыгрывать пиццу 🍕 (1000р). Кто первый в комменты напишет ответ на задачку, тот и забирает приз.

Чуть позже сделаю еще 2 призовых места с шавухой.

Коммент с ответом должен быть к посту, а не в чатике. А далее к тебе приходит Макс, спрашивает номер РФ карты и закидывает пиццу.

У кого не включены уведомления на канал, ну ты сам виноват!

Поехали: 13−6+7 ?

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

Читать полностью…

Bash Days | Linux | DevOps

IT Community Day в Санкт-Петербурге прошёл идеально! 👨‍💻

Сотни IТ-специалистов встретились, чтобы послушать доклады топовых спикеров, прокачать hard и soft skills, познакомиться, повеселиться на афтерпати, и главное — стать частью крупнейшего IТ-комьюнити!

Завидуем тем, кто смог попасть на это мероприятие. А остальным советуем не расстраиваться: совсем скоро состоятся IT Community Day в:

✔️ В Казани 12 октября научимся управлять большими данными, укрощать искусственный интеллект, создавать успешное резюме и находить подход к карьере.

✔️ И в Екатеринбурге 19 октября поговорим об интеграции LLM в приложение, методологии API-first и комбинации личного и профессионального развития.

Успейте зарегистрироваться! 💚

👉 Казань, 12 октября
👉 Екатеринбург, 19 октября

Читать полностью…

Bash Days | Linux | DevOps

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

⏰ Когда: 17 октября, 19:00 (мск)
Где: Онлайн. Сделайте свою инфраструктуру неуязвимой вместе с нами!
🔆 Спикер: Николай Лавлинский

👉 Тема: Создаём отказоустойчивый кластер с Vrrp и Haproxy

Что вас ждет:
- Глубокое погружение в Vrrp: Откройте для себя секреты создания отказоустойчивых систем, которые не подведут вас в критический момент.
- Практические навыки с Haproxy: Научитесь собирать рабочий стенд для отказоустойчивого балансировщика, который обеспечит бесперебойную работу ваших сервисов.

Для кого этот вебинар:
- Системные администраторы
- DevOps-инженеры

Преимущества участия:
- Получите практические знания, которые можно сразу применить для повышения отказоустойчивости ваших систем.
- Изучите принципы работы Vrrp и Haproxy, чтобы самостоятельно создавать надежные и эффективные решения для вашей инфраструктуры.

👉 Для участия зарегистрируйтесь на сайте: https://otus.pw/K3es/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Bash Days | Linux | DevOps

Так, про aeza, коллизия вышла

aeza.ru - находится в юрисдикции РФ и рассчитан на юридических лиц.
aeza.net - находится в юрисдикции Великобритании.

аккаунты как оказалось не сквозные , все решилось, всем кто принял участие в решении вопроса — спасибо!

Теперь у меня есть прямые контакты, буду теперь заебывать их в личку )

Читать полностью…

Bash Days | Linux | DevOps

Привет, сегодня халява. У меня есть 3 проходки-билета (скидка 100%) на онлайн-конференцию «Подлодка».

Если есть желание посетить сие онлайн-мероприятие, кликай кнопку ниже. В выходные опубликуются результаты. Ну а дальше с вами свяжется Макс и раздаст ништяки. Такие дела!

Условия розыгрыша: подписаться на канал @gitgate

Читать полностью…

Bash Days | Linux | DevOps

Podlodka Techlead Crew – онлайн-конференция для техлидов и опытных инженеров, которая пройдет с 14 по 18 октября.

Тема сезона – "Проектируем надёжность". В программе много всего интересного, и вот несколько примеров:

- Александр Поломодов (Т-Банк) и Олег Бондарь (Яндекс) расскажут о том, как закладывать надёжную архитектуру на старте, используя механизмы самоисцеления и повторных попыток.

- Григорий Кошелев проведет публичное собеседование, в ходе которого проверит, насколько техлиды понимают важность надёжности систем.

- Алексей Ужва объяснит, как мелкие проблемы и человеческие ошибки могут стать причиной крупных сбоев через месяцы эксплуатации.

- Николай Тимонин разберёт, как Feature Toggles помогают гибко управлять функционалом и снижать риски.

А еще в командах спроектируем надежную систему в рамках архитектурной каты.

Подключайся и учись строить устойчивые системы! https://podlodka.io/techcrew

Реклама. ИП Толстая Е.П. ИНН: 507503278104, erid: 2VtzqvLDFxW

Читать полностью…

Bash Days | Linux | DevOps

Сеньорами не рождаются, а становятся!

Чтобы сократить этот путь, мы ведём уютный канал о лучших практиках, кейсах, разборах, новых технологиях и инструментах для сеньоров и ДИТов😊

✔️ Как стать DevOps
✔️ Книги по DevOps: Методологии и инструменты 
✔️ Книги об Инфобезе и продуктовом подходе  
✔️ Промо-акция глазами DevOps 
✔️ Какие технические навыки нужны ДИТу 
✔️ Связь DevOps, Lean, ITIL и Agile
✔️ «За монолит!»... или микросервисы 
✔️ VMware по-русски: опыт внедрения отечественных аналогов
✔️ Сравнение и тесты Российских платформ виртуализации

👉 Подписаться

Реклама. ООО «Кортэл» ИНН: 7816246925, erid: 2Vtzqv9mx3C

Читать полностью…
Subscribe to a channel