Рубрика: linux

Изменение пароля postamster в iReadMail

Заходим на сервер и генерируем новый пароль.

doveadm pw -s ‘ssha512’ -p ‘new_password’ # копируем вывод

mysql -u root -p
>use vmail;
>update mailbox set password=’doveadm вывод’ WHERE username=’postmaster@domain’;

Теперь мы можем войти с новым паролем.

Монтируем непонятный образ.

У нас есть образ, но непонятно как его монтировать.
Делам так:

$ /sbin/fdisk -lu disk.img
You must set cylinders.
You can do this from the extra functions menu.

Disk disk.img: 0 MB, 0 bytes
255 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes

Device Boot Start End Blocks Id System
disk.imgp1 * 63 96389 48163+ 83 Linux
disk.imgp2 96390 2056319 979965 82 Linux swap / Solaris
disk.imgp3 2056320 78140159 38041920 5 Extended
disk.imgp5 2056383 3052349 497983+ 83 Linux
disk.imgp6 3052413 10859939 3903763+ 83 Linux
disk.imgp7 10860003 68372639 28756318+ 83 Linux
disk.imgp8 68372703 76180229 3903763+ 83 Linux
disk.imgp9 76180293 78140159 979933+ 83 Linux

Нам нужен 7-ой раздел, начинается с сектора 10860003
Тогда наш след. шаг будет таким:

# losetup /dev/loop0 disk.img -o $((10860003 * 512))
# file -s /dev/loop0
/dev/loop0: Linux rev 1.0 ext3 filesystem data
# mount /dev/loop0 /mnt
[…]

Если на нам больше не нужен раздел, то:

# umount /mnt
# losetup -d /dev/loop0

Теперь мы можем постоянно использовать этот образ как часть файловой системы:

# mount -o loop,offset=$((10860003 * 512)) disk.img /mnt

Проблема с BMC (IPMI) на сервере Intel (CentOS)

Страница web-интерфейса BMC грузится и грузится, можно ждать хоть до посинения. IP BMC пингуется бодро.

Ситуация не совсем обычная, так как за 7 работы в хостинге вижу первый раз.

Можно сбросить BMC, без перезагрузки сервера.

# yum install ipmitool
Загружены модули: fastestmirror
Подготовка к установке
Loading mirror speeds from cached hostfile
* base: mirror.awanti.com
* extras: mirror.awanti.com
* openvz-kernel-rhel6: openvz.rinet.ru
* openvz-utils: openvz.rinet.ru
* updates: mirror.awanti.com
Разрешение зависимостей
—> Проверка сценария
—> Package ipmitool.x86_64 0:1.8.15-2.el6 will be для установки
—> Обработка зависимостей: gettext для пакета: ipmitool-1.8.15-2.el6.x86_64
—> Проверка сценария
—> Package gettext.x86_64 0:0.17-18.el6 will be для установки
—> Обработка зависимостей: libgomp.so.1(GOMP_1.0)(64bit) для пакета: gettext-0.17-18.el6.x86_64
—> Обработка зависимостей: cvs для пакета: gettext-0.17-18.el6.x86_64
—> Обработка зависимостей: libgomp.so.1()(64bit) для пакета: gettext-0.17-18.el6.x86_64
—> Проверка сценария
—> Package cvs.x86_64 0:1.11.23-16.el6 will be для установки
—> Package libgomp.x86_64 0:4.4.7-18.el6 will be для установки
—> Проверка зависимостей окончена

Зависимости разрешены

==================================================================================================================================================================================
Пакет Архитектура Версия Репозиторий Размер
==================================================================================================================================================================================
Установка:
ipmitool x86_64 1.8.15-2.el6 base 465 k
Установка зависимостей:
cvs x86_64 1.11.23-16.el6 base 712 k
gettext x86_64 0.17-18.el6 base 1.8 M
libgomp x86_64 4.4.7-18.el6 base 134 k

Результат операции
==================================================================================================================================================================================
Установить 4 пакет(а,ов)

Объем загрузки: 3.1 M
Будет установлено: 9.0 M
Продолжить? [y/N]: y
Загрузка пакетов:
(1/4): cvs-1.11.23-16.el6.x86_64.rpm | 712 kB 00:00
(2/4): gettext-0.17-18.el6.x86_64.rpm | 1.8 MB 00:00
(3/4): ipmitool-1.8.15-2.el6.x86_64.rpm | 465 kB 00:00
(4/4): libgomp-4.4.7-18.el6.x86_64.rpm | 134 kB 00:00
———————————————————————————————————————————————————————————-
Общий размер 7.7 MB/s | 3.1 MB 00:00
Запуск rpm_check_debug
Проверяем сценарий
Проверка сценария прошла успешно
Запускается сценарий
Установка : libgomp-4.4.7-18.el6.x86_64 1/4
Установка : cvs-1.11.23-16.el6.x86_64 2/4
Установка : gettext-0.17-18.el6.x86_64 3/4
Установка : ipmitool-1.8.15-2.el6.x86_64 4/4
Verifying : cvs-1.11.23-16.el6.x86_64 1/4
Verifying : ipmitool-1.8.15-2.el6.x86_64 2/4
Verifying : libgomp-4.4.7-18.el6.x86_64 3/4
Verifying : gettext-0.17-18.el6.x86_64 4/4

Установлено:
ipmitool.x86_64 0:1.8.15-2.el6

Зависимости установлены:
cvs.x86_64 0:1.11.23-16.el6 gettext.x86_64 0:0.17-18.el6 libgomp.x86_64 0:4.4.7-18.el6

Готово!

Если, при запуске ipmitool будет вот так:

# ipmitool
Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory

 

То надо под грузить модули:

# modprobe ipmi_devintf

# modprobe ipmi_si

После чего:

# ipmitool bmc reset cold
Sent cold reset command to MC

И мы имеем быстро загружающуюся страницу BMC.

mount: unknown filesystem type ‘LVM2_member’

Столкнулся с проблемой:

linux-2hcr:/etc # mount /dev/sda2 /mnt
mount: unknown filesystem type ‘crypto_LUKS’

