В прошлом месяце было опубликовано предупреждение о скором раскрытии подробностей о критической уязвимости в беспроводных маршрутизаторах Cisco Linksys. Как и было обещано, на этой неделе опубликовали подробности этой уязвимости.
Суть уязвимости заключается в ошибке в реализации протокола UPnP в стеке Broadcom (используется в уязвимых устройствах Linksys) которая привела к возможности выполнения произвольного кода на уязвимом устройстве с правами привилегированного пользователя. Как оказалось позже, эта уязвимость касается многих устройств других производителей, использующих стек Broadcom. Примечательно, что часть этих устройств уязвима не только из локальной сети.
Согласно информации от Rapid7 из приблизительно 80 млн. устройств, найденных в сети, около 15 млн. - уязвимы.
Подобная уязвимость найдена и уже исправлена в libupnp - свободной реализации протокола UPnP.
Учитываю огромную распространенность уязвимых устройств и скорость, с которой вендоры исправляют ошибки, можно предположить скорое появление ботнетов на этих устройствах.
Заметки о Linux, системном администрировании, программировании, электронике и не только
08 февраля 2013
Опубликованы подробности уязвимости UPnP в устройствах различных производителей
04 февраля 2013
Wine 1.5.23 для Debian Squeeze/Wheezy
Выложил пакеты для Wine 1.5.23 в свой репозитарий для Debian Squeeze/Wheezy. Анонс новой версии.
На этих выходных выдался свободный час и я решил немного улучшить пакеты Wine (wine-unstable), которые я собираю для себя. На linux.org.ru мне порекомендовали обратить внимание на несколько моментов, которые не учтены в моих пакетах:
Поддержку OpenCL я добавил только вчера и только для версии под Wheezy (пришлось разделить пакет на два, поскольку я не в курсе как добавить "мягкую" зависимость в Build-Depends).
Пакет для Debian Squeeze под архитектуру amd64 я собрал довольно давно, но для Debian Wheezy у меня пока не получается из-за перехода на multi-arch. Это требует адаптации пакета, которая в свою очередь потребует свободного времени. Но как говорил один товарищ в известном фильме Гайдая - "тот кто нам мешает, тот нам и поможет" (C) Кавказская пленница.
Я это к тому, что при помощи multi-arch появилась возможность установить пакеты для архитектуры i386 в amd64 и использовать их без проблем (большинство пакетов Wine под amd64 являются простыми врапперами, которые предлагают установить 32-битную версию). Для этого нужно проделать несколько несложных манипуляций.
Сначала добавим стороннюю архитектуру (у вас ведь нативная amd64?):
Проверяем, что архитектура присутствует в списке доступных:
Теперь подключите мой репозитарий в APT и обновите список пакетов:
Теперь можно установить wine:
Этот способ не позволит запускать 64-битные приложения Windows, но большинству пользователей это не должно быть критично, т.к. я еще не знаю ни одного массового приложения, которое было бы доступно только для архитектуры x86_64.
На этих выходных выдался свободный час и я решил немного улучшить пакеты Wine (wine-unstable), которые я собираю для себя. На linux.org.ru мне порекомендовали обратить внимание на несколько моментов, которые не учтены в моих пакетах:
- нет поддержки amd64;
- нет поддержки OpenCL.
Поддержку OpenCL я добавил только вчера и только для версии под Wheezy (пришлось разделить пакет на два, поскольку я не в курсе как добавить "мягкую" зависимость в Build-Depends).
Пакет для Debian Squeeze под архитектуру amd64 я собрал довольно давно, но для Debian Wheezy у меня пока не получается из-за перехода на multi-arch. Это требует адаптации пакета, которая в свою очередь потребует свободного времени. Но как говорил один товарищ в известном фильме Гайдая - "тот кто нам мешает, тот нам и поможет" (C) Кавказская пленница.
Я это к тому, что при помощи multi-arch появилась возможность установить пакеты для архитектуры i386 в amd64 и использовать их без проблем (большинство пакетов Wine под amd64 являются простыми врапперами, которые предлагают установить 32-битную версию). Для этого нужно проделать несколько несложных манипуляций.
Сначала добавим стороннюю архитектуру (у вас ведь нативная amd64?):
root@wheezy ~# dpkg --add-architecture i386
Проверяем, что архитектура присутствует в списке доступных:
root@wheezy ~# dpkg --print-foreign-architectures i386
Теперь подключите мой репозитарий в APT и обновите список пакетов:
root@wheezy ~# wget -q -O- http://www.tataranovich.com/tataranovich.asc | apt-key add - root@wheezy ~# apt-get update
Теперь можно установить wine:
root@wheezy ~# apt-get install wine-unstable:i386
Этот способ не позволит запускать 64-битные приложения Windows, но большинству пользователей это не должно быть критично, т.к. я еще не знаю ни одного массового приложения, которое было бы доступно только для архитектуры x86_64.
30 января 2013
Не загружался сервер с программным RAID1 на MD
Вчера ночью на одном из серверов вылетел жесткий диск из программного RAID1. Один из вариантов решения проблемы - программно отключить сбойный диск и затем вернуть его обратно, запустив поиск на SATA шине. Я уже как-то описывал этот способ тут.
Недостаток этого способа в том, что не всегда удается надолго вернуть в строй диск подобным способом. Более надежным будет отключить питание от диска и затем подключить его обратно. Поскольку у того сервера нет hot-swap корзины и была возможность отключить сервер, то я выключил и включил сервер (просто перезагрузить или нажать reset может быть недостаточно).
Однако после меню grub'а не последовала загрузка системы, а вместо этого меню ждала ошибка вида
Поскольку VolGroup00/swap - логический том поверх RAID1В /proc/mdstat не было ни одного массива (на сервере их два: md0 и md1). Смотрю в
После этого нужные массивы появились в
Далее выхожу из initramfs (Ctrl+D) и система продолжает нормальную загрузку. После добавления сбойного диска обратно в массив и окончания ребилда, пробую снова перезагрузить сервер и спотыкаюсь о ту же ошибку.
После перепроверки всех настроек, пересборки initramfs я решил сравнить вывод mdadm --detail --scan и соответствующих секций в /etc/mdadm/mdadm.conf. И вот тут нашлось различие:
Различие в значении параметров
После всех манипуляция перезагрузка прошла без проблем.
Недостаток этого способа в том, что не всегда удается надолго вернуть в строй диск подобным способом. Более надежным будет отключить питание от диска и затем подключить его обратно. Поскольку у того сервера нет hot-swap корзины и была возможность отключить сервер, то я выключил и включил сервер (просто перезагрузить или нажать reset может быть недостаточно).
Однако после меню grub'а не последовала загрузка системы, а вместо этого меню ждала ошибка вида
VolGroup00/swap not found. Через несколько секунд вывалилось приглашение initramfs и появилась возможность посмотреть причину сбоя.Поскольку VolGroup00/swap - логический том поверх RAID1В /proc/mdstat не было ни одного массива (на сервере их два: md0 и md1). Смотрю в
/etc/mdadm/mdadm.conf - нужные массивы на месте. Пробую запустить их вручную:initramfs> mdadm -A /dev/md0 initramfs> mdadm -A /dev/md1
После этого нужные массивы появились в
/proc/mdstat. Последним штрихом была активация томов LVM2initramfs> vgchange -ay
Далее выхожу из initramfs (Ctrl+D) и система продолжает нормальную загрузку. После добавления сбойного диска обратно в массив и окончания ребилда, пробую снова перезагрузить сервер и спотыкаюсь о ту же ошибку.
После перепроверки всех настроек, пересборки initramfs я решил сравнить вывод mdadm --detail --scan и соответствующих секций в /etc/mdadm/mdadm.conf. И вот тут нашлось различие:
# mdadm --detail --scan ARRAY /dev/md0 metadata=1.2 name=finnix:0 UUID=d5824c5a:ecf39d9a:89c3b877:ec43e0c0 ARRAY /dev/md1 metadata=1.2 name=finnix:1 UUID=4c287c75:edef1139:07ca6e74:b0fcb0e6 # grep ^ARRAY /etc/mdadm/mdadm.conf ARRAY /dev/md0 metadata=1.2 name=0 UUID=d5824c5a:ecf39d9a:89c3b877:ec43e0c0 ARRAY /dev/md1 metadata=1.2 name=1 UUID=4c287c75:edef1139:07ca6e74:b0fcb0e6
Различие в значении параметров
name=. Заменяю описание актуальным и пересобираю initramfs.# sed -i -e '/^ARRAY/d' /etc/mdadm/mdadm.conf # mdadm --detail --scan >> /etc/mdadm/mdadm.conf # update-initramfs -u
После всех манипуляция перезагрузка прошла без проблем.
22 января 2013
Wine 1.5.22 для Debian Squeeze/Wheezy
Собрал пакеты для свежей версии Wine 1.5.22. Анонс новой версии тут. Пакеты собраны для Debian Squeeze (i386, amd64) и Debian Wheezy (пока только i386). Взять можно в моем репозитарии.
В планах попробовать собрать multiarch для Wheezy, мне уже подкинули пару полезных ссылок, но пока не хватает свободного времени для этого.
В планах попробовать собрать multiarch для Wheezy, мне уже подкинули пару полезных ссылок, но пока не хватает свободного времени для этого.
18 января 2013
Настройка планировщика ввода/вывода для дисков с поддержкой NCQ
Появление NCQ в SATA II дисках дало возможность перенести упорядочивание очереди запросов к жесткому диску на плечи самого диска. Сегодня мне довелось тестировать работу базы данных на программном RAID-0 и я решил попробовать NCQ для этой задачи. Чтобы исключить влияние планировщика Linux (сейчас по-умолчанию им является CFQ) я включаю планировщик noop (на самом деле noop не занимается переупорядочиванием запросов и служит для того, чтобы выключить планирование ввода/вывода для конкретного блочного устройства) для всех дисков, которые поддерживают управление очередью запросов.
Руками это можно сделать записав
Один из способов решить проблему - задать
Из скрипта видно, что noop включается не для всех блочных устройств, а только для тех, у которых queue depth > 1. Это связано с тем, что для правильной планирования очереди запросов на аппаратном уровне недостаточно иметь только SATA II жесткий диск. Еще нужна поддержка NCQ в SATA контроллере и операционной системе хоста.
Осталось прописать вызов
UPDATE: Альтернативное решение с использованием UDEV описано тут.
Руками это можно сделать записав
noop в /sys/block/sda/queue/scheduler, но проблема в том, что в тестовый сервер собран на базе простого десктопного железа но с дополнительными SATA контроллерами на шине PCI-E x1. Системный диск и вовсе IDE.Один из способов решить проблему - задать
elevator=noop в параметрах ядра, но тогда придется руками найти системный жесткий диск и вернуть ему cfq в качестве планировщика. Но мне больше нравится идея оставить cfq по-умолчанию, а для жестких дисков с NCQ включить noop в из скрипта при загрузке системы.
$ cat /root/bin/noop4ncq.sh
#!/bin/bash
for _blkdev in `ls -1d /sys/block/*`
do
# Check if block device has support for NOOP IO scheduler
if [ -e "$_blkdev/queue/scheduler" ]; then
if `grep -q noop "$_blkdev/queue/scheduler"`; then
if [ ! -e "$_blkdev/device/queue_depth" ]; then
continue
fi
if [ `cat "$_blkdev/device/queue_depth"` -gt 1 ]; then
echo -n "Selecting NOOP I/O scheduler for $_blkdev: "
echo noop >"$_blkdev/queue/scheduler" 2>/dev/null && echo OK || echo FAIL
else
continue
fi
else
continue
fi
fi
done
Из скрипта видно, что noop включается не для всех блочных устройств, а только для тех, у которых queue depth > 1. Это связано с тем, что для правильной планирования очереди запросов на аппаратном уровне недостаточно иметь только SATA II жесткий диск. Еще нужна поддержка NCQ в SATA контроллере и операционной системе хоста.
Осталось прописать вызов
/root/bin/noop4ncq.sh в /etc/rc.local и все.UPDATE: Альтернативное решение с использованием UDEV описано тут.
14 января 2013
Wine 1.5.21 для Debian Squeeze/Wheezy
С горем пополам залил свежий билд Wine 1.5.21 в свой репозитарий. Для squeeze есть сборка для i386/amd64. Для wheezy только i386 (из-за перехода на multiarch и отсутствия свободного времени мне пока не удалось осилить amd64). Анонс версии 1.5.21.
08 января 2013
Debian preseed
Пост из разряда смотрю в книгу, а вижу фигу.
Пол-часа перечитываю документацию к debian unattended install, но не могу понять почему она не стартует. После N-го прочтения доки таки рассмотрел строку "When the graphical installer menu appears, press ESC", а я пытался жать Tab и редактировать параметры.
Чтобы не забыть
Пол-часа перечитываю документацию к debian unattended install, но не могу понять почему она не стартует. После N-го прочтения доки таки рассмотрел строку "When the graphical installer menu appears, press ESC", а я пытался жать Tab и редактировать параметры.
Чтобы не забыть
- Нажать Esc (должно пропасть графическое меню и появиться приглашение boot:);
- Вбить auto url=http://1.2.3.4/path/to/preseed.cfg;
- Давить Enter и идти пить чай.
Подписаться на:
Сообщения (Atom)