Больше видео с летнего LVEE 2014
Заметки о Linux, системном администрировании, программировании, электронике и не только
вторник, 30 сентября 2014 г.
Мой блиц-доклад с летнего LVEE 2014
Наткнулся на свой доклад с летнего LVEE 2014. Оказывается я постоянно пританцовываю на месте - понятия не имею почему, но нужно от этого избавляться.
Больше видео с летнего LVEE 2014
Больше видео с летнего LVEE 2014
воскресенье, 21 сентября 2014 г.
Прекращение поддержки Ubuntu Quantal и Ubuntu Raring в моем репозитарии
Лучше поздно, чем никогда - в связи с End-Of-Life для Ubuntu Quantal и Ubuntu Raring я прекращаю собирать пакеты Midnight Commander для этих дистрибутивов.
Спасибо человеку, который дернул меня, что с репозитарием пакетов для Midnight Commander что-то не так. В процессе починки сего я и наткнулся на отсутствие нужных пакетов в репозитарии ftp.ubuntu.com/ubuntu/.
Обновляйтесь дамы и господа.
Спасибо человеку, который дернул меня, что с репозитарием пакетов для Midnight Commander что-то не так. В процессе починки сего я и наткнулся на отсутствие нужных пакетов в репозитарии ftp.ubuntu.com/ubuntu/.
Обновляйтесь дамы и господа.
четверг, 4 сентября 2014 г.
Опять на тему 3G у MTS
Сегодня я хвалил MTS за приличную скорость работы, но сейчас вечер и интернет скорее мертв чем жив. Неважно через что я подключаюсь - wifi tethering на телефоне или USB модем (Huaweu E1550).
Только что выполнил тест скорости на speedtest.net
При таком жестком раскладе TCP/IP не справляется, в дампе траффика видно много пакетов SYN, но без ответного SYN ACK. В итоге через какое-то время соединение закрывается так и не открывшись. Открытые соединения тоже отваливаются через какое-то время неактивности. Очень похоже на тупой шейпер, который просто дропает пакеты подряд без разбора.
Но совсем другая картина, если подключиться к корпоративному VPN (OpenVPN через UDP) и повторить тот же тест на speedtest.net
Через VPN соединение все летает шустро и без проблем. Выводы каждый делает сам, но похоже востребованность VPN в будущем будет только расти.
Только что выполнил тест скорости на speedtest.net
Прямое подключение к интернет через 3G |
Но совсем другая картина, если подключиться к корпоративному VPN (OpenVPN через UDP) и повторить тот же тест на speedtest.net
Подключение к интернет через VPN по 3G |
С таким 3G уже можно жить
Вторую неделю живу в отрыве от цивилизации. Интернет - только 3G (это особенно больно после рафинированного 100Mb/s Ethernet от АтлантТелекома).
Сегодня пару часов разгребал последствия падения инфраструктуры у хостера и только под вечер заметил, что как-то быстро интернет работает и особо не лагает. Зашел на speedtest.net - вполне приличный результат для 3G вечером. Вкупе с Hyper.net от MTS - жить можно. Надеюсь халява не закончится пока я это пишу...
P.S. Вчера скорость вечером была около 800-900kb/s, что даже для SSH напрягало.
вторник, 2 сентября 2014 г.
Эмулятор виртуальной смарткарты
В процессе изучения вопроса по использованию смарткарт в Linux наткнулся на проект Virtual Smart Card Architecture который предоставляет средства для эмуляции ридеров и самих смарткарт в Linux, Windows и MacOS X.
Features
Из всего фреймворка меня в первую очередь интересует функционал по эмуляции виртуальной смарткарты, потому я и подготовил пакет для пары экспериментов.
Установить его можно из моего репозитория
Для удобства работы со смарткартами нужно установить пакет opensc.
И затем проверить, что виртуальные ридеры видны в системе и доступны прикладному софту.
В соседнем терминале запустим эмулятор смарткарты стандарта ISO7816 и проверим реакцию на это событие.
Теперь обновим состояние ридеров - по идее сейчас виртуальная карта должна появиться в одном из ридеров.
Все верно и в первом ридере статус карты сменился с "No" на "Yes". Теперь попробуем поработать с картой через opensc-explorer.
Запрос информации о корневом файле
Генерация 8 случайных чисел в смарткарте
Создаем на смарткарте файл 8888/1F00 и загружаем его обратно на диск
Проверим, что содержимое файлов test.bin и check.bin совпадает
Несмотря на работу базовых функций инициализировать карту в формат PKCS15 не удастся.
Если нужна низкоуровневая работа с картой, то можно попробовать инструмент Java Smart Card Explorer.
Features
- Virtual smart card: Emulates a German Elektronischer Reisepass, ISO-7816 or cryptoflex cards
- Virtual smart card: Connects to virtual reader over the internet
- Virtual smart card: Supports relaying a local smart card to the virtual reader
- PCSC relay: Emulates a ISO/IEC 14443 smart card relaying communication to a local smart card
- PCSC relay: Uses OpenPICC or libnfc devices as NFC antenna for card emulation
- nPA Library: Supports establishing a secure messaging channel to the new German identity card ("neuer Personalausweis" nPA)
- nPA Library: Supports easy to use secure messaging implementation
- nPA Library: Includes tool for PIN management for the nPA
- Smart card reader emulator: Compatible with default CCID driver for windows and unix
- Smart card reader emulator: Supports secure PIN commands
- Smart card reader emulator: Supports PACE ("Standardleser" CAT-S)
Из всего фреймворка меня в первую очередь интересует функционал по эмуляции виртуальной смарткарты, потому я и подготовил пакет для пары экспериментов.
Установить его можно из моего репозитория
$ sudo aptitude install virtualsmartcard $ sudo service pcscd restart
Для удобства работы со смарткартами нужно установить пакет opensc.
$ sudo aptitude install opensc
И затем проверить, что виртуальные ридеры видны в системе и доступны прикладному софту.
$ opensc-tool --list-readers # Detected readers (pcsc) Nr. Card Features Name 0 No Virtual PCD 00 00 1 No Virtual PCD 00 01 2 No Virtual PCD 00 02 3 No Virtual PCD 00 03 4 No Virtual PCD 00 04 5 No Virtual PCD 00 05 6 No Virtual PCD 00 06 7 No Virtual PCD 00 07 8 No Virtual PCD 00 08 9 No Virtual PCD 00 09 10 No Broadcom Corp 5880 [Contacted SmartCard] (0123456789ABCD) 00 00
В соседнем терминале запустим эмулятор смарткарты стандарта ISO7816 и проверим реакцию на это событие.
$ vicc -t iso7816 02.09.2014 11:24:28 [WARNING] Using default SAM parameters. PIN=1234, Card Nr=1234567890 02.09.2014 11:24:28 [INFO] Connected to virtual PCD at localhost:35963 02.09.2014 11:24:28 [INFO] Power Up 02.09.2014 11:24:29 [INFO] Power Down
Теперь обновим состояние ридеров - по идее сейчас виртуальная карта должна появиться в одном из ридеров.
$ opensc-tool --list-readers # Detected readers (pcsc) Nr. Card Features Name 0 Yes Virtual PCD 00 00 1 No Virtual PCD 00 01 2 No Virtual PCD 00 02 3 No Virtual PCD 00 03 4 No Virtual PCD 00 04 5 No Virtual PCD 00 05 6 No Virtual PCD 00 06 7 No Virtual PCD 00 07 8 No Virtual PCD 00 08 9 No Virtual PCD 00 09 10 No Broadcom Corp 5880 [Contacted SmartCard] (0123456789ABCD) 00 00
Все верно и в первом ридере статус карты сменился с "No" на "Yes". Теперь попробуем поработать с картой через opensc-explorer.
Запрос информации о корневом файле
OpenSC [3F00]> info 3F00 Dedicated File ID 3F00 File path: 3F00 File size: 65535 bytes ACL for SELECT: N/A ACL for LOCK: N/A ACL for DELETE: NONE ACL for CREATE: NONE ACL for REHABILITATE: NONE ACL for INVALIDATE: NONE ACL for LIST FILES: NONE ACL for CRYPTO: N/A ACL for DELETE SELF: N/A
Генерация 8 случайных чисел в смарткарте
OpenSC [3F00]> random 8 00000000: F9 B3 C9 9D 8F D6 DC 81 ........
Создаем на смарткарте файл 8888/1F00 и загружаем его обратно на диск
$ dd if=/dev/urandom of=test.bin bs=1024 count=1 1+0 записей считано 1+0 записей написано скопировано 1024 байта (1,0 kB), 0,000283354 c, 3,6 MB/c $ opensc-explorer OpenSC [3F00]> mkdir 8888 256 OpenSC [3F00]> cd 8888 OpenSC [3F00/8888]> create 1F00 1024 OpenSC [3F00/8888]> put 1F00 test.bin Total of 1024 bytes written. OpenSC [3F00/8888]> info 1F00 Elementary File ID 1F00 File path: 3F00/8888/1F00 File size: 1024 bytes EF structure: Transparent ACL for READ: N/A ACL for UPDATE: N/A ACL for DELETE: N/A ACL for WRITE: N/A ACL for REHABILITATE: N/A ACL for INVALIDATE: N/A ACL for LIST FILES: N/A ACL for CRYPTO: N/A OpenSC [3F00/8888]> get 1F00 check.bin Total of 1024 bytes read from 1F00 and saved to check.bin. OpenSC [3F00/8888]> rm 1F00 OpenSC [3F00/8888]> cd .. OpenSC [3F00]> rm 8888
Проверим, что содержимое файлов test.bin и check.bin совпадает
$ md5sum test.bin check.bin 804420d7560e82065b74eff561cfb2c8 test.bin 804420d7560e82065b74eff561cfb2c8 check.bin
Несмотря на работу базовых функций инициализировать карту в формат PKCS15 не удастся.
Если нужна низкоуровневая работа с картой, то можно попробовать инструмент Java Smart Card Explorer.
$ wget --trust-server-names http://sourceforge.net/projects/jsmartcard/files/latest/download $ java -jar JSmartCardExplorer.jar
PulseAudio для Skype
Вчера-позавчера Skype 4.2.x окончательно отказался входить в сеть и мне пришлось обновиться до версии 4.3.0.37. Примечательно, что при обновлении теряется возможность работать со звуком через ALSA и теперь для этого нужен PulseAudio. Если при первом запуске не переименовать старый профиль, то skype будет вылетать с ошибкой сегментации, поэтому
Даже если у вас и не установлен сервер pulseaudio, то скорее всего его клиентская часть libpulse0 у вас уже установлена - остается установить сам pulseaudio, но так чтобы он не поломал работающие с alsa приложения. Для этого подойдет эта инструкция.
Для начала устанавливаем pulseaudio
Далее настраиваем общесистемную конфигурацию pulseaudio для совместной работы с ALSA.
/etc/pulse/daemon.conf
/etc/pulse/client.conf
/etc/pulse/default.pa
После этого запускаю два экземпляра MPlayer (один через pulseaudio, а второй через ALSA) и убеждаюсь, что все работает и PulseAudio не пытается захватить монопольно звуковое устройство.
Если в результате оба трека играют одновременно, то можно запускать skype и продолжать радоваться жизни.
$ mv ~/.Skype ~/.Skype~ $ skype
Даже если у вас и не установлен сервер pulseaudio, то скорее всего его клиентская часть libpulse0 у вас уже установлена - остается установить сам pulseaudio, но так чтобы он не поломал работающие с alsa приложения. Для этого подойдет эта инструкция.
Для начала устанавливаем pulseaudio
$ sudo aptitude update $ sudo aptitude install pulseaudio
Далее настраиваем общесистемную конфигурацию pulseaudio для совместной работы с ALSA.
/etc/pulse/daemon.conf
exit-idle-time = 0 # Exit as soon as unneeded flat-volumes = yes # Prevent messing with the master volume
/etc/pulse/client.conf
# Applications that uses PulseAudio *directly* will spawn it, # use it, and pulse will exit itself when done because of the # exit-idle-time setting in daemon.conf autospawn = yes
/etc/pulse/default.pa
# This startup script is used only if PulseAudio is started per-user # (i.e. not in system mode) .fail # Set tsched=0 here if you experience glitchy playback. This will # revert back to interrupt-based scheduling and should fix it. # # Replace the device= part if you want pulse to use a specific device # such as "dmix" and "dsnoop" so it doesn't lock an hw: device. # INPUT/RECORD load-module module-alsa-source device="default" tsched=1 # OUTPUT/PLAYBACK load-module module-alsa-sink device="default" tsched=1 # Accept clients -- very important load-module module-native-protocol-unix .nofail .ifexists module-x11-publish.so # Publish to X11 so the clients know how to connect to Pulse. Will # clear itself on unload. load-module module-x11-publish .endif
После этого запускаю два экземпляра MPlayer (один через pulseaudio, а второй через ALSA) и убеждаюсь, что все работает и PulseAudio не пытается захватить монопольно звуковое устройство.
$ mplayer -ao pulse music/one.mp3 $ mplayer -ao alsa music/two.mp3
Если в результате оба трека играют одновременно, то можно запускать skype и продолжать радоваться жизни.
понедельник, 1 сентября 2014 г.
Немного подробностей о работе access check в MySQL
Если вы создали в MySQL пользователя someuser@'%' и не можете взять в толк, почему его не пускает с localhost, то вам по этой ссылке.
Более подробно вопрос раскрыт в официальной документации MySQL.
Чтобы продебажить приоритет в котором выдается доступ, нужно выполнить следующий запрос
В результате вы получите что-то вроде такой выборки
При таком раскладе берется первое совпадение - Host="localhost", User="" (пустое поле User означает любого пользователя) и следовательно до обработки someuser дело не доходит.
Более подробно вопрос раскрыт в официальной документации MySQL.
Чтобы продебажить приоритет в котором выдается доступ, нужно выполнить следующий запрос
SELECT Host,User FROM mysql.user ORDER BY Host DESC, User DESC;
В результате вы получите что-то вроде такой выборки
+-------------+-----------------+ | Host | User | +-------------+-----------------+ | mysql55.lan | root | | mysql55.lan | | | localhost | root | | localhost | | | ::1 | root | | 127.0.0.1 | root | | % | someuser | +-------------+-----------------+
При таком раскладе берется первое совпадение - Host="localhost", User="" (пустое поле User означает любого пользователя) и следовательно до обработки someuser дело не доходит.
Подписаться на:
Сообщения (Atom)