Flatpak

2017-06-03 10:35 am
waqur: (Default)
Flatpak — платформа дистрибуции настольных приложений для Linux.

Фичи:
* установка приложений в обход основного репозитория дистрибутива
* единая платформа для всех дистрибутивов
* приложение распространяется с зависимыми динамическими библиотеками, т.е. не зависит от динамических библиотек основной системы (которые могут быть несовместимы с приложением, или внезапно стать таковыми в результате обновления системы)
* можно устанавливать одновременно несколько версий одного приложения
* платформа использует контейнерные технологии ядра Linux для создания песочниц приложений (bind mounts, namespaces, seccomp)

http://flatpak.org/
waqur: (Default)
Весь мой UNIX experience делится на две части: до того, как я впервые установил терминальный мультиплексор tmux, и после этого.

Первоначальная мотивация к инсталляции программы заключается в том, чтобы обрыв ssh-подключений к серверу не приводил к закрытию подключённых к виртуальному терминалу процессов в результате доставки им сигнала SIGHUP. Затем к хорошим вещам привыкаешь быстро: можно оставить на ночь на сервере любую долго выполняющуюся задачу (инсталляцию, компиляцию, обновление, ...); можно экономить мобильный трафик и время, не передавая ssh-клиенту весь тот мусор, который выдаётся на экран во время выполнения таких задач; можно держать постоянно открытые окна для мониторинга состояния сервера (top, iftop); можно легко и удобно менять клиентские устройства, не прерывая серверный контекст; можно даже видеть один и тот же экран и суммировать клавиатурный ввод при подключении с нескольких устройств.

Обычно советы для новичков сводятся к чтению объёмной manual page и запоминанию многочисленных клавиатурных комбинаций, но как по мне — это лишнее. Начать следует с самого простого:

~/.tmux.conf:
set -g status-fg white
set -g status-bg red
set -g prefix C-a
unbind C-b
bind C-a send-prefix
set -g base-index 1


~/.bash_profile:
if [ $TERM = "xterm" ]; then
 ( (tmux has-session -t remote && tmux attach-session -t remote) || \
   (tmux new-session -s remote) ) && exit 0
 echo "tmux failed to start"
fi
if [ $TERM = "screen" ]; then
 clear
 cat /etc/motd
fi


А далее запомнить только три комбинации:
"Ctrl+A цифра" переключает окна
"Ctrl+A C" создаёт новое окно
"Ctrl+A D" отсоединяет от сервера (без потери контекста на сервере)

Большего мне не понадобилось и через пять лет после начала использования программы. Может, я использую 1% возможностей tmux, но этого вполне достаточно, чтобы повысить удобство удалённого администрирования в разы.
waqur: (Default)
В последнее время всё чаще попадаются сайты, свёрстанные с использованием специальных шрифтов для Mac OS. Не до конца понимаю, чем альтернативно ориентированных дизайнеров не устраивают стандартные шрифты в их операционной системе (по слухам, на маках вроде сломан TrueType hinting, из-за чего системный шрифт выглядит в браузере как будто набранный полужирным стилем, но только если мелкий кегль и только на крупнозернистых экранах).

В любом случае, их пидарские альтернативно ориентированные шрифты под Windows выглядят вот так:



В идеале, было бы установить расширение для Firefox, которое подоменно блокирует загрузку и использование сайтом любых шрифтов, кроме системных. Т.е. делает с несистемными шрифтами то же самое, что делает с javascript'ом аддон YesScript. Никто не знает такого?
waqur: (Default)
Программа для генерации больших растровых изображений, локально подобных малому исходному изображению:

https://github.com/mxgmn/WaveFunctionCollapse

Ключевые идеи:
– распределение паттернов в квадратных блоках исходного изображения совпадает с распределением паттернов в таких же квадратных блоках результирующего изображения (достаточно большого размера)
– такие распределения становятся гораздо более точными, если учесть инвариантность самых маленьких плиток относительно вращений и отражений (диэдральная группа D4)
– алгоритм постоянно стремится минимизировать Шэнноновскую энтропию (авторы называют это "коллапс волновой функции"
waqur: (Default)
Из личной практики, может ещё кому-то будет полезно :)

Если ZeroNet установить в папку с пробелом в имени, тогда он, зараза, часть сайтов открывает (в основном простые статические), а часть — нет, причём зависает на них в режиме вечной синхронизации (без выдачи каких-либо осмысленных сообщений об ошибках). Просто перенести его в папку без пробелов недостаточно, надо всё начинать с чистого листа.

