Архив метки: Apache

Apache веб сервер, большинство сайтов работают именно на нем.

Как конвертировать сертификат PFX в файл PEM с помощью OpenSSL?

Преобразование файла PFX (PKCS #12) в формат PEM (Privacy Enhanced Mail) достаточно просто на Linux и Unix-подобных системах.

В этой статье мы рассмотрим, как преобразовать файл сертификата в формате PFX в файл PEM с помощью OpenSSL из командной строки. Читать

Как найти список популярных IP-адресов, обращающихся к Apache или Nginx

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

Одним из положительных моментов в определении основных IP-адресов, обращающихся к вашему веб-серверу, является наличие файла(ов) журнала доступа, в котором хранится информация о каждом действии, происходящем на сервере. Читать

Обзор 5 бесплатных WAF / Web Application Firewall

Тысячи веб-сайтов взламываются каждый день из-за неверной конфигурации или уязвимого кода.

Web Application Firewall (WAF) – один из лучших способов защитить Ваш веб-сайт от сетевых угроз.

Если ваш веб-сайт доступен в интернете, вы можете использовать онлайновые инструменты, чтобы отсканировать веб-сайт на наличие уязвимостей, чтобы понять, насколько безопасен ваш веб-сайт. Читать

Как настроить mod_jk на HTTP-сервере Apache

Mod_jk — это модуль или коннектор Apache, который соединяет контейнер сервлетов Apache Tomcat с веб-серверами, такими как Apache, IIS и другими. Mod_jk — это полная замена старого модуля mod_jser, который обрабатывает связь между Tomcat и HTTP-серверами с использованием протокола Apache JServ.

Мы не будем углубляться в работу модуля mod_jk, поскольку это выходит за рамки данной статьи. Вместо этого мы сосредоточимся на том, как интегрировать его с HTTP-сервером Apache.

Узнайте больше о том, как работает mod_jk.

Примечание
В этой статье мы предполагаем, что у вас установлены и настроены серверы Apache Tomcat и Apache HTTPD. Если нет, просмотрите наши руководства по темам.

 

Шаг 1. Загрузите и установите mod_jk

Первым шагом является загрузка модуля mod_jk для Linux и его сборка для веб-сервера Apache. Если вы работаете в Windows, вы найдете предварительно созданный двоичный файл для настройки mod_jk.

Откройте терминал и введите команду:

wget https://dlcdn.apache.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz

 

После загрузки пакета распакуйте его как:

tar xvf tomcat-connectors-1.2.48-src.tar.gz

 

Затем перейдите в извлеченный каталог /native как:

cd tomcat-connectors-1.2.48-src/native/

 

Находясь в собственном каталоге, выполните команду:

./configure -with-apxs=/usr/bin/apxs

 

Приведенная выше команда устанавливает путь к инструментам apxs для HTTP-сервера Apache. Если вы не знаете расположение инструментов apxs, используйте команду which как:

which apxs

/usr/bin/apxs

 

Если вы получили пустой результат, вам необходимо установить пакет apache dev с помощью команды:

sudo apt install apache2-dev

# или

yum install httpd-devel

 

Следующим шагом является создание системного объектного файла для модуля mod_jk.

Используйте команду make в собственном каталоге.

make

 

После успешного завершения вы должны увидеть каталог apache-2.0, созданный в собственном каталоге.

Вы должны увидеть в каталоге файл mod_jk.so.

Скопируйте файл mod_jk.so в каталог модулей apache. Он должен находиться в /usr/lib/apache2/modules или /etc/httpd/modules.

sudo cp mod_jk.so /usr/lib/apache2/modules/

 

Шаг 2: Загрузите модуль mod_jk

После того, как мы добавили модуль mod_jk в каталог модулей Apache HTTPD, нам нужно загрузить его, отредактировав файл httpd.conf.

В каталоге conf отредактируйте файл httpd.conf с помощью вашего любимого текстового редактора? например Vim.

vim /etc/apache2/apache2.conf

 

Затем нам нужно добавить директиву include в файл конфигурации apache для загрузки модуля. Вы можете узнать, как загрузить модули, с помощью grep.

grep -i ^Include /etc/apache2/apache2.conf

 

Приведенная выше команда выдаст такой результат, как показано:

IncludeOptional mods-enabled/*.load

IncludeOptional mods-enabled/*.conf

Include ports.conf

IncludeOptional conf-enabled/*.conf

IncludeOptional sites-enabled/*.conf

 

Из файла конфигурации выше, модули расположены в каталоге с поддержкой модов.

Перейдите в каталог /etc/apache2/mods-enabled и создайте файл mod_jk.conf.

cd /etc/apache2/mods-enabled/ && sudo touch mods_jk.conf

 

Внутри файла добавьте следующие записи.

LoadModule jk_module "/usr/lib/apache2/modules/mod_jk.so"

JkWorkersFile /etc/apache2/conf-enabled/workers.properties

JkShmFile     /etc/apache2/logs/mod_jk.shm

JkLogFile /etc/apache2/logs/mod_jk.log

JkLogLev JkMount  /stat/*  stat

JkMount  /*  balancer el debug

JkLogOptions +forwardKeySize +ForwardURICompat -ForwardDirectories

 

В JkWorkersFile мы определяем информацию об узле.

JkLogFile определяет расположение файла журнала.

JkLogLevel устанавливает уровень журнала для отладки

 

Шаг 3: Настройка файла рабочих

В файле воркера, указанном по пути выше, мы определяем информацию о запущенных серверах приложений.

Вот пример конфигурации:

worker.list=stat

worker.jk-status.type=status

worker.jk-status.read_only=true



worker.tomcat_1.type=ajp13

worker.tomcat_1.port=9001

worker.tomcat_1.host=127.0.0.1



worker.tomcat_2.type=ajp13

worker.tomcat_2.port=9002

worker.tomcat_2.host=127.0.0.1



worker.tomcat_3.type=ajp13

worker.tomcat_3.port=9003

worker.tomcat_3.host=1270.0.0.1



worker.list=balancer

worker.balancer.type=lb

worker.balancer.balance_workers=tomcat_1,tomcat_2,tomcat_3

 

После этого у вас должен быть установлен и готов к работе модуль mod_jk на сервере Apache.

 

Заключение

В этой статье показано, как настроить и использовать модуль mod_jk на сервере HTTPD Apache. Вы можете узнать больше из официальных документов.



2021-09-26T22:08:14
Apache

Как включить ведение журнала отладки в Apache

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

Журналы позволяют собирать информацию о службах и приложениях, запущенных в вашей системе, и сохранять этот журнал в файл для использования в будущем.

Из этой статьи вы узнаете, как собрать подробную информацию о службе Apache Tomcat, включив режим DEBUG.

Примечание
В этой статье мы не рассматриваем установку Apache Tomcat. Ознакомьтесь с нашими руководствами по этой теме, чтобы узнать больше.

 

Как включить ведение журнала отладки Apache Tomcat в Linux

Чтобы включить ведение журнала отладки для Apache Tomcat в Linux, отредактируйте файл logging.properties. Файл находится в каталоге conf корневой установки Apache Tomcat.

Например:

vim /opt/tomcat/conf/logging.properties.

 

Найдите следующую запись:

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE

 

Измените значение с FINE на ALL.

Последняя запись должна быть:

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = ALL

 

Сохраните файл и закройте. Вам нужно будет перезапустить Tomcat Service, чтобы включить уровни журнала.

Если вам не нужны все сообщения журнала от Tomcat, вы можете установить различные уровни, используя уровни журнала JULI, как:

  • SEVERE — Сообщения о серьезных сбоях
  • WARNING — возможные ошибки
  • INFO — Информационные журналы
  • FINE — Журналы трассировки
  • CONFIG — статические журналы конфигурации
  • FINEST — подробные журналы трассировки
  • FINER — подробные журналы трассировки
  • ALL — все сообщения (режим отладки)

 

Вы также можете включить ведение журнала для внутренних компонентов Apache Tomcat, изменив следующие значения на all:

org.apache.catalina.session.level=FINE

java.util.logging.ConsoleHandler.level=FINE

 

на:

org.apache.catalina.session.level=ALL

java.util.logging.ConsoleHandler.level=ALL

Как включить журнал отладки Apache Tomcat в Windows

Предположим, вы запускаете Apache Tomcat на машине с Windows. Вы можете использовать предоставленный интерфейс конфигурации для управления уровнями журнала.

Откройте меню «Пуск» и найдите «Настроить Tomcat».

Запустите приложение и перейдите на вкладку ведения журнала. Выберите уровень журнала и установите его на DEBUG.

Затем нажмите «Применить» и перейдите на вкладку «Общие». Наконец, нажмите «Остановить», а затем «Пуск», чтобы перезапустить службу Apache.

 

Заключение

В этой статье показано, как включить ведение журнала отладки для Apache Tomcat в системах Windows и Linux.

Спасибо за чтение.



2021-09-26T15:17:57
Apache

Настройка работы модуля mod_rewrite веб-сервера Apache

Очень часто при администрировании веб-сервера Apache возникает необходимость настройки режимов обработки адресов URL. Например необходимо, чтобы запросы автоматически перенаправлялись с одного адреса на другой. Также, если нужно, чтобы веб-приложения работали на «чистых» ссылках, то для этого также необходима настройка модуля mod_rewrite. В данной статье на простых примерах будут рассмотрены базовые приёмы обработки перезаписи URL, реализуемой модулем mod_rewrite, на основе которых можно легко построить свои собственные правила и режимы обработки ссылок.

Включение модуля mod_rewrite и управление его работой

Обычно модуль mod_rewrite уже имеется в базовой поставке Apache и устанавливать его дополнительно не нужно. Остаётся его только включить. Например, для Ubuntu:

$ sudo a2enmod rewrite

Управление работой самого модуля mod_rewrite осуществляется при помощи файла .htaccess. Этот файл предназначен для активации и задействования директив веб-сервера Apache индивидуально для каждого из виртуальных хостов (или доменов).

Итак, для начала необходимо удостовериться, что Apache разрешает обработку файлов .htaccess. В конфигурационном файле Apache /etc/apache2/apache2.conf директива AllowOverride должна иметь значение All в блоке:

Options Indexes FollowSymLinks

AllowOverride All

Require all granted

Следует заметить, что вместо «/var/www/html» может быть указан и другой каталог, в зависимости от того, как и где настроено расположение корневого каталога виртуальных хостов Apache. Также необходимо проверить, что в файле /etc/sites-enabled/000-default.conf не содержится лишних директив (а лучше их убрать) AllowOverride, противоречащих тем, что установлены в файле apache2.conf. После сохранения всех изменений необходимо перезапустить веб-сервер:

$ sudo systemctl restart apache2

Далее, в начало файла .htaccess нужно добавить директиву:

RewriteEngine on

Она указывает, что Apache должен использовать модуль mod_rewrite для обработки условий и правил перезаписи URL.

Файл .htaccess может быть создан, как уже отмечалось, отдельно для каждого из виртуальных хостов. Обычно его помещают в корневой каталог, в котором находятся файлы требуемого виртуального хоста. В данном руководстве для расположения файла .htaccess будет использоваться каталог /var/www/html/ для глобальной обработки URL на веб-сервере.

Пример создания простой страницы и перезаписи URL для неё

Для демонстрации работы модуля mod_rewrite по перезаписи URL страницы, можно эту самую страницу создать (в самом простом варианте) и применить к ней (точнее, к её адресу) простой шаблон перезаписи.

Итак, нужно создать файл HTML-страницы hello.html, которая будет размещаться в каталоге /var/www/html/hello.html со следующим содержимым:

<html>

   <head>

      <title>Hello, World</title>

   </head>

   <body>

     <h1>Hello, Worl</h1>

   </body>

</html>

Эта страница будет доступна по адресу ip_server/hello.html. Здесь «ip_server»– это IP-адрес сервера, на котором работает Apache. Вместо IP-адреса также можно использовать и доменное имя при должных настройках.

Особенность в том, что эта страница доступна только если вводить адрес, содержащий «hello.html». Любое другое написание, например «hello» приведёт к ошибке 404 — нет такого документа. Чтобы иметь возможность получать доступ к странице hello.html по «hello» нужно всего лишь настроить перезапись адреса. Редактирование файла .htaccess:

$ sudo nano /var/www/html/.htaccess

После ранее добавленной строки «RewriteEngine on» нужно добавить следующую:

RewriteRule ^hello$ hello.html [NC]

Только после этих изменений в веб-браузере по адресу ip_server/hello страница hello.html будет доступна.

Синтаксис добавленной записи следующий:

  •  ^hello$ — это шаблон подстановки, который должен совпадать с частью URL, вводимого в веб-браузере. Здесь символ (^) обозначает начало фразы шаблона, а символ ($) — его окончание;
  • hello.html – это действительный путь к исходной странице hello.html;
  • [NC] – флаг, отключающий зависимость написания URL символами разного регистра.

В результате, теперь страница hello.html будет доступна по следующим адресам: ip_server/hello, ip_server/Hello и ip_server/hello.html.

Таким образом и происходит перезапись URL модулем mod_rewrite по инструкциям из .htaccess.

Применение общих шаблонов перезаписи

Выражения в файле .htaccess, применённые в предыдущей главе — это ничто иное, как правила перезаписи. В общем виде они имеют следующий синтаксис:

RewriteRule pattern substitution [flags]

Здесь RewriteRule – это, собственно, сама директива, pattern – шаблон, задаваемый регулярным выражением. Он предназначен для поиска подстроки. Далее, substitution – это целевой действительный URL. А flags – флаги опций, которые задают определённое специфическое поведение правил.

Самым наглядным и общим примером является перезапись (точнее, упрощение) строки дополнительного запроса. Они используются веб-приложениями для передачи параметров скриптам, по которым нужно получить соответствующий результат. Строки запроса начинаются с символа «?» и заканчиваются символом «&». Например:

http://my-site.ru/results.php?item=shoes&season=summer

Если этот URL очистить с помощью правил перезаписи, то упрощённый вариант будет выглядеть примерно так:

http://my-site.ru/shoes/summer

Это куда как более удобно для восприятия. Подобные результаты очистки URL достигаются наиболее часто используемыми шаблонами перезаписи:

  • простая замена;
  • группирование и сопоставление;
  • сопоставление наборов символов;

В первом случае нужно создать следующее правило:

RewriteRule ^shoes/summer$ results.php?item=shoes&season=summer

В результате подстрока URL «results.php?item=shoes&season=summer» будет переписываться строкой «shoes/summer».

Второй случай используется, когда нужно оптимизировать используемое правило так, чтобы оно являлось универсальным для разных строк запросов, т. е. с разными параметрами. Для данного примера пусть требуется, чтобы правило обрабатывало строку запросов для нескольких сезонов, а не только для «summer». Для этого нужно сначала определить набор самих параметров, которые должны разделяться символом вертикальной черты «|». После этого можно в регулярном выражении ссылаться на эту группу параметров, используя переменную $1, где «1» — это номер набора. Например:

RewriteRule ^shoes/(summer|winter|autmn|spring) results.php?item=shoes&season=$1

Сопоставление набора символов используется обычно, когда нужно, чтобы пользователи могли открывать чистые ссылки любых других разделов сайта, а не только «shoes», как в данном примере. Для этого нужно:

  1. составить регулярное выражение, определяющее все буквенные и цифровые символы, которые могут повторяться неограниченное число раз. Такое выражение заключается в квадратные скобки, объединяемыми знаком плюса «+»;
  2. это выражение нужно заключить в группу (в круглые скобки) и присвоить его переменной $2 – группа №2.

В результате получится следующее правило:

RewriteRule ^([A-Za-z0-9]+)/(summer|winter|autmn|spring) results.php?item=$1&season=$2

Полученное правило перепишет URL:

http://my-site.ru/results.php?item=hat&season=summer

в следующую чистую ссылку:

http://my-site.ru/hat/summer

Задание условий RewriteCond для работы правил

Если задать определённое условие с помощью директивы RewriteCond, то если оно выполняется, Apache запустит выполнение правила, следующего сразу за этим условием. Синтаксис RewriteCond следующий:

RewriteCond tststr condition [flags]

Здесь tststr – строка, с которой сравнивается условие. А condition – шаблон, с которым сравнивается строка, заданная в tststr. Дополнительные параметры задаются с помощью флагов flags.

В качестве примера можно создать условие, при котором все запросы к несуществующим страница будут перенаправляться например, на домашнюю страницу:

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^admin/(.*)$ /admin/home

Здесь выражение %{REQUEST_FILENAME} выполняет проверку строки запроса. Далее, оператор (!), означающий условие «не», предписывает, что отсутствие требуемого в запросе файла (-f) должно указывать Apache запускать в обработку следующее за этим условием правило перенаправления. Далее выполняется само правило переадресации, которое перенаправляет все запросы на страницу /admin/home.

Пример блокировки всего трафика, кроме поступающего с определённого IP-адреса:

RewriteCond %{REMOTE_ADDR} !^(12.38.57.123)$

RewriteRule (.*) - [F, L]

Здесь флаг «F» запрещает доступ, а флаг «L» – указывает, что данное правило должно выполниться последним.

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

RewriteCond %{REMOTE_ADDR} ^(12.38.57.123)$

RewriteRule (.*) - [F, L]

Заключение

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

Apache.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.



2019-05-13T12:11:24
Apache