Size: a a a

Админим с Буквой

2019 February 02
Админим с Буквой
источник
2019 February 05
Админим с Буквой
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
источник
Админим с Буквой
источник
2019 February 07
Админим с Буквой
время старта процесса

$ 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
источник
Админим с Буквой
источник
2019 February 08
Админим с Буквой
Хороший материал по захвату доменов (поддоменов), когда о них забывают:

https://github.com/EdOverflow/can-i-take-over-xyz
источник
2019 February 12
Админим с Буквой
https://xakep.ru/2019/02/12/gadgets-howto/

Хорошая статья, советую к прочтению
источник
2019 February 13
Админим с Буквой
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
источник
Админим с Буквой
источник
2019 February 14
Админим с Буквой
Что такое 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
источник
2019 February 15
Админим с Буквой
Филологу не понять, что "два байта" - это одно слово
источник
Админим с Буквой
Юным пентестерам на заметку

https://github.com/bykvaadm/OS/tree/master/webvuln/lab1
источник
2019 February 18
Админим с Буквой
tcpdump && iptables

https://superuser.com/questions/925286/does-tcpdump-bypass-iptables

немного полезной информации о том как именно tcpdump становится "в разрез"
источник
2019 February 19
Админим с Буквой
bykvaadm
Юным пентестерам на заметку

https://github.com/bykvaadm/OS/tree/master/webvuln/lab1
update: https://github.com/bykvaadm/OS/tree/master/webvulns/lab1

ссылка теперь другая. навел порядок в папках.
источник
2019 February 21
Админим с Буквой
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
источник
2019 February 25
Админим с Буквой
Анализируем "нестандартные" пакеты в ОС

Существует утилита 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
источник
Админим с Буквой
Полноценное логирование действий пользователей в консоли

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

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

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

https://github.com/a2o/snoopy

#linux #bash
источник
2019 February 26
Админим с Буквой
ЗНАНИЯ! налетай!

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

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

#нереклама
источник