https://zeronet.io/
https://news.ycombinator.com/item?id=14041077

Bitmessage

2016-10-15 09:36 pm
waqur: (Евро)
Bitmessage — первый шифрочятик, который способен шифровать метаданные (кому, от кого, когда, сколько байт).
https://en.wikipedia.org/wiki/Bitmessage

Технически, в DHT-сети содержится пул сообщений за последние 48 часов, зашифрованных публичными ключами. Хэш публичного ключа = сетевой адрес получателя сообщения. Приватные ключи, необходимые для расшифровки, локально хранятся у клиентов и не передаются в сеть. Для DDoS'оустойчивости применяется proof-of-work на хэшах, наподобие биткойновского.

UPD. Идея хорошая, но есть проблемы с реализацией — память течёт, и приложение периодически падает (32-битная версия) или заставляет систему грызть своп и всё равно падает (64-битная версия). Вдобавок ко всему, ещё и на Питоне. Если было написано на чистом Си — можно было бы применить Intel Inspector XE, а так хз, что там течёт — рантайм Питона, Питоновские библиотеки, или сама программа. Не наши проблемы, пусть автор сам разбирается во всём этом великолепии :)
waqur: (Евро)
Что мне не нравится в Firefox'е — это замыленные значки и шрифты при системной настройке 120 DPI (увеличенные до 125% шрифты в Windows). Поэтому, первым делом после установки этого браузера я захожу в about:config и задаю layout.css.devPixelsPerPx=1 и layout.css.dpi=96. Это решает проблему практически на 100%, за вычетом системных и контекстных менюшек, которые остаются с мелким шрифтом (на них не влияют даже настройки font.minimum-size.*).

До сегодняшнего дня я боролся с этой досадной мелочью браузерным аддоном Theme Font & Size Changer, который, кстати, весьма неприлично себя ведёт, открывая свою домашнюю страницу при каждом автообновлении. В общем, очевидно, что подобные аддоны не улучшают безопасность браузера. Сегодня этот аддон окончательно сломался, что подтолкнуло меня найти другое решение: оказывается, достаточно создать файл C:\Users\User\AppData\Roaming\Mozilla\Firefox\Profiles\...\chrome\userChrome.css с таким содержимым:
* { font-size: 15px !important; }
waqur: (Евро)
Некоторые сцайты любят гадить в буфер обмена — добавлять "подробнее " и ссылку на страницу при нажатии Ctrl+C, или очищать буфер обмена по тому же событию, по сути мешая копировать текст с сайта в буфер обмена.

Разумеется, эти и многие другие последствия шаловливости рук чрезмерно инициативных погромистов легко лечатся отключением JavaScript'а кнопкой, которая всегда на виду (браузерный аддон JS Switch), но всё же, это очень неудобно — каждый раз нажимать эту чёртову кнопку и перезагружать страницу.

Особенно это раздражает при копировании небольших текстов — таких как код изделия или цена — с сайтов интернет-магазинов.

Есть лучший способ — раз и навсегда отучить все сайты от загаживания буфера обмена:
about:config -> dom.event.clipboardevents.enable = false

Попутно можно отключить перехват сайтами контекстного меню, которое открывается кликом правой клавиши мыши:
about:config -> dom.event.contextmenu.enable = false

А ещё есть полезный плагин YesScript, позволяющий запрещать/разрешать JavaScript не глобально на весь браузер, а индивидуально для каждого домена. Если какой-то сайт начинает наглеть (срёт в буфер обмена, мельтешит всплывающими окнами, воспроизводит звук, рисует на фоне страницы какой-то снег и тому подобный бред) — нажимаем на значок белого свитка (который сразу чёрнеет), обновляем страницу и дело в шляпе. "Научишься плавать — тогда и воду в бассейн нальём." (c)
waqur: (Евро)
А эта новомодная хрень под названием Push Notifications становится всё доставучее, распространяясь на новые и новые сайты, как лесной пожар. Чем их всех не устраивал RSS? Выражаясь дипломатическим языком, дебилы б**ть.

И как это часто бывает, самые полезные настройки спрятаны слишком глубоко в недрах браузера.
Ввести в адресную строку about:config
Ввести в поиск dom.webnotifications.enabled
Поменять значение true на значение false

BlockStack

