Адміністратор блогу: |
0
|
Удивительное дело - на дворе XXI век, а в Пензенской области люди залезли в вырытые пещеры, чтобы пережить конец света. Впрочем, стоит отдать им должное - они подготовились. Кто знает, случись в селе Никольском какой-нибудь местный природный катаклизм с последующим выходом из строя, например, электрических и других коммуникаций, так ли неадекватными будут выглядеть эти люди? Вообще, порывшись на просторах всемирной сети, можно обнаружить немалое количество сайтов с тематикой, посвященной способам выживания в «БП» (если расшифровать эту аббревиатуру, получится что-то вроде "Большое... хищное полярное животное, напоминающее лисицу" :)). На них весьма серьезно обсуждаются различные «нужные вещи», которые будут очень кстати в случае масштабных катастроф, аварий и прочих неприятностей - это разного рода «аварийные чемоданчики», наборы для выживания и пр.
А ведь компьютеры сегодня играют в нашей жизни значительную роль! И что может быть необходимо в случае «компьютерной» катастрофы? Конечно же, мы не рассматриваем какие-то аварии планетарного масштаба - у нас ведь не секта, верно? Перенося аналогию выживания при катаклизмах в мир компьютеров, поговорим о средствах, позволяющих эффективно исполнить роль "соломки в случае падения" ОС. Мы рассмотрим инструменты, скорее, позволяющие провести своеобразную компьютерную реанимацию в случае отказа Windows. Одним из таких специализированных пакетов является ERD Commander. Первоначально разработанный Wininternals и являвшийся в то время ядром Winternals Administrator's Pak, сейчас ERD Commander - один из компонентов DaRT (Diagnostics and Recovery Toolset), который, в свою очередь, входит в состав Microsoft Desktop Optimization Pack. ERD Commander - это набор программ, работающих в среде WindowsPE. WinPE позволяет выполнить загрузку системы со съемного носителя, что дает возможность запустить компьютер даже в случае тотального повреждения файлов существующей на диске ОС, жизненно необходимых для ее старта. Являясь «почти настоящей» 32-битовой Windows, WinPE обеспечивает полный доступ к NTFS-томам, системному реестру, параметрам настройки и драйверам. Стандартный оконный интерфейс ERD Commander, сходный с привычным Рабочим столом, позволяет легко и эффективно использовать предлагаемые им инструменты. Для изготовления диска, с которого можно запустить ERD Commander, загрузите установщик Diagnostics and Recovery Toolset. После установки необходимо записать на CD образ erd50.iso, который должен находится в папке %PROGRAMFILES%\Microsoft Diagnostics and Recovery Toolset.
Коментарі відсутні
erd commander
|
0
|
Надеюсь, что данный материал будет кому-нибудь полезен.
Siege – это утилита для нагрузочного тестирования веб-серверов. Она была создана для того чтоб дать разработчикам возможность проверить ресурсоёмкость своего кода в условиях, максимально приближенных к реальным. Так же Siege может имитировать обращения к сайту сразу нескольких пользователей. Это позволяет держать сервер как бы «под осадой» долгое время. Количество запросов, произведённых при «осаде», рассчитывается из общего количества пользователей и количества их обращений к серверу. Например 20 пользователей, обратившись по 50 раз, создают в общей сложности 1000 запросов. Результат, выводимый программой после тестирования, включает в себя время затраченное на проверку, общее количество переданной информации ( включая заголовки ), среднее время ответа сервера, его пропускную способность и число запросов на которые пришёл ответ с кодом 200. Эти данные формируются и выдаются при каждой проверке. Подробно они описываются ниже. Siege имеет 3 основных модели работы – режим регрессионного тестирования, режим имитации Интернета и режим грубой силы. Программа считывает порцию ссылок из конфигурационного файла и обращается к ним по очереди ( режим регрессионного тестирования ) или случайно ( имитация интернета ). Или же пользователь может указать один единственный адрес к которому будут производиться все обращения – режим грубой силы. |
0
|
В релизе PHP 5.3.9 была обнаружена одна из самых опасных уязвимостей за все время существования данного языка программирования. Уязвимость проявляется только в PHP 5.3.9 и позволяет удалённому злоумышленнику выполнить свой код на сервере, независимо от того какие PHP-скрипты используются. При успешном совершении атаки код будет выполнен с правами PHP-приложения, к которому отправлен специально оформленный запрос.
Уязвимость возникает в случае, когда количество входящих параметров превышает значение max_input_vars (по умолчанию 1000). По иронии судьбы, уязвимость связанна с некорректным устранением менее опасной проблемы безопасности в прошлой версии PHP. Для защиты от совершения DoS-атаки, которая может быть вызвана проблемой с предсказуемыми коллизиями в реализации алгоритма хэширования, в PHP 5.3.9 была добавлена директива max_input_vars, позволяющая ограничить число входящих параметров для поступающих HTTP-запросов. В реализации данной директивы была допущена досадная ошибка, которая сделала возможным совершение более опасной атаки. Суть проблемы в том, что при портировании кода с поддержкой директивы max_input_vars был пропущен блок «else» с освобождением памяти и выходом из функции. Без этого блока, при превышении заданного директивой max_input_vars лимита, который по умолчанию установлен в 1000, если превышающая лимит переменная является массивом (например, «a[]=1»), то эта переменная оказывается на месте указателя, который в дальнейшем получает управление. Всем пользователям PHP 5.3.9 рекомендуется в экстренном порядке наложить патч или вернуться на более ранний выпуск PHP. Официального уведомления и исправления пока не выпущено. Проблему усугубляет то, что поддержка директивы max_input_vars была портирована из PHP 5.3.9 многими дистрибутивами и включена в пакеты с более старыми версиями PHP. Например, в обновлении пакета php5-5.3.3-7+squeeze6 для debian Squeeze имеется поддержка директивы max_input_vars. Та же самая ситуация наблюдается в Red Hat Enterprise Linux 5 и 6, а также в Fedora Linux и Mandriva. Уязвимость была обнаружена специалистом в области информационной безопасности Стефаном Эссером, известным за публикацию ряда серьезных уязвимостей в PHP, а также за разработку джейлбрейка для Apple iOS, создателем проектов Hardened-PHP и Suhosin. Комментируя решение проекта Debian отказаться от использования Suhosin, Стефан указал на то, что уязвимость в PHP пришлась весьма кстати, так как она хорошо демонстрирует необходимость в использовании Suhosin, который значительно снижает возможность эксплуатации, даже в стандартной конфигурации. В настоящее время уже вышла версия PHP 5.3.10 с исправлением уязвимости, также уже пофиксили это и в SVN. Для стабильной ветки Debian вышло обновление php5-5.3.3-7+squeeze7, полностью устраняющее данную уязвимость. Обновление также выпущено для RHEL и CentOS. Так как функция php_register_variable_ex(), ошибка в которой вызывает уязвимость, была добавлена в PHP уже давно, не исключается возможность нахождения способа атаки на более старые версии PHP, начиная c версии 5.3.5. Но данные методы уже не проявляются так легко, как с max_input_vars… |
0
|
Возникла необходимость в небольшом легком sh-скрипте, который бы с определенной периодичностью проверял, запущены ли сервисы на VPS. В частности, меня интересовала база данных MySQL, однако, если бы мониторились таким же образом и apache, nginx, ssh и тп, для меня это было бы также неплохо. Понятно, что можно использовать громоздкие системы мониторинга, однако, меня вполне устраивают Ajenti + Munin, которые я уже ставил на свой сервер, однако, они настолько простые, что конретно этого (вроде?) не умеют…
На просторах интернета, конечно, были найдены предложения подобной функциональности, однако, что-то меня во всех не устроило, так что на основании найденного написал свой ремикс Ну и естественно, выкладываю на всеобщее рассмотрение, может, кому еще понадобится, а кто-то, возможно, укажет на ошибки или предложит улучшение
Спойлер
[code=php]#!/bin/bash ################################################################################################ # Проверка статуса apache, nginx, mysql, ssh и перезагрузка сервисов при необходимости ################################################################################################ # Команда для отправки почты MAILCMD="$(which mail)" # Файл письма MAILMESSAGE="/tmp/vps_service.fail.$$" # Email, куда слать уведомления EMAILID="mylo@gmail.com" # Функция для отправки письма mail_doxer() { $MAILCMD -s "Уведомление о проблемах на VPS-сервере $(hostname)" $EMAILID < $MAILMESSAGE } echo "Данное письмо отправлено Вам, так как были обнаружены проблемы">>$MAILMESSAGE echo "на сервере $(hostname), а Ваш адрес указан в скрипте для таких уведомлений">>$MAILMESSAGE echo "----------------------------------------------------------------------------------------------------" >>$MAILMESSAGE echo "">>$MAILMESSAGE ApacheThread=`ps -A|grep apache2|wc -l` NginxThread=`ps -A|grep nginx|wc -l` MysqldThread=`ps -A|grep mysql|wc -l` SSHThread=`ps -A|grep ssh|wc -l` # # Проверяем, запущен ли apache2 # if [ $ApacheThread -eq 0 ]; then echo "ОШИБКА:">>$MAILMESSAGE echo "-- При проверке обнаружено, что веб-сервер Apache не был запущен!">>$MAILMESSAGE echo "-- Произведена попытка запуска в $(date +"%d.%m.%y %H:%M:%S")...">>$MAILMESSAGE # Пытаемся запустить сервис /etc/init.d/apache2 start # "Вздремнем" на секундочку (так, на всякий пожарный) sleep 1 # Проверяем, работает ли сервис после выполнения скрипта echo "ТЕКУЩИЙ СТАТУС:" >>$MAILMESSAGE ApacheThreadAfter=`ps -A|grep apache2|wc -l` if [ $ApacheThreadAfter -eq 0 ]; then echo "-- Apache сейчас НЕ ЗАПУЩЕН!" >>$MAILMESSAGE echo "">>$MAILMESSAGE else echo "-- Apache сейчас запущен..." >>$MAILMESSAGE echo "">>$MAILMESSAGE fi fi # # Проверяем, запущен ли nginx # if [ $NginxThread -eq 0 ]; then echo "ОШИБКА:">>$MAILMESSAGE echo "-- При проверке обнаружено, что веб-сервер Nginx не был запущен!">>$MAILMESSAGE echo "-- Произведена попытка запуска в $(date +"%d.%m.%y %H:%M:%S")...">>$MAILMESSAGE # Пытаемся запустить сервис /etc/init.d/nginx start # "Вздремнем" на секундочку (так, на всякий пожарный) sleep 1 # Проверяем, работает ли сервис после выполнения скрипта echo "ТЕКУЩИЙ СТАТУС:" >>$MAILMESSAGE NginxThreadAfter=`ps -A|grep nginx|wc -l` if [ $NginxThreadAfter -eq 0 ]; then echo "-- Nginx сейчас НЕ ЗАПУЩЕН!" >>$MAILMESSAGE echo "">>$MAILMESSAGE else echo "-- Nginx сейчас запущен..." >>$MAILMESSAGE echo "">>$MAILMESSAGE fi fi # # Проверяем, запущен ли mysql # if [ $MysqldThread -eq 0 ]; then echo "ОШИБКА:">>$MAILMESSAGE echo "-- При проверке обнаружено, что MySQL-сервер не был запущен!">>$MAILMESSAGE echo "-- Произведена попытка запуска в $(date +"%d.%m.%y %H:%M:%S")...">>$MAILMESSAGE # Пытаемся запустить сервис /etc/init.d/mysql start # "Вздремнем" на секундочку (так, на всякий пожарный) sleep 1 # Проверяем, работает ли сервис после выполнения скрипта echo "ТЕКУЩИЙ СТАТУС:" >>$MAILMESSAGE MysqldThreadAfter=`ps -A|grep mysql|wc -l` if [ $MysqldThreadAfter -eq 0 ]; then echo "-- MySQL-сервер сейчас НЕ ЗАПУЩЕН!" >>$MAILMESSAGE echo "">>$MAILMESSAGE else echo "-- MySQL-сервер сейчас запущен..." >>$MAILMESSAGE echo "">>$MAILMESSAGE fi fi # # Проверяем, запущен ли ssh-сервер # if [ $SSHThread -eq 0 ]; then echo "ОШИБКА:">>$MAILMESSAGE echo "-- При проверке обнаружено, что SSH не был запущен!">>$MAILMESSAGE echo "-- Произведена попытка запуска в $(date +"%d.%m.%y %H:%M:%S")...">>$MAILMESSAGE # Пытаемся запустить сервис /etc/init.d/ssh start # "Вздремнем" на секундочку (так, на всякий пожарный) sleep 1 # Проверяем, работает ли сервис после выполнения скрипта echo "ТЕКУЩИЙ СТАТУС:" >>$MAILMESSAGE SSHThreadAfter=`ps -A|grep ssh|wc -l` if [ $SSHThreadAfter -eq 0 ]; then echo "-- SSH сейчас НЕ ЗАПУЩЕН!" >>$MAILMESSAGE echo "">>$MAILMESSAGE else echo "-- SSH сейчас запущен..." >>$MAILMESSAGE echo "">>$MAILMESSAGE fi fi # Получаем текущее значение LA LOAD=`uptime | grep -o 'load average.*' | cut -c 15-18` # Если оно больше указанного ниже значения, то это также повод для беспокойства if [ $LOAD \> 15.0 ]; then echo "ВНИМАНИЕ!!! Слишком большая нагрузка!" >>$MAILMESSAGE echo "-- Текущий Load Average: $LOAD " >>$MAILMESSAGE else echo "-- Текущий Load Average: $LOAD " >>$MAILMESSAGE fi echo "----------------------------------------------------------------------------------------------------" >>$MAILMESSAGE echo "*** Это письмо сгенерировано скриптом $(basename $0) ***" >>$MAILMESSAGE echo "*** Не стоит отвечать на это письмо, это всего лишь уведомление ***" >>$MAILMESSAGE # Проверяем, был ли нерабочим хоть один из проверяемых сервисов, если да, то шлем емэйл if [ $ApacheThread -eq 0 ] || [ $NginxThread -eq 0 ] || [ $MysqldThread -eq 0 ] || [ $SSHThread -eq 0 ] || [ $LOAD \> 15.0 ]; then mail_doxer fi # "Вздремнем" на секундочку (так, на всякий пожарный) sleep 1 #Удаляем временный файл письма rm -f $MAILMESSAGE[/code] В скрипте не забываем заменить адрес e-mail на свой… UPD: Добавил в скрипт еще и проверку на высокий Load Average (нагрузка на сервер) — при высоком значении (у меня это 15.0), будет отправляться предупреждение, что нагрузка слишком высока… |