Партия — это безумие многих ради выгоды единиц (Д. Свифт).

Как обезопасить свой LAMP сервер

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Статья опубликована: 18 августа 2017

Как обезопасить свой LAMP сервер
Стек LAMP, который стоит на Linux и состоит из: Apache, MySQL/MariaDB и PHP/Python/Perl является очень популярным сочетанием свободного и открытого программного обеспечения и используется сегодня для запуска миллионы сайтов. Хотя многие выбирают для более эффективного стека LEMP на основе Nginx вместо Apache, есть еще значительное число пользователей, которые выбирают LAMP для своих проектов. На самом деле, более 30% активных сайтов сегодня работают на верхней части LAMP. Стек считается надежным и очень подходит для работы с высокой производительностью и доступностью веб – приложений. В этой статье мы собираемся показать вам, как защитить стек LAMP на вашем Linux VPS.

Защита Linux

Включение автоматического обновления

Имеется в виду, что стек LAMP основан на Linux и все сообщества с открытым исходным кодом работает над улучшениями, он считается безопасным тоже. На Ubuntu VPS, все обновления безопасности и патчи доступны для автоматической установки, как только они станут доступны в репозиториях Ubuntu, поэтому убедитесь, что вы настроили систему на автоматическую установку обновлений безопасности, если вы беспокоитесь о безопасности, В случае, если эта функция не включена на сервере, и вы не устанавливаете последние обновления и исправления вручную, вы ставите свой сервер под угрозой взлома.

Для включения автоматического обновления без присмотра, вы должны установить пакет unattended-upgrades.

 

Чтобы настроить какие категории пакетов будут автоматически обновлены, вы должны отредактировать файл /etc/apt/apt.conf.d/50unattended-upgrades.

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

Имея правильно настроенный брандмауэр очень важно для общей безопасности. UFW является инструментом конфигурации брандмауэра по умолчанию для Ubuntu и изначально отключен. Чтобы включить UFW вы можете использовать:

 

Разрешить доступ к основным услугам, как OpenSSH и Apache:

 

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

Отключение неиспользуемых служб

Если у вас есть активные услуги, которые вы не используете, вы можете просто отключить их. Например, если у вас есть службы, как Dovecot и работает на сервере, и вы не используете его, остановите и отключите службу, используя следующие команды:

Установка fail2ban

Fail2ban это сервис, который сканирует файлы журнал для слишком многих неудачных попыток входа и блокирует IP – адрес, который показывает вредоносный код. Эта услуга очень полезна, если вы не используете двуфакторную аутентификацию или услуги частных механизмов аутентификации, такие как OpenSSH. Для того, чтобы установить Fail2ban, выполните следующую команду:

 

Создайте копию файла конфигурации по умолчанию, так что вы можете смело вносить изменения:

 

Редактирование файла jail.local:

 

Блок [SSHD] должен выглядеть следующим:

 

Сохраните файл и перезапустите Fail2ban для того, чтобы изменения вступили в силу:

 

Включить Fail2ban при загрузке системы:

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

Скройте конфиденциальную информацию в Apache

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

 

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

 

Включите заголовки модуля Apache, если он еще не включен:

 

Включите конфигурацию:

 

Перезапустите Apache для того, чтобы изменения вступили в силу:

Установите и включите mod_security

Mod_security это веб-приложение брандмауэра (WAF), который может быть установлен в качестве дополнительного модуля для Apache. Он может быть использован для защиты веб-сервера от многочисленных атак, таких как инъекции SQL, захват сеанса, межсайтовый скриптинг, плохих пользовательских агентов и многие другие. Для того, чтобы установить и включить mod_security, запустите следующие команды:

 

После установки вы должны настроить модуль и включить OWASP ModSecurity Core Rule Set (CRS).

 

Затем откройте файл /etc/modsecurity/modsecurity.conf и отредактируйте/добавьте следующие параметры:

 

Сохраните и закройте файл. Удалите текущий CRS и загрузите OWASP CRS с помощью следующих команд:

 

Отредактируйте файл /etc/apache2/mods-enabled/security2.conf. Он должен выглядеть как на картинке ниже:

 

И, наконец, перезапустите Apache для того, чтобы изменения вступили в силу:

Установите и включите mod_evasive

Mod_evasive является модулем Apache, который может быть использован для защиты веб-сервера от DoS (отказ в обслуживании), DDoS (Распределенный отказ в обслуживании) и грубой силы атаки. Чтобы установить mod_evasive на сервере, выполните следующую команду:

 

Откройте файл конфигурации по умолчанию в /etc/apache2/mods-enabled/evasive.conf и измените настройки, чтобы они выглядели, как показано ниже:

 

Сохраните и закройте файл. Создайте каталог для файлов журнала:

 

Перезапустите Apache:

Безопасный MySQL

Защита сервера MySQL

Первое, что нужно сделать, чтобы защитить службу MySQL, это запустить сценарий mysql_secure_installation.

 

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

Отключение удаленного доступа MySQL

Если вы не будете выполнять удаленные операции над вашим MySQL сервером, отключите удаленный доступ к сервису. Вы можете сделать это путем редактирования файла /etc/mysql/mysql.conf.d/mysqld.cnf и изменение Bind-адрес на 127.0.0.1.

 

Перезапустите службу для того, чтобы изменения вступили в силу.

Создание отдельных пользователей MySQL

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

Войдите в MySQL как root:

 

Вы можете создать базу данных MySQL и предоставить все привилегии для нового пользователя с помощью следующих команд:

 

Затем вы можете использовать вновь созданную базу данных и пользователя для вашего приложения.

Отключите LOCAL INFILE

Если вы явно не используететсь LOCAL INFILE, то это хорошо, чтобы отключить его. Опять же, отредактируйте конфигурационный файл MySQL и добавьте следующую строку под блоком [mysqld]:

 

Перезапустите службу MySQL для того, чтобы изменения вступили в силу.

Защита PHP

Если вы выполнили описанные выше действия, ваш сервер должен быть уже в безопасности. Последняя часть защиты сервера LAMP является защита PHP, которая является довольно простым процессом. Найдите местоположение файла ini в PHP:

 

Все изменения, которые мы будем делать в этот файл.

Скрыть основную информацию в PHP

Первый шаг, это скрыть информацию, предоставленную PHP, который некоторые злоумышленники могут воспользоваться. Откройте файл php.ini и изменить настройки, чтобы они соответствовали следующим образом:

 

Сохраните файл и перезапустите Apaсhe:

Отключение опасных функций PHP

Директива Disable_functions позволяет отключить некоторые функции, которые могут быть вредны для вашей системы. Измените директиву в вашем файле php.ini, чтобы соответствовать следующим образом:

 

Пока вы здесь, отключить удаленное выполнение кода PHP с помощью следующих параметров:

Ограничение загрузки файлов

Если вы не используете функции загрузки файлов полностью, безопасно ограничить загрузку файлов в PHP. Откройте файл php.ini и установите следующий параметр:

 

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

где upload_max_filesize является ограничением размера загрузки.

Перезапустите Apache после внесения этих изменений.

Установить максимальное время выполнения

Опять же, отредактируйте файл php.ini и измените следующие параметры:

 

Это устанавливает максимальное время в секундах сценарий, которое разрешено запускать или синтаксического анализа данных, а также установит максимальный объем памяти, который можно выделить скрипту.

Включить open_basedir

Директива open_basedir позволяет установить местоположение, из которого PHP разрешается доступ к файлам. Отредактируйте фал php.ini и установите правильное расположение, чтобы соответствовать текущей конфигурации:

 

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


Читайте также

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close