2016-06-12 02:16 pm
waqur: (Евро)
BlockStack — это такая децентрализованная система DNS / WHOIS / Domain Name Registry, которая работают поверх базовой технологии Bitcoin, называемой блокчейн.

https://blockstack.org/

Узлы сети Blockstack одновременно выполняют серверный процесс Bitcoin, и когда они видят в биткойновском блокчейне транзакцию с определёнными данными в OP_RETURN, они переносят эти данные в собственный Blockstack'овый мета-блокчейн. Узлы сети Blockstack стремятся к тому, чтобы намайнить побольше в этом своём мета-блокчейне, потому что так они попутно получают оплату за регистрацию доменных имён.

Децентрализованные анонимные DNS существовали и ранее (например, .onion), однако BlockStack интересна тем, что она позволяет решить теоретическую проблему, известную как Zooko's triangle (простыми словами, делает доступными красивые короткие имена доменов, а не хэши). При этом проблема зловредного заспамливания DHT решается за счёт опоры на биткойновский блокчейн. Бесплатно заспамить не получится.

Доменная зона ".id" пока не отображена в ICANN DNS. Едва ли это критично, для 99% пользователей это может быть решено браузерным плагином, а остальные 1% достаточно умны, чтобы настроить себе альтернативный DNS.

Разумеется, эта штука может забить последний гвоздь в крышку гроба PKI и связанных с ним TLS MitM-проблем, если она когда-либо разрастётся до достаточных размеров. Согласитесь, выглядит гораздо мощнее, чем ZRTP SAS и сканируемые с экрана QR-коды в мобильных шифрочятиках.
waqur: (Евро)
В мессенджер WhatsApp добавили end-to-end шифрование. Таких шифрованных мессенджеров сейчас уже стало много: Signal, Telegram и другие. Однако EFFовцам понравилось, что используется double ratchet для борьбы с последствиями компрометации сессионных ключей, а также взаимное фотографирование QR-кодов для противодействия MITM-атакам (очевидно, что нельзя полагаться на PKI в борьбе со state adversary; а передаваемые голосом контрольные слова в стиле ZRTP SAS неприменимы в контексте текстовых мессенджеров):
https://www.eff.org/deeplinks/2016/04/whatsapp-rolls-out-end-end-encryption-its-1bn-users

Остающиеся замечания (выношу из обсуждения):
(1) утечка метаданных (кто, с кем, когда, как долго общался) на центральный узел
(2) приложение хочет доступ к адресной книге телефона
(3) возможность изгонять пользователей из всей системы (централизованно банить)
(4) в связи с установкой из магазина приложений, нет гарантий, что ваша копия мессенджера бинарно-идентична другим пользователям (а не пропатчена лично для вас, например в связи с NSL).
waqur: (Евро)
Продолжаем тему углублённого изучения OpenVPN.

Если вы подключены к интернету одновременно через два провайдера, для повышения надёжности OpenVPN сервер можно настроить таким образом, чтобы он принимал входящие подключения через любой аплинк.

Подробности )
waqur: (Евро)
OpenVPN — это программное решение для организации шифрованного проброса через интернет трафика между вашими локальными сетями. Он поддерживает два режима: tun и tap.

Режим "tun" легче настроить, однако он умеет передавать только IP-пакеты с NAT-трансляцией (что недостаточно для работы сетевых дисков Windows, плохо подходит для SIP-телефонии, RTSP-видеонаблюдения и т.д.).

Режим "tap" передаёт Ethernet-кадры независимо от содержимого (IPv4, IPv6, ARP/RARP, NetBIOS, IPX/SPX, STP, всё что угодно) и представляет собой как бы разделённый свитч, один порт которого "тут", а второй — "там". Никакой NAT-трансляции, по VPN-у в обе стороны свободно гуляет широковещательный UDP трафик, ICMP и всё остальное, очень удобно. Единственный недостаток режима "tap" — его сложно настроить (об этом сразу честно предупреждает официальное руководство по OpenVPN). В интернете мало информации, она противоречивая, неполная, устаревшая.

Под катом — пошаговое руководство по настройке OpenVPN в режиме tap для самого типичного случая )
waqur: (Евро)
uBlock Origin — новый браузерный аддон для блокировки рекламы, на замену AdBlock Plus. По сравнению с AdBlock Plus, его расход оперативной памяти и нагрузка на процессор примерно в 3 раза ниже:
https://github.com/gorhill/uBlock/wiki/uBlock-vs.-ABP:-efficiency-compared

