Записи с тэгом ‘Apache’
Fcgiwrap, or How to run CGI-scripts without Apache and mod_cgi
Tuesday, August 25th, 2015
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.
Метки: Apache, Linux, Nginx
Категория: Apache, Linux, Nginx | Нет комментариев »
Три способа по-быстрому поднять forward proxy
Friday, January 24th, 2014
Forward proxy – это (обычно) анонимный прокси, к которому клиент обращается и сообщает адрес хоста, к которому он хочет подключиться.
При обращении на такой прокси браузер особым образом формирует запросы. В случае обычного HTTP протокола он просто добавляет обязательный заголовок Host:, а сам URL в запросе формирует в абсолютном виде. В этом случае принципиальной разницы с reverse proxy нет. Но при обращении на HTTPS или любой нестандартный порт происходит установление сквозного туннеля с целевым сервером с помощью метода CONNECT, отправляемого на прокси. Прокси при этом использует заголовки этого запроса для установления соединения, но не может ни ловить сессионные SSL-ключи, ни тем более смотреть проходящий трафик.
Работать в режиме forward proxy могут многие серверы, но не все. Тот же Nginx, например, хоть и считается одним из лучших reverse proxy, категорически не работает как forward и вообще не умеет обрабатывать метод CONNECT. Поэтому я по-быстрому рассмотрю Apache TrafficServer, Apache/mod_proxy и Squid. Плюс задача будет усложнена условием, чтобы прокси-сервер пропускал только трафик, идущий на определённый домен и его суб-домены, и не все серверы с этим справятся (по крайней мере "по-быстрому").
Метки: Apache, Linux
Категория: Linux | Нет комментариев »
Заметки об Apache, часть 6: Простая защита от ДДоС/брутфорса средствами ModSecurity
Wednesday, March 27th, 2013
Года, эдак, три назад я уже постил здесь статейку "mod_security2 для Apache", касающуюся использования модуля ModSecurity. Она и сейчас вполне занятна, полезна и самодостаточна. И там даже был пример на нашу сегодняшнюю тему, но я хотел бы эту самую тему углубить и рассмотреть более подробно. Посмотрим, как можно защититься от перебора паролей на сайте или даже обеспечить простенькую (это ключевое слово, так как от забивания полосы канала это не спасёт) защиту от DDoS. Посмотрим, как в ModSecurity можно работать со счётчиками и реализовывать на этих счётчиках сценарии защиты.
Итак, мы предполагаем, что некоторые антисоциальные элементы могут начать доставлять нам неудобства, заваливая сайт некоторыми запросами на логин или, например, на некоторые тяжёлые страницы, нагружающие бэкенд. Давайте их банить.
Метки: Apache, ModSecurity
Категория: Apache | 1 Комментарий »
Заметки об Apache, часть 5: Принудительная компрессия контента
Tuesday, January 29th, 2013
В некоторых ситуациях может потребоваться сжимать отдаваемые страницы, даже если пользователь не указал в заголовке Accept-Encoding поддержки gzip или вообще не проставил оный заголовок. Чаще всего этими пользователями оказываются вовсе не бедолаги с древними браузерами середины девяностых годов, а простые парсеры wget-чики, которых можно было бы просто забанить, но по какой-то причине жалко. Но трафика тоже жалко. Так что можно придумать два способа, как заставить Apache сжимать контент независимо от Accept-Encoding. (more…)
Метки: Apache
Категория: 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-дистров это выглядит так:
Метки: Apache, Nginx
Категория: Apache, Nginx | 1 Комментарий »
Заметки об Apache, часть 3: Отключаем слабое шифрование и SSLv2
Sunday, August 7th, 2011
Согласно требованиям PCI-DSS, сайты, работающие с конфиденциальной информацией пользователей, не должны поддерживать слабые алгоритмы шифрования, а также протокол SSL версии 2. Наборы тестов на соответствие требованиям PCI-DSS обычно выявляют эти моменты. Впрочем, для соблюдения этих требований многого не требуется. Ниже посмотрим, как проверить настройки ssl своего сервера Apache и какие изменения надо внести в случае необходимости.
Метки: Apache, SSL
Категория: Apache | Нет комментариев »
AWStats: время обслуживания запроса
Monday, August 1st, 2011
Недавно потребовалось в отчёт, генерируемый AWStats’ом добавить раздел со статистикой по времени, затрачиваемом на обработку запроса. Вроде бы простая на первый взгляд задача потребовала достаточно много времени на нормальное решение. Поэтому приведу это решение здесь.
(more…)
Метки: Apache, AWStats
Категория: Apache | Нет комментариев »
Заметки об Apache, часть 2: Прячем лишнюю информацию из заголовков
Tuesday, May 25th, 2010
— «Ёжик в тумане»
Не то чтобы наличие в заголовках ответов от web-сервера информации, скажем, о версии Apache или об установленной операционной системе являлось такой уж большой уязвимостью. Тем более не скажу, что удаление этой информации сразу сделает сервер защищенным. Но тем не менее даже если сервер станет надежнее хотя бы на сотую долю процента (не знаю уж от какой величины считать), то усилия явно не напрасны. Тем более, что информация о вашей версии web-сервера и тем более об операционной системе рядовым пользователям нужна как мне, например, третье ухо. Но зато эта информация очень нужна всяким любителям статистики навроде того, что Apache стоит на x% серверов, IIS – на y%, а nginx – на z%, а также всевозможным деструктивным элементам.
Стоит, естественно, отдавать себе отчёт в том, что атаки на сервер производятся в основном ботами, которым недосуг смотреть заголовки ответов – они могут спокойно перепробовать все известные эксплойты, инъекции и прочее. Так что защита в основном для самоуспокоения. Но все же…
Метки: Apache
Категория: Apache, Security | 1 Комментарий »
Заметки об Apache, часть 1: Архивация и клиентское кэширование
Thursday, April 22nd, 2010
Решил, что надо бы оформить и систематизировать всю ту кашу в моей голове, которая касается поддержания веб-сервера, оптимизации, проксирования и всего прочего. Как обычно – полезно для приведения мыслей в порядок и для возможной экономии времени в будущем.
Скорее всего, тут потребуется целый цикл заметок, но начну пока с динамической архивации контента и клиентского кэширования.
Метки: Apache
Категория: 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, SSL, Tomcat
Категория: Apache, Security, Web-dev | 19 Комментариев »