Category: Uncategorized

  • Установка связки Apache + mod_fcgid + php

     

    Установка такой связки довольна простая и не занимает много времени. Для начала установим все необходимое.
    yum install httpd php php-gd php-mysql
    Теперь установим модуль FastCGI. Взять его можно в репозитории EPEL.
    rpm –ivh http://ftp.tlk-l.net/pub/mirrors/fedora-epel/6/i386/epel-release-6-7.noarch.rpm
    yum install mod_fcgid
    Установка закончена, теперь немного настроек.
    Отключим модуль php для все доменов. Сделать это можно убрав файл php.conf и папки /etc/httpd/conf.d или закоментировать в нем строки:
    #<IfModule prefork.c>
    #  LoadModule php5_module modules/libphp5.so
    #</IfModule>
    #<IfModule worker.c>
    #  LoadModule php5_module modules/libphp5-zts.so
    #</IfModule>
    #AddHandler php5-script .php
    #AddType text/html .php
    #AddType application/x-httpd-php-source .phps
    На самом деле можно ограничиться последними тремя строками, но это необходимо лишь в том случае, если вы планируете на некоторых своих сайтах оставить возможность работы через модуль php.
    После этого в часть конфигурации с папкой нашего сайта добавляем следующее:
            <Directory /var/www/example.com>
                    Options +ExecCGI
                    AddHandler fcgid-script .php
                    FCGIWrapper /var/www/php-bin/php .php
            </Directory>
    Создаем файл /var/www/php-bin/php, внутри него пишем:
    #!/bin/sh
    PHPRC=/etc
    export PHPRC
    export PHP_FCGI_MAX_REQUESTS=5000
    export PHP_FCGI_CHILDREN=8
    exec /usr/bin/php-cgi
    Переменная PHPRC задает место расположения вашего файла php.ini  (рабочую директорию).
    Вот и все! На это установка и настройка mod_fcgid закончена!

     

  • Определяем слабые места сайта – slowloris и slow HTTP Post

    Сегодня хочу Вам рассказать что такое  slowloris  и slow HTTP Post и как их определить.

    В августе 2011 года была написана програмка slowhttptestt, которая тестирует веб-серверы на наличие уязвимостей, связанных с обработкой медленных HTTP запросов, таких как slowloris и slow HTTP Post. Цель — создать конфигурируемый инструмент, облегчающий работу разработчиков и позволить им концентрироваться на создании эффективных защит, а не ковырянии в питоне, на котором написаны большинство proof-of-concept эксплоитов.

    А потом разработчики  решили попробовать, как реагируют серверы на медленное чтение клиентами HTTP респонсов. На удивление плохо реагируют. Дефолтные apache, nginx, lightpd, IIS отказывают в обслуживании на ура.

    А суть такова:

    если найти ресурс на веб сервере, который размером больше send buffer-a, который ядро выделило для соединения, в который серверная программа пошлет ресурс, то если каким то образом вынудить ядро не принимать все данные — сервер будет пытаться послать оставшийся кусок данных, занимая ограниченную в размере очередь соединений, процессорное время, память, и свободное время сисадмина. Если забить такими соединениями всю очередь — сервер, соответственно начнет отказывать в обслуживании быстрым клиентам.

    Заставить ядро себя так вести довольно просто и описано было еще в 2008 году ребятами из Outpost24 в методе Sockstress например, посылать в TCP пакете размер окна равным 0, т.е. у клиента нет места для приема данных. Дизайн TCP правильно подразумевает, что приложение, а не ядро обязано контролировать медленные и мертвые соединения. Однако за 4 года никто не пошевелил пальцем. 

    Установка:

    Скачать программу можно с сайта разработчиков: http://code.google.com/p/slowhttptest/wiki/InstallationAndUsage.

    Утилита распространяется как portable package, так что просто скачайте последнюю версию архива из секции Download, распакуйте, сконфигурируйте, скомпилируйте, и установите:

    tar -xzvf slowhttptest ….tar.gz

    cd slowhttptest ….

    ./configure или ./configure -prefix=PREFIX (где PREFIX нужно заменить на абсолютный путь к месту инсталляции slowhttptest-а.)

    make

    make install

    Полный список конфигурационных параметров:

    -a значение начальное значение заголовка диапазонов для теста диапазона
    -b байты лимит значения заголовка диапазонов для теста диапазона
    -c количество соединений лимит: 1024
    -H, B, or R указывает секцию HTTP запроса, которая будет замедляться -H заголовки, -B тело, -R тестирует диапазоны
    -g генерирует статистику в формате CSV и HTML в файлы, формат имени которых slow_xxx.csv/html, где xxx время и дата
    -i секунды интервал мехду замедленными данными в секундах
    -l секунды продолжительность теста в секундах
    -o файл путь и имя файлов статистики, работает при указании ключа -g
    -p секунды интервал ожидания ответа с сервера, при истечении которого считается что отказ в обслуживании наступил
    -r соеднинений в секунду скорость соединений
    -s байт значение заголовка Content-Length, если тест в режиме -B
    -t метод заголовок для использования в запросе, заданный пользователем
    -u URL адрес ресурса в формате, используемом в браузере, например: https://host[:port]/
    -v уровень уровень детализации истории 0-4
    -x байт максимальная длина дополнительных данных

     

    Пример использования:
     
    ./slowhttptest -c 1000 -B -g -i 100 -r 200 -s 8192 -t FAKE -u http://твой-domen -x 10 -p 3
     
    На этом все!
    Удачных проверок :)!
  • Переключаемся между GUI и Core в windows server 2012

    Переключаемся между GUI и Core в windows server 2012

    Для того чтоб быстро установить или удалить GUI в Windows server 2012 есть небольшой скрипт-меню, но Вам никто не запрещает использовать просто команды:
    switch ($id)
            {
                \”1\” {Uninstall-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell}
                \”2\” {Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell}
                \”3\” {
                        Import-Module Dism
                        Enable-WindowsOptionalFeature -online -Featurename ServerCore-FullServer,Server-Gui-Shell,Server-Gui-Mgmt
                    }
            }
    Естественно скрипт должен запускаться с правами администратора, что мы видим после запуска? :
  • rm: Argument list too long

    Недавно столкнулась с проблемой, нужно было удалить много файлов, несколько десятков тысяч.

    Привычная и любимая команда rm -rf не помогла, выдав ошибку: Argument list too long

    Вспомнила еще про несколько вариантов удаления:

    find /каталог/* | xargs rm и ls /каталог/* | xargs rm

    Но и эти варианты выдали ту же ошибку: Argument list too long.

    Как оказалось решение весьма простое:

    for i in /каталог/*; do rm -f $i; done

    В переменную i в цикле попадают имена файлов из директории и тут же удаляем выбранный файл.

  • Nginx, ошибка accept() failed (24: Too many open files) в error.log

    Nginx, ошибка accept() failed (24: Too many open files) в error.log
    В конец файла /etc/security/limits.conf нужно добавить такие строки:
    * soft nofile 16384
    * hard nofile 16384
    Выполняем под рутом: 
    ulimit -n 16384
    В /etc/nginx/nginx.conf прописать новое значение worker_connections, равное 16384 поделить на значение worker_processes.
  • Кастомизация VMware ESXi 5 Community Packaging Tools 2.0

    Что делать если ваш любимый есть не находит драйверов на сетевую карту или SAS-SATA контроллер ? Всё очень просто, для этой проблемы есть утилита:

    VMware ESXi 5 Community Packaging Tools 2.0




    Скачать ESXi5 Community Packaging Tools 2.0 можно по этой href=”http://esxi-customizer.googlecode.com/files/ESXi5-CPT-v2.0.exe

  • PHP 5.3 Ошибка: It is not safe to rely on the system\’s timezone settings.

    Часто, при переходе на PHP 5.3 скрипты начинаются выдавать следующие предупреждения, тем самым засоряя всю страницу сайта: 

    date() [<a href=\’function.date\’>function.date</a>]: It is not safe to rely on the system\’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected \’Europe/Moscow\’ for \’MSK/4.0/no DST\’ instead

    Для того, что бы исправить это необходимо добавить всего одну строку в ваш файл php.ini. Вот она:

    date.timezone = "Europe/Moscow"

    Весь список временных зон доступен здесь: http://www.php.net/manual/en/timezones.php

    Если на сервере используется панель управления ISPmanager то для устранения этой ошибки может понадобится редактирование пользовательского файла php.ini. Тогда файл будет находится по следующему пути: /var/www/php-bin/<имя пользователя>/php.ini Это при условии, что у Вас каталогом для сайтов по умолчанию является /var/www

  • Зачем нужен Hide from Exchange Address Lists ?

    Зачем нужен Hide from Exchange Address Lists ?

    Всё очень просто, если у вас есть заблокированный пользователь или служебная учётная запись, с помощью этой галки можно скрыть его из адресных листов.

  • Mysql – сброс пароля root

    Проблема забытых паролей для системных администраторов  очень актуальна и поэтому я сегодня расскажу вам как сбросить пароль на пользователя root в Mysql.
    Предупреждаю сразу это не хакерские уловки, и не способ поломать сервер –  это штатный способ сброса пароль пользователя root.
     
    Для этого нам понадобится:
    • Удаленный или прямой доступ к консоли сервера
    • И прямые руки конечно же 🙂
    Если у Вам это все есть тогда приступим!
    Лучше это конечно делать глухой ночью, когда сервер не сильно загружен и когда это не помешает Вашим клиентам!
    Первое что нам необходимо это остановить сервер Mysql в Debian (/etc/init.d/mysql stop), в RedHat подобных системах (service mysqld stop).
    Далее необходимо сбросить таблицу привилегий сервера и запустить сервер как демон:  mysqld –skip-grant-tables
    Открываем еще одну консоль не закрывая прошлую и заходим в mysql командой: mysql без логина и пароль т.к. сейчас mysql работает как демон и все кто к нему подключаются работают с правами root.
    Далее делаем следующее: 

    use mysql;

    select user, host, password from user;

    – для того чтоб посмотреть какие есть пользователи.
    Для установки нового пароль пользователю root.
    update user set password=PASSWORD(‘password’) where user=’root’;
    Выходим из mysql: 
    exit;
    Выключаем демон сервера mysql:  
    mysqladmin shutdown
    И запускаем сервер: в Debian (/etc/init.d/mysql start), в RedHat подобных системах (service mysqld start).
    Все теперь Вы можете зайти в mysql под новым паролем root-а.
    Буду надеяться что моя статья Вам поможет!
    До новых встреч!  
  • У части пользователей не видно адресной книги в OWA

    У части пользователей не видно адресной книги в Exchange OWA, был слегка смущен данной проблемой, и гугл сразу не помог.. Догадался – решение очень простое:

    iisreset

    И будет вам счастье…