Forwarded from Peter Destructive
Всем доброго времени суток!
Организую стажировку у нас в red team (пентест/анализ защищённости/анализ кода).
Требования:
- возьмём максимум 3 человека;
- базовые знания IT Sec (умения различать недостаток/уязвимость/атаку);
- участие в CTF приветствуется;
- отдельным плюсом для 2-ух из 3-ёх кандидатов будет знание Java и JavaScript.
Условия:
- обучение;
- участие в реальных проектах.
Сроки:
С июля по сентябрь.
Местоположение: Москва, Дубовая Роща 25к2.
В понедельник проводим собеседование.
Желающие могут писать мне в ЛС.
Заранее благодарен!
Организую стажировку у нас в red team (пентест/анализ защищённости/анализ кода).
Требования:
- возьмём максимум 3 человека;
- базовые знания IT Sec (умения различать недостаток/уязвимость/атаку);
- участие в CTF приветствуется;
- отдельным плюсом для 2-ух из 3-ёх кандидатов будет знание Java и JavaScript.
Условия:
- обучение;
- участие в реальных проектах.
Сроки:
С июля по сентябрь.
Местоположение: Москва, Дубовая Роща 25к2.
В понедельник проводим собеседование.
Желающие могут писать мне в ЛС.
Заранее благодарен!
git undoing operations
Хорошая статья, которая показывает как правильно и красиво поступить в ситуации, когда нужно что-то откатить\удалить в ветке коммитов.
https://sethrobertson.github.io/GitFixUm/fixup.html
#git #troubleshooting
Хорошая статья, которая показывает как правильно и красиво поступить в ситуации, когда нужно что-то откатить\удалить в ветке коммитов.
https://sethrobertson.github.io/GitFixUm/fixup.html
#git #troubleshooting
Duckduckgo features
Использовать несколько поисковых движков для наилучшего достижения - это нормально. Также, как нормально для любого системного администратора использовать для своей задачи свой инструмент. Лично я, когда пользуюсь на регулярной основе двумя поисковиками - для русских запросов (история, наука, медицина, покупки) - только яндекс. В том числе карты, метро и такси. Если же запрос хоть сколько-то касается IT тематики или это технический запрос - то это только гугл и строго на английском. В таком ритме я живу уже около 4 лет. Поначалу, конечно, было непросто. Нужно сформулировать запрос на "чужом" языке. А это иногда не так то просто, бывают случаи когда ты вообще не понимаешь как спросить то что ты на русском-то не можешь сформулировать. Следующей проблемой становится быстро понять по-диагонали о чем идет речь в статье. Если у вас с языком хорошо - все просто, иначе процесс затягивается. Последние 4 года я везде ставлю по-умолчанию английский - язык системы ноутбука, телефона итд итп. И только по прошествии пары лет у вас начинает что-то неплохо получаться - вы бегло читаете сайты на английском и без проблем можете пролистать ветку обсуждения bug\issue на гитхабе чтобы понять как решить проблему. Последние пол-года у меня даже реклама в ютубе на аглийском, что вполне устраивает - дает лишнюю минуту поупражняться в языке. Конечно ничто не заменит нормального изучения языка, кто-то скажет "пффф - ему потребовалось 2 года". Согласен, но данный вариант изучения - пассивный, не напряжный и по-своему приносит плоды. И лучше уж так, чем обещать себе что "вот-вот я открою учебник и как начну учить язык хотя бы по 4 часа в неделю".
Вообще изначально пост я писал не об этом и что-то понесло не в ту сторону. А рассказать я хотел о фиче !bang поисковика duckduckgo - это возможность через микро-плагинчик находить сразу нужную информацию на нужном сайте:
и таких !bang уже более 10к. Быть может и вам что-то приглянется?
https://duckduckgo.com/bang
#duckduckgo
Использовать несколько поисковых движков для наилучшего достижения - это нормально. Также, как нормально для любого системного администратора использовать для своей задачи свой инструмент. Лично я, когда пользуюсь на регулярной основе двумя поисковиками - для русских запросов (история, наука, медицина, покупки) - только яндекс. В том числе карты, метро и такси. Если же запрос хоть сколько-то касается IT тематики или это технический запрос - то это только гугл и строго на английском. В таком ритме я живу уже около 4 лет. Поначалу, конечно, было непросто. Нужно сформулировать запрос на "чужом" языке. А это иногда не так то просто, бывают случаи когда ты вообще не понимаешь как спросить то что ты на русском-то не можешь сформулировать. Следующей проблемой становится быстро понять по-диагонали о чем идет речь в статье. Если у вас с языком хорошо - все просто, иначе процесс затягивается. Последние 4 года я везде ставлю по-умолчанию английский - язык системы ноутбука, телефона итд итп. И только по прошествии пары лет у вас начинает что-то неплохо получаться - вы бегло читаете сайты на английском и без проблем можете пролистать ветку обсуждения bug\issue на гитхабе чтобы понять как решить проблему. Последние пол-года у меня даже реклама в ютубе на аглийском, что вполне устраивает - дает лишнюю минуту поупражняться в языке. Конечно ничто не заменит нормального изучения языка, кто-то скажет "пффф - ему потребовалось 2 года". Согласен, но данный вариант изучения - пассивный, не напряжный и по-своему приносит плоды. И лучше уж так, чем обещать себе что "вот-вот я открою учебник и как начну учить язык хотя бы по 4 часа в неделю".
Вообще изначально пост я писал не об этом и что-то понесло не в ту сторону. А рассказать я хотел о фиче !bang поисковика duckduckgo - это возможность через микро-плагинчик находить сразу нужную информацию на нужном сайте:
!dpkg htop -> сразу отправит вас на сайт пакетов debian, выберет пакет htop
!http 451 - информация о том, что скывается за кодом ответа 451
!yt котики - сразу найдет вам на youtube котиков
и таких !bang уже более 10к. Быть может и вам что-то приглянется?
https://duckduckgo.com/bang
#duckduckgo
DuckDuckGo
DuckDuckGo !Bangs
Search thousands of sites directly from DuckDuckGo.
Именование VM в облаках это важно
Очень глупая история произошла со мной на днях. Есть система автоматизации выкатки новых образов(images) в облака, в частности это azure. Для того чтобы задачи сборки не конфликтовали друг с другом, если запущены они в одно время, я добавил в имя виртуальной машины build_id, т.е. номер сборки. Через точку. Azure из имени VM составляет hostname. As is. В итоге получилось имя вида test-instance.123 - что в свою очередь очень напоминает нам домен второго уровня (company.com). Как оказалось на такое имя не весь софт реагирует адекватно и по понятным причинам такое имя не резолвится. В частности это не перенес collectd, что привело к невозможности его запуска. Замена точки на дефис решила эту глупую и простую проблему.
#troubleshooting
Очень глупая история произошла со мной на днях. Есть система автоматизации выкатки новых образов(images) в облака, в частности это azure. Для того чтобы задачи сборки не конфликтовали друг с другом, если запущены они в одно время, я добавил в имя виртуальной машины build_id, т.е. номер сборки. Через точку. Azure из имени VM составляет hostname. As is. В итоге получилось имя вида test-instance.123 - что в свою очередь очень напоминает нам домен второго уровня (company.com). Как оказалось на такое имя не весь софт реагирует адекватно и по понятным причинам такое имя не резолвится. В частности это не перенес collectd, что привело к невозможности его запуска. Замена точки на дефис решила эту глупую и простую проблему.
#troubleshooting
Что это за странные буквы sda\hda и что они значат
Каждому линуксойду, который знаком с системой больше пары недель знакомо что такое sda - это первый диск, sdb - второй итд. Обычно мало кому есть дело, почему он так называется. ну sda, ну hda. Оказывается, название предельно логично и строго зависит от оборудования которое вы используете.
Так например sda:
Подробнее: https://en.wikipedia.org/wiki/Device_file#Naming_conventions
#junior
Каждому линуксойду, который знаком с системой больше пары недель знакомо что такое sda - это первый диск, sdb - второй итд. Обычно мало кому есть дело, почему он так называется. ну sda, ну hda. Оказывается, название предельно логично и строго зависит от оборудования которое вы используете.
Так например sda:
S - SCSI driver, modern PATA/SATA driver, USB
SD - mass-storage driver
SDA - first registered device
SDA1 - first partition
Подробнее: https://en.wikipedia.org/wiki/Device_file#Naming_conventions
#junior
Wikipedia
Device file
interface to a device driver that appears in a file system as if it were an ordinary file; e.g. /dev/* in Unix-like systems; CON, PRN, NUL in DOS/Windows
Или лыжи не едут, или я ебанутый
Последний месяц я мало что писал интренесного, потому что практически все время занимался автоматизацией выкатки софта на azure. Это адище адовое если честно. Одна из самых дурных поделок микрософта. Кроме кучи мелких абсолютно непонятных и недокументированных вещей до которых додумываться надо, я выделю две, которые меня особенно потрясли:
- у меня есть 2 аккаунта: name_surname@company.com и name_surname@company.com. Не пытайтесь найти разницу - они абсолютно одинаковые. Только один из них получился личный, а второй - корпоративный. Идентификаторы у них разные, а то что логины совпадают, ну, кому какое дело. Из-за этого так получилось, что на portal у меня права на корпоративном аккаунте, а на cloudpartner - на личном. Т.е. представьте себе ситуацию, да, когда владелец корпоративного аккаунта говорит что дал тебе права, а ты заходишь туда и видишь что прав то и нет. Знаете как переключиться между личным и корпоративным? Разлогиниться, да. Но, это еще не все. Услуждивый микрософт предложит вам список учетных записей, под которыми вы заходили. там будет и name_surname@company.com. пробуем-вводим пароль - попадаем в учетку. прав нет. Что-то сделали не так. Знаете как надо? Надо разлогиниться, сказать other(типа я введу новый аккаунт), ввести name_surname@company.com и только тогда он предложит выбрать, личная это или, мать ее, корпоративная учетная запись!
- вы создаете из приватного образа виртуальную машину. вас при этом спросят логин и пароль\публичный ключ. Зачем? ну логично же - под этими учетными данными мы зайдем на вновь созданную виртуальную машину. Правильно? Нихрена. Эти учетные данные пропишутся ровным счетом никуда. не будет никуда положен ключ, не будет такого пользователя в /etc/passwd
#гори_в_аду_микрософт
Последний месяц я мало что писал интренесного, потому что практически все время занимался автоматизацией выкатки софта на azure. Это адище адовое если честно. Одна из самых дурных поделок микрософта. Кроме кучи мелких абсолютно непонятных и недокументированных вещей до которых додумываться надо, я выделю две, которые меня особенно потрясли:
- у меня есть 2 аккаунта: name_surname@company.com и name_surname@company.com. Не пытайтесь найти разницу - они абсолютно одинаковые. Только один из них получился личный, а второй - корпоративный. Идентификаторы у них разные, а то что логины совпадают, ну, кому какое дело. Из-за этого так получилось, что на portal у меня права на корпоративном аккаунте, а на cloudpartner - на личном. Т.е. представьте себе ситуацию, да, когда владелец корпоративного аккаунта говорит что дал тебе права, а ты заходишь туда и видишь что прав то и нет. Знаете как переключиться между личным и корпоративным? Разлогиниться, да. Но, это еще не все. Услуждивый микрософт предложит вам список учетных записей, под которыми вы заходили. там будет и name_surname@company.com. пробуем-вводим пароль - попадаем в учетку. прав нет. Что-то сделали не так. Знаете как надо? Надо разлогиниться, сказать other(типа я введу новый аккаунт), ввести name_surname@company.com и только тогда он предложит выбрать, личная это или, мать ее, корпоративная учетная запись!
- вы создаете из приватного образа виртуальную машину. вас при этом спросят логин и пароль\публичный ключ. Зачем? ну логично же - под этими учетными данными мы зайдем на вновь созданную виртуальную машину. Правильно? Нихрена. Эти учетные данные пропишутся ровным счетом никуда. не будет никуда положен ключ, не будет такого пользователя в /etc/passwd
#гори_в_аду_микрософт
Bash shortcuts
Написал микро лабораторную работу для обучения хоткеям в bash. Все это доступно благодняря библиотеке readline. Все описанное ниже и более того -
https://medium.com/@bykvaadm/bash-shortcuts-d6f275a6ce9d
#bash_tips_and_tricks #junior
Написал микро лабораторную работу для обучения хоткеям в bash. Все это доступно благодняря библиотеке readline. Все описанное ниже и более того -
man readline
https://medium.com/@bykvaadm/bash-shortcuts-d6f275a6ce9d
#bash_tips_and_tricks #junior
Medium
bash shortcuts
Небольшая лабораторка по изучению основных хоткеев в bash. Подготовьте себе вот такую строку:
Jenkins kill zombie job
Если ни тыкание на крестик, ни перезагрузка сервера не помогают дропнуть зависшую день-два-месяц назад задачу, то можно дропнуть ее через консоль (Manage Jenkins -> Script Console). И вам надо заполнить 2 переменные - имя задачи и ее номер.
Если ни тыкание на крестик, ни перезагрузка сервера не помогают дропнуть зависшую день-два-месяц назад задачу, то можно дропнуть ее через консоль (Manage Jenkins -> Script Console). И вам надо заполнить 2 переменные - имя задачи и ее номер.
Jenkins.instance.getItemByFullName("JOB_NAME")#jenkins #troubleshooting
.getBuildByNumber(JOB_ID)
.finish(
hudson.model.Result.ABORTED,
new java.io.IOException("Aborting build")
);
Forwarded from Inside
Telegraph
Город 26
Мама сказала, что отдыхала в одном лагере с детьми из города 26 и о разглашении о нем грозили расстрелом всей семьи. Сейчас информацию рассекретили, но ведутся споры, я нашла много информации о том, что там построят не новую лабораторию, а настоящий могильник…
Убитый контейнер докера не запускается
Ошибка:
#docker #troubleshooting #networking
Ошибка:
endpoint with name XXXX already exists in network bridge.
Решение:docker network disconnect --force bridge <Container ID or Endpoint ID or Container NAME>
Это не для тех, кто не умеет гуглить, а для того чтобы наоборот каждый раз не гуглить когда такое возникает=)#docker #troubleshooting #networking
Запускаем задачу в background в докер контейнере через ansible
Особо ничего сложного, nohup да &, однако процесс все равно не отпускает консоль, посему ansible зависает. Чтобы этого не происходило, можно применить такую конструкцию:
Особо ничего сложного, nohup да &, однако процесс все равно не отпускает консоль, посему ansible зависает. Чтобы этого не происходило, можно применить такую конструкцию:
- name: run bg job#docker #ansible
shell: docker exec -i <container> sh -c 'nohup CMD &'
async: 45
poll: 0
RBAC on docker registry
Поигрался тут на днях с одним сервисом который позволяет использвать token-based аутентификацию пользователя с docker registry. Стандартный вариант логин-пароль уже не удовлетворяет потребностям и пришлось искать что-то другое. В итоге набрел на готовое решение от cesanta/docker_auth. Написано на go, легковестный token-сервис с поддержкой различных способов аутентификации пользователей и также, что самое главное - это ACL. С помощью acl можно задавать кто, и какие репозитории может пушить и пуллить, с точностью до регулярного выражения. В качестве базы хранения пользователей-acl можно выбрать статический файл, mongodb, ldap и некоторые другие. В том числе можно использовать и сторонний софт, хоть самопис. токен будет выдаваться в зависимости от кода ответа этого софта. И тут уже можно сделать все что угодно - хоть выдавать токены в зависимости от времени суток. Поковырявшись в этом собрал готовое решение, запускаемое через docker-compose. Оно содержит набор из 3 контейнеров: docker_auth, docker registry и mongo. После старта docker-compose все что нужно сделать - загрузить список правил и пользователей в mongo через простейший shell-скрипт.
https://github.com/bykvaadm/docker_auth
#docker #auth
Поигрался тут на днях с одним сервисом который позволяет использвать token-based аутентификацию пользователя с docker registry. Стандартный вариант логин-пароль уже не удовлетворяет потребностям и пришлось искать что-то другое. В итоге набрел на готовое решение от cesanta/docker_auth. Написано на go, легковестный token-сервис с поддержкой различных способов аутентификации пользователей и также, что самое главное - это ACL. С помощью acl можно задавать кто, и какие репозитории может пушить и пуллить, с точностью до регулярного выражения. В качестве базы хранения пользователей-acl можно выбрать статический файл, mongodb, ldap и некоторые другие. В том числе можно использовать и сторонний софт, хоть самопис. токен будет выдаваться в зависимости от кода ответа этого софта. И тут уже можно сделать все что угодно - хоть выдавать токены в зависимости от времени суток. Поковырявшись в этом собрал готовое решение, запускаемое через docker-compose. Оно содержит набор из 3 контейнеров: docker_auth, docker registry и mongo. После старта docker-compose все что нужно сделать - загрузить список правил и пользователей в mongo через простейший shell-скрипт.
https://github.com/bykvaadm/docker_auth
#docker #auth
GitHub
bykvaadm/docker_auth
example of cesanta/docker_auth. Contribute to bykvaadm/docker_auth development by creating an account on GitHub.
Git commit messages
Как правильно комиттить в гит. Хорошая статья с хабра:
https://habr.com/post/416887/
#thirdparty #read #git
Как правильно комиттить в гит. Хорошая статья с хабра:
https://habr.com/post/416887/
#thirdparty #read #git
Хабр
Как следует писать комментарии к коммитам
Предисловие от переводчика На протяжении многих лет разработки ПО, будучи участником многих команд, работая с разными хорошими и опытными людьми, я часто наблю...
progit_v2.1.3.epub
5.7 MB
Книга про гит на русском. Это для тех людей, кто вдруг ее еще не видел. Или вдруг еще даже не пользовался никогда гитом. Самое время начать!
#git
#git
Выпуск Debian 9.5
Доступно пятое корректирующее обновление дистрибутива Debian 9, в которое включены накопившиеся обновления пакетов и устранены недоработки в инсталляторе. Выпуск включает 91 обновление с устранением проблем со стабильностью и 100 обновлений с устранением уязвимостей.
Доступно пятое корректирующее обновление дистрибутива Debian 9, в которое включены накопившиеся обновления пакетов и устранены недоработки в инсталляторе. Выпуск включает 91 обновление с устранением проблем со стабильностью и 100 обновлений с устранением уязвимостей.
Kubernetes restart all pods
#kubernetes
kubectl -n NS get po --show-labels
## pickup necessary labels
kubectl -n NS delete po -l app=xxxx
#kubernetes