NGINX را با ModSecurance در CentOS 6 تنظیم کنید

در این مقاله ، نحوه ساختن یک پشته LEMP را که توسط ModSecurance محافظت می شود ، توضیح خواهم داد. ModSecurance یک دیوار آتش برنامه منبع باز است که برای محافظت در برابر تزریقات ، حملات PHP و موارد دیگر مفید است. اگر می خواهید NGINX را با ModSecurance راه اندازی کنید ، ادامه مطلب را بخوانید.

تمام مراحل موجود در این مقاله به دسترسی ریشه نیاز دارد.

مرحله 1: نصب پیش نیازها

اگر در حال حاضر به عنوان کاربر اصلی در حال اجرا نیستید ، خود را افزایش دهید:

/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   

سپس ، ما ModSecurance را نصب خواهیم کرد.

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

اکنون که همه پیش نیازها را بدست آوردیم ، بگذارید NGINX را نصب کنیم. مجموعه دستورات زیر برای نصب NGINX و ModSecurance است.

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دستور:

  • وارد مرحله اول جادوگر نصب شوید.
  • در صورت درخواست رمزعبور ریشه MySQL جدید ، در صورت درخواست Y را تایپ کنید.
  • رمزعبور جدید را تایپ کنید ، با تایپ دوباره آن را تأیید کنید.
  • برای حذف کاربران ناشناس ، به Y ضربه بزنید ، دسترسی مجدد ریشه از راه دور به MySQL را با فشار دادن دوباره فشار دهید.
  • آخرین بار Y را فشار دهید تا پایگاه داده / کاربر آزمون حذف شود.
  • در آخر ، Y را فشار دهید تا تغییرات خود را ذخیره کنید.

آخرین مورد برای نصب ، و آن PHP است. در این مقاله ، ما PHP را از مبدا نصب خواهیم کرد.

دایرکتوری منبع را برای PHP وارد کنید.

cd /usr/src/php-5.6.16

اکنون پی اچ پی را پیکربندی کنید. آرگومان های زیر در ./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: پیکربندی ModSecurance / NGINX

بیایید با ساختن یک مجموعه قانون ModSecurance شروع کنیم. ModSecurance تا زمانی که آن را پیکربندی نکنید ، به خودی خود هیچ کاری انجام نمی دهد.

قانون 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

از نظر تئوری ، این باید در برابر بیشتر سوءاستفاده های وب محافظت کند. با این حال ، افزونه ها / کدی که نصب می کنید نیز باید مورد بازرسی قرار گیرند ، زیرا در حالی که ModSecurance یک اقدام امنیتی عالی است ، ضد گلوله نیست.

ایجاد دایرکتوری در /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 محافظت شده توسط ModSecurance راه اندازی کرده اید. برای مطالعه بیشتر در مورد ModSecurance ، به سایت رسمی آنها مراجعه کنید .

یک نظر بگذارید

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.