ch
Feedback
Bash Days | Linux | DevOps

Bash Days | Linux | DevOps

前往频道在 Telegram

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

显示更多

📈 Telegram 频道 Bash Days | Linux | DevOps 的分析概览

频道 Bash Days | Linux | DevOps (@bashdays) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 23 794 名订阅者,在 技术与应用 类别中位列第 5 701,并在 俄罗斯 地区排名第 28 128

📊 受众指标与增长动态

невідомо 创建以来,项目保持高速增长,吸引了 23 794 名订阅者。

根据 17 六月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -202,过去 24 小时变化为 -5,整体触达仍然可观。

  • 认证状态: 未认证
  • 互动率 (ER): 平均受众互动率为 21.91%。内容发布后 24 小时内通常能获得 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
帖子存档
Kubernetes живёт своей жизнью, и обязательно ломается под конец рабочего дня? Значит пора повышать устойчивость, безопасность
Kubernetes живёт своей жизнью, и обязательно ломается под конец рабочего дня? Значит пора повышать устойчивость, безопасность и производительность ваших приложений не ломая кластеры и не роняя прод. 👉Набор на курс «Kubernetes Мега» идёт до 8 ноября За 7 недель вы научитесь: 🔸переносить продукт на платформу k8s 🔸разворачивать отказоустойчивые кластеры 🔸ускорять траблшуттинг 🔸повышать отказоустойчивость продукта 🔸разворачивать и обслуживать кластер с автоматической ротацией сертификатов, автодеплоем и правильным хранением секретов
Бонус к «Kubernetes Мега» 🔥Видеокурс «Kubernetes База» в подарок 100 000 ₽ (вместо 150000 ₽) Промокод на скидку — в боте. Ограниченное кол-во мест
ОБНОВИЛИ ВЕСЬ КУРС в сентябре 2024: ✅78 часов практики ✅7 встреч со спикерами Промокод и подробности курса — в боте 👈 Реклама ООО «Слёрм» ИНН 3652901451

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

Я уже как-то говорил, что считаю awk недооцененным. Большинство примеров сводится к тому, чтобы убрать лишние колонки из отчета. А между тем, AWK, практически полноценный язык программирования. Сегодня я Вам это постараюсь показать. Будем решать задачу о расстановке 8 ферзей на шахматной доске, так, чтобы они не били друг-друга. Решать будем методом перебора. Ну, не полного перебора, немного включим голову. Напомню, ферзь бъет по вертикали, горизонтали, диагонали. Поэтому для начала расставим каждого ферзя на свою вертикаль и будем двигать, проверяя условия боя. Таких будет два - горизонталь и диагональ. Для удобства клеточки буду нумеровать с 0. Итого - получаем 10 вложенных циклов (8 двигают ферзей, 2 - проверка условий боя) ха, тут всего-то 8^8=16777216 вариантов.
#!/bin/bash
#8 ферзей

awk 'BEGIN{
  for(c[0]=8;c[0]--;){
    for(c[1]=8;c[1]--;){
      for(c[2]=8;c[2]--;){
        for(c[3]=8;c[3]--;){
          for(c[4]=8;c[4]--;){
            for(c[5]=8;c[5]--;){
              for(c[6]=8;c[6]--;){
                for(c[7]=8;c[7]--;){
                  b=1
                  for(i=0;i<7 && b;i++){
                    for(j=i+1;j<8;j++){
                      if(c[i]==c[j]){b=0;break}
                      a=c[i]-c[j];n=j-i
                      if(a==n || a==-n){b=0;break}}}
if(b){print c[0]c[1]c[2]c[3]c[4]c[5]c[6]c[7] }
}}}}}}}}
}'
Пояснения: c[i]==c[j]) - проверка на горизонталь. a=c[i]-c[j];n=j-i - проверка на диагональ. Вообщето-то тут должен быть abs(c[i]-c[j]), но в awk нет модуля, поэтому if(a==n || a==-n) Да, и в awk оператор break выходит из одного цикла, поэтому пришлось немного извращаться. (&& b), но задача решена. Примечание я знаю про алгоритмы пермутаций, но тут лобовое решение. Вариантов всего 92. Приведу последний: 04752613 Время выполнения на моем дохлом ноуте ~1.5 минуты. Продолжение следует... tags: #bash © by Tagd Tagd — 🔔 @bashdays➡️ @gitgate

