Найти в Дзене
IaaS-платформа 1cloud

Как защитить LAMP-сервер

кадр из фильма Monty Python and the Holy Grail
кадр из фильма Monty Python and the Holy Grail

Если вы занимаетесь веб-разработкой, вы наверняка знакомы с понятием LAMP. Давайте разберемся, как надежно защитить каждый компонент стэка от атак и посягательств злоумышленников.

Защищаем Linux

1. Автоматические обновления

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

Чтобы включить автообновления, установите пакет unattended-upgrades.

2. Настройка брандмауэра

В Linux Ubuntu инструмент настройки брандмауэра UFW по умолчанию деактивирован. Включить его можно одной командой: sudo ufw enable. После активации откройте доступ к OpenSSH и Apache, а при необходимости разрешите доступ и к другим сервисам командой sudo ufw allow [номер порта].

3. Отключение ненужных служб

Если вам не нужны какие-то из работающих на сервере служб, деактивируйте их.

4. Защищаем Apache

Fail2ban

Утилита для веб-cервера на Ubuntu, призванная регистрировать несанкционированные вторжения. ПО следит за файлами журналов и регистрирует неудавшиеся попытки входа, их количество, а также обнаруживает автоматические атаки. Когда утилита распознает попытку компрометации, происходит блокировка IP, с которого совершались запросы. В iptables просто добавляется новая цепочка, и атаку на сервер можно считать неудавшейся.

Модуль mod_evasive

Еще одна утилита для защиты Apache от DoS- и DDoS-атак. Модуль также работает с IP-адресами, выявляя те, с которых происходят подозрительные запросы, и помещая добавляя их в черный список.

кадр из фильма Monty Python and the Holy Grail
кадр из фильма Monty Python and the Holy Grail

Защита информации

По дефолту Apache хранит большое количество информации, требующей защиты, поэтому для обеспечения безопасности веб-сервера конфиденциальные данные лучше всего скрывать. Это можно сделать через conf-файл. Сначала создайте файл "custom.conf" в папке conf-available веб-сервера Apache и вставьте туда следующие строки:

***

ServerTokens Prod

ServerSignature Off

TraceEnable Off

Options all -Indexes

Header unset ETag

Header always unset X-Powered-By

FileETag None

***

После этого включите конфигурацию командой sudo a2enconf custom.conf и перезагрузите Apache. Вы великолепны!

5. Защита MySQL

Для этого необходимо выполнить всего несколько шагов:

  • запустить сценарий безопасности: sudo mysql_secure_installation;
  • деактивировать удаленный доступ;
  • создать отдельных пользователей и настроить привилегии для каждого из них;
  • деактивировать LOCAL INFILE через conf-файл;

6. Защита PHP

Если вы перешли к защите PHP, надеемся, вы действительно обеспокоились вопросами безопасности LAMP-сервера и выполнили все предыдущие шаги. Остался последний этап — защита PHP.

Через php.ini скройте основные данные, полученные от PHP, приведением настроек к следующему виду:

***

expose_php = Off

display_errors = Off

mail.add_x_header = Off

***

Не забудьте выполнить перезапуск Apache, чтобы настройки стали актуальны.

Некоторые функции PHP могут представлять определенную угрозу безопасности веб-сервера. Чтобы минимизировать риски, необходимо деактивировать их через php.ini. Прежде всего, настройте disable_functions:

disable_functions = show_source,system,shell_exec,passthru,exec,phpinfo,popen,proc_open,allow_url_fopen,curl_exec,curl_multi_exec

Затем в том же файле выключите функцию удаленного исполнения PHP:

***

allow_url_fopen=Off

allow_url_include=Off

***

Чтобы ограничить максимальное время исполнения найдите в файле настройки max_execution_time, max_input_time и memory_limit и замените их значения на 30, 30 и 40M соответственно.

Дополнительно можно активировать open_basedir, директиву, регулирующую доступ к файлам на сервере.

кадр из фильма Monty Python and the Holy Grail
кадр из фильма Monty Python and the Holy Grail

Вы прекрасны, а ваш LAMP-сервер защищен. Используете иные методы защиты? Поделитесь ими в комментариях, — коллеги будут вам благодарны.

Понравилась статья? Тогда ставьте лайк и подписывайтесь на канал, чтобы не пропускать новые выпуски!