Решается просто:

linux-2hcr:/etc # cryptsetup luksOpen /dev/sda2 crypted_sda2
Enter passphrase for /dev/sda2:

Вводим пароль и все.

Но тут возникла другая)))

linux-2hcr:/etc # mount /dev/mapper/crypted_sda2 /mnt
mount: unknown filesystem type ‘LVM2_member’

Решается так:

linux-2hcr:/etc # lvscan

ACTIVE ‘/dev/system/home’ [1,80 TiB] inherit
ACTIVE ‘/dev/system/root’ [20,00 GiB] inherit

linux-2hcr:/etc # mount /dev/system/home /mnt

Вот и всё.

Интересные варианты использования SSH.

1. Запускай команды быстро

Чтобы выполнить всего одну удаленную команду, совсем не обязательно подключаться к SSH, вводить команду, а затем отключаться. Можно сделать это сразу. Например, так можно посмотреть заполненность ФС удаленной машины:

$ ssh user@host df -h

А так — перезагрузить ее:

$ ssh user@host sudo reboot

2. Составляй списки команд и запускай их разом

Если у тебя есть целый список команд, которые следует выполнить, их можно записать в файл и скормить этот файл SSH:

$ ssh user@host "`cat file.txt`"

3. Редактируй удаленные файлы локальным редактором

Чтобы отредактировать файл на удаленной машине, не требуется заходить на нее и использовать консольный редактор. На самом деле файл можно открыть в твоем любимом текстовом редакторе на локальной машине (gvim зaменяем на свой редактор):

$ gvim scp://user@host//путь/к/файлу

4. Копируй содержимое удаленного файла в буфер обмена

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

$ ssh user@host cat /путь/к/файлу | xclip

А так можно скопировать вывод команды:

$ ssh user@host uname -a | xclip

5. Сравнивай удаленный и локальный файл без копирования

Похожий прием можно использовать для сравнения двух файлов:

$ ssh user@host cat /путь/к/удаленному/файлу | diff /путь/к/локальному/файлу -

6. Работай с удаленными файлaми с помощью локального файлового менеджера

Не всегда удобно работать с большим количеством файлов с помощью консольных команд или mc, запущенного на удаленной машине. Но всегда можно подключить любой каталог удаленной машины как сетевой диск. Для этого достаточно установить sshfs:

$ sudo apt-get install sshfs

Создать каталог для подключения «сетевого диcка»:

$ mkdir remote_files

И подключить его:

$ sshfs user@host:/home/user ~/remote_files/

Теперь все файлы удаленного каталога /home/user будут видны в каталoге ~/remote_files/ и с ними можно работать, как с обычными.

7. Используй tmux

Сложные действия на удаленнoй машине редко ограничиваются одной консолью. Обычно мы открываем сразу несколько SSH-соeдинений, в которых запускаем различные команды, копируем текст из одной в другую, одновременно следим за выполнением нескольких операций. Однако держать открытыми несколько сессий совсем не обязательно, хватит и одной, в которой запущен tmux.

Утилита tmux — еще одно детище команды OpenBSD. Она позволяет запустить внутри одной SSH-сессии неограниченное количество кoнсолей, с которыми можно работать одновременно, в том числе сразу с несколькими на одном экране. Но самое главное — tmux поддерживает функцию detach/attach, позволяющую отключиться от текущей сессии tmux, закрыть SSH-соединение, подключиться к машине уже с другого компа и возобновить сессию tmux со всеми открытыми консолями и их содержимым.

Tmux в режиме разделения экрана
Tmux в режиме разделения экрана

Tmux доступна в репозиториях почти всех популярных дистрибутивов. Устанавливать и запускать ее слeдует на удаленной машине, но перед тем как начать использовать, придется прочитать документацию (или шпаргалку).

8. Копируй ключи быстро

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

$ ssh-copy-id user@host

При этом не обязательно копировать основной ключ, с помощью флага -i можно указать любой другой:

$ ssh-copy-id -i ~/my_key.pub user@host
Копируем ключ
Копируем ключ

9. Создай постоянное соединение с машиной

Если в течение дня ты часто подключаешься к одной машине, в том числе на несколько минут или секунд (чтобы просто запустить одну команду, например), есть смысл создать с ней постоянное соединение. Твой комп будет держать соединение открытым и использовать его для каждого подключения к машине. Это намного быстрее и экономичнее с точки зрения трафика и нагрузки на процессор.

Добавь следующие строки в ~/.ssh/config:

Host host
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster no

А затем создай соединение:

$ ssh -MNf user@host

10. Используй специальную версию SSH для неустойчивых соединeний

SSH не рассчитан на работу в условиях неустойчивого интернет-соединения, поэтому не умеет адекватно реагировать на потерю пакетов. Фактически, если соединение оборвется, SSH просто повиснет и будет находиться в таком состоянии, пока не закончится тайм-аут. До тех пор пока ты используешь надежное оптоволоконное соединение, это не проблема, но как только попадаешь в условия жесткой российской глубинки, где даже 3G может быть экзотикой, SSH превратится в невыносимо тупой инструмент.

Решить проблему можно с помощью autossh. Это обертка над SSH, которая умеет проверять жизнеспособность канала. Autossh создает дополнительное SSH-соединение с сервером и непрерывно шлет по нему heartbeat-пакеты. Если пакет не доходит до адpесата, autossh считает канал мертвым и перезапускает SSH-соединение.

Пользоваться очень просто:

$ sudo apt-get install autossh
$ autossh -M5000 user@host

По умолчанию тайм-аут между посылкой heartbeat-пакетов составляет десять минут, что слишком много. Для уменьшения тайм-аута пропиши его в переменную AUTOSSH_POLL перед запуском autossh (значение в секундах):

$ export AUTOSSH_POLL=10

Есть вариант еще лучше: mosh. Это специально оптимизированная для неустойчивых и низкоскоростных соединений версия SSH, работающая по протокoлу UDP. Mosh позволяет получить быстрое и отзывчивое соединение даже на очень медленнoм канале и из коробки умеет поднимать упавшее соединение и даже пeреключать клиента с одного IP на другой (при переключении с Wi-Fi-соединения на мобильное, нaпример) без перезапуска сессии.