Дарим страшно выгодный сервер от Serverspace🎃 Cоздайте сервер с любой конфигурацией c 28 октября до 3 ноября и получите возм
Дарим страшно выгодный сервер от Serverspace🎃 Cоздайте сервер с любой конфигурацией c 28 октября до 3 ноября и получите возможность выиграть бесплатную инфраструктуру в Serverspace на 12 месяцев! ▪️Удобная панель управления 🔸Процессоры Intel Xeon Gold ▪️ЦОДы на 4 континентах 🔸Высокий uptime ▪️24/7 поддержка Как стать участником розыгрыша? 1. Зарегистрируйтесь в панели управления Serverspace; 2. Создайте сервер с любой конфигурацией – выберите ЦОД, характеристики и нажмите «Создать сервер». 3. Хватайте приз! Получите письмо с информацией о вашем выигрыше на электронную почту. Подробную информация о хэллоуинском розыгрыше можно найти тут🎁 Serverspace - международный облачный провайдер, предлагающий автоматическое развертывание виртуальной инфраструктуры на базе Windows, Linux и российских ОС из любой точки мира менее чем за 1 минуту. Реклама ООО «ИТГЛОБАЛКОМ ЛАБС» ИНН 7841483359 Erid CQH36pWzJqDLvVfBSvfx7CrPipLP6EuU9SKCBdBrp8okc8

Здрасти. Как-то я писал про strace и как применять инъекции. Если пропустил, то читай тут и тут. Ниже скрипт который автоматически пронумерует системные вызовы для последующих инъекций.
#!/usr/bin/perl

use strict;
use warnings;

