среда, 27 мая 2015 г.

Тестирование SSL/TLS

В процессе фикса Logjam потребовался инструмент для оценки последствий примененного изменения. Нашел сканер от ssllabs. Этот сканер позволяет оценить число клиентов, которые больше не смогут подключиться к серверу. В моем случае это были IE6/WinXP и IE8/WinXP.

суббота, 16 мая 2015 г.

Please create a GitHub OAuth token to go over the API rate limit

В процессе установки обновлений есть время, когда просто сидишь и созерцаешь процесс. Чтобы немного развлечься решил попробовать запустить magento на php7. По ссылке обещают производительность даже выше, чем у HipHop.

Magento 1.9 не завелась, но разбираться в причине лень, поэтому решил попробовать magento 2 beta. В процессе установки composer выдал:

  - Installing sjparkinson/static-review (4.1.1)
    Downloading: Connecting...
Could not fetch https://api.github.com/repos/sjparkinson/static-review/zipball/493c3410cf146a12fca84209bad126c494e125f0, please create a GitHub OAuth token to go over the API rate limit
Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+php7+2015-05-16+1102
to retrieve a token. It will be stored in "/home/admin/.composer/auth.json" for future use by Composer.

Похоже я слишком часто последнее время стал пользоваться composer.

500 OOPS: prctl PR_SET_SECCOMP failed

После рестарта openvz ноды в контейнерах vsftpd начал ругаться "500 OOPS: prctl PR_SET_SECCOMP failed", чтобы решить проблему в лоб достаточно добавить в vsftpd.conf параметр "seccomp_sandbox=NO" и перезапустить vsftpd.

# echo 'seccomp_sandbox=NO' >> /etc/vsftpd.conf
# service vsftpd restart

Позже гляну связано ли это с апгрейдом openvz ядра с 2.6.32-042stab106.6 на 2.6.32-042stab108.2.

понедельник, 11 мая 2015 г.

Сконвертировать regular файл в sparse в Linux

В процессе подготовки staging хоста из забыл указать "-S" в опциях tar и получил 40G файл, вместо реальных 2.7M. Это файл базы данных LDAP в Zimbra и изначально он разреженный (sparse file). Терять столько места не было желания, поэтому я сконвертировал его обратно в sparse file:

# cp -a --sparse=always /opt/zimbra/data/ldap/mdb/db/data.mdb /opt/zimbra/data/ldap/mdb/db/data.sparse.mdb
# mv /opt/zimbra/data/ldap/mdb/db/data.sparse.mdb /opt/zimbra/data/ldap/mdb/db/data.mdb
# du -sh /opt/zimbra/data/ldap/mdb/db/data.mdb
2.7M /opt/zimbra/data/ldap/mdb/db/data.mdb
# du -sh --apparent-size /opt/zimbra/data/ldap/mdb/db/data.mdb
40G /opt/zimbra/data/ldap/mdb/db/data.mdb

Теперь все правильно.

UPDATE: +Maksim Melnikau посоветовал использовать fallocate для этих целей.
Supported for XFS (since Linux 2.6.38), ext4 (since Linux 3.0), Btrfs (since Linux 3.7) and tmpfs (since Linux 3.5).
Выглядит это так:

# fallocate --dig-holes /opt/zimbra/data/ldap/mdb/db/data.mdb

Я проверил в контейнере openvz на ноде с centos 6 - работает.

воскресенье, 10 мая 2015 г.

Знакомство с контроллером ESP8266 и обновление его прошивки

Уже неделю в загашнике томятся два модуля esp8266, которые я заказывал на поиграться. Прелесть этого микроконтроллера в том, что он достаточно производительный и с wifi на борту. Использовать его сетевые возможности можно через AT команды (при подключении через UART к другому MCU), либо как самостоятельный контроллер (существуют прошивки вроде NodeMCU, позволяющие программировать его непосредственно). Все это в совокупности с низкой ценой принесло ему популярность в среде самоделкиных.

Для начала я заказал вариант ESP-01, который больше всего подходит для старта. Выглядит он вот так:


Контроллер нуждается в питании 3.3VDC и такое же напряжение должно использоваться для ввода/вывода. Для тестирования его работы достаточно переключить USB-TTL адаптер в режим 3.3V, но для связи с другой периферией, например Arduino, нужно обеспечить конвертирование 5V <-> 3.3V. Для этих целей я прикупил level shifter:


Минимальная схема подключения выглядит так:


В начале я невнимательно прочел документацию и не подключил вывод CH_PD к VCC. Соответственно контроллер просто не загружался. Следующей проблемой было определить правильные настройки скорости порта. Тут помог простой перебор всех скоростей, пока в терминале не показывался нормальный вывод.

Оказалось, что два моих модуля имели разные прошивки. Один инициализировался на скорости 115200, а второй на 9600. Чтобы привести их к общему знаменателю решил обновить прошивку у того, который на 9600.

Для начала скачиваю прошивку и утилиту esptool. Ссылки и прочую информацию брал с esp8266.ru. Чтобы перевести контроллер в режим прошивки нужно:
  • выключить питание контроллера (отключить пин VCC от USB-TTL конвертора, но не выключать сам конвертер)
  • соединить пин GPIO0 к GND
  • включить питание контроллера (подключить пин VCC к USB-TTL конвертеру)
  • запустить прошивальщик
$ ./esptool.py -p /dev/ttyUSB0 -b 9600 write_flash 0x000000 ./AT21SDK95-2015-01-24.bin

Прошивка длится довольно долго. По окончании нужно отключить питание, отключить пин GPIO0 от GND и включить питание снова. Теперь скорость связи возросла до 115200. Позже попробую цепляться к домашнему WiFi и что-нибудь слать на сервер.

пятница, 8 мая 2015 г.

Прототип руткита и кейлоггера, использующие GPU вместо CPU

Прочел новость об анонсе прототипа руткита и кейлоггера, использующих GPU вместо CPU. На CPU происходит только инициализация, а дальнейшая работа идет с использованием процессора видеокарты. Доступ к системной памяти организован через DMA, а данные малвари хранятся в видеопамяти. Подобный подход осложняет обнаружение обычным антивирусом.

В принципе подобная новость уже не первая - что-то похожее уже было для прошивок накопителей и сетевых адаптеров. Просто там было сложнее внедриться.

среда, 6 мая 2015 г.

Поддержка Debian Stretch и Ubuntu Vivid в моем репозитарии

По просьбе трудящихся добавил поддержку Debian Stretch и Ubuntu Vivid в свой репозитарий. Свежие версии midnight commander уже собраны и доступны.

Любопытства ради посчитал количество установок mc 4.8.14 через APT из своего репозитария - вышло немного более 700. Плюс скачивания пакета через браузер, curl, wget, etc.

А вот nightly сборками (регулярные билды из master ветки midnight commander) интересуются похоже только боты. Пока они собираются автоматом и кушать не просят, но если что-то сломается, то скорее всего просто дропну их поддержку.