fa
Feedback
Bash Days | Linux | DevOps

Bash Days | Linux | DevOps

رفتن به کانال در Telegram

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

نمایش بیشتر

📈 تحلیل کانال تلگرام Bash Days | Linux | DevOps

کانال Bash Days | Linux | DevOps (@bashdays) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 23 794 مشترک است و جایگاه 5 701 را در دسته فناوری و برنامه‌ها و رتبه 28 128 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 23 794 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 17 ژوئن, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -202 و در ۲۴ ساعت گذشته برابر -5 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 21.91% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 12.48% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 5 213 بازدید دریافت می‌کند. در اولین روز معمولاً 2 971 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 21 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند bashdays, linux, bash, docker, скрипт تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.r...

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 18 ژوئن, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

23 794
مشترکین
-524 ساعت
-277 روز
-20230 روز
آرشیو پست ها
На вас падают задачи, где из полезной информации только заголовок? Новый TaskTracker от СберТеха решает эту проблему, а также
На вас падают задачи, где из полезной информации только заголовок? Новый TaskTracker от СберТеха решает эту проблему, а также умеет адаптироваться под любой состав команды и производственный процесс. Приходите на вебинар 22 октября в 11:00, где владелец продукта Александр Бобровских покажет демо инструмента, расскажет про особенности архитектуры и преимущества для команд разработки. Что еще обсудим: · Почему двусторонняя синхронизация лучше обычного мигратора данных. · Что дает интеграция с другими инструментами Platform V Works. · Какую роль играют AI-ассистенты в TaskTracker. Кому будет полезен вебинар: · Руководителям отделов · Проджект менеджерам · Менеджерам продуктов · СТО · Scrum-мастерам Регистрация уже открыта

Сегодня мы рассмотрим одну очень интересную тему. Бывает, что у вас маленькая локалка (/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

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

Все умрут, а я root! Еще раз всем здрасти, раз в неделю в рандомный момент буду разыгрывать пиццу 🍕 (1000р). Кто первый в ко
Все умрут, а я root! Еще раз всем здрасти, раз в неделю в рандомный момент буду разыгрывать пиццу 🍕 (1000р). Кто первый в комменты напишет ответ на задачку, тот и забирает приз. Чуть позже сделаю еще 2 призовых места с шавухой. Коммент с ответом должен быть к посту, а не в чатике. А далее к тебе приходит Макс, спрашивает номер РФ карты и закидывает пиццу. У кого не включены уведомления на канал, ну ты сам виноват! Поехали: 13−6+7 ? Можешь написать бота, парсить и решать задачки автоматом, но лучше не трать своё время, задачки будут не шаблонные и порой пиздец упоротые. #pizza

На прошлой неделе обещал в чатике показать как без особых финансовых потерь потыкать полноценный 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

IT Community Day в Санкт-Петербурге прошёл идеально! 👨‍💻 Сотни IТ-специалистов встретились, чтобы послушать доклады топовых
IT Community Day в Санкт-Петербурге прошёл идеально! 👨‍💻 Сотни IТ-специалистов встретились, чтобы послушать доклады топовых спикеров, прокачать hard и soft skills, познакомиться, повеселиться на афтерпати, и главное — стать частью крупнейшего IТ-комьюнити! Завидуем тем, кто смог попасть на это мероприятие. А остальным советуем не расстраиваться: совсем скоро состоятся IT Community Day в: ✔️ В Казани 12 октября научимся управлять большими данными, укрощать искусственный интеллект, создавать успешное резюме и находить подход к карьере. ✔️ И в Екатеринбурге 19 октября поговорим об интеграции LLM в приложение, методологии API-first и комбинации личного и профессионального развития. Успейте зарегистрироваться! 💚 👉 Казань, 12 октября 👉 Екатеринбург, 19 октября

Интересный вопрос сегодня залетел:
Если функции, вынесены в файл, подключенный через 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

😱 Не дайте своим сервисам упасть! Присоединяйтесь к нашему вебинару по созданию отказоустойчивых кластеров! ⏰ Когда: 17 октя
😱 Не дайте своим сервисам упасть! Присоединяйтесь к нашему вебинару по созданию отказоустойчивых кластеров! ⏰ Когда: 17 октября, 19:00 (мск) Где: Онлайн. Сделайте свою инфраструктуру неуязвимой вместе с нами! 🔆 Спикер: Николай Лавлинский 👉 Тема: Создаём отказоустойчивый кластер с Vrrp и Haproxy Что вас ждет: - Глубокое погружение в Vrrp: Откройте для себя секреты создания отказоустойчивых систем, которые не подведут вас в критический момент. - Практические навыки с Haproxy: Научитесь собирать рабочий стенд для отказоустойчивого балансировщика, который обеспечит бесперебойную работу ваших сервисов. Для кого этот вебинар: - Системные администраторы - DevOps-инженеры Преимущества участия: - Получите практические знания, которые можно сразу применить для повышения отказоустойчивости ваших систем. - Изучите принципы работы Vrrp и Haproxy, чтобы самостоятельно создавать надежные и эффективные решения для вашей инфраструктуры. 👉 Для участия зарегистрируйтесь на сайте: https://otus.pw/K3es/ Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

🎉 Результаты розыгрыша: Победители: 1. MiRacLe (@miracle_rpz) 2. Mikhail (@WEB3_SAMURAI) 3. Владимир (@Dedula_Star) Проверить результаты

Так, про aeza, коллизия вышла aeza.ru - находится в юрисдикции РФ и рассчитан на юридических лиц. aeza.net - находится в юрисдикции Великобритании. аккаунты как оказалось не сквозные , все решилось, всем кто принял участие в решении вопроса — спасибо! Теперь у меня есть прямые контакты, буду теперь заебывать их в личку )

