Как улучшить производительность и безопасность сервера Apache?

Будучи бесплатным продуктом с открытым исходным кодом, Apache создан Apache Software Foundation. Apache может похвастаться тем, что является одним из наиболее часто используемых веб-серверов в Интернете.

Благодаря своей модульной структуре сервер Apache позволяет использовать различные области применения: вы можете использовать Apache в качестве прокси-сервера (mod_proxy), настроить шифрование для связи между браузером и веб-сервером (mod_ssl) или даже данные заголовка HTTP (mod_headers) и URL-адреса (mod_rewrite).

Очистите сервер Apache

Веб-сервер Apache получает многие из своих хорошо известных функций только через различные модули. При очистке сервера Apache важно знать, какие модули вы используете, а какие могут оставаться неиспользуемыми в вашей системе. Теперь знать каждый модуль наизусть не получится — Apache слишком обширен. Поэтому стоит взглянуть на документацию, которую вы можете найти на веб-сайте Apache Software Foundation.

Чем больше модулей вы используете, тем выше использование вашей памяти. Помните: модули, которые вы не используете, не только не нужны, но и неоправданно используют оперативную память, что может привести к существенной задержке ответов на запросы. Не стоит ожидать чудес производительности, если деактивировать ненужные модули, но это все равно хорошая идея. Как вы знаете, аккуратный сервер — более безопасный и быстрый сервер.

Первый шаг — выяснить, какие модули загружены в данный момент. Для этого введите команду «apachectl -M». Как правило, большинство модулей загружаются в файл /etc/httpd/conf/httpd.conf. Если вы не хотите на него полагаться, используйте команду grep, чтобы узнать, куда загружены модули:

grep -ir LoadModule /etc/httpd/conf/* /etc/httpd/conf.d/* /etc/httpd/vhosts/*

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

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

В качестве примера возьмем файл /etc/httpd/conf/httpd.conf: он показывает включенные прокси-модули. Если вы не уверены, нужны ли они вам, найдите свою конфигурацию с помощью этой команды:

grep -ir proxy /etc/httpd/conf/* /etc/httpd/conf.d/* /etc/httpd/vhosts/*

Ничего не будет, если вы обнаружите закомментированные строки, вы, скорее всего, не используете прокси-модуль. Закомментируйте соответствующие строки в файле httpd-conf, проверьте с помощью Config-Test и перезапустите сервер:

service httpd configtest

service httpd Graceful

Если проверка конфигурации не удалась, повторно активируйте недавно деактивированный модуль. Вы также можете активировать или деактивировать модули с помощью a2dismod $modulname или a2enmod $modulname. Чтобы улучшить производительность и безопасность вашего сервера Apache, выполните действия, которые мы описали ниже в нашей статье.

Оптимизация производительности Apache

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

Команда top: как найти снижения производительности?

Если вы хотите узнать что-нибудь о доступе к жесткому диску, вам подойдет iotop. С помощью этой команды вы можете увидеть все скорости чтения и записи, а также скорости отдельных процессов. iotop -o также является удобной командой, поскольку она выводит только IO-активные процессы.

С этой командой не должно быть больших сюрпризов — чтение и запись в базах данных, в частности, производят некоторые операции ввода-вывода. Вы также можете использовать другую возможность, чтобы больше узнать, а именно iostat: команда показывает количество блоков, прочитанных и записанных с момента запуска системы, без каких-либо дополнительных параметров.

С помощью iftop вы можете отображать использование сети, чтобы обнаружить любые снижения производительности. Также стоит упомянуть команду lsof, которая открывает файлы. Однако без установки дополнительных параметров будет поток информации, которая вам в любом случае не нужна. Предполагая, что вы смогли определить httpd как источник загрузки, теперь стоит выяснить, какие файлы открыты. Введите lsof -u apache -c httpd (т. е. lsof -User apache -Process httpd), чтобы получить список файлов. Здесь вы также увидите множество файлов журналов и модулей, которые в данный момент открыты.

Дополнительный совет: если вы устали от «top» и «ps» и хотите сразу увидеть использование оперативной памяти и загрузку процессора, «htop» — хороший вариант. Вы можете рассматривать htop как диспетчер задач оболочки Linux. Используйте apt-get install htop для установки, затем введите «htop» в терминале, чтобы открыть программу. В выводе вам будут представлены сочетания клавиш в нижней части экрана.

Таким образом, вы можете получить доступ к важным функциям программы без каких-либо обходных путей. Вы вызываете настройку с помощью F2. Здесь у вас также есть возможность адаптировать вывод htop к вашим потребностям. С помощью клавиш со стрелками выберите значение, которое вы хотите отобразить, и при необходимости добавьте его в столбец. С помощью F5 вы добавляете параметры в левый столбец, с помощью F6 — в правый столбец. Нажмите F3, чтобы получить доступ к поиску, который позволяет искать имена процессов. В нижней панели откроется поле ввода.

Используя «renice» как функцию htop, вы можете устанавливать приоритеты процессов. В мире Unix все процессы имеют так называемые "хорошие значения". Это "хорошее значение" показывает приоритет процесса, и этот приоритет определяет право процесса на процессорное время. Чем выше значение Nice, тем больше процесс может использовать производительность ЦП. Отрегулируйте значение Nice выбранного процесса в открытом списке с помощью F7 и F8. Ваши изменения будут применены немедленно.

Безопасность Apache

Обеспечение безопасности сервера — это первое, что должны сделать пользователи. Как владелец сервера вы можете быть привлечены к ответственности в случае хакерской атаки! Цель должна состоять в том, чтобы адаптировать вашу систему так, чтобы злоумышленникам было трудно получить к ней доступ, в идеале – вообще не получить. Давайте начнем.

Чтобы защитить ваш веб-сервер Apache, настройте параметры в конфигурации Apache «/etc/apache2/sites-available/default-ssl.conf», как описано ниже:

Блокировка SSLv3. Известные уязвимости можно использовать, если ваш сервер допускает возврат к SSLv3. Вы можете предотвратить это с помощью «SSLProtocol All -SSLv2 -SSLv3». Альтернативно вы можете отключить все протоколы, кроме TLS. Минус перед параметром изначально блокирует их все, плюс перед нужным протоколом затем разрешает это: «SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2».

Сжатие SSL. Для защиты от таких атак, как атака CRIME, вы можете отключить сжатие SSL: «SSLCompression off».

Спецификации шифрования. Клиент фактически решает, какое шифрование можно использовать. Если вы хотите, чтобы ваш сервер соответствовал значению по умолчанию, используйте эту команду: «SSLHonorCipherOrder On».

Наборы шифров. У вас есть возможность указать определенные наборы шифров и заблокировать ненужные.

Активируйте HTTPS. Активируйте строгую транспортную безопасность HTTP. Для этого сначала установите модуль Apache «a2enmod headers». Теперь введите свои параметры в файл default-ssl.conf. В нашем примере мы включаем возможные поддомены и сообщаем серверу, что он будет разрешать соединения HTTPS только в течение следующих пяти лет: «Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"».

Активируйте OCSP. Протокол статуса онлайн-сертификатов, или сокращенно OCSP, предназначен для проверки подлинности сертификатов при установке соединения SSL/TLS. Однако эта функция безопасности имеет смысл только для официальных сертификатов центров сертификации, а не для самозаверяющих сертификатов. Эта функция безопасности полезна не каждому администратору сервера, поэтому сначала следует рассмотреть ее преимущества и недостатки. Если затем вы захотите активировать эту функцию, вы можете сделать это с помощью этой команды:

SSLUseStapling on

SSLStaplingCache «shmcb:logs/stapling-cache(150000)»

Независимо от того, какие функции вы решите использовать, после внесения каких-либо изменений в конфигурацию важно протестировать функции перед вводом их в эксплуатацию. Для этого используйте:

apache2ctl -t

sudo service apache2 restart

Apache поддерживает Unix, Linux, NetWare, Win32 и множество других операционных систем. В зависимости от того, с какой из них вы работаете, вы можете следовать предыдущим инструкциям, которые мы создали для вас, при обеспечении безопасности и очистке вашего сервера.

Антивирус для сервера Apache

Антивирусное решение для вашего сервера Apache зависит от того, какую операционную систему вы используете. Если учесть, что киберпреступники могут атаковать любой компонент веб-сайта, быстро становится ясно, что вам нужна защита: системы CMS, такие как WordPress и Joomla, так же уязвимы, как и среды приложений, такие как PHP и вездесущие веб-серверы Apache. Каждый веб-сервер должен быть оснащен антивирусным программным обеспечением и, в идеале, брандмауэром.

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

Эпилог

Фонд Apache Software Foundation разработал Apache — продукт с открытым исходным кодом, который чрезвычайно популярен для использования на веб-серверах. Модульная структура серверного программного обеспечения, несомненно, является ключевым фактором этого успеха, поскольку вы можете настроить и использовать свой сервер Apache индивидуально.

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

Компания Mainton - разработка и тестирование программного обеспечения под заказ, SEO и реклама в интернете с 2004 года.

ПЕНТЕСТ БЕЗОПАСНОСТЬ ВЗЛОМАЛИ? МОНИТОРИНГ СТАТЬИ ВАКАНСИИ