Как стать автором
Обновить
15
0
Кирилл Цветков @bananaseverywhere

Немножко знаю Linux

Отправить сообщение

что интересно - я знаю достаточное (но не многое!) количество "devops", выросших из разработки, которым интересно было - как же их система работает. Поэтому, во-первых, не нужно говорить, что девопсы получаются из опсов.

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

Во-вторых, как выше правильно было замечено - нет такого, как девопс инженер. Я уже приводил аналогию. Если девопс - это философия и методология, то давайте разработчиков уж называть "канбан-разработчик", "agile-разработчик"... и прочее

Тут проблема в том, что понятие DevOps "пошло в народ". Если посмотреть вакансии по ключевому слову DevOps, большая часть будет не про методологию и трансформацию процессов взаимодействия, а про опсов с конкретным набором технологий.

Я потому и взялся за эту статью - под словом DevOps разные люди подразумевают слишком разные вещи, и мне захотелось посмотреть на путь понятия. Откуда взялось, чем стало в коллективном бессознательном :)

Так это не только методология, про что я и писал :)

В слово вкладывают много понятий, одно из которых - методология, с её абстрактными советами и глобальными целями.

И откуда же, по-вашему, начинающие девопсы получат опыт работы с, как вы это называете, «базовыми инструментами», если всем работодателям подавай высокоуровневые абстракции?

Получается, хорошим девопсом можно стать, только набрав опыт на инфраструктуре без использования «модных» технологий, а затем захотев объять и их?

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

Много вы таких знаете, выросших из админов, а не пришедших сразу в облака и Ансибл с Терраформом?

Честно говоря, большинство. Я не уверен, что смогу назвать девопсов, которые стартанули "с места в карьер", без какого-то опыта администрирования.

Постараюсь поскорее — привожу его в читаемый вид, убираю излишнюю специфику, и в прод.
Отчасти вы правы — тут, во многом, сказывается специфика компании. Из-за того, что я работаю с Linux — эта и последующие записи будут про Linux. Если в первой лекции есть ещё вещи, которые применимы к администрированию в целом, то дальше будет почти всё про Linux (ну или юникс-подобные ОС, многие вещи у того же FreeBSD с Линуксом похожи).
А вот про анализ рынка, боюсь, не соглашусь — это не задача системного администратора. Это либо задача маркетинга, либо data-scientist'ов, которые отвечают за сбор метрик и их аналитику.
>А что это за сервис, не подскажите? Или самописное решение?

Это самописное решение от моего коллеги. Стек: Django+всякое. Я спрошу, нет ли его где-то в паблике на гитхабе, и если нет — можно ли его выложить.
shopt -s dotglob
включит скрытые файлы в маску *
Про TCP и UDP меня тоже изначально удивило, но у Джулии так в оригинале:
drawings.jvns.ca/drawings/unixdomain.jpeg
Хоть это и немного контринтуитивно, Джулия права.
Datagram в UDP вполне присутствует. Если заглянуть в man 7 unix и man 7 udp — там, хоть и не очень очевидно, но объясняется, что stream socket будет работать с потоком байт. Если проще, если в stream socket отправить два сообщения содержащие данные «123» и «456», то на обратной стороне сокета вы будете последовательно получать 1, 2, 3, 4, 5, 6.
В datagram socket же вы отправляете сообщения с заданным размером ценной нагрузки — кинете туда «123» и «456» и на обратной стороне сокета вы никогда не увидите «1» или «56», только «123» и «456».
Честно говоря, да, немного избыточно. Этот шаг должен покрывать довольно маловероятный случай, когда подключены репозитории без патченной версии\Exim ставится не из родных реп и шаги с обновлением, по факту, ничего не обновили.
Отчасти из-за этого же я не стал зашивать killswitch по версии Exim — «лучше перестраховаться».
Я двумя руками за перенос на чистую ОС с тщательной ручной проверкой всего, что могли заразить, но делать это с зараженного сервера, у которого 100% CPU выедает майнер — сомнительное удовольствие. Скрипт позволяет привести сервер в околорабочее состояние и вычистить очевидную малварь, чтобы потом уже перетащить данные и не рвать на себе волосы от страшного даунтайма.
Спасибо за дополнение!
Я параметры SELinux и sshd скриптом не трогал — настройки SELinux и ssh у всех разные, выше шанс выстрелить себе в колено.
Что касается hosts, то судя по коду исходного скрипта малвари — он из hosts строки с busybox и .onion вырезает:
[ $(${sudo} cat /etc/hosts|grep -i ".onion."|wc -l) -ne 0 ] && { ${sudo} chattr -i -a /etc/hosts >/dev/null 2>&1; ${sudo} chmod 644 /etc/hosts >/dev/null 2>&1; ${sudo} sed -i '/.onion.$/d' /etc/hosts >/dev/null 2>&1; }

[ $(${sudo} cat /etc/hosts|grep -i "busybox"|wc -l) -ne 0 ] && { ${sudo} chattr -i -a /etc/hosts >/dev/null 2>&1; ${sudo} chmod 644 /etc/hosts >/dev/null 2>&1; ${sudo} sed -i '/busybox$/d' /etc/hosts >/dev/null 2>&1; }

[ $(${sudo} cat /etc/hosts|grep -i ".onion."|wc -l) -ne 0 ] && { ${sudo} echo '127.0.0.1 localhost' > /etc/hosts >/dev/null 2>&1; }

Что касается /etc/ld.so.preload и /tmp/.ld.so, исходный скрипт удаляет первый и делает его симлинкой на второй:
if [ -f /etc/ld.so.preload ]; then
        if [ $(which chattr|wc -l) -ne 0 ]; then ${sudo} chattr -i /etc/ld.so.preload >/dev/null 2>&1; fi
        ${sudo} ln -sf /etc/ld.so.preload /tmp/.ld.so >/dev/null 2>&1
        >/tmp/.ld.so >/dev/null 2>&1
        ${sudo} rm -rf /etc/ld.so.preload* >/dev/null 2>&1

Я не стал удалять /tmp/.ld.so в теле скрипта, так как он всё равно удалится при перезагрузке — создан в /tmp. А перезагружаться обязательно надо — малварь сидит где-то в открытых процессах и, соответственно, в памяти, и записывает себя по новой в крон каждые секунд 30.
Залил на гитхаб исходник скрипта малвари: github.com/bananaphones/exim-rce-quickfix/blob/master/malware_do_not_run.sh
Он довольно тяжело читаемый, и есть несколько его вариаций (с другой машины вытащился другой, но похожий).
Спасибо, добавил в версию в гите, сейчас обновлю на сайте.

Информация

В рейтинге
Не участвует
Откуда
Россия
Работает в
Дата рождения
Зарегистрирован
Активность

Специализация

System Administration, DevOps
Middle
DevOps
*NIX administration
CI/CD
Zabbix
Ansible
Kubernetes
Python
PostgreSQL
Docker
Elasticsearch