AEZA 3.14дарасы? Зарегал новый аккаунт для коллеги, создал тикет — а можно ли оплатить по счету от ИП? Аккаунт улетел нахуй в
AEZA 3.14дарасы? Зарегал новый аккаунт для коллеги, создал тикет — а можно ли оплатить по счету от ИП? Аккаунт улетел нахуй в бан. Причем ребята с LF тоже про это писали, типа закинули 100$ и их забанили, мол вы установили слабый пароль на рут, ваш сервер взломали и мы вас пожалуй забаним и деньги не вернем! По ощущениям пока какой-то лютый скам… Для тренировки под ансибл еще норм, но для продовских штук не рекомендую. Хуита какая-то. Совсем ребята испортились. tags: #рабочиебудни — 🔔 @bashdays➡️ @gitgate

Покопавшись с вопросом по 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

Привет, сегодня халява. У меня есть 3 проходки-билета (скидка 100%) на онлайн-конференцию «Подлодка». Если есть желание посетить сие онлайн-мероприятие, кликай кнопку ниже. В выходные опубликуются результаты. Ну а дальше с вами свяжется Макс и раздаст ништяки. Такие дела! Условия розыгрыша: подписаться на канал @gitgate

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

Podlodka Techlead Crew – онлайн-конференция для техлидов и опытных инженеров, которая пройдет с 14 по 18 октября. Тема сезона
Podlodka Techlead Crew – онлайн-конференция для техлидов и опытных инженеров, которая пройдет с 14 по 18 октября. Тема сезона – "Проектируем надёжность". В программе много всего интересного, и вот несколько примеров: - Александр Поломодов (Т-Банк) и Олег Бондарь (Яндекс) расскажут о том, как закладывать надёжную архитектуру на старте, используя механизмы самоисцеления и повторных попыток. - Григорий Кошелев проведет публичное собеседование, в ходе которого проверит, насколько техлиды понимают важность надёжности систем. - Алексей Ужва объяснит, как мелкие проблемы и человеческие ошибки могут стать причиной крупных сбоев через месяцы эксплуатации. - Николай Тимонин разберёт, как Feature Toggles помогают гибко управлять функционалом и снижать риски. А еще в командах спроектируем надежную систему в рамках архитектурной каты. Подключайся и учись строить устойчивые системы! https://podlodka.io/techcrew Реклама. ИП Толстая Е.П. ИНН: 507503278104, erid: 2VtzqvLDFxW

Как правильно натянуть презерватив Вот поставил ты 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

⏳ Сеньорами не рождаются, а становятся! Чтобы сократить этот путь, мы ведём уютный канал о лучших практиках, кейсах, разборах, новых технологиях и инструментах для сеньоров и ДИТов😊 ✔️ Как стать DevOps ✔️ Книги по DevOps: Методологии и инструменты  ✔️ Книги об Инфобезе и продуктовом подходе   ✔️ Промо-акция глазами DevOps  ✔️ Какие технические навыки нужны ДИТу  ✔️ Связь DevOps, Lean, ITIL и Agile ✔️ «За монолит!»... или микросервисы  ✔️ VMware по-русски: опыт внедрения отечественных аналогов ✔️ Сравнение и тесты Российских платформ виртуализации 👉 Подписаться Реклама. ООО «Кортэл» ИНН: 7816246925, erid: 2Vtzqv9mx3C

Не ssh, но близко — sftp. Классная вещь, со своими достоинствами и недостатками. Гораздо круче, чем scp, поскольку кроме копирования позволяет управлять правами доступа. По сравнению с ftp - возможность работы через один порт (легко пробрасывается) Протокол защищенный. Из минусов - может создавать нагрузку на проц. В openssh включен из коробки. Поэтому если есть доступ по ssh - как правило, есть доступ и по sftp. А вот обратное - не всегда верно. Иногда бывает нужно разрешить пользователям доступ по sftp, например, чтобы заливать архивы, но совсем не хочется давать возможность шариться по серваку и смотреть, что там крутится. Вот, для этого есть решение — mysecureshell. Для debian можно поставить:
sudo apt install mysecureshell
После этого у вас появляется свой собственный sftp сервер с возможностью управления пользователями, группами, управление скоростью закачки и отдачи, можно просматривать текущие сессии и прибивать ненужные. Возможностью ограничить пользователя только своим каталогом. И еще работа с виртуальными серверами. Рекомендую. Достаточно пользователю прописать в качестве оболочки mysecureshell - и он человек, ограниченный файловой подсистемой. Кстати, список доступных оболочек можно глянуть так:
cat /etc/shells
А изменить, например так:
sudo usermod -s /usr/bin/mysecureshell username
Конфигурируется данное чудо путем редактирования файла /etc/ssh/sftp_config Кстати, отлично сочетается с sshfs (монтирование через ssh (по факту через sftp)). А вот с rsync, говорят не дружит, но я лично не проверял. Приводить примеры конфигурирования не стал, потому что там все очень понятно и прозрачно. Документация приличная, сам конфиг очень классно комментирован. Репа Mysecureshell Документация tags: #linux #utilites © by Tagd Tagd — 🔔 @bashdays➡️ @gitgate