Для новых версий выигрыш в процессорном времени ещё больше:
https://github.com/gorhill/uBlock#cpu

Установил, по субъективным ощущениям — действительно работает быстрее.
Впрочем, этот аддон не содержит native-кода, просто хорошо оптимизированный Javascript. В основном, память и процессорное время экономятся на том, что этот плагин не пытается пихать весь список запрещённых URLов или их шаблонов в таблицу стилей браузера (css filter injection), раздувая DOM до невообразимых размеров. Взамен там используется другой милый трюк: выгрузить основные данные в базу данных sqlite, а далее делегировать весь heavy lifting, в том числе full text search, native-коду в составе библиотеки sqlite.

Также в отличие от AdBlock Plus, в этом блокировщике нет никаких "acceptable ads" (ненавязчивой рекламы), разрешённой по умолчанию. Вся реклама считается навязчивой и запрещена.
waqur: (Евро)
Проапгрейдил VMware Workstation с 10-й версии до 12-й (вместе с переездом на новый компьютер).

Случайно забыл про одну виртуальную машину, которая осталась в состоянии suspend.
Как ни странно, после пробуждения она отлично работает, включая виртуальную сеть и звук (хотя изменились образ BIOSа, API гипервизора, VmWare Tools for Guest, дифференциальный формат снэпшотов и наверное многое другое, о чём я не знаю). Даже хостовый процессор научился VT-d, чего раньше не умел. Как бы там ни было, эти башковитые парни из VMware, похоже, очень хорошо понимают смысл термина "обратная совместимость".
waqur: (Евро)
Иногда бывает нужно сделать флешку "только для чтения". Например, чтобы не нахвататься вирусов или чтобы глупые юзвери не поудаляли важные файлы.

Когда-то у многих флешек был write protect tab, как на 3.5" дискетах.
Затем производители стали на этом экономить, но зато поставляли утилиту, с помощью которой можно программно переключить write protect bit. Сейчас уже и этого не делают.

Остаётся только хачить NTFS.
1) Форматируем том в файловую систему NTFS: format I: /FS:NTFS /Q
2) Пишем на диск I: все нужные файлы
3) Запускаем шелл от имени SYSTEM: psexec -i -s -d %WINDIR%\SYSTEM32\CMD.EXE
4) Контроль: whoami (NT Authority\System)
5) Смена текущей папки: I: & cd \
6) Рекурсивно для всех файлов и папок: очистить списки контроля доступа, добавить в списки контроля доступа пользователя SYSTEM с полными правами: cacls . /T /G System:F
7) Рекурсивно для всех файлов и папок: принять владение: icacls . /setowner *S-1-5-18 /T
8) Рекурсивно для всех файлов и папок: добавить в списки контроля доступа пользователя Everyone (языконезависимый sid которого равен S-1-1-0) с правами на общее чтение и общее выполнение: icacls . /grant *S-1-1-0:(GR,GE) /T
9) Рекурсивно для всех файлов и папок: отозвать из списков контроля доступа запись для пользователя SYSTEM (пользователь SYSTEM остаётся владельцем всех файлов и папок): cacls . /T /E /R System
10) Контроль: cacls . /T
Файловую систему на защищённом таким способом диске по-прежнему можно будет отформатировать, а так — классический readonly.
waqur: (Евро)
Оказывается, в винде (Vista+) есть встроенная утилита командной строки для скачивания файлов из интернета, которая поддерживает протоколы http и https, и всегда доступна, независимо от набора установленного пользователем софта, аналог юниксовых консольных утилит wget и curl:
bitsadmin.exe /transfer "JobName" http://www.it1.net/images/it1_logo2.jpg C:\logo.jpg
waqur: (Евро)
Когда-то была такая программа Teleport Pro, умевшая сохранять сайты целиком для последующего оффлайнового просмотра. Разумеется, всё это давно можно делать бесплатно, с помощью консольного wget. Особенно если под рукой есть сервер, который не выключается ночью.

Главное, не забыть все опции командной строки )
waqur: (Евро)
Популярный драйвер файловой системы NTFS с открытым исходным кодом, ntfs-3g, как оказалось, не поддерживает воспроизведение журнала файловой системы, $LogFile. Этот журнал бывает в двух форматах, 1.1 (NT 4.0+) и 2.0 (Windows 8+), однако не поддерживаются оба.

