Админим с Буквой
5.35K subscribers
302 photos
8 videos
59 files
1.15K links
Канал о системном администрировании, DevOps и немного Инфобеза.

По всем вопросам обращаться к @bykva. Рекламу не размещаю.
Download Telegram
Apache, ты пьян, иди домой

Словил сегодня интересную особенность apache. Запустил докер с апачем внутри и начал тестить. Захожу в браузере на страничку, иногда возвращаюсь в терминал. В один прекрасный момент замечаю что апач завершил работу. Путем вдумчивых повторений процесса оказалось что... при изменении размера терминала апач завершает свою работу. ему посылается сигнал SIGWINCH, который апач воспринимает как gracefull shutdown.

более подробное разъяснение (лень переводить)

SIGWINCH

SIGWINCH means SIGNAL WINDOWS CHANGE and is sent automatically when a terminal detects a change in it's windows size to allow for a redraw.

SIGWINCH for apache2

But unfortunately apache2 process poorly misuses this signal (in the way they divert its first meaning), but for their defense, they seems not to have a choice and had to resort to this due to a lack of signal (see bug report). One of their assumption is that apache2 process is always in background.

т.е. из этого становится понятно - апач запущен в foreground с подключенной tty (docker run -t). Поэтому при изменении размера терминала получаем завершение работы.

источник

#apache #yakuake
Что такое LA на linux OS

попалась на глаза довольно простая и по-детски объясняющая что же именно скрывается за волшебной статистикой load average.

https://scoutapp.com/blog/understanding-load-averages

или еще один вариант

http://www.brendangregg.com/blog/2017-08-08/linux-load-averages.html

#la
sed remove trailing spaces

sed -i FILE -e 's/[[:space:]]*$//'


#sed
Филологу не понять, что "два байта" - это одно слово
Юным пентестерам на заметку

https://github.com/bykvaadm/OS/tree/master/webvuln/lab1
jinja извлекаем значение из массива по ключу

допустим у нас есть такой yaml:

users:
- name : john
age : "10"
- name : bob
age : "20"

решение:

johns age: {{ users | selectattr('name', 'equalto', 'john') | map(attribute='age') | join(',') }}

ответ:

johns age: 10

#jinja #ansible
Анализируем "нестандартные" пакеты в ОС

Существует утилита apt-forktracer, которая анализирует каждый установленный пакет и выводит информацию о пакете в случае, если он находится не в "стандартном" состоянии. Понятие "не стандартный" зависит от параметров переданных утилите. В общем случае он посмотрит версию пакета, найдет эту версию в репозитории вашей ОС. Если пакет установлен не из стандартного репозитория (backports, testing, any_other_repo), поиск будет произведен и там. На выходе вы получите все пакеты, которые грубо говоря установлены не методом apt install package, а также их версии в разных репозиториях, после чего можно проводить над ними дополнительные работы.

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

ansible (2.7.8-1ppa~bionic) [LP-PPA-ansible-ansible: 2.7.8-1ppa~bionic] [Debian Backports: 2.7.5+dfsg-1~bpo9+1] [Debian: 2.2.1.0-2+deb9u1 2.2.1.0-2]
git (1:2.20.1-1~bpo9+1) [Debian Backports: 1:2.20.1-1~bpo9+1] [Debian: 1:2.11.0-3+deb9u4 1:2.11.0-3+deb9u4]
vagrant (1:2.2.3) [Debian Backports: 2.0.2+dfsg-3~bpo9+1] [Debian: 1.9.1+dfsg-1+deb9u2]
virtualbox-6.0 (6.0.4-128413~Debian~stretch) [Oracle Corporation: 6.0.4-128413~Debian~stretch]

#apt
Запись ваших действий в консоли

Логировать происходящее можно по-разному - сохранять bash history и лишаться stdout, сохранять вывод ручками, писать видео (много весит и необходимо вырезать области видео, где нет терминала), а еще можно пользоваться штатными средствами - например командой script:

Запись:

script -t 2>~/filename.time -a ~/filename.script

Для остановки записи нужно просто набрать exit.

Воспроизведение:

scriptreplay ~/filename.time ~/filename.script

Дополнительно

ttyrec/ttyplay

#script #recording #debug
Forwarded from mindsellers
Полноценное логирование действий пользователей в консоли

Все, конечно, знают о ~/.bash_history. Равно как и о том, что его нужно за собой чистить, особенно, если занимаешься на чужой системе чем-то интересным. Недавно мне стало интересно, как же хранить реальные логи действий, да желательно с привязкой к тому, кто реально хулиганил на системе(мало ли, у кого гипотетически есть sudo) и ко времени.