❓ Хотите узнать, как контейнеризация может изменить ваш подход к разработке и администрированию? 👉 Ждем вас на открытом веби
❓ Хотите узнать, как контейнеризация может изменить ваш подход к разработке и администрированию? 👉 Ждем вас на открытом вебинаре 10 октября в 19:00 мск, где мы разберем: - концепцию контейнеров и их отличия от виртуализации; - основные принципы применения контейнеризации; - особенности файловой системы в Docker; - принцип работы Docker на практике: запуск приложения в контейнере со всеми необходимыми настройками. ======= 👉 Регистрируйтесь прямо сейчас: https://otus.pw/2shl/ ======= 🔆 Спикер Николай Лавлинский — технический директор в Метод Лаб, PhD Economic Science, опытный руководитель разработки и преподаватель. Встречаемся в преддверии старта курса «Administrator Linux. Basic». Все участники вебинара получат специальную цену на обучение! Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Начало месяца - время делать бэкапы. О бэкапах уже столько сказано, что еще одна статья ничего нового не добавит, но тем не менее позволю себе поделиться своим опытом. Сразу скажу, что не бывает правильных и неправильных схем архивирования. Бывают те, которые подходят для вашей задачи и не подходят. Пока мой архив был меньше 10 Тб, я не понимал, нахрена нужны инкрементные копии? А у кого-то петабайты... Архивы настолько важны, что я даже слов подобрать не могу. Архивы - единственное, что может остаться после критического сбоя/атаки. Инфраструктуру можно поднять - это вопрос времени, но есть данные, которые нарабатывались несколько лет, и именно их потеря может быть очень критичной. И из этого следует, что СХД для архивов должна быть самым защищенным элементом инфраструктуры. Очень хорошо, если на эту машину нельзя попасть никаким способом, кроме физического доступа. Кроме этого. СХД - тоже компьютер, поэтому тоже может выйти из строя. Поэтому необходимо хранить данные еще и отдельно на внешних дисках. Причем дисков должно быть минимум два с чередованием (месячным, недельным, ежедневным не важно, но чередование должно быть). Кроме того, есть холивар, по поводу того, кто должен быть инициатором соединения при архивировании - СХД или рабочий сервер. Просто подумайте, кто больше подвержен атаке клиент или сервер. Конечно сервер. Поэтому для обеспечения минимальной безопасности архивов инициировать соединение должна СХД. Я для себе решил вопрос с помощью "перевалочной базы" - Машины, на которую сервера сваливают одну дневную копию, и с которой СХД забирает все архивы. Т.е. и рабочие сервера и СХД в этой схеме являются клиентами. Дело в том, что хорошо защитить один перевалочный сервер проще, чем каждый рабочий сервер. Не буду напоминать, что каждый клиент загружает копию под своей учеткой, чтобы в случае взлома сервера нельзя было поломать архивы соседних серверов. Но в этой схеме тоже есть недостатки дополнительное место, двойной расход сетевого трафика, да и машина нужна. В общем, за надежность всегда приходится платить. Но кроме этого, я сохраняю несколько дневных копий (до 7 штук) прям на сервере, на тот случай, если с данными накосячат пользователи. Причем последнюю копию даже не сжимаю и не шифрую. Ну, и остался вопрос именования архивов. Кто-то использует даты в имени и удаляет по устареванию. Я использую цифры и провожу ротацию по одному файлу за раз. Потому что в случае атаки на сервер времени дата-именованные архивы можно потерять за раз. Для нумерованных архивов для атаки - дату нужно менять несколько раз. Причем число раз будет зависеть от схемы. В общем резюмирую: 1. Хороших и плохих схем архивирования не существует - есть такие, которые подходят вам и не подходят. 2. СХД - самая защищенная машина инфраструктуры. Без возможности управления по сети. 3. Есть внешние копии с чередованием, на случай выхода из строя СХД. 4. Архивные копии между СХД и сервером передаются через промежуточную машину. 5. Несколько дневных копий можно ДОПОЛНИТЕЛЬНО хранить на самом рабочем сервере. 6. Используем нумерованные архивы с ротацией. Холивар в коммментах приветствуется. tags: #рабочиебудни © by Tagd Tagd — 🔔 @bashdays➡️ @gitgate