При монтировании ФС журнал просто проверяется на пустоту, и если он непуст, тогда fuse-драйвер выдаёт ошибку и выходит (это не касается readonly режима монтирования). Ошибку монтирования можно преодолеть, указав "-o force", тогда журнал будет просто сброшен/проигнорирован. С потерей целостности метаданных файловой системы, разумеется.

Windows 8, Windows 8.1 и готовящаяся к выпуску Windows 10 с настройками по-умолчанию при получении от пользователя команды "выключить компьютер" уходят в hibernate в состоянии logout'а (это называется fast startup или hybrid boot). Разумеется, они это делают с грязными журналами файловой системы и реестра. Сброс/игнор такого длинного журнала влечёт тяжёлые последствия, вплоть до полной незагружаемости подопытной винды, поэтому авторы ntfs-3g не придумали ничего лучше, чем просто запрещать монтирование файловой системы по условию (( обнаружен hiberfile.sys )&&( $LogFile в формате 2.0 )&&( $LogFile непуст )&&(! readonly mount )). ntfs-3g при этом что-то лопочет в консоль про "Metadata kept in Windows cache, refused to mount", но на опции "-o remove_hiberfile" и "-o force" уже не реагирует.

Форумы всяких там Уебунтоводов и Маководов примерно уже год как заполнены стенаниями по этому поводу. Но увы: насильное выкусывание соответствующей проверки из исходного кода libntfs-3g показало, что после не более чем 3-5 монтирований в таких условиях нарушается целостность хайвов реестра. Логика ошибки "Metadata kept in Windows cache, refused to mount" такова: чтобы винда при следующей загрузке не выпала в BSoD, походу вусмерть покоцав файловую систему на диске C:, надобно снести hiberfile; чтобы безопасно снести этот hiberfile и ничего вокруг не поломать, нужно сначала воспроизвести журнал файловой системы; однако воспроизводить журналы мы, увы, не умеем, а просто игнорировать их, начиная со времён Windows 8+, стало опасно; так что в сад, все в сад. Вопреки распространённому мнению, утилита ntfsfix журналы тоже не понимает и не применяет, хотя и может очистить дванольный журнал, чтобы ntfs-3g mount наконец заткнулся. Про последствия для хайвов реестра см.выше.

Пришло время наконец реализовать поддержку проигрывания $LogFile в ntfs-3g, котаны!

Кстати, Tuxera продаёт ещё и платную версию своего драйвера, работающую в режиме ядра, например для той же макоси, а также Embedded версию для встраиваемых систем. Однако, как показывает дизассемблер IDA, внутри той красивой обёртки вовсе не конфетка, а то же самое г*вно. Зато копирайтеры стараются не покладая рук: обещания ultimate reliability, always safe, fail-safe by design, 100% data consistency и так далее мы видим на главной tuxera.com и на многих страницах продуктов.

Как известно, обещать — не значит жениться. А делать поисковую оптимизацию — не значит программировать.
waqur: (Евро)
Авторы нового расширения к Google Chrome под названием "Password Alert" придумали интересную идею.
http://googleblog.blogspot.com/2015/04/protect-your-google-account-with.html

1) Поскольку среднестатистическому пользователю всё равно невозможно объяснить, что:
1.1) при вводе паролей нужно смотреть только на URL и полностью игнорировать дизайн сайта
1.2) и что в URL'е вида http://mail.google.com.lulzhaha.ws/... домен второго уровня вовсе не google.com,
2) а также поскольку антифишинговые списки могут не успеть загрузиться в браузер в случае направленной zero-day attack на конкретно этого пользователя с использованием индивидуального для него домена, например mail.google.com.foobar-454317.dyndns.org

Предлагается такое решение:

Показывать предупреждение, если пользователь пытается набирать пароль к своему Google Account на web-странице, домен которой не имеет отношения к компании Google.

Гениально! Заодно поощряется практика выбора разных паролей для разных сайтов.

Ещё требуется усовершенствование реализации, усовершенствование ТЗ (безусловный запрет на передачу данных, как при подделке https-сертификата, а не предупреждение пользователю-дураку, которое он не прочтёт или не поймёт), а также обобщение на другие сайты за пределами Гугла, однако самая концепция очень новая и интересная. И действующий прототип уже есть.

September 2017

S M T W T F S
     12
34567 89
10111213141516
17181920212223
24252627282930

Синдикация

RSS Atom

Автор стиля

Развернуть

No cut tags
Page generated 2017-09-21 03:26 am
Powered by Dreamwidth Studios