У mosh всего один недостаток: он требует установки не только на локальную машину, но и на удаленную. Зато после этого ничего настраивать не нужно, достаточно использовать команду mosh вместо ssh. Более того, mosh уже встроен в SSH-клиенты JuiceSSH для Android и Blink для iOS.

11. Открывай порт SSH, только когда он нужен

Открытый SSH-порт твоего сервера рано или поздно станет целью многочислeнных ботов, которые будут бесконечно к нему подключаться и пытаться подобрать пароль, даже если ты отключил аутентификацию по паролю. Бороться с ботами можно двумя способами: либо установить fail2ban и автоматически отшибать особо надоедливых, либо открывать порт только тогда, когда это необходимо.

Если ты подключаешься к серверу нечасто, второй вариант практически идеален. Идея в том, что на сервер устанавливается специальный демон, который слушает указaнные порты и в случае соединения с этими портами в определенном порядке откроет 22-й порт. Другой порядок соединения будет закрывать порт.

Техника называется port knoking и реализуется с помощью демона knockd. Устанoви демон на сервер:

$ sudo apt-get install knockd

И настрой его, добавив в файл /etc/knockd.conf следующие строки:

[options]
    logfile = /var/log/knockd.log
[openSSH]
    sequence = 3000,4000,5000
    seq_timeout = 5
    command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp --dport 22 -j ACCEPT
    tcpflags = syn
[closeSSH]
    sequence = 5000,4000,3000
    seq_timeout = 5
    command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp --dport 22 -j ACCEPT
    tcpflags = syn

Перезапусти демон:

$ sudo /etc/init.d/knockd restart

Теперь используй следующую команду для подключения к серверу:

$ knock <host> 3000 4000 5000 && ssh user@host && knock <host> 5000 4000 3000

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

Стучимся в порты
Стучимся в порты

12. Защитись от брутфорса

Установка fail2ban — второй метод защиты от ботов, подбирающих пароли. Это демон, который непрерывно мониторит логи различных сетевых служб (Apache, vsftpd, SSH…) на предмет слишком частых попыток аутентификации и блокирует IP-адреса тех, кто делает это наиболее активно (три неудачные попытки подряд — в бан на десять минут).

Красота fail2ban в том, что он не требует настройки и начинает работать сразу после установки. Все, что надо сделать, — это инсталлировaть пакет:

$ sudo apt-get install fail2ban

13. Измерь скорость соединения

С помощью SSH легко измерить скорость соединения с машиной. Для этого можно использовать утилиту pv (pipe viewer). Она предназначена для измерения скорости передачи данных через пайпы (|). Объединив ее с SSH, можно получить достаточно точный бенчмарк скорости соединения:

$ yes | pv | ssh user@host "cat > /dev/null"
Измеряем скорость соединения
Измеряем скорость соединения

14. Используй SSH как SOCKS-прокси

SSH очень легко превратить в SOCKS-прокси, который будет пересылать твои данные между локальной машиной и SSH-сервером через зашифрованный канал. Все, что для этого нужно сделать, — запустить SSH-клиент с флагом -D, после которого указать номер SOCKS-порта (флаг -C включает принудительнoе сжатие трафика):

$ ssh -D 9999 -C user@host

15. Обходи файрволы

В дополнение к SOCKS-прокси в SSH есть функция прозрачного «проброса портов». Работает она так: на локальной машине открывается порт. Трафик, переданный на этот порт, прозрачно проксируется через удаленную машину и направляется на указанный хост:порт. Для примера: дoпустим, твой начальник заблокировал доступ к xakep.ru на уровне корпоративного файpвола. Но ты можешь обойти это ограничение, используя удаленный SSH-сервeр:

$ ssh -L8080:xakep.ru:80 user@host

Теперь все подключения к localhost:8080 будут перенаправляться на xakep.ru:80.

16. Соxрани настройки подключения к хостам

Если ты работаешь с большим количеством хостов под именем разных юзеров с использованием разных ключей, то ты существенно упростишь свою жизнь, если создашь для этих хостов шорткаты. Например, следующие строки ~/.ssh/config описывают два хоста:

  • example.com, SSH-сервер на котором «висит» на порту 2222, а в качестве ключа используется ~/my_key.pem;
  • 192.168.33.10, с SSH-сервером на стандартном порту, юзeром root и принудительным отключением аутентификации с помощью ключа.
    Host server1
      HostName example.com
      Port 2222
      User user
      IdentityFile ~/my_key.pem
    
    Host server2
      HostName 192.168.33.10
      User root
      PubkeyAuthentication no

Теперь, чтобы подключиться к example.com, нет нужды набирать длинную команду

$ ssh -i ~/my_key.pem user@example.com -p 2222

Можно использовать шорткат:

$ ssh server1

17. Подключайся к удаленной машине через другую машину

Допустим, у тебя есть доступ к host1, но нет доступа к host2 (он за файрволом, например), но доступ к host2 есть у host1. Тогда подключиться к host2 с твоей машины можно так:

$ ssh -t user@host1 ssh user@host2

18. Копируй файлы с удaленной машины на другую машину через свою

Примерно такая же история. Предположим, файл необходимо скопировать с host1 на host2, но они не могут друг с другом общаться. В этом случае файл можно скопировать через локальную машину:

$ ssh root@host1 "cd /кoпируемый/каталог/ && tar -cf - ." | ssh root@host2 "cd /куда/копировать/ && tar -xf -"

19. Запускай графический софт

Linux/BSD используют клиент-серверную оконную систему X Window System, изначально разработанную для запуска графических приложений на мейнфрейме с выводом картинки на экран тонкого клиента. Поэтому она из коробки позволяет запускать приложения на удаленной машине так, чтобы их вывод был перенаправлен на локальную. А SSH умеет форвардить протокол X, так что его можно использовать для запуска не только консольных, но графических приложений:

$ ssh -X user@host firefox

20. Слушай музыку с удаленной машины

Немного надуманный, но в целом довольно интересный трюк:

$ ssh user@host "cat /home/user/music/*.mp3" | mpg123 -

Своего рода интернет-радио для одного.

Пара консольных команд

Посмотреть свой внешний ip из консоли:

# curl ifconfig.co

Посмотреть прогноз погоды на 3 дня:

# curl  wttr.in/Siant-Petersburg
Weather for City: siant-petersburg

\   /     Clear
.-.      10 °C
― (   ) ―   ↓ 0 km/h
`-’      10 km
/   \     0.0 mm
Собственно вывод погоды более детальный и красивый.

Так же про фазу луны можно узнать:

# curl -4 wttr.in/Moon

 

——.
. .   `—.
.       . `-.
@@@@@      `-.
@@@@@@@   .    \
@@@@@@@       . \.
@@@@@@@   O      \
@@@@@@@@@@      \
@@@@@@@@@@@@|
@@@@@@@@@@  @@  \  New Moon +
@@@@@@@ @@@    |  7 11:55:00
.  @@   . @@@@@@@  |  First Quarter —
@@@   @@@@@@  |  0 14:50:58
. @@@@   @@@  o  /
@@   .                    |
O    .     o   .            /
.    .                     /
.      .   .-. /’
`-‘             /
o    O   .   .-‘
.    .-‘
.      .—‘
——‘

 

Оригинал красивее и цветной.

Zimbra. Установка сертификата Comodo SSl.

Используем командную строку

  • 1. Получаем от Comodo файлы в формате crt, либо в zip архиве. Или качаем их по следующей ссылке —https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/620/1/
  • 2. Помещаем их на Zimbra сервер. Должны быть вот такие файлы:
    • AddTrustExternalCARoot.crt
    • COMODORSAAddTrustCA.crt
    • COMODORSADomainValidationSecureServerCA.crt
    • my_domain_com.crt files
  • 3. Объединяем CA сертификаты в один файл.
 cat AddTrustExternalCARoot.crt COMODORSAAddTrustCA.crt COMODORSADomainValidationSecureServerCA.crt > /tmp/commercial_ca.crt
  • 4. Копируем SSL сертификат в /tmp/commercial.crt.
 cp my_domain_com.crt /tmp/commercial.crt
  • 5. Проверяем полученные сертификаты на соответствие:
/opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key /tmp/commercial.crt /tmp/commercial_ca.crt 
** Verifying /tmp/commercial.crt against /opt/zimbra/ssl/zimbra/commercial/commercial.key
Certificate (/tmp/commercial.crt) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.
Valid Certificate: /tmp/commercial.crt: OK
  • 6. Прописываем сертификат в систему.
/opt/zimbra/bin/zmcertmgr deploycrt comm /tmp/commercial.crt /tmp/commercial_ca.crt 
** Verifying /tmp/commercial.crt against /opt/zimbra/ssl/zimbra/commercial/commercial.key
Certificate (/tmp/commercial.crt) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.
Valid Certificate: /tmp/commercial.crt: OK
** Copying /tmp/commercial.crt to /opt/zimbra/ssl/zimbra/commercial/commercial.crt
** Appending ca chain /tmp/commercial_ca.crt to /opt/zimbra/ssl/zimbra/commercial/commercial.crt
** Importing certificate /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt to CACERTS as zcs-user-commercial_ca...done.
** NOTE: mailboxd must be restarted in order to use the imported certificate.
** Saving server config key zimbraSSLCertificate...done.
** Saving server config key zimbraSSLPrivateKey...done.
** Installing mta certificate and key...done.
** Installing slapd certificate and key...done.
** Installing proxy certificate and key...done.
** Creating pkcs12 file /opt/zimbra/ssl/zimbra/jetty.pkcs12...done.
** Creating keystore file /opt/zimbra/mailboxd/etc/keystore...done.
** Installing CA to /opt/zimbra/conf/ca...done.
  • 7. Перезапускаем сервис.
zmcontrol restart

Использование веб-интерфейса (Admin Console)

Получаем от Comodo следующие файлы:

    • AddTrustExternalCARoot.crt
    • COMODORSAAddTrustCA.crt
    • COMODORSADomainValidationSecureServerCA.crt
    • my_domain_com.crt files

Переходим по пунктам Home > Configure > Certificates и нажимаем на Install Certificate

Zimbra-ssl-adminconsole-001.png

Выбираем сервер для установки SSL сертификата:

Zimbra-ssl-adminconsole-002.png

Выбираем Install the commercial signed certificate

Zimbra-ssl-adminconsole-007.png

Нажимаем кнопку Next

Zimbra-ssl-adminconsole-008.png

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

Zimbra-ssl-adminconsole-009.png

Выбираем кнопку Install и SSL сертификат будет установлен

Zimbra-ssl-adminconsole-010.png

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

zmcontrol restart

Теперь возвращаемся в веб-интерфейс смотрим на установленный сертификат

Zimbra-ssl-adminconsole-011.png

Установка Zimbra Open Source Edition

Рассмотрим установку Zimbra Open Source Edition 8 на CentOS 6.5 x64


Установим CentOS 6.5 как описано в статье:

Сделаем начальные настройки над ОС
Установим текстовый редактор nano и файловый менеджер mc

yum install nano mc -y

Обновил систему(обязательное действие перед установкой Зимбры)

yum update -y

Настроим статический интерфейс отредактировав файл ifcfg-eth0

nano /etc/sysconfig/network-script/ifcfg-eth0

Добавим или отредактируем следующие строки

ONBOOT=yes # Инициализировать интерфейс при загрузке
BOOTPROTO=none # DHCP или NONE(статический)
IPADDR=10.1.1.5
NETMASK=255.255.255.0
GATEWAY=10.1.1.1
DNS1=10.1.1.2
DNS2=10.1.1.3
IPV6INIT=no # отключаем инициализацию IPv6

Потребуется обязательно отключить SELinux
Отредактируем файл /etc/selinux/config

nano /etc/selinux/config

Приведем его к следующему виду

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing — SELinux security policy is enforced.
#     permissive — SELinux prints warnings instead of enforcing.
#     disabled — No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted — Targeted processes are protected,
#     mls — Multi Level Security protection.
SELINUXTYPE=targeted

Если у вас уже установлен nc (он же netcat) удаляем его.

yum remove nc

И заместо него ставим

yum install nc which

Установим sysstat

yum install sysstat

Изменим настройки сети

nano /etc/sysconfig/network

Приведем к виду

NETWORKING=yes
NETWORKING_IPV6=no
IPV6INIT=no
HOSTNAME=zimbra.nikmc.ru #Свое имя сервера

Далее исправим hosts

nano /etc/hosts

Приведем его к виду

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
10.1.1.5 zimbra.nikmc.ru

Не забываем заменить zimbra.nikmc.ru на свое имя сервера и IP 10.1.1.5 на свой!

Далее отключаем поддержку IPv6
Допишем строку отключения в файл /etc/sysctl.conf

nano /etc/sysctl.conf

И добавим строку

########disable ipv6#####
net.ipv6.conf.all.disable_ipv6 = 1

Применим изменения выполнив команду

sysctl -p

Отключим службы

chkconfig sendmail off
chkconfig ip6tables off
chkconfig iptables off
chkconfig postfix off

Перезагрузимся

reboot

Выполним команду

lsmod | grep ipv6

Должна вернуть 1 строку с похожими значениями, если отличается повторяем шаг отключения IPv6

ipv6                  322442  180

Если на предыдущем шаге все получилось, тогда идем дальше.
Проверим не занят ли у нас 25 порт

netstat -na

Проверим имя сервера

hostname

Должно вернуть

zimbra.nikmc.ru

На этом подготовка сервера для установки Zimbr’ы закончена!

Установка  Zimbra Collaboration 8 Open Source Edition
Скачаем дистрибутив c официального сайта.
Загрузим на сервер в директорию /tmp

Распакуем

cd /tmp
tar xvzf zcs-*.tgz

Произведем установку

cd zcs-*
./install.sh —platform-override

Установщик выполнит проверку требуемых пакетов и выдаст лицензионное соглашение.
Соглашаемся с лицензией

…………
Do you agree with the terms of the software license agreement? [N] y
…………

Далее выбираем пакеты Zimbr’ы, которые хотим установить

…………
Select the packages to install :
Install zimbra-ldap [Y]
Install zimbra-logger [Y]
Install zimbra-mta [Y]
Install zimbra-snmp [Y]
Install zimbra-store [Y]
Install zimbra-apache [Y]
Install zimbra-spell [Y]
Install zimbra-memcached [N]
Install zimbra-proxy [N]
Checking required space for zimbra-core
checking space for zimbra-store
…………

Получаем предупреждение о несоответствии платформы, на которую производится установка. На  все остальные вопросы отвечаем утвердительно:

…………
Install anyway [N]Y
The system will be modified. Continue? [N]Y
…………

Меняем доменное имя на то, которое нам надо:

…………
Change domain name? [Yes]Y
Create domain: <nikmc.ru>
…………

Система предупредит что не находит MX записи на DNS сервере. Проигнорируем и продолжим.

После установки мы попадем в меню первоначальной настройки. Здесь настройки менять не обязательно, за исключением создания пароля администратора.
Для этого сделаем следующие действия:

  • Нажмем 3 для перехода в меню zimbra-store.
  • В пункте 3 увидим имя учетки админина «admin@nikmc.ru».
  • Нажмем 4 для создания пароля администратора.
  • Нажмем R для выхода в предыдущее меню.
  • Для применения конфигурации нажмем A.

 

*** CONFIGURATION COMPLETE — press ‘a’ to apply
Select from menu, or press ‘a’ to apply config (? — help) a

Zimbra спросит сохранить данные в файл, мы согласимся.

Save configuration data to a file? [Yes]Yes
Save config in file: [/opt/zimbra/config.xxxxx]
Saving config in /opt/zimbra/config.xxxx…done.
The system will be modified — continue? [No]Yes

По окончанию установщик предложит оповестить разработчика о успешной установке.

You have the option of notifying Zimbra of your installation.
This helps us to track the uptake of the Zimbra Collaboration Suite.
The only information that will be transmitted is:
The VERSION of zcs installed (7.1.1_GA_3196_CentOS5)
The ADMIN EMAIL ADDRESS created (admin@yourdomain.com)
Notify Zimbra of your installation? [Yes] No
…………
Configuration complete — press return to exit
…………

Configuration complete!

Все сервер готов.
Перейдем по адресу https://10.1.1.5 для пользователей или https://10.1.1.5:7071 для панели администрирования.

Настройка чтобы был доступ и по https и http.

Сменим текущего пользователя на zimbra:

su zimbra

Доступность панели можно настроить с помощью утилиты zmtlsctl у нее есть несколько режимов. Нам же нужна доступность как по http так и по https, для этого используется параметр both:

zmtlsctl both

Теперь надо перезапустить демон mailboxd:

zmmailboxdctl stop
zmmailboxdctl start

Теперь Zimbra доступна как по http так и по https.

Проблема с кодировкой при отправке с sms-сервера (hybertone goip) на почту.

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

Решение:

в файлe ./mail.php в функции send_mail либо добавить переменную с указанием кодировки, либо в header

$header .= «Content-Type:text/html;charset=UTF-8\r\n»;

Другое не ставьте — надо будет перекодировать, шлюз передаёт в юникоде

asterisk + goip + sms server

В данной статье рассмотрим установку и настройку SMS сервера для популярного VoIP шлюза GoIP. Наша задача — получить надежный инструмент для отправки, хранения и получения SMS сообщений с имеющихся SIM карт, а также автоматически проверять баланс денежных средств с уведомлением на e-mail.

Теоретически установка SMS сервера может быть осуществлена на любой дистрибутив Linux с предустановленными Apache и MySQL серверами, но логичнее будет выбрать сервер Asterisk, который мы используем в связке с GoIP шлюзом. Практически все необходимые компоненты там уже установлены, поэтому приступим.

Для начала скачаем сам дистрибутив, пошарив в просторах интернета или на сайте Hyberton. Там же можно скачать и обновление для VoIP шлюза. На момент написания статьи, последней доступной версией была v1.19.3. Копируем адрес ссылки с сайта и качаем его:

root @ localhost #cd tmp

Starting GoIP SMS System install

Configure httpd config:

Enter the httpd config file PATH: (default: /etc/httpd/conf.d)

Default press Enter

Import GoIP Databases

Enter the Mysql root password if the password exist:

********

Enter your Mysql PATH: (default: /usr/bin/mysql)

Default press Enter

Copying file to /usr/local/goip

goipcron start

Install finish

Please restart your httpd

GoIP manager URL: http://your_ip/goip

Как видим, в процессе установки нам необходимо указать пути к MySQL и httpd (для стандартных просто нажимаем Enter) и ввести root-пароль подключения к MySQL. В конце установки может возникнуть ошибка  «./goipcron: error while loading shared libraries: libz.so.1: cannot open shared object file or directory». В таком случае необходимо установить недостающие библиотеки:

После установки пакетов запускаем goipcron:

В результате выполнения команды мы должны увидеть надпись goipcron start (если нет, система напишет, какие еще пакеты требуют установки).

Перезапустим наш web сервер:

переходим по адресу http://your_ip/goip, где видим страницу авторизации (рис.1).

Asterisk SMS сервер

Рис.1

Стандартный логин: root,  пароль: root , прописываем и попадаем в настройки (рис.2).

Asterisk SMS server GoIP

Рис.2

Кликаем на вкладку Provider Manage и добавляем записи (рис.3).

Настройка Provide Manage SMS сервер

Рис.3

Для удобства идентификации оператора связи в дальнейшем, в строке Provider мы ввели номер телефона, но это может быть любой набор букв и цифр, например Oper1 или MTS. Если у вас на шлюзе три карточки одного оператора и пять другого, тогда достаточно создать 2 значения Provider. Это как дополнительный фильтр при отправке SMS, когда перейдем к отправке все станет понятно. В строке International Tel Code можно добавить префикс к набору номера, у нас это + , вы можете добавить +38 например, все зависит от того в каком формате вы будете хранить номера. Далее переходим на вкладку GoIP Manage и на верхней панели жмем Add GoIP (рис.4).

Настройка GoIP Manage

Рис.4

Создадим первый аккаунт для GoIP шлюза. Придумаем ID и пароль, выберем один из созданных ранее Provider (операторов), который будет соответствовать одной из SIM карт, установленных на шлюзе. Добавим необходимое количество аккаунтов. Каждый аккаунт будет соответствовать одной регистрации (одной линии). Как вы уже поняли, в разных аккаунтах значение Provider (оператор) может повторяться. Можно поставить галку и получать SMS сообщения на e-mail, но для этого нужно настроить smtp сервер, об этом чуть позже.

Перейдем к настройке GoIP шлюза, для начала проверим наличие настроек подключения к SMS серверу (рис.5).

GoIP настройка SMS

Рис.5

Если таких настроек у вас нет, необходимо обновить прошивку (рис.6)

Обновление прошивки GoIP

Рис.6

После обновления должен появиться раздел с настройками SMS, в котором необходимо прописать IP адрес сервера (в нашем случае Asterisk) и, созданные ранее, ID и пароль для каждой линии CH1,CH2,CH3 и т.д., порт можно оставить стандартный (рис.7)

Настройка SMS сервера GoIP

Рис.7

На этом настройка шлюза закончена, возвращаемся к серверу. На вкладке GoIP Manage мы должны увидеть надпись LOGIN в каждой созданной строке — это означает что шлюз зарегистрировался. Обновить информацию можно кнопкой Refresh (рис.8).

Регистрация GoIP на SMS сервере

Рис.8

Связь между сервером и шлюзом настроена, пробежимся по остальным настройкам. В разделе System Manage у нас имеется:

System Manage, общие настройки;

Mail Report, настройка отправки почты;

GoIP CDR,  статистика звонков;

Provider Manage, добавление идентификаторов линий;

GoIP Group, создание групп для аккаунтов;

GoIP Manage, добавление аккаунтов для связи с VoIP шлюзом.

Пришло время настроить Mail Report, чтобы сервер мог слать нам письма. (рис.9)

Отправка почты SMS сервер GoIP

Рис.9

Как видим, для отправки необходимо использовать SMTP сервер, можете настроить свой или указать существующий аккаунт на одном из почтовых серверов, например yandex. Также есть возможность мониторить регистрацию шлюза. Если в течение заданного промежутка времени система находится в состояния LOGOUT, приходит уведомление на почту.

В разделе Send Message первая вкладка Send Directly позволяет нам отправлять сообщения. (рис.10)

Отправка SMS GoIP сервер

Рис.10

Сообщение можно отправить мгновенно или в заданное время:

— определенному номеру;

— нескольким номерам;

— всем существующим контактам (раздел Receiver Manage);

— группам (настройка в разделе Crowd and Group Manage);

— загрузить файл со списком номеров, выгруженный из вашей CRM или составленный вручную (можно скачать шаблон для файла — Example, рис.11).

Загрузка номеров в SMS сервер

Рис.11

Запланированные задания по отправке можно редактировать или отменить на вкладке Examine Tasks. Вкладка Inbox хранит все входящие сообщения. Остальные вкладки интуитивно понятны, поэтому подробно мы их описывать не будем. Ну и напоследок, настроим автоматическую проверку баланса денежных средств на SIM картах с уведомлением на электронную почту. Переходим в раздел Auto balance and recharge и добавляем план проверки (рис.12)

Автоматическая проверка баланса SIM карт VoIP шлюза

Рис.12

Очень важно в настройках правильно указать системе, как вычленить сумму баланса из ответа USSD. Для начала просто проверьте какой ответ вам приходит от оператора на запрос о балансе. Допустим это фраза: «На вашем счету 100.00 usd , ваш тарифный план Максимальный». Ваша задача скопировать все, что находится перед суммой 100 (включая пробел) и вставить в поле Exact Ballance Prefix (USSD), остальную часть после 100 вставить в поле String for Owe (USSD). Таким образом сервер каждый раз при проверке будет извлекать сумму баланса, сравнивать её с полем Low Balance Trigger и при превышении порога отсылать уведомление на указанный e-mail. Историю отправки запросов можно посмотреть в разделе Send Message вкладка USSD Records.

— See more at: http://ctech.com.ua/asterisk-sms-server/#sthash.aLeFb4sn.dpuf

FreePBX, русский язык голосовых сообщений.

В этой статье мы поговорим о том как изменить язык веб интерфейса FreePBX Distro на русский, а так же о том как заставить говорить по русски наш Asterisk.

Итак начнём с простого, с веб интерфейса,  сначала нужно включить возможность изменения языка, делается это через меню Общие настройки (Settings) в разделе Дополнительные настройки (Advanced Settings).

Отвечает за это параметр Show Language setting в блоке Поведение вэб-интерфейса (GUI Behavior)

freepbx distro web

После того как мы задаём для этого параметра True надо сохранить изменение нажав на зелёный галочку, а затем нажать красную кнопку Применить изменения (Apply Config). После принятия изменения в веб интерфейсе в правом верхнем углу появляется меню с выбором языка. Так что на этом пункте мы закончим.

Переходим к русскому языку. Как Вы наверное уже знаете астериск разговаривает с нами используя набор заранее записанных фраз, по умолчанию при установке системы с дистрибутива присутствует только английский язык. Для загрузки русского языка нам понадобится ssh (терминал, коммандная строка итп), а так же у нашего астериска должен быть выход в интернет.

Итак, после того как мы залогинились в терминал, набираем последовательно сначала

mkdir -p /var/lib/asterisk/sounds/ru/

затем

wget -q --no-check-certificate https://github.com/pbxware/asterisk-sounds/tarball/master -O- \ | tar xzv --strip-components 1 -C /var/lib/asterisk/sounds/ru/

загрузятся основные фразы, и затем

wget -q --no-check-certificate https://github.com/pbxware/asterisk-sounds-additional/tarball/master -O- \ | tar xzv --strip-components 1 -C /var/lib/asterisk/sounds/ru/

в этот момент загрузится расширенный пакет фраз, всего их более 700, что покрывает практически все действия с астериском.

Хотелось бы обратить внимание, что русская озвучка предоставлена порталом IVR VOICE где Вы по очень демократичным расценкам можете заказать любые другие фразы для астериска, ну и конечно записать приветствие с названием своей компании. Ещё раз повторю, цены приятно удивляют, рекомендую.

Так, файлы мы загрузили, но астериск по прежнему не хочет говорит по русски, что ж не так? )

Осталась самая малость, задать основной язык. Делается это через меню Общие настройки(Settings) в разделеУстановки Asterisk для SIP(Asterisk SIP Settings).

В строке Язык (Language) что находится в блоке Дополнительные основные настройки (Advanced General Settings)надо прописать ru.

freepbx distro sip language

 

После внесения изменения жмём кнопку Submit Changes и красную кнопку Применить изменения (Apply Config). Всё, проверяем, наш астериск должен говорить по русски. Самый просто способ набрать *65.

Мониторинг HDD с помощью smartctl

SMART — аббревиатура означает Self Monitoring Analysing and Reporting Technology. На текущий момент поддержка SMART заявлена многими производителями жестких дисков. С помощью этой технологии можно выявить следующие проблемы:

  • Проблемы блока магнитных головок
    Физические повреждения, логические ошибки
    Проблемы привода, системы позиционирования
    Проблемы электронной части (платы)
    Превышение температуры

Установка не тривиальна:

sudo apt-get smartmontools

На выходе получаем 2 приложения: smartctl и smartd.

  • smartctl (Control and Monitor Utility for SMART Disks) — поддерживает ATA, IDE, SATA и SCSI-3 диски.
    smartd — является демоном smartclt, пытаясь включить SMART monitoring на ATA устройствах (smartctl -s on) опрашивая устройства каждые 30 минут (по умолчанию),  при этом логируя ошибки дисков и изменения атрибутов в файл /var/log/syslog. Smartd можно сконфигурировать на отсылку предупреждений по e’mail в случае обнаружении проблемы.

Чтобы понять, есть ли поддержка SMART жестким диском выполняем:

smartctl -i /dev/hda

Если выключен, то Включить SMART, можно так:

smartctl -s on /dev/hda

Для получения полной информации о жестком диске выполняем:

smartctl --all /dev/hda

Получаем:

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda ES
Device Model:     ST3500630NS
Serial Number:    9QG2ML1C
Firmware Version: 3.AEG
User Capacity:    500 107 862 016 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   7
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Mon Oct 29 10:42:35 2012 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
MART overall-health self-assessment test result: PASSED

/*часть вывода опущено*/

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   104   093   006    Pre-fail  Always       -       6515114
  3 Spin_Up_Time            0x0003   095   092   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   099   099   020    Old_age   Always       -       1848
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   070   047   030    Pre-fail  Always       -       335760201000
  9 Power_On_Hours          0x0032   079   079   000    Old_age   Always       -       18756
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   098   098   020    Old_age   Always       -       2636
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   050   036   045    Old_age   Always   In_the_past 50 (Lifetime Min/Max 23/51)
194 Temperature_Celsius     0x0022   050   064   000    Old_age   Always       -       50 (0 1 0 0)
195 Hardware_ECC_Recovered  0x001a   067   058   000    Old_age   Always       -       26848298
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       1
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       1
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0000   100   253   000    Old_age   Offline      -       0
202 Data_Address_Mark_Errs  0x0032   100   253   000    Old_age   Always       -       0

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

Детальный вывод smartctl:

RAW_VALUE — Каждый атрибут имеет raw value 6-ти байтовое значение.

THRESH — минимальное возможное значение атрибута, при котором гарантируется безотказная работа накопителя.

VALUE — одно байтовое значение «нормализованное», изменяется в диапазоне от 0 до 255 (задается производителем). Маленькое значение говорит о быстрой деградации диска или о возможном скором сбое. т.е. чем выше значение тем лучше.
Например в случае параметра «Airflow_Temperature_Cel» RAW_VALUE хранит температуру диска (50), а так же минимальную и максимальную температуру (Lifetime Min/Max 23/51), при которой сохраняется работоспособность диска. Firmware диска конвертирует RAW_VALUE в normalized value (VALUE) в диапазоне от 1 до 253. Если нормализованное значение (VALUE) меньше или равно THRESH, Атрибут считается failed и отображается в столбце WHEN_FAILED, как в текущем случае  сбой был по атрибуту Airflow_Temperature_Cel.

WORST — минимальное нормализованное значение, которое достигалось с момента включения SMART на диске.

TYPE — существует 2 типа атрибутов:

  • Pre-fail -критичные атрибуты
  • Old_age — некритичные атрибуты (величина VALUE отведенная производителем до наработки на отказ).

Если VALUE стало меньше THRESH в случае Pre-fail атрибута — существует большая вероятность, что диск вылетит в ближайшие 24 часа.
Если VALUE стало меньше THRESH в случае Old_age атрибута — существует большая вероятность, что диск вылетит т.к. выработан ресурс, но когда это произойдет не известно.

Критичные атрибуты:

  • Raw_Read_Error_Rate — частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска.
  • Spin_Up_Time — время раскрутки пакета дисков из состояния покоя до рабочей скорости. При расчете VALUE значения практическое время сравнивается с некоторой эталонной величиной, установленной на заводе. Не ухудшающееся немаксимальное значение при Spin Up Retry Count Value = max (Raw равном 0) не говорит ни о чем плохом. Отличие времени от эталонного может быть вызвано рядом причин, например просадка по вольтажу блока питания.
  • Spin_Retry_Count — число повторных попыток раскрутки дисков до рабочей скорости, в случае если первая попытка была неудачной. Ненулевое значение Raw (соответственно немаксимальное Value) свидетельствует о проблемах в механической части накопителя.
  • Seek_Error_Rate — частота ошибок при позиционировании блока головок. Высокое значение Raw свидетельствует о наличии проблем, которыми могут являться повреждение сервометок, чрезмерное термическое расширение дисков, механические проблемы в блоке позиционирования и др. Постоянное высокое значение Value говорит о том, что все хорошо.
  • Reallocated_Sector_Ct — число операций переназначения секторов. SMART в современных дисках способен произвести анализ сектора на стабильность работы «на лету» и в случае признания его сбойным, произвести его переназначение.

Некритичные атрибуты:

  • Start_Stop_Count — полное число запусков/остановов шпинделя. Гарантировано мотор диска способен перенести лишь определенное число включений/выключений. Это значение выбирается в качестве Treshold. Первые модели дисков со скоростью вращения 7200 оборотов/мин имели ненадежный двигатель, могли перенести лишь небольшое их число и быстро выходили из строя.
  • Power_On_Hours — число часов проведенных во включенном состоянии. В качестве порогового значения для него выбирается паспортное время наработки на отказ (MBTF). Обычно величина MBTF огромна, и маловероятно, что этот параметр достигнет критического порога. Но даже в этом случае выход из строя диска совершенно не обязателен.
  • Power_Cycle_Count — количество полных циклов включения-выключения диска. По этому и предыдущему атрибуту можно оценить, например, сколько использовался диск до покупки.
  • Temperature_Celsius — Здесь хранятся показания встроенного термодатчика. Температура имеет огромное влияние на срок службы диска (даже если она находится в допустимых пределах). Вернее имеет влияние не на срок службы диска а на частоту возникновения некоторых типов ошибок, которые влияют на срок службы.
  • Current_Pending_Sector — Число секторов, являющихся кандидатами на замену. Они не были еще определенны как плохие, но считывание их отличается от чтения стабильного сектора, так называемые подозрительные или нестабильные сектора.
  • Offline_Uncorrectable — число ошибок при обращении к сектору, которые не были скорректированы. Возможными причинами возникновения могут быть сбои механики или порча поверхности.
  • UDMA_CRC_Error_Count — число ошибок, возникающих при передаче данных по внешнему интерфейсу. Могут быть вызваны некачественными кабелями, нештатными режимами работы.

Конфигурирование демона smartd:

vi /etc/smartd.conf

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

/dev/sda -S on -o on -a -I 194 -m alert@wandmagic.ru
/dev/sdb -S on -o on -a -I 194 -m alert@wandmagic.ru

Где:

  • первая колонка — устройство,
  • -S включает автозапись атрибутов,
  • -o включает автоматическое off-line тестирование,
  • -a указывает smartd мониторить все SMART параметры диска,
  • -I 194 означает игнорировать атрибут #194, (т.е. температуру), т.к. температура диска часто меняется и нет смысла ее логировать,
  • -m указывает куда warning сообщения отсылать.

запуск демона:

/etc/init.d/smartd start

******************************

В SMART III появилась функция, позволяющая прозрачно для пользователя переназначать BAD сектора.

Работает механизм следующим образом: при неустойчивом чтении сектора, или же ошибки его чтения, SMART заносит его в список нестабильных и увеличит их счетчик (Current_Pending_Sector). Если при повторном обращении сектор будет прочитан без проблем, он будет выброшен из этого списка. Если же нет, то при представившейся возможности — при отсутствии обращений к диску, диск начнет самостоятельную проверку поверхности, в первую очередь подозрительных секторов. Если сектор будет признан сбойным, то он будет переназначен на сектор из резервной поверхности (соответственно RSC увеличиться). Такое фоновое переназначение приводит к тому, что на современных винчестерах сбойные секторы практически никогда не видны при проверке поверхности сервисными программами. В тоже время, при большом числе плохих секторов их переназначение не может происходить до бесконечности. Первый ограничитель очевиден — это объем резервной поверхности.
У современных винчестеров есть два дефект-листа P-list (Primary, заводской) и G-list (Growth, формируется непосредственно во время эксплуатации). И при большом числе переназначений может оказаться так, что в G-list не оказывается места для записи о новом переназначении. Эта ситуация может быть выявлена по высокому показателю переназначенных секторов в SMART.