Рубрики
Старье

Решение проблемы Error creating user в DirectAdmin

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

Для проверки работоспособности useradd необходимо запустить в консоли под суперпользователем команду useradd.
В случае нормальной работы команда должна выдать нечто похожее на
usage: adduser [-u uid [-o]] [-g group] [-G group,...]
[-d home] [-s shell] [-c comment] [-m [-k template]]
[-f inactive] [-e expire ] [-p passwd] [-M] [-n] [-r] name
adduser -D [-g group] [-b base] [-s shell]
[-f inactive] [-e expire ]

Если же вместо этого выдается Segmentation fault, значит, причина именно в этом.
Также причина может заключаться в отсутствии директории /home, в уже существующем системном пользователе с таким логином или в директории /usr/local/directadmin/data/users/.

Рубрики
Старье

Установка скрипта ntpl в профиль для Red Hat Enterprise Linux ES release 3

При использовании Linux ES release 3 (Taroon Update 1) с ядром 2.4.x с WHM/cPanel могут возникнуть проблемы, связанные с выпадением программ в Segfault. Для решения этой проблемы установим патч:


wget -c http://dedic.ru/files/nptl-profile.sh -O /etc/profile.d/nptl.sh
chmod +x /etc/profile.d/nptl.sh
sh /etc/profile.d/nptl.sh

После обновления glibc обязательно запустить повторно sh /etc/profile.d/nptl.sh

Рубрики
Старье

Savvis: Ребут сервера — 20$, ждать целый час.

Данная операция, которую они производят в течении часа в Savvis, стоит 20$… Крохоборство… Причём данные пункты дополнительной оплаты возникают после отказа от их администратора… Посмотрим, что будет дальше!

Рубрики
Старье

Выборочно ограничиваем http-трафик

Итак, необходимо «притормозить» очень популярные сайты, которые потребляют слишком много трафика.
Лучше всего для этого подходит mod_throttle. Приступаем к установке:

wget http://www.snert.com/Software/mod_throttle/mod_throttle312.tgz
tar xzf mod_throttle312.tgz
cd mod_throttle-3.1.2/
apxs -iac mod_throttle.c

Для владельцев WHM/cPanel необходмио учесть, что apxs расположен в /usr/loca/apache/bin, и, соответственно,

/usr/local/apache/bin/apxs -iac mod_throttle.c

Теперь модуль установлен. Рассмотрим ужимание трафика на практическом примере — зажмем какому-то сайту трафик с учетом следующих параметров:
Максимальное число одновременных клиентов — 20,
максимальное число запросов от одного клиента — 5.
Ограничить трафик в 50kb/s на каждого клиента.
Добавим в виртуальный конфиг сайта правила для mod_throttle:



SetHandler throttle-me

ThrottleClientIP 20 None 5
ThrottlePolicy Speed 50K 1


После перезапуска апача можно посмотреть состояние mod_throttle по адресу http://сайт/throttle-me

Рубрики
Старье

Удаляем LauS (Linux Auditing System)

Red Hat Enterprise Linux 3 Update 2 имеет новую особенность — LAuS-демон, производящий аудит системы. Он разработан таким образом, что является частью ядра и частью пользовательского пространства. В связи с тем, что демон создает большую нагрузку на систему и быстро забивает свободное место своим логом, его лучше всего удалить:


service audit stop
chkconfig --level 235 audit off
rpm -e laus
echo "alias char-major-10-224 off" >> /etc/modules.conf
depmod -a

Рубрики
Старье

DDoS: Враг неизвестен

Наиболее успешной и грубой атакой в настоящее время остается “отказ обслуживания”. Он не требует от атакующего особых знаний. Достаточно иметь под контролем тысячу зараженных компьютеров (зомби) ничего не подозревающих мирных корейских, американских и канадских граждан для того, чтобы “сбить с ног” обычный сервер, подключенный 100 мегабитной сетевой карточкой к сети. Получить же доступ может любой подросток, зарегистрировавшийся на одном из многочисленных хакерских форумов. Естественно, что их находят и наказывают, а владельцы зомби-сетей, как правило, остаются безнаказанными.

В более изощренных ситуациях, когда за дело берутся своего рода профессионалы, создается не столь значительный по объему, но более “едкий” по содержанию трафик, который способен, например, “сбить с толку” DNS-сервис или “отъесть” все доступные подключения к ftp.

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

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

Для защиты дедика необходимо регулярно проводить аудит доступных ресурсов сервера и устанавливать оптимальное ограничение для каждого сервиса. При этом следует учитывать, что лимиты могут быть как встроенные в сервис, так и системные. И самый лучший вариант — системный лимит “обгоняет” встроенный на 5-10%. Это необходимо на тот случай, если собственно сам сервис начнет “глючить” и не сможет вовремя “прибить” свой дочерний процесс.

Например, в популярном веб-сервере apache есть встроенный ограничитель RlimitCPU, который ограничивает время выполнения cgi/php скрипта. Однако замечено, что в случае “тяжелых” shtml страниц, включающих в себя результат работы скриптов, этот лимит будет “растянут” на каждый скрипт, вызванный директивой include. Поэтому очень полезно поставить системный лимит на apache, который бы четко ограничивал потребление процессора. Например, если значение RlimitCPU 240, то, выполнив перед запуском apache ulimit -t 250, время работы любого дочернего процесса будет не более 250 секунд процессорного времени. При этом на основной процесс, работающий от суперпользователя root, лимит действовать не будет и apache не остановится через 250 секунд. Более удобно проставлять эти лимиты для Linux через PAM-модуль limits в /etc/security/limits.conf, а для FreeBDS в /etc/login.conf (после изменений должен быть обработан cap_mkdb).