В интернетах наткнулся на проект snoopy logger. Потестил, и выяснил, что штука вполне неплохая, лог пишет исправно, ставится или скриптами от разработчиков или из репозиториев (в Убунтовских есть).

Не вижу смысла в дальнейших подробностях - заходим и ставим!

https://github.com/a2o/snoopy

#linux #bash
ЗНАНИЯ! налетай!

Тут посоны из ИЗ разродились прикольным проектом (ниже текст их промо).

Мы — группа профессионалов-энтузиастов из «Информзащиты» — спешим сообщить, что открываем набор молодых ребят для стажировки с последующим трудоустройством в наш Центр противодействия кибератакам.
Да, повезет не всем! Сначала мы проведем открытый набор желающих, затем отсеем их с помощью теста. А лучших пригласим на очную стажировку и затем — самых крутых возьмем в штат.
Почему нам это нужно? На данный момент у нас открыто 6 вакансий для разного уровня специалистов — причем как для молодых специалистов, так и людей с хорошим релевантным опытом. И мы остро нуждаемся в сотрудниках, которые даже если находятся в самом начале карьерного пути, готовы обучаться и развиваться, уделять этому достаточное количество времени.
С 25.02 до 05.03 мы проводим открытый набор желающих. 6-го марта мы разместим тестовое задание, и на основе ваших ответов выберем 20 лучших, которых пригласим на очные занятия. Ну а 6 лучших стажеров, а может и больше – получат от нас оффер.
Любой, кто придет к нам получит бесценные знания о том, как разбирать структуру современных кибератак и разрабатывать методы их детектирования. Для новичков в нашем офисе будет проведен специальный Курс Молодого Безопасника от ведущих экспертов нашей компании. Они расскажут как не дать хакерам проникнуть в инфраструктуру, прорешают вместе с вами задачи по атаке и защите инфраструктуры, покажут как можно организовывать киберучения в рамках одной компании.
Кроме того, для контроля усвоения материала курс будет включать домашние работы и выпускной экзамен. По итогам все студенты, успешно справившиеся с экзаменом, получат сертификат об успешном завершении интенсива. Ну а лучшие – станут частью нашей команды.
Поторопитесь прислать ваши заявки до 5 марта. Их можно подать через telegram-бота @Infosec_career_bot.
А вопросы вы можете задать в специальной группе: https://t.me/infosec_career

#нереклама
Может ли шлюз принадлежать другой сети (отличной от адреса интерфейса)?
Anonymous Poll
28%
Да
27%
Нет
32%
Да, но есть нюансы
13%
Не уверен...
Москва, оффлайн, митап от AWS, сегодня

(Текст предоставлен @Stekov_me)

Сегодня проходит второй митап от @aws_ru, и доклады не просто от сертифицированных специалистов, а от специалистов из самого АМАЗОНА!
На этот раз митап пройдет в КРОКЕ (за что им отдельное и большое спасибо!) Докладов будет 2, но зато каких!

«AWS Firecracker»
От Василия Пантюхина
Solution Architect
Amazon Web Services EMEA

«Все,что вы хотели знать о сервисах Машинного Обучения и ИИ на AWS: вопросы и ответы»
Денис Баталов
Tech Leader, ML & AI
Amazon Web Services EMEA

Обещаю вам еще спецов из AWS, пиццу, бесплатную парковку (по заранее оставленным контактам).
И ламповую атмосферу - потому как ТРАНСЛЯЦИИ НЕ БУДЕТ!!!

Кто хочет успеть к нам - регистрация на meetup.com
Вход по пропускам, потому что это главный офис Крока, и если ваша фамилия в паспорте не @Stekov_me, а вы зарегистрировались именно так - то могут и не пустить)

Регистрация на https://www.meetup.com/aws-ru/events/259297465/

#нереклама #немоё
Prometheus + kubernetes

Полезный набор дашбордов в графану по мониторингу ресурсов в кубе
https://github.com/camilb/prometheus-kubernetes

#grafana #prometheus #kubernetes #monitoring
Cheatsheet по сервисам AWS для новичков:
https://www.expeditedssl.com/aws-in-plain-english
заметка по регулярочкам

задача - собрать из всех данных, помещенных в колонку в строки, удаляя каждый N-й перенос

Groups
Email Address
Type
group1
group1@company.com
type1
group2
group2@company.com
type2

превратить в

Groups,Email Address,Type
group1,group1@company.com,type1
group2,group2@company.com,type2


pattern:

([^\n]*)\n([^\n]*)\n([^\n]*)[\n]*


replace:

\1,\2,\3\n


обсудить
#regexp