Читать «ELASTIX – общайтесь свободно» онлайн - страница 92

Владислав Юров

if [$cnt – le 0]; then

sed – i – e "s/.*${patt}/${after}\n${str}/g" ${fn}

echo "added string ${str}"

fi

}

db2utf8 'asterisk' «$dbuser» «$dbpassword»

db2utf8 'asteriskcdrdb' "$dbuser" "$dbpassword"

ifnotexists «character-set-server=utf8» «user=mysql» «/etc/my.cnf»

ifnotexists "collation-server=utf8_general_ci" "user=mysql" "/etc/my.cnf"

ifnotexists "init-connect='set charset utf8; SET NAMES utf8;'" "user=mysql" "/etc/my.cnf"

fl1=/var/www/html/admin/components.class.php

cp $fl1 ${fl1}-orig

txt_old='htmlentities[(][$]this[-][>]currentvalue[)]'

txt_new='htmlentities($this->currentvalue, ENT_COMPAT, "utf-8")'

sed "s/$txt_old/$txt_new/g" – i $fl1

txt_old='htmlentities[(][$]currentvalue[)]'

txt_new='htmlentities($currentvalue, ENT_COMPAT, "utf-8")'

sed "s/$txt_old/$txt_new/g" – i $fl1

fl1=/var/www/html/modules/pbxadmin/js/libfreepbx.javascripts.js

fl2=/var/www/html/modules/pbxadmin/js/script.legacy.js

cp $fl1 ${fl1}-orig

cp $fl2 ${fl2}-orig

txt_old='function isLetter[(]c[)]'

txt_new='function isLetter(c) { return (1==1); } function isLetter_old(c)'

sed "s/$txt_old/$txt_new/g" – i $fl1

sed "s/$txt_old/$txt_new/g" – i $fl2

txt_old='function isCallerIDChar[(]c[)]'

txt_new='function isCallerIDChar(c) { return (1==1); } function isCallerIDChar_old(c)'

sed "s/$txt_old/$txt_new/g" – i $fl1

sed "s/$txt_old/$txt_new/g" – i $fl2

txt_old='function isAlphanumeric[(]c[)]'

txt_new='function isAlphanumeric(c) { return (1==1); } function isAlphanumeric_old(c)'

sed "s/$txt_old/$txt_new/g" – i $fl1

sed "s/$txt_old/$txt_new/g" – i $fl2

Запустите созданный скрипт и перезапустите mySQL:

sudo bash /root/tasks/astdb2utf.sh

service mysqld restart

Проверьте, что теперь Вы можете создавать абонентов (Extensions) с русскими именами. Откройте меню «Extensions» в разделе «PBX». Обновите страницу браузера, чтобы обновился скрипт, проверяющий корректность ввода. Добавьте новый телефон, указав русское имя в поле «Display Name»:

Сохраните изменения и проверьте, что в поле Display Name имя осталось написанным по-русски.

Меры повышения безопасности

Если Elastix находится в открытом доступе, перечисленные в данном приложении мероприятия по защите станции жизненно необходимы. Без должной защиты через несколько недель или месяцев станция будет взломана и начнет использоваться злоумышленниками для звонков за счет вашей компании.

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

Кроме описанных ниже настроек рекомендую приобрести и установить дополнение Anti-Hacker. Дополнение стоит $15 и позволяет существенно упростить процесс настройки защиты, защищая Elastix от атак «грубой силы» – атак, перебирающих пароли. Конечно, из чисто спортивного интереса можно самостоятельно настроить Fail2ban, но практичнее приобрести и настроить Anti‑Hacker, проделать описанные ниже настройки по изменению портов используемых сервисов и активировать FireWall, встроенный в Elastix.