Естественно, что защита должна быть комплексной, и проверять на возможную DDoS — атаку следует весь сервер в целом, а не отдельные его части. Например, определив максимальное число подключений к веб-серверу apache, не следует забывать о загрузке, которую вызывают скрипты обращением к sql-серверу. Не ограничив mysql системными или встроенными лимитами, обычный ab-Apache HTTP server benchmarking tool, запущенный с 1000 одновременных запросов на phpnuke-сайтах, способен вогнать сервер в глубокий swap, из которого его сможет вывести только перезагрузка.

Рубрики
Старье

Доменные имена — это просто!

Всем известно, что такое доменное имя, — это адрес сайта в Интернете. Практически все знают, что домен нужно зарегистрировать. То, что некоторые домены регистрируются бесплатно, знают еще меньше. О том, что такое делегирование домена, регистрация собственных NS, знает узкий круг людей. И, наконец, о том, как диагностировать проблему, знают считанные единицы. В этой статье мы рассмотрим эти проблемы, а также определим понятие «парковка домена».

Как известно, домены необходимо регистрировать. Регистраторы заполняют необходимую информацию для службы whois и регистрируют домен на корневых серверах.
Управление записями доменной зоны может быть предоставлено как на стороне регистратора, так и на самом дедике. В чем же разница? Как правило, иметь доменную зону у себя под рукой гораздо удобнее. Именно для этого и необходима регистрация собственных NS-серверов, которых должно быть минимум два, причем для зоны .ru их IP должны быть из разных подсетей. В некоторых случаях, особенно касающихся интернет провайдеров, домены делегируют — провайдер прописывает у себя зону как slave и дает ей указание принимать все изменения, которые были внесены на стороне клиента. В случае отключения клиентского сервера зона будет продолжать работать.
Каждый сталкивался или столкнется в будущем с проблемами, связанными с доменными именами на своем сервере. Для их исправления существуют универсальные средства диагностики — это whois и dig.
Методика нахождения ошибок крайне проста. Прежде всего, необходимо проверить наличие домена в базе whois, а также зарегистрированные NS:
whois имя.домена
Если проблемы не возникают, то с регистратором все в порядке и их нужно искать на своем сервере. Иначе эта проблема на стороне регистратора. Как правило, они «забывают» прописать NS-серверы или их панель администрирования записями домена сбоит.
Далее проверяем наличие домена у указанных NS-серверов с помощью dig:
dig @ns.сервер.домена домен
В результате должна быть получена запись с IP адресом. Если этого не произошло, значит, не работает bind или порт 53 TCP/UDP заблокирован фаерволом.
Если же запись успешно получена, необходимо проверить соответствие IP-адресов, зарегистрированных NS-серверов и записей на сервере — ошибка именно в них.
Получить список NS-серверов вместе с их IP можно при помощи команды
dig @ns.сервер.домена ns домен
При обращении к сайту через браузер веб-сервер apache анализирует домен и смотрит, к какому сайту он принадлежит.
Очень часто возникает необходимость «парковки» домена. Это означает, что к основному домену сайта в параметрах конфигурации ServerAlias указывается другой домен, который служит «псевдонимом» для основного.
Если домен просто прописать, но не указать его в apache, то при попытке открыть такой сайт будет получена страница по умолчанию на соответствующем IP. Для IP-based сайтов это не проблема, так как на этом IP и размещается этот сайт.

Рубрики
Старье

Устанавливаем Zend Optimizer под WHM/cPanel

Необходимо зайти в консоль суперпользователем. Далее
/scripts/installzendopt,
Жмем enter 9 раз, на вопрос «Restart the Web server now?» отвечаем No.
Далее перезапускаем апач:
/scripts/restartsrv_httpd

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

Рубрики
Старье

Спам от nobody — решение проблемы

Обычно php-скрипты выполняются под пользователем nobody, если конечно php не установлен как cgi, но это имеет ряд своих недостатков. Исходя из того, что все скрипты выполняются под одним и тем же пользователем, в случае рассылки спама из php скриптов обнаружение злоумышленника или наоборот, пострадавшего владельца сломанного форума, будет затруднительным.
Для решения этой проблемы можно воспользоваться патчем php mail header.
Этот патч добавляет в каждое письмо, отправленное с помощью функции php mail(), заголовки вида X-PHP-Script: www.имясервера.ru/путь/к/скрипту for IP адрес.
Таким образом, всегда можно определить злоумышленника и, самое главное, скрипт, который рассылает спам. Заблокировав этот скрипт (chmod 000 script.php), можно не блокировать аккаунт пользователя, если есть подозрение, что это не злонамеренное действие, а взлом его сайта.

Рассмотрим установку для WHM/cPanel.


wget http://dedic.ru/files/cpanel-php-mail-header-02-Apr-2005.tar.gz -P /root
tar zxvf /root/cpanel-php-mail-header-02-Apr-2005.tar.gz -C /root
chmod 0700 /root/cpanel-buildapache*

Далее в зависимости от версии ОС необходимо запустить /root/cpanel-buildapache & для Linux и /root/cpanel-buildapache.freebsd & для Free BSD соответственно.
После того, как патч выкачает необходимые файлы, нужно нажать enter и пересобрать apache: /scripts/easyapache.

Для других панелей или для беспанельного php необходимо применить этот патч к исходникам php перед компиляцией:

Сначала берем исходник php. Распаковываем его, входим в распакованный каталог. Далее скачиваем архив и выбираем из него патч для соответствующей версии php по адресу http://dedic.ru/files/php-mail-patch.tar.gz.
Применяем его командой patch -p1 < php-VERSION-mail-header.patch, после чего php можно устанавливать стандартным способом (./configure && make && make install).