Установите NGINX с ModSecurity на CentOS 6

В этой статье я объясню, как построить стек LEMP, защищенный ModSecurity. ModSecurity - это брандмауэр веб-приложений с открытым исходным кодом, который полезен для защиты от инъекций, атак PHP и многого другого. Если вы хотите настроить NGINX с ModSecurity, продолжайте чтение.

Все шаги в этой статье требуют root-доступа.

Шаг 1: Установка предварительных условий

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

/bin/su

Нам нужен компилятор, поэтому выполните следующее:

yum install -y gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel httpd-devel libxml2-devel xz-devel python-devel libcurl-devel
yum groupinstall -y 'Development Tools' 

Чтобы установить NGINX, нам нужно сначала получить пакет. Загрузите пакет:

cd /usr/src && wget http://nginx.org/download/nginx-1.9.9.tar.gz

Нам также потребуется пакет PHP для нашего стека.

wget http://us2.php.net/distributions/php-5.6.16.tar.bz2

Поскольку мы устанавливаем ModSecurity, мы возьмем исходный код и загрузим его:

wget https://www.modsecurity.org/tarball/2.9.0/modsecurity-2.9.0.tar.gz

Теперь распакуйте / разархивируйте файлы.

tar xvf nginx-1.9.9.tar.gz
tar xvf php-5.6.16.tar.bz2
tar xvf modsecurity-2.9.0.tar.gz   

Затем мы установим ModSecurity.

cd /usr/src/modsecurity-2.9.0 && ./configure --enable-standalone-module --disable-mlogc
make && make install

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

cd /usr/src/nginx-1.9.9 && ./configure --add-module=../modsecurity-2.9.0/nginx/modsecurity/
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

Теперь давайте установим сервер MySQL.

yum install -y mysql-server
service mysqld start
mysql_secure_installation

Для mysql_secure_installationкоманды:

  • Нажмите ввод на первом шаге мастера установки.
  • Введите Y, когда будет предложено установить новый пароль root для MySQL.
  • Введите новый пароль, подтвердите, введя его снова.
  • Нажмите Y, чтобы удалить анонимных пользователей, запретите удаленный root-доступ к MySQL, нажав Y еще раз.
  • Нажмите Y в последний раз, чтобы удалить тестовую базу данных / пользователя.
  • Наконец, нажмите Y, чтобы сохранить изменения.

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

Введите исходный каталог для PHP.

cd /usr/src/php-5.6.16

Теперь настройте PHP. Следующие аргументы в ./configureкоманде есть, чтобы вы могли запускать приложения, такие как WordPress.

 ./configure --with-pear=/usr/lib/pear --enable-libxml --with-pdo-mysql --with-mysqli --with-mysql --enable-mbstring --with-curl
 make
 make install

Установите PHP-FPM для NGINX:

yum install -y php-fpm

Нам нужно установить PHP-FPM поверх самого PHP, потому что сам NGINX не интегрируется напрямую с PHP. Вместо этого NGINX передает обработку PHP в PHP-FPM для выполнения наших скриптов.

Хорошая работа! Вы установили необходимые условия.

Шаг 2: Настройка ModSecurity / NGINX

Давайте начнем с создания набора правил ModSecurity. ModSecurity ничего не делает сам по себе, пока вы не настроите его.

Возьмите набор правил OWASP с их сайта:

 cd /usr/src && wget https://github.com/SpiderLabs/owasp-modsecurity-crs/tarball/master
 tar xvf master

После того, как вы загрузили набор правил, мы объединим конфигурацию по умолчанию с базовыми правилами.

cd SpiderLabs-owasp-modsecurity-crs-60c8bc9
cp /usr/src/modsecurity-2.9.0/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf
cp /usr/src/modsecurity-2.9.0/unicode.mapping /usr/local/nginx/conf/
cat base_rules/*.conf >> /usr/local/nginx/conf/modsecurity.conf
cp base_rules/*.data /usr/local/nginx/conf

Теоретически это должно защищать от большинства веб-эксплойтов. Тем не менее, плагины / код, который вы устанавливаете, также должны быть проверены, потому что, хотя ModSecurity является отличной мерой безопасности, он не является пуленепробиваемым.

Создайте каталог по адресу /var/www:

mkdir /var/www

И каталог для вашего виртуального хоста:

mkdir /var/www/yourwebsite.com

Наконец, добавьте следующее к вашей конфигурации NGINX, расположенной по адресу /usr/local/nginx/conf/nginx.conf. Убедитесь, что вы добавили эту конфигурацию до появления последнего }символа.

  server {
  listen   80;
  root /var/www/yourwebsite.com;
  index index.php index.html index.htm;
  server_name yourwebsite.com www.yourwebsite.com;
  location / {
  ModSecurityEnabled on;
  ModSecurityConfig /usr/local/nginx/modsecurity.conf;
  }
  }

  location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }
}

Шаг 3: Запуск PHP-FPM и NGINX

Этот шаг довольно прост - все, что вам нужно сделать, это выполнить следующие команды.

service php-fpm start
/usr/sbin/nginx

Поздравляем! Вы настроили свой первый веб-сайт с NGINX, защищенным ModSecurity. Для дальнейшего чтения на ModSecurity, посетите их официальный сайт .

Оставить комментарий

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

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

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

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

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше