Архив категории ‘Apache’

Fcgiwrap, or How to run CGI-scripts without Apache and mod_cgi

Tuesday, August 25th, 2015

This buzz is not without the reason.

Soviet cartoon «Winnie the Pooh»

pooh-buzz

It’s definitely a bad idea to get Apache running only for executing some lightweight CGI-scripts. And it’s definitely a good idea to use Nginx where possible. But Nginx while being a perfect reverse proxy just cannot run GGI because of its event-based paradigm. This is the situation where the strengths become weaknesses. But we can still deal with this by virtue of some third-party tools like fastcgi wrappers. One of such tools is fcgiwrap server and in this post I’ll show how to build it and how to use it.

(more…)

Метки: , ,
Категория: Apache, Linux, Nginx | Нет комментариев »


Заметки об Apache, часть 6: Простая защита от ДДоС/брутфорса средствами ModSecurity

Wednesday, March 27th, 2013

Попробуй хотя бы… Сыграем мир в четыре руки?

Г.Л.Олди «Восставшие из рая»

Года, эдак, три назад я уже постил здесь статейку "mod_security2 для Apache", касающуюся использования модуля ModSecurity. Она и сейчас вполне занятна, полезна и самодостаточна. И там даже был пример на нашу сегодняшнюю тему, но я хотел бы эту самую тему углубить и рассмотреть более подробно. Посмотрим, как можно защититься от перебора паролей на сайте или даже обеспечить простенькую (это ключевое слово, так как от забивания полосы канала это не спасёт) защиту от DDoS. Посмотрим, как в ModSecurity можно работать со счётчиками и реализовывать на этих счётчиках сценарии защиты.

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

(more…)

Метки: ,
Категория: Apache | 1 Комментарий »


Заметки об Apache, часть 5: Принудительная компрессия контента

Tuesday, January 29th, 2013

Талант – не редкость, редкость – умение выжить при своих талантах.

Нил Стивенсон «Ртуть»

В некоторых ситуациях может потребоваться сжимать отдаваемые страницы, даже если пользователь не указал в заголовке Accept-Encoding поддержки gzip или вообще не проставил оный заголовок. Чаще всего этими пользователями оказываются вовсе не бедолаги с древними браузерами середины девяностых годов, а простые парсеры wget-чики, которых можно было бы просто забанить, но по какой-то причине жалко. Но трафика тоже жалко. Так что можно придумать два способа, как заставить Apache сжимать контент независимо от Accept-Encoding. (more…)

Метки:
Категория: Apache | Нет комментариев »


Заметки об Apache, часть 4: Пишем ip-адрес в access.log, находясь за Nginx’ом

Thursday, September 20th, 2012

За исключением зефира в шоколаде в мире больше не существовало вещи, об которую Моржов не смог бы открыть бутылку пива.

Алексей Иванов «Блуда и МУДО»

Если Apache стоит за reverse proxy в виде солнцеподобного Nginx'а, то без осуществления дополнительных телодвижений в access.log апача будет писаться ip-адрес Nginx'а вместо ip-адреса пользователя. В большинстве случаев такие вещи никого не волнуют, но для условных mod-rewrite'ов, для ограниченного доступа или просто для порядку можно сделать так, чтобы всё было чин по чину.

Для решения задачи понадобится модуль mod_rpaf (rpaf расшифровывается как reverse proxy add forward). Он умеет переписывать адрес отправителя при наличии заголовка X-Forwarded-For в запроса и при совпадении исходного адреса со списком адресов прокси.

Для этого прикручиваем к Apache модуль mod_rpaf. Для deb-дистров это выглядит так:

 

(more…)

Метки: ,
Категория: Apache, Nginx | 1 Комментарий »


Заметки об Apache, часть 3: Отключаем слабое шифрование и SSLv2

Sunday, August 7th, 2011

Но мы-то не индейцы. Цивилизованному человеку нет нужды переносить страдания, а что до совершения мужественных поступков, то сохрани Форд от подобных помыслов. Если люди начнут действовать на свой риск, весь общественный порядок полетит в тартарары.

– Олдос Хаксли «О дивный новый мир»

Согласно требованиям PCI-DSS, сайты, работающие с конфиденциальной информацией пользователей, не должны поддерживать слабые алгоритмы шифрования, а также протокол SSL версии 2. Наборы тестов на соответствие требованиям PCI-DSS обычно выявляют эти моменты. Впрочем, для соблюдения этих требований многого не требуется. Ниже посмотрим, как проверить настройки ssl своего сервера Apache и какие изменения надо внести в случае необходимости.

(more…)

Метки: ,
Категория: Apache | Нет комментариев »


AWStats: время обслуживания запроса

Monday, August 1st, 2011

Отрешенно, не делая зла, беззаботно живи, словно слон, бредущий сквозь джунгли.

– Гаутама Будда

Недавно потребовалось в отчёт, генерируемый AWStats’ом добавить раздел со статистикой по времени, затрачиваемом на обработку запроса. Вроде бы простая на первый взгляд задача потребовала достаточно много времени на нормальное решение. Поэтому приведу это решение здесь.
(more…)

Метки: ,
Категория: Apache | Нет комментариев »


Заметки об Apache, часть 2: Прячем лишнюю информацию из заголовков

Tuesday, May 25th, 2010

— Я в реке. Пусть река сама несёт меня, – решил Ёжик, как мог глубоко вздохнул, и его понесло вниз по течению.
— «Ёжик в тумане»


Не то чтобы наличие в заголовках ответов от web-сервера информации, скажем, о версии Apache или об установленной операционной системе являлось такой уж большой уязвимостью. Тем более не скажу, что удаление этой информации сразу сделает сервер защищенным. Но тем не менее даже если сервер станет надежнее хотя бы на сотую долю процента (не знаю уж от какой величины считать), то усилия явно не напрасны. Тем более, что информация о вашей версии web-сервера и тем более об операционной системе рядовым пользователям нужна как мне, например, третье ухо. Но зато эта информация очень нужна всяким любителям статистики навроде того, что Apache стоит на x% серверов, IIS – на y%, а nginx – на z%, а также всевозможным деструктивным элементам.
Стоит, естественно, отдавать себе отчёт в том, что атаки на сервер производятся в основном ботами, которым недосуг смотреть заголовки ответов – они могут спокойно перепробовать все известные эксплойты, инъекции и прочее. Так что защита в основном для самоуспокоения. Но все же…

(more…)

Метки:
Категория: Apache, Security | 1 Комментарий »


Заметки об Apache, часть 1: Архивация и клиентское кэширование

Thursday, April 22nd, 2010

Решил, что надо бы оформить и систематизировать всю ту кашу в моей голове, которая касается поддержания веб-сервера, оптимизации, проксирования и всего прочего. Как обычно – полезно для приведения мыслей в порядок и для возможной экономии времени в будущем.
Скорее всего, тут потребуется целый цикл заметок, но начну пока с динамической архивации контента и клиентского кэширования.

(more…)

Метки:
Категория: Apache, Web-dev | 1 Комментарий »


Настройка SSL в Apache и Tomcat

Tuesday, March 2nd, 2010

“—Я вам посылку принёс, только я вам её не отдам, потому как у вас докУментов нету
—Усы, лапы, хвост — вот мои документы!”
— «Каникулы в Простоквашино»

Сегодня посмотрим, как обеспечить поддержку шифрованного протокола https для контейнера сервлетов Tomcat. Причём рассмотрим проблему с двух сторон: как обеспечить поддержку https, если фронтэндом является Apache, и как её обеспечить, если Tomcat сам выполняет функции web-сервера. В целом, это достаточно несвязанные задачи, и их просто можно в отрыве от контекста рассматривать как настройку SSL для двух различных приложений.

Вообще, SSL (Secure Socket Layers) – это протокол шифрования трафика с использованием криптографии с открытым ключом (асимметричной криптографии). Непосредственно для шифрования требуется только открытый ключ и закрытый ключ сервера. А для аутентификации сервера, то есть для проверки, что сервер, с которым контактирует клиент и передаёт ему некоторые конфиденциальные данные тот, за который он себя выдаёт – требуется сертификат. Сертификат, подписанный доверенным Certificate Authority (CA) даёт такую гарантию. При более низких требованиях к безопасности можно использовать самоподписанные сертификаты.

Всё нижеописанное производилось и проверялось с Apache 2.2.12 и Tomcat 6.0.24 на операционных системах CentOS 5.4 и Ubuntu 9.10 c JDK 1.6.0.18.
(more…)

Метки: , ,
Категория: Apache, Security, Web-dev | 19 Комментариев »


Ускоряем web-сценарии на Perl, или ещё раз про Perl vs PHP

Wednesday, February 17th, 2010

“Концепция единообразия жизни позволяет наслаждаться каждым моментом, не отвлекаясь на сопоставление и сравнение.”
— х/ф “Эквилибриум”

Two_fast_two_furious_ver5Идея этой статьи родилась совершенно случайно после пары бесед с адептами PHP, утверждавшими, что Perl для Web-программирования не подходит по причине своей тормознутости, сложности и отсутствию многих полезных фич. Про второй и третий фактор говорить не будем по причине их субъективности. А вот с “тормознутостью” можно поработать. Действительно, из коробки сценарии на PHP должны работать быстрее сценариев на Perl из-за принципиального отличия их базовых парадигм: интерпретатор PHP загружен как модуль в Apache и не требует постоянной загрузки в память на каждый новый HTTP-запрос, в то время как интерпретатор Perl как раз и запускается отдельным процессом, выполняет сценарий и выгружается из памяти. Однако же спор на этом заканчивать рано, потому как для Perl существуют такие замечательные вещи, как mod_perl и FastCGI, которые могут добавить очков в корзину этому языку. При этом mod_perl по аналогии с mod_php загружается в память при старте Apache и не тратит драгоценных мгновений на запуск и выгрузку из памяти (жертвуя, правда, ресурсами сервера при этом), а FastCGI позволяет запустить интерпретатор с зацикленным сценарием один раз и обращаться к нему при поступлении новых запросов (здесь стоит отметить необходимость внесения некоторых изменений в сам скрипт).
Так вот. Попробуем разобраться, как всё это заставить работать и насколько всё это улучшает производительность по сравнению с работой сценариев в стандартном режиме с модулем mod_cgi.

(more…)

Метки: , , ,
Категория: Apache, Perl, Web-dev | Нет комментариев »