Здравствуйте, хабравчане! Сегодня я хотел бы рассказать о персональном облачном хранилище ownCloud и его установке.
Для нас уже стало обыденным использование таких сервисов как Dropbox, Google Drive, SkyDrive или даже Облако Mail.Ru, мы пользуемся их услугами каждый день не обращая внимание на явные недостатки тех или иных серверов. На одном, сервисе мало места, на другом нет локализации, на третьем ненадежное хранилище, на четвертом кривой интерфейс и так далее, но у всех этих сервисов есть общий существенный недостаток - ваши данные всегда хранятся на неконтролируемых вами серверах. В случае когда необходимо использовать сервисы для размещения данных не имеющих для вас большой ценности - этих сервисов должно полностью хватить. В случае если, необходима защита контента, полная конфиденциальность, безопасность, неограниченное количество свободного места, возможность организовать многопользовательский доступ для работы в группах, контроль версий, синхронизация, возможность просматривать документы, таблицы, изображения, видеоматериалы, аудиозаписи, заметки из любой точки мира без необходимости их загрузки - ownCloud это то что вам нужно.
Давайте подробнее рассмотрим ownCloud и попробуем его установить
OwnCloud переводиться буквально как «собственное облако». Это CMS с открытым кодом, которое можно загрузить на свой компьютер и позднее установить его на хостинг или собственный сервер. По функциональности ownCloud не отстает от ведущих компаний в мире облачных хранилищ, а некоторых превосходит.
За простым лаконичным интерфейсом скрывается большой функционал расширяемый еще более с помощью предустановленных модулей и собственного App store представленного на официальном сайте.
Это всего лишь краткий список возможностей ownCloud, но уже сейчас видны его преимущества. При желании можно добавить почтовый клиент, торрент клиент, чат с видео, полноценный офис, проверку фалов на VirusTotal и многое другое.
Перейдем от теории к практике.
Прежде чем начинать давайте убедимся что наша система в актуальном состоянии.
Открываем терминал и вводим:
sudo apt-get update && sudo apt-get upgrade
Эти две простые команды обновят все программы на нашем сервере, процесс может занять длительное время в зависимости от скорости интернета и нашего сервера.
Теперь, можно приступить к установке необходимого для работы ownCloud программного обеспечения:
sudo apt-get install apache2 php5 php5-common php5-gd php5-intl php5-mcrypt php5-cli php5-ldap php5-sqlite curl libcurl3 libcurl4-openssl-dev php5-curl php-apc php5-mysql ffmpeg
Теперь у нас есть все необходимое для быстрого развертывания ownCloud на нашем сервере и можно переходить к пункту 4 или продолжить полную установку вместе со мной.
Устанавливаем MySQL:
apt-get install mysql-client mysql-server
Создаем пароль для базы данных MySQL и идем дальше.
Важно:
Теперь немножко позаботимся о нашей безопасности, вводим в консоль:
mysql_secure_installation
На все вопросы кроме «Change the root password» (Если не хотите менять пароль MySQL) отвечаем положительно Y.
Входим в консоль управления MySQL и вводим пароль (его не видно):
mysql -u root -p
Создаем базу данных:
create database Имя_БД;
Создаем пользователя, желательно с именем как и у базы данных:
create user "Имя_пользователя"@"localhost" IDENTIFIED BY "Новый_пароль";
Важно:
пароль не должен совпадать с паролем суперпользователя.
Передаем созданному пользователю полные права на созданную базу данных:
GRANT ALL ON Имя_БД.* to "Имя_пользователя"@"localhost" ;
Выходим:
quit
Устанавливаем ntp клиент:
apt-get install ntp ntpdate
Теперь меняем сервер синхронизации времени на ближайший:
sudo gedit /etc/ntp.conf
В открывшемся фале находим:
server 0.debian.pool.ntp.org iburst dynamic
server 1.debian.pool.ntp.org iburst dynamic
server 2.debian.pool.ntp.org iburst dynamic
server 3.debian.pool.ntp.org iburst dynamic
server 0.ru.pool.ntp.org iburst dynamic
server 1.ru.pool.ntp.org iburst dynamic
server 2.ru.pool.ntp.org iburst dynamic
server 3.ru.pool.ntp.org iburst dynamic
Чтобы проверить правильность времени достаточно ввести в терминале:
ntpdate 0.ru.pool.ntp.org
Если время на нашем сервере не соответствует времени полученному с ntp сервера вводим:
ntpdate -bs 0.ru.pool.ntp.org
Редактируем файл /etc/apache2/sites-enabled/000-default:
sudo gedit /etc/apache2/sites-enabled/000-default
Находим строчку в разделе "
Перезапускаем apache:
service apache2 restart
Редактируем php.ini:
sudo gedit /etc/php5/apache2/php.ini
Находим строчки:
mysql.default_socket =
mysql.cache_size =
memory_limit =
post_max_size =
upload_max_filesize =
Меняем на:
mysql.default_socket=/var/run/mysqld/mysqld.sock
mysql.cache_size = 4000
upload_max_filesize = 1024M //максимальный размер файла который мы можем загрузить на наш сайт
post_max_size = 1024M //Должен быть больше или равен upload_max_filesize
memory_limit = 1024M //Должен быть больше или равен post_max_size
Сохраняем файл и выходим.
Перезапускам apache еще раз:
service apache2 restart
Загружаем последнюю версию ownCloud, на момент написания ownCloud 6:
cd /var/www/
wget http://download.owncloud.org/community/owncloud-6.0.0a.tar.bz2
Также, можно просто скачать последнюю версию с официального сайта ownCloud в папку /var/www/
Распаковываем:
tar -xvf owncloud-6.0.0a.tar.bz2
Выставляем права:
sudo chown -R www-data:www-data /var/www/owncloud/
Теперь наш сайт готов, остался только маленький штрих, открываем в браузере localhost/owncloud
А) Для тех кто сразу перешел на пункт 4: Придумываем login и пароль для администратора - входим
B) Для тех кто установил MySQL: Придумываем login и пароль для администратора, выбираем «advanced» затем «MySQL» и вводим имя ранее созданного пользователя базы данных, его пароль, имя самой базы данных, в поле Database host пишем localhost.
Готово! Теперь вы счастливый обладатель персонального облака owncloud с синхронизацией на всех устройствах в вашей домашней сети, для этого достаточно набрать в браузере ваш_внутренний_IP/ownCloud или если вы подключены к интернету напрямую можно получить доступ к owncloud набрав внешний_IP/ownCloud.
Рассмотрим пример на основе роутера asus rt-n16:
Из браузера заходим на адрес 192.168.1.1, вводим логин и пароль и входим в веб интерфейс роутера:
веб интерфейс
Меню переадресации портов
Выбор подготовленных профилей
Выбор внутреннего IP сервера
Список портов для ownCloud
1. Некорректная установка приложения в разделе Apps
В случае если после включения приложения веб сайт начал некорректно работать я нашел 3 решения:
1.Полная переустановка.
2.Очистить базу данных созданную для owncloud в phpmyadmin и удалить файл:
rm -f \var\www\owncloud\config\config.php
3.Наверное самый приятный вариант, переместить папку с приложением после которого начались проблемы из папки \var\www\owncloud\apps в любую другую, проверить что сайт работает, вернуть папку на место и не трогать до фикса.
2. Авто login пользователя как только он заходит на сайт
1. Создаем в админ панели пользователя, к примеру Gman с паролем noclip.
2. Открываем файл base.php:
Sudo gedit /var/www/owncloud/lib/base.php
3. В самом конце находим строчи:
protected static function tryBasicAuthLogin() {
if (!isset($_SERVER["PHP_AUTH_USER"])
|| !isset($_SERVER["PHP_AUTH_PW"])) {
return false;
}
OC_App::loadApps(array("authentication"));
if (OC_User::login($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])) {
//OC_Log::write("core","Logged in with HTTP Authentication", OC_Log::DEBUG);
Заменяем на
Protected static function tryBasicAuthLogin() { //if (!isset($_SERVER["PHP_AUTH_USER"]) // || !isset($_SERVER["PHP_AUTH_PW"]) //) { // return false; //} if (OC_User::login(Gman, noclip)) { OC_App::loadApps(array("authentication")); //if (OC_User::login($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])) { //OC_Log::write("core","Logged in with HTTP Authentication", OC_Log::DEBUG);
1. Открываем fileactions.js
Sudo gedit /var/www/owncloud/apps/files/js/fileactions.js
2. Ищем следующие строки:
remove the existing delete action
parent.parent().children().last().find(".action.delete").remove();
if (actions["Delete"]) {
var img = FileActions.icons["Delete"];
if (img.call) {
img = img(file);
}
if (typeof trashBinApp !== "undefined" && trashBinApp) {
var html = "";
} else {
var html = "";
}
var element = $(html);
element.data("action", actions["Delete"]);
element.on("click", {a: null, elem: parent, actionFunc: actions["Delete"]}, actionHandler);
parent.parent().children().last().append(element);
}
3. Комментируем их:
// remove the existing delete action
// parent.parent().children().last().find(".action.delete").remove();
// if (actions["Delete"]) {
// var img = FileActions.icons["Delete"];
// if (img.call) {
// img = img(file);
// }
// if (typeof trashBinApp !== "undefined" && trashBinApp) {
// var html = "";
// } else {
// var html = "";
// }
// var element = $(html);
// element.data("action", actions["Delete"]);
// element.on("click", {a: null, elem: parent, actionFunc: actions["Delete"]}, actionHandler);
// parent.parent().children().last().append(element);
// }
4. Открываем:
Sudo gedit /var/www/owncloud/apps/files/js/files.js
5. Находим следующие строчки:
$(".delete-selected").click(function(event) { var files=getSelectedFilesTrash("name"); event.preventDefault(); FileList.do_delete(files); return false; });
6. Комментируем их:
//$(".delete-selected").click(function(event) {
// var files=getSelectedFilesTrash("name");
// event.preventDefault();
// FileList.do_delete(files);
// return false;
// });
ownCloud – это сервер для общего доступа к файлам и централизованного удалённого хранения документов. Приложение ownCloud во многом напоминает Dropbox.
В отличие от большинства подобных приложений, OwnCloud является свободным приложением с открытым исходным кодом, благодаря чему его может установить любой пользователь. Кроме того, OwnCloud можно установить на собственный сервер, что устраняет необходимость размещать конфиденциальные данные на сторонних серверах, тем самым увеличивая безопасность данных.
Это руководство поможет установить ownCloud на сервер Ubuntu 16.04.
Пакета ownCloud нет в репозитории Ubuntu. Однако проект ownCloud предоставляет свой выделенный репозиторий для системы Ubuntu.
Сначала загрузите ключ релиза с помощью команды curl и импортируйте его с помощью apt-key:
curl https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/Release.key | sudo apt-key add -
...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1358 100 1358 0 0 2057 0 --:--:-- --:--:-- --:--:-- 2057
OK
Пакет Release.key содержит открытый ключ PGP, с помощью которого менеджер apt сможет подтвердить подлинность пакета ownCloud.
Импортировав ключ, создайте файл owncloud.list и поместите в него адрес репозитория ownCloud.
echo "deb http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/ /" | sudo tee /etc/apt/sources.list.d/owncloud.list
Обновите индекс пакетов системы:
sudo apt-get update
Установите ownCloud:
sudo apt-get install owncloud
После установки ownCloud в каталоге настроек Apache появится новый конфигурационный файл. С помощью systemctl перезапустите Apache, чтобы веб-сервер перечитал конфигурации.
sudo systemctl restart apache2.service
Установка ownCloud успешно окончена.
Войдите в MySQL как администратор:
mysql -u root -p
Введите root-пароль MySQL.
Для хранения данных ownCloud необходима отдельная БД. В данном руководстве такая БД для простоты будет называться owncloud, но вы можете выбрать более описательное имя.
CREATE DATABASE owncloud;
Примечание : Все команды MySQL должны заканчиваться точкой с запятой.
Теперь нужно создать пользователя для управления новой БД и передать ему все права на неё. Наличие отдельной БД и пользователя для каждого приложения очень важно для простоты управления и безопасности. В руководстве пользователь называется owncloud; вы можете выбрать другое имя.
GRANT ALL ON owncloud.* to "owncloud"@"localhost" IDENTIFIED BY "set_database_password";
Примечание : Вместо ‘set_database_password’ укажите пароль для этой БД.
После этого нужно сбросить привилегии, чтобы обновить настройки MySQL.
FLUSH PRIVILEGES;
Закройте MySQL:
https://server_domain_or_IP/owncloud
Если вы используете самоподписанный сертификат, браузер предупредит вас о том, что сайт может быть опасен. Это нормально и происходит потому, что сертификат сайта не подписан центром сертификации, которому браузер может доверять. Данные, передаваемые при соединении, всё равно будут шифроваться. Подтвердите переход, чтобы получить доступ к панели управления ownCloud. На экране появится приветственная страница и форма для входа.
Чтобы создать аккаунт администратора, выберите имя пользователя и пароль.
Примечание : Использовать имя admin очень опасно.
Прежде чем нажать Finish setup, откройте ссылку Storage & database. Тут вы увидите настройки БД. Изменять путь в поле Data folder не нужно. Нажмите MySQL/MariaDB в разделе Configure the database. Введите данные о БД (имя пользователя, пароль и имя БД).
Нажмите Finish setup, чтобы войти в ownCloud. На экране появится окно:
A safe home for all your data
Access and share your files, calendars, contacts, mail & more from any device, on your terms
Закройте это окно, чтобы получить доступ к главному интерфейсу приложения.
Теперь вы можете создавать или загружать файлы в своё собственное облачное хранилище.
ownCloud имеет все функции популярных сторонних облачных систем хранения данных. Преимуществом OwnCloud является то, что конфиденциальные данные хранятся на сервере, которым вы можете управлять.
Tags: , 27 июля 2012 в 07:49ownCloud представляет собой Open Source решение для организации своего собственного dropbox-подобного хранилища файлов. Кроме, собственно, синхронизации файлов доступны так же дополнительные возможности, как то: синхронизация контактов, календарей (наличествует поддержка CalDAV) и задач, фотогалерея, проигрыватель аудио (с поддержкой протокола Ampache). Сервис работает в многопользовательском режиме, есть функционал общих папок.
Клиенты синхронизации доступны для Windows / Mac / Linux / Android, версия для iOS, по заверениям разработчиков, в финальной стадии. Наличествует достаточно интересная, но пока экспериментальная функция External Storage, позволяющая монтировать Dropbox и GDrive в папку с ownCloud.
Важной для меня функцией в Android-клиенте является Instant Upload, автоматически загружающий видео и фотографии в облако сразу после съёмки, аналогично клиенту Dropbox.
Проект достаточно сыроват, интерфейсы и стабильность работы клиентов оставляют желать лучшего, однако тот факт, что облако полностью управляемо и зашифровано перекрыл эти недостатки.
В качестве хостинга можно выбрать VDS или домашний сервер на антресоли.
Рассмотрим вариант с «домашним сервером».
В качестве железки выбран простенький неттоп, операционная система - Ubuntu Server 12.04, прямой ip и доменное имя. Храниться данные будут в зашифрованном LVM-разделе, доступ клиентов к серверу организован поверх SSL.
На практике работает всё очень похоже с dropbox - заливаешь файл, он «расползается» по всем клиентам. Снимаешь на камеру Android-смартфона - изображение или видео через некоторое время попадает на компьютер. Особо хочу отметить, что Android-клиент поддерживает общесистемную функцию Easy Share Action, потому практически из любого приложения файл можно поместить в ownCloud.
OwnCloud имеет встроенную поддержку WebDAV, потому на большинстве десктопных ОС можно обойтись вообще без клиентского приложения (в случае, если например неважна синхронизация, а нужен только доступ к файлам). Непосредственно на сервере данные хранятся в виде обычных файлов и, если включить фантазию и засучить рукава, можно совместить ownCloud с FTP/AFP/Samba-сервером, организовать автоматическое скачивание торрентов посредством rtorrent, а в корпоративных средах открываются поистине безграничные возможности организации доступа к файлам. В общем, всё ограничивается вашей фантазией.
Функционал легко расширяется с помощью дополнительных плагинов (Applications в терминологии ownCloud). Например, в случае физической невозможности зашифровать диск сервера можно воспользоваться плагином Encryption, тогда всё содержимое облако будет зашифровано встроенными средствами.
Объём хранилища ограничен только вашим жёстким диском. Облако в 2Tb - не вопрос. Поддержка версионности файлов наличествует. Один десктопный клиент, кстати, может подключаться к нескольким ownCloud облакам одновременно.
Скорость работы зависит в основном от ширины канала клиента и сервера. В моём случае почти все клиенты и сервер располагаются в пределах одного провайдера, потому видео с телефона заливается в облако очень быстро, несравнимо быстрее, чем в dropbox.
У данного решения с LVM-encrypted диском есть один недостаток - в случае перезагрузки мы потеряем удалённый доступ к серверу, поскольку при загрузке система будет просить парольную фразу для расшифровки диска на физической консоли. Так же из недостатков замечено, что при активной работе клиентов сервис апача на сервере неслабо отъедает процессорные ресурсы.
В итоге у нас получилось свой Dropbox с защищённым доступом и дамами, с клиентами под распространённые платформы. ownCloud, фактически, даёт возможность воспользоваться многими приятностями облачных технологий не требуя ответную жертву в виде приватности.
От себя всячески желаю проекту дальнейшего развития и процветания.
Отправка СМС через smpp, smpp-шлюз
Одним из протоколов отправки SMS-сообщений является SMPP. Он описывает процесс взаимодействия получателя сообщения, то есть smpp-клиента с smpp-сервером, используя при этом особую систему передачи данных.
Взяв за основу отправку CMC-сообщений через протокол SMPP, Вы получите возможность:
Таким образом, протокол smpp обладает большими возможностями, которые, однако, сопряжены и с некоторыми особенностями использования и установки, которые мы и рассмотрим.
ТРЕБУЕТСЯ КАЧЕСТВЕННЫЙ SMPP-ШЛЮЗ? Свяжитесь с нами и мы предоставим тестовый доступ!
Особенности работы с SMPP
Для работы с протоколом SMPP необходимо иметь соответствующее ПО (SMPP-клиент, версии 3.4). При этом оборудование должно быть постоянно подсоединено к шлюзу компании "СМС-Агент". Для того чтобы отправка SMS через SMPP осуществлялась быстро и без задержек, все клиенты нашей фирмы проходят тест на совместимость оборудования. Это позволяет избавиться от многих технических сложностей еще на начальном этапе.
Кроме того, перед использованием протокола для проведения SMS-рассылок, пользователи могут провести тестовую отсылку СМС сообщений через SMPP, чтобы определиться с желаемой скоростью доставки.
Специалисты компании "СМС-Агент" всегда готовы предоставить консультацию по вопросам использования, подключения и тестирования сервиса SMPP, что упростит Вашу задачу.
Подключение по SMPP протоколу
System_id - зарегистрированное в системе имя пользователя
password - пароль пользователя
Адрес - smpp.сайт
Порт - 2775
Для шифрованного SSL-подключения используется порт 3443
Поддерживаемые команды по протоколу SMPP
Параметры отправки сообщения (SUBMIT_SM) по SMPP
Правила работы с SMPP подключением
При установке подключения клиенту дается 10 секунд, что бы отправить команду BIND_TRANSMITTER или BIND_TRANSCEIVER. Иначе соединение будет разорвано сервером.
Клиент обязан отвечать на все пакеты отправленные сервером соответствующим resp пакетом в течение 1 минуты. Иначе соединение будет разорвано сервером без отсылки UNBIND.
Получение статуса доставки сообщения
Есть две возможности получения статуса доставки по протоколу smpp (активный и пассивный). Пассивный вариант является предпочтительным.
Пассивный вариант предусматривает установку флага registered_delivery пакета SUBMIT_SM.
После перехода сообщения в финальное состояние сервер отправит DELIVER_SM пакет с Delivery Receipt сообщением.
Формат Delivery Receipt сообщения ниже.
Активный вариант предусматривает периодический опрос статуса сообщения отсылкой QUERY_SM.
Формат Delivery Receipt
"id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:DDDDDDD err:E Text: . . . . . . . . ."
Зарезервированные коды ошибок при smpp соединении
Код | Описание |
0x0400 (1024) | Кодировка не распознана |
0x0401 (1025) | Слишком большой текст сообщения. Максимальная длина не должна превышать 160 байт |
0x0402 (1026) | Ошибка регистрации сообщения. При возникновении этой ошибки обратитесь в службу поддержки |
0x0403 (1027) | Не прошла проверка текста сообщения на наличие недопустимых слов и/или фраз |
0x0404 (1028) | Отправитель или получатель в черном списке |
0x0453 (1107) | Сработало ограничение по отправке одинакового текста на один и тот же номер |
0x043C (1084) | Нет доступного тарифа для запрашиваемого направления |
0x043F (1087) | Нет подходящего тарифа у вышестоящего контрагента |
0x045A (1114) | Политика маршрутизации не найдена |
0x0446 (1094) | Ошибка транспорта. При возникновении этой ошибки обратитесь в службу поддержки |
0x0433 (1075) | Недостаточно средств на счете |
Одним из смс протоколов является smpp. Он описывает процесс взаимодействия получателя сообщения, то есть smpp клиента с смс сервером, используя при этом особую систему передачи данных.
Взяв за основу отсылки сообщений smpp, вы получите возможность:
Таким образом, протокол smpp обладает большими возможностями, которые, однако, сопряжены и с некоторыми особенностями использования и установки, которые мы и рассмотрим.
Для работы с данным протоколом необходимо иметь соответствующее ПО и сервер, способный взаимодействовать с smpp. При этом оборудование должно быть постоянно подсоединено к шлюзу компании-провайдера. Для того чтобы отправка smpp смс осуществлялась быстро и без задержек, все клиенты нашей фирмы проходят тест на совместимость оборудования. Это позволяет избавиться от многих технических сложностей еще на начальном этапе.
Кроме того, перед использованием протокола для проведения рассылок, пользователи могут провести тестовую отсылку smpp sms, чтобы определиться с желаемой скоростью доставки.
Специалисты всегда готовы предоставить консультацию по вопросам использования, подключения и тестирования сервиса, что упростит вашу задачу.
На не поддерживаемые команды сервер будет отвечать GENERIC_NAK сообщением с кодом ошибки ESME_RINVCMDID.
При установке подключения клиенту дается 10 секунд, что бы отправить команду BIND_TRANSMITTER или BIND_TRANSCEIVER. Иначе соединение будет разорвано сервером.
Клиент обязан отвечать на все пакеты отправленные сервером соответствующим resp пакетом в течение 1 минуты. Иначе соединение будет разорвано сервером без отсылки UNBIND.
Есть две возможности получения статуса доставки по протоколу smpp (активный и пассивный). Пассивный вариант является предпочтительным.
Пассивный вариант предусматривает установку флага registered_delivery пакета SUBMIT_SM.
После перехода сообщения в финальное состояние сервер отправит DELIVER_SM пакет с Delivery
Receipt сообщением. Формат Delivery Receipt сообщения ниже.
Активный вариант предусматривает периодический опрос статуса сообщения отсылкой
QUERY_SM.
"id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm
stat:DDDDDDD err:E Text: . . . . . . . . ."
Код | Описание |
0x0400 (1024) |
Кодировка не распознана |
0x0401 (1025) |
Слишком большой текст сообщения. Максимальная длина не должна превышать 160 |
байт. 0x0402 (1026) |
Ошибка регистрации сообщения на отправку. При возникновении этой ошибки обратитесь в службу поддержки. |
0x0403 (1027) |
Не прошла проверка текста сообщения на наличие недопустимых слов и/или фраз |
0x0404 (1028) |
Отправитель или получатель в черном списке |
0x0453 (1107) |
Сработало ограничение по отправке одинакового текста на один и тот же номер в течение небольшого промежутка времени. Обратитесь в поддержку, если хотите отключить или уменьшить период. |
0x043C (1084) |
Нет доступного тарифа для запрашиваемого направления. |
0x043F (1087) |
Нет подходящего тарифа у вышестоящего контрагента. |
0x045A (1114) |
Политика маршрутизации не найдена. |
0x0446 (1094) |
Ошибка транспорта. При возникновении этой ошибки обратитесь в службу поддержки. |
0x433 (1075) |
Недостаточно средств на счете. |