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

По всем вопросам обращаться к @bykva. Рекламу не размещаю.
Download Telegram
Grafana basic auth

В ролях:
- grafana stable chart
- nginx ingress controller
- terraform

Задача:
Сделать basic auth для графаны на уровне nginx, передавая username в grafana, так чтобы переданное имя использовалось как пользователь в grafana и запихнуть всё это в терраформ.

Решение: (выписка из values.yaml)

ingress:
enabled: true
annotations:
'kubernetes.io/ingress.class': ${var.controller_ingress_class}
'nginx.ingress.kubernetes.io/auth-type': ${var.auth-type}
'nginx.ingress.kubernetes.io/auth-secret': ${var.basic_auth_secret_name}
'nginx.ingress.kubernetes.io/auth-realm': ${var.auth-realm}
'nginx.ingress.kubernetes.io/configuration-snippet': |
proxy_set_header X-Remote-User $remote_user;
....
grafana.ini:
users:
allow_sign_up: false
allow_org_create: false
auth:
disable_login_form: true
auth.proxy:
enabled: true
header_name: X-Remote-User
header_property: username
auto_sign_up: true

где переменные в main.tf принимают такие значения:

auth-type         = "basic"
auth-secret = "nginx-ingress-auth"
auth-realm = "Authentication Required - OK"
basic_auth_secret = "${file("basic_auth.txt")}"


Содержимое файла basic_auth.txt заполняется так:

htpasswd -nb username long_long_password > basic_auth.txt


#grafana #kubernetes #nginx #ingress #terraform
время старта процесса

$ ps -eo pid,lstart,cmd
PID CMD STARTED
1 Tue Jun 7 01:29:38 2016 /sbin/init
2 Tue Jun 7 01:29:38 2016 [kthreadd]
3 Tue Jun 7 01:29:38 2016 [ksoftirqd/0]
5 Tue Jun 7 01:29:38 2016 [kworker/0:0H]
7 Tue Jun 7 01:29:38 2016 [rcu_sched]
8 Tue Jun 7 01:29:38 2016 [rcu_bh]
9 Tue Jun 7 01:29:38 2016 [migration/0]
10 Tue Jun 7 01:29:38 2016 [kdevtmpfs]
11 Tue Jun 7 01:29:38 2016 [netns]
277 Tue Jun 7 01:29:38 2016 [writeback]
279 Tue Jun 7 01:29:38 2016 [crypto]


#ps
Forwarded from Dev Meme
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%
Не уверен...