Я кратко познакомлю с инструментом шифрования age (кратко - потому что он простой в использовании - там просто нечего долго объяснять, при этом шифрует по современным стандартам шифрования). Мы научимся в одну простую команду шифровать как личные бэкапы, так и корпоративные (для нескольких асимметричных ключей, не храня ключ на сервере), а затем поспорим на тему того, почему openssl такой плохой инструмент и не пригоден для практического применения обычными пользователями/админами, чье представление о криптоалгоритмах примерно выражено на КДПВ.
Пользователь
PinkHash: Незабываемые розовые хеши
Розовый хеш — это как розовый слон, только хеш.
Как превратить ваш обычный скучный хеш в голого эндокринолога, которого уже не забыть! А так же, как сделать свой собственный менеджер паролей, не доверяя пароли никаким внешним сервисам.
Может ли быть уязвимость в дизайне, контенте и CSS и разбор такой уязвимости(?) на Госуслугах
Кажется, что уязвимость - штука техническая, но на Госуслугах есть интересная комбинация уязвимостей (ну или, скажем, черт, особенностей) в сфере CSS, дизайна, юзабилити, которые мошенники используют в социальной инженерии.
Узнал я про это из вот этого ролика на ютубе. Смотрел фоном, не ожидая чего-то интересного, но в момент, когда я услышал, как жертва атаки видит телефон мошенника на официальном сайте Госуслуг, с правильным адресом, с валидным сертификатом я не поверил своим ушам и понял, что это уже интересно... А за открытие уязвимости мы должны благодарить неизвестного мошенника, "сотрудника клиентской службы сотового оператора" или "службы безопасности сбербанка", ну вы понимаете.
А далее наша планета попробует в IT без генералистов
Простите, я тут повангую и поностальгирую немного. Когда-то, лет в 22-25, я "почти все знал про IT". Конечно, не в полной мере, но имел представление обо всем, какой-то хотя бы небольшой опыт во многом. Да, отчасти это можно списать на юношескую самоуверенность и Даннинга-Крюгера (где-то я возможно не видел границы своей некомпетентности), но только отчасти.
Я считаю себя генералистом. То есть, такой "универсальный солдат", могу кун-фу, могу самбо, могу стрелять из гаубицы и из лука, управлять гироскутером, камазом и звездолетом, и все это делаю одинаково плохо (но, тем не менее, гравицапу установить и координаты в тентуре расчитать смогу). Думаю, что я достаточно важный и ценный сотрудник там, где я работаю, и очень неплохо зарабатываю, в пересчете на час работы. Однако, если бы я пошел на собеседование на более скромную позицию какого-нибудь программиста или админа - наверняка завалил бы продвинутые тесты по множеству тем, кроме нескольких. Любой узкий специалист который 10 лет делает одно дело, знает это дело лучше и глубже.
Сфера IT в мои 20+ самом деле была гораздо меньше, чем сейчас. Через пару десятков лет после первого сеанса братьев Люмьер было несложно стать киноведом, который видел все фильмы.
К примеру, MySQL и PostgreSQL вышли в середине 90-ых. Тогда было несложно знать эти новые крошечные и простые проекты. Отработал JOIN слева, JOIN справа - и вот у тебя уже черный пояс по SQL, а значит и по базам данных в целом (потому что больше пока что ничего просто и нет). До появления Redis (key-value) было еще 10+ лет, до CockroachDB и Prometheus - 20 лет - можно было ничего о них не знать, и быть полноценным гуру в СУБД с полными знаниями о теме! Сейчас я не уверен, что смогу назвать даже все типы СУБД которые есть (реляционные, key-value, документные, графовые, time-series, ....), не говоря уже о названиях проектов. Что мы сейчас (в суровой реальности) можем ожидать от программиста в сфере баз данных? Мы ему объясняем проект, он нам распишет схему, как ее по табличкам разбить, какие индексы создать и что подкрутить с настройками СУБД под нашу специфику. Но это очень плохой уровень . А что я хочу от эксперта? Чтобы он сказал, к примеру: тут вам лучше вообще не реляционную использовать, а NOSQL, вот либо СУБД А, либо B, либо C (она только в прошлом году появилась, но очень итересная!). Но у A плохая лицензия, подходят только B и С. По скорости, для ваших задач лучше подойдет B, она на таком типе нагрузок по бенчмаркам быстрее работает, но у вас Debian на серверах? А у нее на Debian есть утечки памяти - возможно это блокирующая проблема. Еще, вы хотите из Java с ней работать? Для Java у нее нет клиента, только для C и Python, так что, придется доработать или дождаться.
NudeCrawler: Голый ползун по женщинам на телеграфе
Nudecrawler - паук для поиска голых женщин.
showcert: проверяем сертификаты (без боли)
Этот пост не про какой-то большой и сложный проект, а про очень маленькую, простую утилитку showcert, мой маленький самодельный велосипед, который экономит время и нервы. Она не для тех, кто не знает, про утилиту openssl, а для тех, кто все знает, но когда хочет проверить дату истечения почтового сертификата яндекса, немного гуглит, потом сноровисто пишет:
$
echo | openssl s_client -connect mx.yandex.ru:25 -starttls smtp 2>&1 | openssl x509 -noout -dates
notBefore=Jul 25 11:16:45 2022 GMT
notAfter=Jan 22 20:59:59 2023 GMT
Когда я пишу эту строчку, мне приходят на ум много красочных многокоренных слов из флотской службы. А ведь я даже не служил... А теперь, представьте, что мы хотим не просто увидеть дату, а еще и как-то что-то сделать, если до истечения останется меньше N дней... как будет выглядеть команда?
А теперь сравните с:
$ showcert mx.yandex.ru:25
Names: mx.yandex.ru mx.yandex.net
notBefore: 2022-07-25 11:16:45 (15 days old)
notAfter: 2023-01-22 20:59:59 (165 days left)
Issuer: C=BE O=GlobalSign nv-sa CN=GlobalSign RSA OV SSL CA 2018
Ну разве не проще? showcert
сам, по номеру порта догадывается, как начать STARTTLS (но конечно же, это можно переопределить через опцию -t / --starttls
, например -t no
или -t imap
)
Предупредить о том, что сертификат скоро протухнет? Окей!
$ showcert mx.yandex.ru:25 -qw 200 || echo PROBLEM
mx.yandex.ru:25 expires in 165 days
PROBLEM
-q
- тихий режим, не печатать лишнего, только предупреждения, -w 200
- завершаться с кодом 1, если до протухания меньше 200 дней. (-w без значения, проверка на 20 дней, без -w проверка валидности сегодня).
Проверки файлов:
Обзор гибридной системы мониторинга Okerr
Два года назад я уже делал пост Простой failover для вебсайта про okerr. Сейчас есть некоторое развитие проекта, а еще я опубликовал исходный код серверной части okerr под открытой лицензией, поэтому и решил написать на хабр этот небольшой обзор.
[ full size ]
Кому это может быть интересно
Вам это может быть интересно если вы работаете небольшой командой или вообще один. У вас нет мониторинга и вы не уверены, точно ли он нужен. Либо же вы пробовали какой-то популярный серьезный мониторинг "для больших мальчиков", но для вас он как-то "не взлетел", или работает в почти дефолтной конфигурации и не сильно изменил вашу жизнь. А еще — если вы точно не планируете выделять целого сотрудника (а то и отдел) на то, чтобы тот хотя бы пару часов в день мониторил в дашборд мониторинга или настраивал его.
Чем необычен okerr
Дальше я покажу интересные особенности окерра, которые отличают его от некоторых других мониторингов.
Okerr — это гибридный мониторинг
При внутреннем мониторинге на наблюдаемых машинах крутится "агент", который передает данные на сервер мониторинга (например, свободное место на дисках). При внешнем — сервер по сети выполняет проверки (например, ping или доступность вебсайта). У каждого подхода свои ограничения. Okerr использует оба варианта. Проверки внутри серверов выполняются очень легким (30Kb) агентом или вашими собственными скриптами и приложениями, а сетевые — через сенсоры okerr в разных странах.
Сократить бэкапы на 99.5% с hashget
hashget — это бесплатный, оперсорсный дедупликатор — похожая на архиватор утилита, которая позволяет значительно сократить размер бэкапов, а также организовать схемы инкрементального и дифференциального бэкапа и не только.
Это обзорная статья для описания возможностей. Само использование hashget (довольно простое) описано в README проекта и wiki-документации.
Сравнение
По закону жанра, начну сразу с интриги — сравнения результатов:
Data sample | unpacked size | .tar.gz | hashget .tar.gz |
---|---|---|---|
Wordpress-5.1.1 | 43 Mb | 11 Mb ( 26% ) | 155 Kb ( 0.3% ) |
Linux kernel 5.0.4 | 934 Mb | 161 Mb ( 20% ) | 4.7 Mb ( 0.5% ) |
Debian 9 (LAMP) LXC VM | 724 Mb | 165 Mb ( 23% ) | 4.1 Mb ( 0.5% ) |
Предыстория, каким должен быть идеальный и эффективный бэкап
Каждый раз, когда я делал бэкап свежесозданной виртуалки, мне не давало покоя чувство, что я что-то делаю не так. Почему у меня получается увесистый бэкап от системы, где моего бесценного нетленного творчества — однострочный index.html с текстом "Hello world"?
Простой failover для вебсайта (мониторинг + динамический DNS)
evalidate: безопасная обработка пользовательских выражений
Зачем нужно
Различная фильтрация есть везде. Например, файрволл netfilter (iptables) имеет свой синтаксис для описания пакетов. В файле .htaccess апача свой язык, как определять, кому давать доступ к каталогу, кому нет. В СУБД свой очень мощный язык (SQL WHERE ...) для фильтрации записей. В почтовых программах (thunderbird, gmail) — свой интерфейс описания фильтров, в соответствии с которыми письма будут раскидываться по папкам.
И везде — свой велосипед.
Для бухгалтерской программы вам может быть удобно позволить пользователю выбрать, кому будет повышена зарплата (все женщины, а так же мужчины возрастом от 25 до 32 лет, либо же до 50 лет если у мужчины имя Вася). И каждому подходящему повысить по пользовательскому выражению ( + 2000 рублей + 20% от прежней зарплаты + по 1000 рублей за каждый год стажа)
Для интернет-магазина (или его админки) — найти все ноутбуки, с памятью от 4 до 8 Gb, которых на складе более 3 штук, но не Acer, или даже Acer, если стоят меньше 30 000 рублей.
Конечно, можно присобачить свою сложную систему фильтров и критериев, сделать для них веб-интерфейс, но проще было бы все сделать в пару строк?
src="(RAM>=4 and RAM<=8 and stock>3 and not brand=='Acer') or (brand=='Acer' and price<30000)"
success, result = evalidate.safeeval(src,notebook)
reboot с веб-интерфейсом или trigger: простая и дешевая синхронизация процессов через блокируемый read()
В этом посте я опишу простой способ, который:
- не требует программирования — только unix-way сборка системы из маленьких кирпичиков
- не отжирает много ресурсов (не нужно зря поллить файл, а сама программа весит значительно меньше шелла)
- срабатывает моментально
Информация
- В рейтинге
- 195-й
- Откуда
- Россия
- Дата рождения
- Зарегистрирован
- Активность