my %numbs;
select STDERR;
while(<STDIN>) {
    if( /^[0-9]++\s++([a-z0-9_]++(?=\())/ ) {
        my $t = ++$numbs{$1};
        s/\s+/ \e[31m$t\e[m /;  
        die $! if( keys %numbs == 1000 );
    }
    print;
}
exit(0);
Сохраняем это безобразие в файл num_syscalls и делаем chmod +x, ну а дальше запускаем в связке с strace:
strace -o'|./num_syscalls' -yf sh -c 'ls|cat'
Теперь получаем такой выхлоп:
456107 48 close(3</usr/) = 0
456107 52 rt_sigreturn({mask=[]}) 
456107 63 openat(AT_FDCWD</usr/local/sbin>)
456107 53 newfstatat(3)
456107 64 openat(AT_FDCWD</usr/local/sbin>)
Смотрим второй столбик, включаем логику и видим, что системные вызовы нумеруются. Например, возьмем системный вызов openat, видим 63, 64. Это значит что openat был вызван 64 раза. А newfstatat 53. Теперь берем нужный номер системного вызова и применяем инъекцию. Как это сделать и для чего, опять же показывал на примерах (ссылки в начале этого поста). Тема крутая, не нужно ебаться и считать руками. Весь вывод strace отправляется в stderr, чтобы иметь возможность разделять вывод трассировки и вывод исследуемой программы. А чтобы получить только трассировку, можно сделать так:
strace -o'|./num_syscalls' -yf ls > /dev/null
Если бесит подсветка, выпили из перловского скрипта управляющий символ «\e[31m\[em». Такие дела, изучай! tags: #linux #debug 🔔 @bashdays➡️ @gitgate

Анонсируем новый вебинар от экспертов МТС Web Services! 30 октября поговорим про облака в действии ☁️ Почему компании выбираю
Анонсируем новый вебинар от экспертов МТС Web Services! 30 октября поговорим про облака в действии ☁️ Почему компании выбирают облачные технологии для решения своих задач? Эксперты MWS расскажут, как облачные сервисы обеспечивают возможности для управления данными, а также покажут реальные облачные кейсы из ритейла и производства. 📌 Присоединяйтесь к онлайн-дискуссии — задавайте свои вопросы экспертам и узнайте, как облака на практике помогут решить ваши задачи. В программе: • Какие бывают облака • Компоненты инфраструктуры облачного провайдера • Виртуализация: типы и принципы работы • Облачные сервисы: IaaS, PaaS, DBaaS, SaaS • Отказоустойчивость облака • Преимущества перехода в облако • Примеры использования облачных технологии Встреча будет полезна как тем, кто только задумывается о переезде в облако, так и тем, кто уже использует облачные технологии и хочет задать вопросы эксперту. Зарегистрироваться и узнать все про облако Реклама. ПАО "МТС", ИНН: 7740000076.

Хелоу! А какую команду ты запускаешь первой, когда поднял linux сервак/десктоп (vps/vds, виртулка, бареметал и т.п.)? У меня руки на автомате вбивают: apt update && apt upgrade && apt install mc. Но несколько раз видел как люди первым делом отключали selinux и отправляли машину в ребут. А потом уже всё остальное. А как делаешь ты? Камон в комменты обсудим, интересно на твои паттерны посмотреть. tags: #linux #рабочиебудни — 🔔 @bashdays➡️ @gitgate

🎉 Приглашаем вас на вебинар по основам мониторинга Linux! 🎉 📅 Когда: 28 октября, 19:00 (мск) 🌐 Где: Онлайн (ссылка на веб
🎉 Приглашаем вас на вебинар по основам мониторинга Linux! 🎉 📅 Когда: 28 октября, 19:00 (мск) 🌐 Где: Онлайн (ссылка на вебинар будет предоставлена после регистрации) 👨‍🏫 Спикер: Николай Лавлинский Тема: "Основы мониторинга Linux" На занятии вы: - Разберете основные вопросы мониторинга системы. Узнайте, какие аспекты и метрики важно отслеживать для обеспечения стабильности и производительности. - Узнаете отличия между локальным и распределенным мониторингом. Поймете, какие подходы лучше подходят для различных сценариев использования. - Поймете, как запускать систему мониторинга. Получите рабочий пример визуализации метрик, который поможет вам лучше понять состояние вашей системы. Преимущества участия: На уроке вы не только теоретически погрузитесь в принципы использования утилит мониторинга, но и на практике запустите полноценную систему мониторинга. Это даст вам необходимые знания и уверенность для внедрения и управления мониторингом в вашей собственной среде. Мы ждем вас, чтобы вместе раскрыть потенциал мониторинга и сделать вашу систему более отзывчивой и надежной! 📌 Зарегистрируйтесь для участия: https://vk.cc/cD7MrW Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

A rom dom dom! Очередная «Пицца» подъехала! Первую успешно захавал Кирилл. Красавчик! Каждую неделю в рандомный момент я заки
A rom dom dom! Очередная «Пицца» подъехала! Первую успешно захавал Кирилл. Красавчик! Каждую неделю в рандомный момент я закидываю задачку. Кто первый напишет в комменты правильный ответ, тот получает 1000р на РФ карту. Коменты с ответами пишем к посту, а не в чатике. Поехали! Сегодня придется поковыряться.
1. Подсказки на картинке к посту 2. Точка входа https://pizza.bashdays.ru 3. Макс запросит у победителя шаги с решением
Удачи в поисках! PS: 🔥 Пицца разыграна, квест больше не актуален! Самый находчивый — Александр! Красавчик! #pizza

После пика Балмера обычно наступает перевал Дятлова. Привет ребят. Недавно я запилил пост — «Bash генератор OTP для 2FA» и бу
После пика Балмера обычно наступает перевал Дятлова. Привет ребят. Недавно я запилил пост — «Bash генератор OTP для 2FA» и буквально через день, случайно, обнаружил неведомую хуйню. Мой основной парольник это «Vaultwarden self-hosted». Пользуюсь я им очень давно, перепробовал кучу всего, платного и бесплатного, но Vaultwarden покорил моё сердечко. Про все его фичи писать не буду, ты сам всё прекрасно знаешь если пользуешь им. Короче, заводя очередной пароль от сервиса я случайно захуячил пароль в какое-то поле ТОТP (Ключ аутентификатора). Внимания не обратил, сохранил и пошел гулять во снах. А на следующий день открываю этот сохраненный пароль и вижу картину — бежит таймер и мне отображаются 6 цифер. Хм… Дак это же ебать генератор 2FA кодов!!! Встроенный в Vaultwarden! Включил 2FA в gitea, проверил, коды отлично подходят. Сука! Как говорится — век живи, век учись. Это как в айфоне или микрософт офисе. Ты используешь 1% от всего функционала который заложен в софтину, даже не задумываясь что внутри есть хуйни, которые ты пытаешься переизобрести. Пользуйтесь, если кто не знал…
ps: по секрету, сегодня залетит очередная пицца, не проеби!
tags: #utilites #security #рабочиебудни — 🔔 @bashdays➡️ @gitgate

Хотели бы присоединиться к проекту, который приносит пользу миллионам пользователей? 🚀 В Авито актуальна вакансия в команду,
Хотели бы присоединиться к проекту, который приносит пользу миллионам пользователей? 🚀 В Авито актуальна вакансия в команду, которая занимается разработкой продукта по управлению виртуальной инфраструктурой: 1️⃣ SRE инженер в команду Dev Также в поиске инженера команда инфраструктуры, которая обеспечивает весь фундамент Авито (от серверов до внутреннего облака): 2️⃣ Системный инженер HPC кластеров А ещё есть вакансия в команде, которая занимается развитием и администрированием систем, повышающих безопасность компании, на основе Infrastructure as Code подхода: 3️⃣ DevOps Engineer Вас будут ждать: – достойная зарплата, размер которой обсуждается на собеседовании; – прозрачная система премий; – интересные и важные задачи на очень большом проекте; – передовые технологии и подходы, возможность пробовать новое; – опытные и заинтересованные коллеги, готовые оказать поддержку; – мощное железо, дополнительные мониторы и всё, что нужно для продуктивной работы; – личный бюджет на обучение, который можно тратить на книги, курсы и конференции; – забота о здоровье: ДМС со стоматологией с первого дня, в офисе принимают терапевт и массажист; – возможность работать удалённо и по желанию посещать комфортный офис в Москве или Санкт-Петербурге. Скорее откликайтесь!

Дурень думкой богатеет. Смотрел я на логи ssh и думал, что же меня так раздражает. И понял, что меня достает не сама попытка перебора. За стойкость пароля/ключа я спокоен. Меня достает то количество мусора, которое я должен периодически просматривать. И у меня возникла идея. А почему бы не сделать, допустим двухлогинную систему. Прикиньте, для того, чтобы залогиниться нужно ввести 2 открытых логина. Но попытки перебора фиксировать только тогда, когда это представляет опасность, т.е. когда первый логин реален. Конечно попытки простой долбежки тоже нужно учитывать, но, возможно, не так подробно, а за неделю, день или час и общем количеством (интегрально) чтобы иметь представление об интенсивности атаки. Меня резкое снижение интенсивности атаки напрягает больше, чем ее повышение :-) Ну, или свести эти два логина к полуторалогинной системе. Когда логин длинный, и состоит из двух частей, например asdfbgroot, но попытки перебора фиксировать, когда совпадает первая часть. Кстати, из этого можно было бы извлечь и пользу. Если первые части для разных групп пользователей разные - сразу становится видна группа, из которой идет утечка. Может это и бред, а может кому-то пригодится. tags: #linux #security © by Tagd Tagd — 🔔 @bashdays➡️ @gitgate

РЕД ОС подходит для использования в гос. учреждениях, объектах КИ. Она востребована везде, где важен вопрос безопасности и са
РЕД ОС подходит для использования в гос. учреждениях, объектах КИ. Она востребована везде, где важен вопрос безопасности и санкционная устойчивость. 30 октября узнайте все о работе с дисками в РЕД ОС! Вместе с Никитой Климовым разберемся в темах: - Современная адресация дисков: Поймете, как эффективно управлять дисковым пространством. - Логические диски и их применение: Узнаете, где и как использовать логические диски для оптимизации работы. - Инструменты ОС для работы с дисками: Освоите полезные утилиты, такие как fdisk и lsblk. Используйте время с пользой, чтобы: 1️⃣ Получить практические знания, задать вопросы и получить конкретные решения для своих задач. 2️⃣ Оценить все возможности РЕД ОС и ее мощные инструменты. ✔️Запишитесь сейчас и поднимите свой уровень администрирования: https://clck.ru/3DzCKx Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru, erid: 2Vtzqxi4ro5

Включаем режим параноика. Все, и не раз слышали про то, что ходить по ссылкам не хорошо. Особенно, если эти ссылки непонятно откуда. Но почему-то многие думают, что это касается только ссылок 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

Открытый вебинар «Мифы о надёжности Kubernetes: Ошибки, которые стоят вам продакшена» от Слёрм ➡ Когда надежное становится не
Открытый вебинар «Мифы о надёжности Kubernetes: Ошибки, которые стоят вам продакшена» от СлёрмКогда надежное становится ненадежным и почему многие системы обречены на падение? На вебинаре покажем самые эпичные фейлы сбоев и фатальные ошибки в настройке кластеров k8s, стоившие компаниям многих часов простоя: - Кластеры разваливаются - API-сервера выходят покурить - А coredns не понимает, кто он и где
Все ошибки невыдуманные, с подробным разбором анализа, что происходило и как нашли первопричину.
Советы, как превратить ваш кластер из катастрофы в более-менее стабильную штуку, которая может прожить без падений хотя бы 2 дня, тоже будут😉 ⚡Спикеры: - Виталий Лихачев. SRE в bооking.соm - Всеволод Севостьянов. Staff engineer в Lokalise ➡ Когда вебинар: 23 октября в 19:00 мск ➡ Регистрация через бот Реклама ООО «Слёрм» ИНН 3652901451

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

Как Yandex Cloud делает Managed Service for Kubernetes? В этом выпуске «Как мы делаем Yandex Cloud» обсуждаем работу над Managed Service for Kubernetes. Специальный гость — Александр Хаустов, руководитель подразделения Kubernetes в Yandex Cloud. О чём поговорили? 👉 Как обеспечить стабильность инфраструктуры K8s, где более 4 тысяч кластеров и несколько сотен тысяч ядер? 👉 Как планировать изменения, когда поступает множество запросов от внешних и внутренних пользователей? 👉 Какие компетенции должны быть у разработчика в команде облачного Kubernetes? Больше о том, как делаем мы Yandex Cloud в канале.

Тут недавно в чатике была поднята интересная тема про 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

Сегодня специалисты DevOps — одни из самых востребованных на рынке. По данным hh.ru, на 2000 вакансий приходится 1900 соискат
Сегодня специалисты DevOps — одни из самых востребованных на рынке. По данным hh.ru, на 2000 вакансий приходится 1900 соискателей. Если вы хотите работать с методологией DevOps — попробуйте курс Практикума. После курса вы: — начнёте применять DevOps в работе, — разберётесь в Docker и Kubernetes, — изучите современные инструменты, — почувствуете себя опытным SRE. Поможем сделать релизы более быстрыми и безопасными, инфраструктуру — стабильной, а взаимодействие команд — более эффективным и слаженным. А дальше — получить новый грейд или ответственную роль в команде. Программа рассчитана на 6 месяцев, учёба займет от 15 часов в неделю. В финале — итоговый проект для портфолио, в котором нужно подготовить инфраструктуру и настроить конвейер деплоя. Осваивать принципы 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