Статьи из рубрики «administering» RSS

Администрирование web-серверов, Windows, Linux и всё в том же духе

ACL как одно из решений проблемы работы web-сервера под root

Я довольно часто встречал конфигурацию, когда web-сервер работает под root, чтобы обойти жёсткие права доступа, установленные на каталоги пользователей. Рассмотрим на примере: предположим, что пользовательские сайты расположены в /home/<username>/, при этом права на каталог home установлены в 0711 (rwx--x--x), а права на пользовательские каталоги установлены в 0700 (rwx------). Такие права устанавливаются, чтобы изолировать пользователей друг от друга — один пользователь не сможет зайти и посмотреть домашний каталог другого пользователя. Такая мера популярна у администраторов виртуального (shared) хостинга.

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

  • web-сервер работает под учётной записью root;
  • права на домашний каталог устанавливаются в 0750 (rwxr-x---), а пользователь, под которым работает web-сервер, вносится в группу, которой принадлежит пользователь.

Далее »

Автор: , опубликовано в: Linux, Администрирование, комментариев: 2
15
Ноя
2009

nginx и gzip_static: еще один способ снизить нагрузку на сервер

Чем меньше размер страниц сайта, тем меньше расход трафика, загрузка канал и выше скорость загрузки страниц. Один из самых распространённых способов уменьшения страниц — перед отправкой пользователю.

В Apache для этих целей используется mod_deflate, в  — ngx_http_gzip_module.html. В других web-серверах используются похожие решения.

Что mod_deflate, что ngx_http_gzip_module используют сжатие «на лету» — файл сжимается перед отдачей пользователю. Но сжатие — операция, нагружающая процессор, и чем выше степень сжатия, тем больше . Это не было бы проблемой, если бы один и тот же файл не приходилось сжимать каждый раз заново. Далее »

Автор: , опубликовано в: nginx, Администрирование, комментариев: 8
8
Ноя
2009

Модуль поддержки tcpwrappers для nginx

 — система контроля доступа, используемая для ограничения доступа к серверам на -подобных операционных системах (, BSD). Контроль доступа может осуществляться, например, по имени хоста (полному или частичному), адресу, подсети. Подробности приведены здесь.

TCP Wrappers очень удобно использовать с программами для защиты от червей (BlackHosts, DenyHosts, Fail2ban), в частности, для защиты от HTTP-сканирования.

Огромным достоинством TCP Wrappers является возможность динамической конфигурации списков контроля доступа (что избавляет от необходимости перезапускать защищаемый сервис) и простота файлов конфигурации (это субъективно).

К сожалению, не поддерживает TCP Wrappers из коробки. К счастью, это можно исправить. Далее »

Автор: , опубликовано в: C/C++, nginx, Администрирование, Безопасность, комментариев: 2
10
Окт
2009

Борьба со спамом на уровне фильтра пакетов

Два месяца назад я писал об одном очень жестком методе борьбы с последствиями установки плагина Time spent on blog. Теперь этот же самый метод применяем на -ботах, которые безуспешно пытаются оставить спам в комментариях.

Отвлекусь от темы и отвечу на вопрос о необходимости применения жестких мер против спамеров: во-первых, они генерируют много паразитного трафика ( не бесплатен), во-вторых, они генерируют лишнюю нагрузку на сервер, в-третьих, вода камень точит — любую капчу можно подобрать. Далее »

Автор: , опубликовано в: Linux, WordPress, Администрирование, комментариев: 6
26
Июл
2009

dk-filter: util.c:47: dk_sterilize: Assertion `str != ((void *)0)’ failed: Часть 2

Вчера я писал об ошибке в dk-filter, приводящей к гибели процесса, если сконфигурирован использовать разные ключи для подписи сообщений от разных отправителей, и ключ для отправителя не найден.

Я предложил два решения: тривиальное (изменить файл конфигурации так, чтобы все отправители начинались со звёздочки) и правильное (пропатчить код демона, ибо фатальное завершение по такой пустяковой ошибке — это неправильно).

Именно о втором решении далее пойдёт речь. Далее »

Автор: , опубликовано в: C/C++, Linux, Администрирование, комментариев: нет
26
Июл
2009

dk-filter: util.c:47: dk_sterilize: Assertion `str != ((void *)0)’ failed.

На днях столкнулся с неприятной ошибкой: при отправлении письма падал с ошибкой

dk-filter: util.c:47: dk_sterilize: Assertion `str != ((void *)0)’ failed..

В баг-трекере решения проблемы не нашлось (хотя проблеме больше года), пришлось все решать самому (люблю open source!).

Проблема проявлялась, когда dk-filter был запущен в конфигурации, использующей несколько ключей для подписывания сообщений (грубо говоря, каждому домену полагался свой ключ). Далее »

Автор: , опубликовано в: Linux, Администрирование, комментариев: 1
25
Июл
2009

Linux: экстренная перезагрузка сервера

Иногда случаются ситуации (поменьше бы их таких), когда из-за какой-нибудь ошибки оборудования или повреждения файловой системы операционная система входит в ступор и не может прочитать ничего с диска. Систему нужно перезагружать, но система не может прочитать /sbin/reboot, а техническая поддержка тупит (не могу не передать привет техперсоналу HiVelocity.net).

В этом случае систему можно перезагрузить двумя командами echo (нужны права администратора). Далее »

Автор: , опубликовано в: Linux, Администрирование, комментариев: 6
6
Июл
2009

Резервное копирование баз данных с отправкой на email

Навеяно статьёй Дмитрия «Ежедневный бэкап для WordPress с помощью Gmail», которую я очень рекомендую к прочтению.

Основное отличие моего метода кроется в моих «религиозных предпочтениях»: я считаю, что вряд ли какая программа сможет сделать копию базы быстрее, чем mysqldump, и бинарный файл всегда работает быстрее, нежели самый оптимизированный -код. Поэтому никаких лишних плагинов для , только подручные средства :-) Хотя данное решение не подойдёт людям, использующих shared-хостинг. Далее »

Автор: , опубликовано в: Linux, Администрирование, комментариев: 2
19
Апр
2009

PHP 5.2.6 в Debian Lenny: неожиданный сюрприз

Есть сервер с Lenny на борту. На сервер стоит Apache, , 5 — одним словом, стандартный web-сервер. Плюс XCache и ionCube Loader.

С некоторого времени стали замечать, что PHP начал падать с ошибками сегментации, причем падал исключительно CLI, модуль Apache работал исправно. Далее »

Автор: , опубликовано в: Linux, PHP, Администрирование, комментариев: 5
13
Мар
2009

Подсчёт трафика в nginx: часть 2

В статье «Подсчёт трафика в nginx» я приводил один из возможных вариантов живого подсчёта трафика в .

У прошлого решения есть недостатки:

  • используется три лишних процесса;
  • используется много файловых дескрипторов (зависит от количества виртуальных хостов).

Я на днях нашёл еще один вариант. Далее »

Автор: , опубликовано в: Linux, MySQL, nginx, Администрирование, комментариев: 7
21
Фев
2009