Модуль поддержки tcpwrappers для nginx
TCP Wrappers — система контроля доступа, используемая для ограничения доступа к серверам на UNIX-подобных операционных системах (Linux, BSD). Контроль доступа может осуществляться, например, по имени хоста (полному или частичному), адресу, подсети. Подробности приведены здесь.
TCP Wrappers очень удобно использовать с программами для защиты от червей (BlackHosts, DenyHosts, Fail2ban), в частности, для защиты от HTTP-сканирования.
Огромным достоинством TCP Wrappers является возможность динамической конфигурации списков контроля доступа (что избавляет от необходимости перезапускать защищаемый сервис) и простота файлов конфигурации (это субъективно).
К сожалению, nginx не поддерживает TCP Wrappers из коробки. К счастью, это можно исправить. Далее »
Автор: Vladimir, опубликовано в: C/C++, nginx, Администрирование, Безопасность, комментариев: 2Окт
2009
ngx_drop_privs: принцип минимальных привилегий в nginx
nginx — замечательный web-сервер, но, как и практически любой программный продукт, не свободен от ошибок, временами весьма критических.
Архитектура nginx такова, что обычно имеется один привилегированный процесс (запускаемый от всемогущего root) и один или более рабочих процессов (обычно работающих от имени непривилегированного пользователя). Тем не менее, я видел конфигурации, в которых все процессы nginx работают под привилегированным пользователем. Один из примеров — многопользовательский сервер, Document Root сайтов на котором имеет права вида 0700 (запускать несколько nginx и настраивать проксирование — тоже не лучший выход).
Кроме того, за последние неполные пять лет в nginx найдено 112 ошибок (segmentation fault), некоторые из которых теоретически могут дать возможность выполнения произвольного кода в системе (wget http://sysoev.ru/nginx/changes.html -q -O - | grep segmentation | wc -l).
Я не знаю, все ли ошибки затрагивали только рабочие процессы, либо были ошибки в главном процессе — рисковать не хочется. Так и родилась идея написать модуль для nginx — ngx_drop_privs. Далее »
Сен
2009
cpufreq-info врёт
Обратил внимание, что при задании частоты нулевому ядру, cpufreq-info показывает одинаковую частоту для всех ядер. Меня это удивило, так как раньше я мог задавать разные частоты для каждого ядра. Решил проверить экспериментально. Далее »
Авг
2009
Возвращаем Skype к жизни в Ubuntu Karmic Koala на 64-битной платформе
Почти год назад я писал об аналогичной проблеме со Skype в Ubuntu Intrepid Ibex. Воистину, история имеет тенденцию к повторению — сменился релиз, проблема осталась. Тем не менее, прошлогоднее исправление не помогает, поэтому приходится изобретать что-то новое.
К слову, проблема всё та же:
ALSA lib ../../src/conf.c:2700:(snd_config_hooks_call) Cannot open shared library /usr/lib/alsa-lib/libasound_module_conf_pulse.so
ALSA lib ../../../src/control/control.c:909:(snd_ctl_open_noupdate) Invalid CTL hw:0
Но решается иначе. Далее »
Автор: Vladimir, опубликовано в: Linux, комментариев: 3Авг
2009
SieFS для Debian Lenny/Ubuntu Jaunty
Почти год назад я писал о SieFS — FUSE-драйвере для файловой системы телефонов Siemens. SieFS нет в репозиториях Ubuntu, к тому же он собирается с проблемами.
Так как далеко не все любят собирать программы из исходников (и плясать с бубном, чтобы кривая программа собралась), а драйвер, как оказалось, нужен многим, я собрал DEB-пакет для SieFS (под архитектуру AMD-64; пакет собирался в Ubuntu 9.04 Jaunty Jackalope, но должен работать в Debian Lenny). Далее »
Автор: Vladimir, опубликовано в: Linux, комментариев: 5Авг
2009
TCP/IP SYN+FIN Packet Filtering Weakness
Сканируя Nessus парочку хостов, столкнулся с тем, что Nessus определял, что система (Linux 2.6.x) не фильтрует TCP/IP пакеты, у которых установлены флаги SYN и FIN, что, теоретически, может привести к обходу межсетевого экрана (firewall). Далее »
Авг
2009
monit 5.0.3 для Debian/Ubuntu Linux
monit предоставляет весьма удобный для системного администратора инструмент мониторинга состояния систем, включая процессы, исполняемые и конфигурационные файлы, потребление ресурсов. monit умеет выполнять локальные действия (например, запускать упавшие процессы, перезапускать процессы, потребляющие слишком много ресурсов и т.п.), слать предупреждения почтой; имеет опциональный web-интерфейс. Далее »
Июл
2009
Борьба со спамом на уровне фильтра пакетов
Два месяца назад я писал об одном очень жестком методе борьбы с последствиями установки плагина Time spent on blog. Теперь этот же самый метод применяем на спам-ботах, которые безуспешно пытаются оставить спам в комментариях.
Отвлекусь от темы и отвечу на вопрос о необходимости применения жестких мер против спамеров: во-первых, они генерируют много паразитного трафика (трафик не бесплатен), во-вторых, они генерируют лишнюю нагрузку на сервер, в-третьих, вода камень точит — любую капчу можно подобрать. Далее »
Автор: Vladimir, опубликовано в: Linux, WordPress, Администрирование, комментариев: 6Июл
2009
svn: could not connect to server
Сегодня столкнулся с интересной ошибкой при попытке экспорта проекта из репозитория Subversion:
svn: OPTIONS of 'https://my.repository.com/svn/trunk': could not connect to server (https://my.repository.com)
Произошло это после обновления системы (на машине стоит Debian).
Первое подозрение — что-то не то с DNS, ибо извне к репозиторию есть доступ. Проверил:
--2009-07-07 13:10:21-- https://my.repository.com
Resolving my.repository.com... 12.34.56.78
Connecting to my.repository.com|12.34.56.78|:443... connected.
HTTP request sent, awaiting response... 200 OK
Получается, что проблема где-то в subversion, а не в невозможности соединения с сервером или криво настроенном DNS.
Далее »
Июл
2009
Linux: экстренная перезагрузка сервера
Иногда случаются ситуации (поменьше бы их таких), когда из-за какой-нибудь ошибки оборудования или повреждения файловой системы операционная система входит в ступор и не может прочитать ничего с диска. Систему нужно перезагружать, но система не может прочитать /sbin/reboot, а техническая поддержка тупит (не могу не передать привет техперсоналу HiVelocity.net).
В этом случае систему можно перезагрузить двумя командами echo (нужны права администратора). Далее »
Июл
2009

Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.

