Налаштуйте 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команди:

  • Натисніть Enter на першому кроці майстра встановлення.
  • Введіть 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, відвідайте їхній офіційний сайт .

Залишити коментар

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

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

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

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

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

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

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

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

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

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

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