По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Закупился гигасетиками? :) Отличный выбор. Осталось дело за малым – настройка. В статье произведем настройку DECT системы Gigaset N510 IP PRO и подключим к ней телефонную трубку R650H PRO в связке в IP – АТС Asterisk. Настройку выполним в FreePBX. $dbName_ecom = "to-www_ecom"; $GoodID = "2057309338"; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName_ecom) or die(mysql_error()); $query_ecom = "SELECT `model`, `itemimage1`, `price`, `discount`, `url`, `preview115`, `vendor`, `vendorCode` FROM `items` WHERE itemid = '$GoodID';"; $res_ecom=mysql_query($query_ecom) or die(mysql_error()); $row_ecom = mysql_fetch_array($res_ecom); echo 'Кстати, купить '.$row_ecom['vendor'].' '.$row_ecom['vendorCode'].' можно в нашем магазине Merion Shop по ссылке ниже. С настройкой поможем 🔧 Купить '.$row_ecom['model'].''.number_format(intval($row_ecom['price']) * (1 - (intval($row_ecom['discount'])) / 100), 0, ',', ' ').' ₽'; $dbName = "to-www_02"; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName) or die(mysql_error()); Пошаговое видео Настройка со стороны FreePBX Первым делом, создадим внутренний номер для нашей трубки. Прыгаем в раздел Applications → Extensions. Нажимаем на Quick Create Extension. Создаем номер, например, 101. В итоге получаем: Отлично! Копируем логин и пароль (из поля secret) внутри номера и переходим к настройке Gigaset. Настройка Gigaset N510 IP PRO Перед настройкой, после подключения сетевого кабеля к базе убедитесь, что синяя лампа на DECT горит постоянным цветом (LAN коннекция установлена корректно). Далее, переходим по IP – адресу Gigaset в графический интерфейс. Пароль первого входа это 4 нуля 0000: Попав в интерфейс, переходим в раздел настроек Telephony → Connections и заполняем поля, как указано на скриншоте ниже: Connection name or number - имя подключения. Цепляемся к Asterisk, поэтому указали Asterisk; Authentication name - 101, как внутренний номер, который мы создали ранее; Authentication password - пароль из поля secret; Username - так же указываем внутренний номер. Это 101; Display name - мы хотим 101 :) Вы можете сделать ФИО абонента; После, в категории дополнительных настроек: Domain - IP адрес сервера Asterisk; Proxy server port - 5160 – у нас на этом порту живет chan_sip; Registration server - IP адрес сервера Asterisk; Registration server port - 5160 – у нас на этом порту живет chan_sip; Registration refresh time - 180 секунд; Сохраняем настройки. Самое интересное, что на этом этапе, если у вас всего одна трубка – текущей конфигурации достаточно. Трубка при включении обнаружит базу и подтянет настройки. Делаем тестовый вызов – работает :)
img
Apache Cassandra — это программное обеспечение распределенной базы данных с открытым исходным кодом для работы с базами данных NoSQL. Это программное обеспечение использует язык запросов Cassandra - CQL в качестве основы для связи. CQL хранит данные в таблицах, организованных в виде набора строк со столбцами, содержащими пары ключ-значение. Таблицы CQL сгруппированы в контейнеры данных, которые в Cassandra называются пространствами ключей (keyspace). Данные, хранящиеся в одном пространстве ключей, не связаны с другими данными в кластере. Таким образом, вы можете иметь таблицы для разных целей в отдельных пространствах ключей в кластере, и данные не будут совпадать. В этом руководстве вы узнаете, как создать таблицу Cassandra для различных целей, а также как изменять, удалять или очищать таблицы с помощью оболочки Cassandra. Выбор пространства ключей для таблицы Cassandra Прежде чем вы начнете добавлять таблицу, вам нужно определить пространство ключей, в котором вы хотите создать свою таблицу. Есть два варианта сделать это. Вариант 1: команда USE Запустите команду USE, чтобы выбрать пространство клавиш, к которому будут применяться все ваши команды. Для этого в оболочке cqlsh введите: USE keyspace_name; Затем вы можете начать добавлять таблицы. Вариант 2. Укажите имя пространства ключей в запросе Второй вариант — указать имя пространства ключей в запросе на создание таблицы. Первая часть команды перед именами столбцов и параметрами выглядит так: CREATE TABLE keyspace_name.table_name Таким образом, вы сразу же создаете таблицу в заданном пространстве ключей. Базовый синтаксис для создания таблиц Cassandra Создание таблиц с помощью CQL похоже на SQL-запросы. В этом разделе мы покажем вам основной синтаксис для создания таблиц в Cassandra. Основной синтаксис для создания таблицы выглядит следующим образом: CREATE TABLE tableName ( columnName1 dataType, columnName2 dataType, columnName2 datatype PRIMARY KEY (columnName) ); При желании вы можете определить дополнительные свойства и значения таблицы, используя WITH: WITH propertyName=propertyValue; Например, используйте его, чтобы определить, как хранить данные на диске или использовать ли сжатие. Типы первичных ключей Cassandra Каждая таблица в Cassandra должна иметь первичный ключ, что делает строку уникальной. С первичными ключами вы определяете, какой узел хранит данные и как он их разделяет. Существует несколько типов первичных ключей: Простой первичный ключ. Содержит только одно имя столбца в качестве ключа секции, чтобы определить, какие узлы будут хранить данные. Составной первичный ключ. Использует один ключ разделения и несколько столбцов кластеризации, чтобы определить, где хранить данные и как их сортировать в разделе. Составной ключ раздела. В этом случае есть несколько столбцов, которые определяют, где хранить данные. Таким образом, вы можете разбить данные на более мелкие части, чтобы распределить их по нескольким разделам, чтобы избежать горячих точек. Как создать таблицу Cassandra В следующих разделах объясняется, как создавать таблицы с различными типами первичных ключей. Сначала выберите пространство ключей, в котором вы хотите создать таблицу. В нашем случае: USE businesinfo; Каждая таблица содержит столбцы и тип данных Cassandra для каждой записи. Создать таблицу с простым первичным ключом Первый пример — это базовая таблица с поставщиками. Идентификатор уникален для каждого поставщика и будет служить первичным ключом. CQL-запрос выглядит следующим образом: CREATE TABLE suppliers ( supp_id int PRIMARY KEY, supp_city text, supp_email text, supp_fee int, supp_name text, supp_phone int ); Этот запрос создал таблицу с именем supplier с supp_id в качестве первичного ключа для таблицы. Когда вы используете простой первичный ключ с именем столбца в качестве ключа раздела, вы можете поместить его либо в начало запроса (рядом со столбцом, который будет служить первичным ключом), либо в конец, а затем указать имя столбца: CREATE TABLE suppliers ( supp_id int, supp_city text, supp_email text, supp_fee int, supp_name text, supp_phone int PRIMARY KEY(supp_id) ); Чтобы увидеть, находится ли таблица в пространстве ключей, введите: DESCRIBE TABLES; В выводе перечислены все таблицы в этом пространстве ключей, а также та, которую вы создали. Чтобы отобразить содержимое таблиц, введите: SELECT * FROM suppliers; Вывод показывает все столбцы, определенные при создании таблицы. Другой способ просмотреть сведения о таблице — использовать DESCRIBE и указать имя таблицы: DESCRIBE suppliers; В выходных данных отображаются столбцы и настройки по умолчанию для таблицы. Создать таблицу с составным первичным ключом Чтобы запросить и получить результаты, отсортированные в определенном порядке, создайте таблицу с составным первичным ключом. Например, создайте таблицу для поставщиков и всех продуктов, которые они предлагают. Поскольку продукты могут не быть уникальными для каждого поставщика, необходимо добавить один или несколько столбцов кластеризации в первичный ключ, чтобы сделать его уникальным. Схема таблицы выглядит так: CREATE TABLE suppliers_by_product ( supp_product text, supp_id int, supp_product_quantity text, PRIMARY KEY(supp_product, supp_id) ); В этом случае мы использовали supp_product и supp_id для создания уникального составного ключа. Здесь первая запись в скобках supp_product — это ключ раздела. Он определяет, где хранить данные, то есть как система разделяет данные. Следующая запись — столбец кластеризации, определяющий, как Cassandra сортирует данные, в нашем случае — по supp_id. Изображение выше показывает, что таблица была успешно создана. Чтобы проверить детали таблицы, запустите запрос DESCRIBE TABLE для новой таблицы: DESCRIBE TABLE suppliers_by_product; Настройки по умолчанию для порядка кластеризации — по возрастанию (ASC). Вы можете перейти на нисходящий (DESC), добавив следующий оператор после первичного ключа: WITH CLUSTERING ORDER BY (supp_id DESC); Мы указали один столбец кластеризации после ключа раздела. Если вам нужно отсортировать данные с использованием двух столбцов, добавьте еще один столбец в скобки первичного ключа. Создание таблиц с использованием составного ключа раздела Создание таблицы с составным ключом раздела полезно, когда на одном узле хранится большой объем данных, и вы хотите разделить нагрузку на несколько узлов. В этом случае определите первичный ключ с ключом секции, состоящим из нескольких столбцов. Вам нужно использовать двойные скобки. Затем добавьте столбцы кластеризации, как мы делали ранее, чтобы создать уникальный первичный ключ. CREATE TABLE suppliers_by_product_type ( supp_product_consume text, supp_product_stock text, supp_id int, supp_name text, PRIMARY KEY((supp_product_consume, supp_product_stock), supp_id) ); В приведенном выше примере мы разделили данные на две категории: расходные материалы поставщика и продукты, запасаемые на складе, и распределили данные с помощью составного ключа раздела. Примечание. При таком разделении каждая категория продуктов хранится на отдельном узле, а не в одном разделе. Если вместо этого вы используете составной первичный ключ с простым ключом раздела и несколькими столбцами кластеризации, то один узел будет обрабатывать все данные, отсортированные по нескольким столбцам. Удалить таблицу в Cassandra Чтобы удалить таблицу в Cassandra, используйте оператор DROP TABLE. Чтобы выбрать таблицу, которую вы хотите удалить, введите: DESCRIBE TABLES; Найдите таблицу, которую хотите удалить. Используйте имя таблицы, чтобы удалить ее: DROP TABLE suppliers_by_product_type; Запустите запрос DESCRIBE TABLES еще раз, чтобы убедиться, что вы успешно удалили таблицу. Изменить таблицу в Cassandra Cassandra CQL позволяет добавлять или удалять столбцы из таблицы. Используйте команду ALTER TABLE, чтобы внести изменения в таблицу. Добавить столбец в таблицу Перед добавлением столбца в таблицу рекомендуется просмотреть содержимое таблицы, чтобы убедиться, что имя столбца еще не существует. После проверки используйте запрос ALTER TABLE в этом формате, чтобы добавить столбец: ALTER TABLE suppliers_by_product ADD supp_name text; Снова используйте DESCRIBE TABLE, чтобы убедиться, что столбец появился в списке. Удалить столбец из таблицы Подобно добавлению столбца, вы можете удалить столбец из таблицы. Найдите столбец, который вы хотите удалить, с помощью запроса DESCRIBE TABLES. Затем введите: ALTER TABLE suppliers_by_product DROP supp_product_quantity; Примечание. Не указывайте тип данных для столбца, если вы хотите удалить его из таблицы. Вы получите ошибку “SyntaxException: line 1:48 mismatched input ‘text’ expecting EOF (ALTER TABLE suppliers_by_product DROP supp_name [text]…)” Очистить таблицу в Cassandra Если вы не хотите удалять всю таблицу, но вам нужно удалить все строки, используйте команду TRUNCATE. Например, чтобы удалить все строки из таблицы поставщиков, введите: TRUNCATE suppliers; Чтобы убедиться, что в вашей таблице больше нет строк, используйте оператор SELECT. После очистки таблицы изменения становятся постоянными, поэтому будьте осторожны при использовании этого запроса. Итоги В этом руководстве показано, как создавать таблицы в Cassandra для различных целей с использованием простых и составных первичных ключей. Примеры также включали использование составного ключа раздела для распределения данных по узлам. Мы также рассмотрели, как вы можете удалять, изменять и очищать таблицы в Cassandra. Убедитесь, что вы удаляете или вносите изменения в правильные таблицы, чтобы избежать потенциальных проблем.
img
OpenSSH позволяет выполнять удаленное подключение к серверу, производить манипуляции с файлами и управлять системой. Сегодня хотим рассказать про лучшие методы, которые позволят увеличить безопасность системы на базе OpenSSH. Конфигурационные файлы /etc/ssh/sshd_config - файл конфигурации сервера OpenSSH; /etc/ssh/ssh_config - файл конфигурации клиентской части OpenSSH; ~/.ssh/ - директория, в которой хранятся пользовательские SSH настройки; ~/.ssh/authorized_keys или ~/.ssh/authorized_keys - список ключей (RSA или DSA), которые используются для подключения к пользовательским аккаунтам; /etc/nologin - если данный файл существует в системе, то sshd запретит подключаться всем пользователям кроме root в систему; /etc/hosts.allow и /etc/hosts.deny - система запрета (часть безопасности). Работает по аналогии с ACL; SSH порт по умолчанию - 22 Не нужен - выключай Если вашему серверу не требуется удаленное подключение по SSH, то обязательно отключите его. В таких системах как CentOS/RHEL делается это так: chkconfig sshd off yum erase openssh-server Используйте SSH второй версии Протокол SSH первой версии имеет проблемы с безопасностью, которые закрыты во второй версии. Поэтому, используйте вторую версию. Убедитесь, что в файле /etc/ssh/sshd_config указана опция Protocol 2. Ограничивайте SSH доступ По умолчанию, все системные пользователи имеют возможность подключаться к системе по SSH. Рекомендуем ограничить SSH доступ в целях безопасности. Например, разрешить SSH для пользователей root, merion и networks: AllowUsers root merion networks С другой стороны, вы можете разрешить доступ всем пользователям, кроме указанных: DenyUsers root merion networks Время неактивности Важно указывать время, в течение которого, неактивная сессия будет терминирована (завершена). Это можно сделать следующими опциями: ClientAliveInterval 300 ClientAliveCountMax 0 В данной настройке мы указали время бездействия равным 300 секунд (5 минут). Про файлы .rhosts Дело в том, что данный файл содержит список хостов и пользователей. Если в данном файле содержится комбинация хоста и юзера, то данный пользователь сможет подключиться к системе по SSH без запроса пароля. Рекомендуем отключить эту «замечательную» фичу: IgnoreRhosts yes Никакой аутентификации на базе хоста! Так называемая Host-Based Authentication позволяет пользователю с определенного хоста подключаться к серверу. Отключаем: HostbasedAuthentication no Прямое подключение через root Не нужно открывать root. Максимум, советуем использовать прямое root подключение на время проведения работ. Затем отключать. Лучше давать su (sudo) доступ для некоторых категория пользователей. Закрыть можно вот так: PermitRootLogin no Сделайте баннер Для каждого подключающегося сделайте баннер, в котором можно угрожать злоумышленникам, которые пытаются совершить несанкционированный доступ. За настройку баннера отвечает параметр Banner. 22 порт только изнутри! Сделайте доступ к 22 порту системы только через цепочку фаервол правил. Лучше всего, оставить доступ только изнутри LAN. Например, в Iptables можно дать доступ для 192.168.11.0/24: -A RH-Firewall-1-INPUT -s 192.168.11.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT Где слушать По умолчанию SSH слушает подключения на всех доступных интерфейсах. Мы рекомендуем сменить порт по умолчанию и указать IP – адрес, на котором необходимо ожидать подключения. Например, мы укажем порт 962 и IP – адрес 192.168.11.24 Port 962 ListenAddress 192.168.11.24 Криптостойкие пароли Используйте устойчивые к защите пароли. В сети множество инструментов, которые сгенерируют криптостойкий пароль онлайн, бесплатно и без смс :) Запретить пустые пароли Бывают пользователи без паролей. Их доступ к SSH так же необходимо запретить с помощью опции: Port 962 PermitEmptyPasswords no Анализируйте логи Установите логирование событий в режим INFO или DEBUG – это позволит иметь расширенный контроль над системой: LogLevel INFO
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59